{"version":3,"sources":["webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-dependencies-js@2.5.4/node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-dependencies-js@2.5.4/node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","webpack:///C:/a/2/s/Cognito.Web.Client/node_modules/.pnpm/@microsoft+applicationinsights-dependencies-js@2.5.4/node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js"],"names":["_objKeys","CoreUtils","objKeys","_arrForEach","arrForEach","_calcPerfDuration","resourceEntry","start","end","result","from","to","GetDuration","_setPerfDuration","props","name","value","_setPerfValue","Util","msToTimeSpan","XHRMonitoringState","this","openDone","setRequestHeaderDone","sendDone","abortDone","stateChangeAttached","ajaxRecord","traceID","spanID","logger","_logger","perfMark","completed","requestHeadersSize","requestHeaders","responseReceivingDuration","callbackDuration","ajaxTotalDuration","aborted","pageUrl","requestUrl","requestSize","method","status","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","self","getAbsoluteUrl","getPathName","DataSanitizer","sanitizeUrl","getCompleteUrl","CreateTrackItem","ajaxType","enableRequestHeaderTracking","getResponse","Math","round","_a","dependency","id","target","type","duration","success","responseCode","HttpMethod","ajaxData","perfTiming","propsSet","_isString","isString","strRedirect","strRedirectStart","strRedirectEnd","strDomainLookup","strConnect","strRequest","strResponse","serverTiming","server_1","idx","newValue","key","val","isNumber","perfAttempts","_populatePerfData","length","response","correlationContext","headerMap","responseHeaders","responseType","statusText","JSON","stringify","Traceparent","traceId","spanId","traceFlag","DEFAULT_TRACE_FLAG","version","DEFAULT_VERSION","isValidTraceId","generateW3CId","isValidSpanId","substr","match","prototype","toString","_isNullOrUndefined","isNullOrUndefined","_markCount","_getFailedAjaxDiagnosticsMessage","xhr","e","_throwInternalCritical","ajaxMonitorInstance","msgId","message","properties","isUserAct","CRITICAL","_throwInternalWarning","WARNING","_createErrorCallbackFunc","internalMessage","args","ajaxDiagnosticsMessage","inst","exception","dump","err","_indexOf","indexOf","_super","AjaxMonitor","_this","call","identifier","priority","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","location","_fetchInitialized","_xhrInitialized","_currentWindowHost","host","toLowerCase","_config","getEmptyConfig","_enableRequestHeaderTracking","_trackAjaxAttempts","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_hooks","_disabledUrls","_self","base","_hookProto","funcName","callbacks","push","_isDisabledRequest","request","init","isDisabled","theUrl","url","idx2","substring","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_getResponseText","responseText","_getAjaxCorrelationContext","responseHeadersString","getAllResponseHeaders","requestContextHeaderLowerCase","responseHeader","getResponseHeader","requestContextHeader","getCorrelationContext","FailedMonitorAjaxGetCorrelationHeader","_createMarkId","performance_1","isFunction","mark","markId","entries","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","performance","maxAttempts","maxAjaxPerfLookupAttempts","retryDelay","ajaxPerfLookupDelay","attempt","locateResourceTiming","getEntries","lp","entry","entryType","startTime","async","clearMarks","setTimeout","_getFailedFetchDiagnosticsMessage","input","FailedMonitorAjaxOpen","_reportFetchMetrics","callDetails","_reportFetchError","failedProps","errorProps","Now","FailedMonitorAjaxDur","_getFetchCorrelationContext","headers","get","fetchDiagnosticsMessage","initialize","config","core","extensions","pluginChain","isInitialized","ctx_1","_getTelCtx","defaultConfig_1","getDefaultConfig","field","getConfig","distributedTracingMode","enableAjaxPerfTracking","maxAjaxCallsPerView","enableResponseHeaderTracking","AI","AI_AND_W3C","W3C","iKey","instrumentationKey","disableAjaxTracking","XMLHttpRequest","proto","open","send","abort","trim","ex","theOpen","_supportsAjaxMonitoring","req","telemetryTrace","Attach","readyState","_reportXhrError","ajaxResponse","arr","split","responseHeaderMap_2","line","parts","header","shift","join","_onAjaxComplete","exceptionText","FailedMonitorAjaxRSC","_attachToOnReadyStateChange","_openHandler","hkErr","context","includeCorrelationHeaders","undefined","FailedMonitorAjaxSend","FailedMonitorAjaxAbort","FailedMonitorAjaxSetRequestHeader","fetch","_global","Request","global","isPolyfill","polyfill","disableFetchTracking","fetchData","ctx","Headers","forEach","_createFetchRecord","newInit","set","data","rsp","rslt","then","responseHeaderMap_1","reason","error","_instrumentFetch","propExt","extIx","teardown","fn","rm","setInitialized","trackDependencyData","currentWindowHost","canIncludeCorrelationHeader","requestIdHeader","appId","requestContextAppIdFormat","traceparent","traceParentHeader","setRequestHeader","systemProperties","item","TelemetryItemCreator","create","RemoteDependencyData","dataType","envelopeType","track","MaxAjaxPerPVExceeded","disableCorrelationHeaders","correlationHeaderExcludedDomains","correlationHeaderDomains","enableCorsCorrelation","enableAjaxErrorStatusText","emptyConfig","processTelemetry","itemCtx","processNext","BaseTelemetryPlugin"],"mappings":"+PAUIA,EAAWC,EAAA,EAAUC,QACrBC,EAAcF,EAAA,EAAUG,WAE5B,SAASC,EAAkBC,EAAeC,EAAOC,GAC7C,IAAIC,EAAS,EACTC,EAAOJ,EAAcC,GACrBI,EAAKL,EAAcE,GAIvB,OAHIE,GAAQC,IACRF,EAAS,IAAcG,YAAYF,EAAMC,IAEtCF,EAGX,SAASI,EAAiBC,EAAOC,EAAMT,EAAeC,EAAOC,GACzD,IAAIC,EAAS,EACTO,EAAQX,EAAkBC,EAAeC,EAAOC,GAIpD,OAHIQ,IACAP,EAASQ,EAAcH,EAAOC,EAAMG,EAAA,EAAKC,aAAaH,KAEnDP,EAGX,SAASQ,EAAcH,EAAOC,EAAMC,GAChC,IACIP,EAAS,EACTK,GAASC,GAAQC,KACFF,EAAa,SAAKA,EAAa,UAAK,IAC1CC,GAAQC,EACjBP,EAAS,GAEb,OAAOA,EA6GX,IAAIW,EACA,WACeC,KACNC,UAAW,EADLD,KAENE,sBAAuB,EAFjBF,KAGNG,UAAW,EAHLH,KAINI,WAAY,EAJNJ,KAMNK,qBAAsB,GAK/B,EACA,SAASC,EAAWC,EAASC,EAAQC,GACjC,IACIC,EAAUD,EADHT,KAKNW,SAAW,KALLX,KAMNY,WAAY,EANNZ,KAONa,mBAAqB,KAPfb,KAQNc,eAAiB,KARXd,KASNe,0BAA4B,KATtBf,KAUNgB,iBAAmB,KAVbhB,KAWNiB,kBAAoB,KAXdjB,KAYNkB,QAAU,EAZJlB,KAaNmB,QAAU,KAbJnB,KAcNoB,WAAa,KAdPpB,KAeNqB,YAAc,EAfRrB,KAgBNsB,OAAS,KAhBHtB,KAiBNuB,OAAS,KAjBHvB,KAkBNwB,gBAAkB,KAlBZxB,KAmBNyB,oBAAsB,KAnBhBzB,KAoBN0B,qBAAuB,KApBjB1B,KAqBN2B,qBAAuB,KArBjB3B,KAsBN4B,QAAU,KAtBJ5B,KAuBN6B,mBAAqB,IAAI9B,EAvBnBC,KAwBN8B,cAAgB,EAxBV9B,KAyBNO,QAAUA,EAzBJP,KA0BNQ,OAASA,EACd,YAAaF,EA3BFN,MA2BoB,SAAU+B,GACrCA,EAAKC,eAAiB,WAClB,OAAOD,EAAKX,WAAa,IAAUY,eAAeD,EAAKX,YAAc,MAEzEW,EAAKE,YAAc,WACf,OAAOF,EAAKX,WAAac,EAAA,EAAcC,YAAYzB,EAAS,IAAU0B,eAAeL,EAAKT,OAAQS,EAAKX,aAAe,MAE1HW,EAAKM,gBAAkB,SAAUC,EAAUC,EAA6BC,GAGpE,GADAT,EAAKd,kBAAoBwB,KAAKC,MAAmF,IAA7E,IAAcnD,YAAYwC,EAAKP,gBAAiBO,EAAKL,uBAAgC,IACrHK,EAAKd,kBAAoB,EACzB,OAAO,KAEX,IA+CI0B,EA/CAC,IAAcD,EAAK,CACfE,GAAI,IAAMd,EAAKxB,QAAU,IAAMwB,EAAKvB,OACpCsC,OAAQf,EAAKC,iBACbtC,KAAMqC,EAAKE,cACXc,KAAMT,EACNU,SAAUjB,EAAKd,kBACfgC,SAAYlB,EAAW,QAAM,MAAUA,EAAW,OAAK,IACvDmB,cAAiBnB,EAAW,OAC5BT,OAAQS,EAAKT,SAED,WAAI,CAAE6B,WAAYpB,EAAKT,QACvCqB,GASJ,GArLhB,SAA2BS,EAAUR,GAqBjC,IAAI3D,EAAgBmE,EAASC,WACzB5D,EAAQmD,EAAwB,YAAK,GACrCU,EAAW,EACXC,EAAY3E,EAAA,EAAU4E,SAMtBC,EAAc,WAadC,EAAmBD,EAjBR,QAkBXE,EAAiBF,EAjBR,MAsBb,GAAIxE,EAAe,CAEfqE,GAAY9D,EAAiBC,EAAOgE,EAAaxE,EAAeyE,EAAkBC,GAElFL,GAAY9D,EAAiBC,EAzBX,eAyBmCR,EAlB9B2E,oBACFA,mBAmBrBN,GAAY9D,EAAiBC,EA1BhB,UA0BmCR,EAlB9B4E,eACFA,cAmBhBP,GAAY9D,EAAiBC,EA1BhB,UA0BmCR,EAlB9B6E,eACFA,cAmBhBR,GAAY9D,EAAiBC,EA3Bf,WA2BmCR,EAlB9B8E,gBACFA,eAmBjBT,GAAY9D,EAAiBC,EAAO,iBAAkBR,EA3BvC,YAIC4E,cAyBhBP,GAAY9D,EAAiBC,EAAO,cAAeR,EAxBjC6E,eAGDC,eAuBjB,IAAIf,EAAW/D,EAAyB,SACnC+D,IACDA,EAAWhE,EAAkBC,EAjClB,YAQE8E,gBAyBgE,GAEjFT,GAAY1D,EAAcH,EApCZ,WAoCgCuD,GAC9CM,GAAY1D,EAAcH,EAAO,YAAauD,GAC9C,IAAIgB,EAAe/E,EAA6B,aAChD,GAAI+E,EAAc,CACd,IAAIC,EAAW,GACfnF,EAAYkF,GAAc,SAAUrE,EAAOuE,GACvC,IAAIxE,EAAO,YAAgBC,EAAa,MAAK,GAAKuE,GAC9CC,EAAWF,EAASvE,IAAS,GACjCZ,EAAYH,EAASgB,IAAQ,SAAUyE,GACnC,IAAIC,EAAM1E,EAAMyE,IArDlB,SAsDMA,GAAmBb,EAAUc,IAAQzF,EAAA,EAAU0F,SAASD,MACpDF,EAASC,KACTC,EAAMF,EAASC,GAAO,IAAMC,IAE5BA,GAAQd,EAAUc,KAElBF,EAASC,GAAOC,OAI5BJ,EAASvE,GAAQyE,KAErBb,GAAY1D,EAAcH,EA3CZ,eA2CoCwE,GAEtDX,GAAY1D,EAAcH,EAhDR,eAgDgCR,EAA6B,cAC/EqE,GAAY1D,EAAcH,EAhDL,kBAgDgCR,EAAgC,iBACrFqE,GAAY1D,EAAcH,EAhDL,kBAgDgCR,EAAgC,sBAGjFmE,EAASzC,WACT2C,GAAY1D,EAAcH,EAAO,UAAW2D,EAASmB,eAGzDjB,IACAV,EAAwB,WAAInD,GAuEpB+E,CAAkBzC,EAAMa,GACpBL,GACI5D,EAASoD,EAAKjB,gBAAgB2D,OAAS,IACvC7B,EAAwB,WAAIA,EAAwB,YAAK,GACzDA,EAAwB,WAAE9B,eAAiBiB,EAAKjB,gBAGpD0B,EAAa,CACb,IAAIkC,EAAWlC,IACf,GAAIkC,EAAU,CAEV,IAAIC,EAAqBD,EAASC,mBAUlC,GATIA,IACA/B,EAAW+B,mBAAuDA,GAElED,EAASE,WACLjG,EAAS+F,EAASE,WAAWH,OAAS,IACtC7B,EAAwB,WAAIA,EAAwB,YAAK,GACzDA,EAAwB,WAAEiC,gBAAkBH,EAASE,WAGzD7C,EAAKR,QAAU,IAAK,CACpB,IAAIuD,EAAeJ,EAAS3B,KAC5BH,EAAwB,WAAIA,EAAwB,YAAK,GACpC,KAAjBkC,GAAwC,SAAjBA,IACvBlC,EAAwB,WAAiB,aAAI8B,EAAwB,aAAIA,EAASK,WAAa,MAAQL,EAAwB,aAAIA,EAASK,YAE3H,SAAjBD,IACAlC,EAAwB,WAAiB,aAAI8B,EAASA,SAAWA,EAASK,WAAa,MAAQC,KAAKC,UAAUP,EAASA,UAAYA,EAASK,cAK5J,OAAOnC,OCrPnB,EAA6B,WAC7B,SAASsC,EAAYC,EAASC,GACfpF,KACNqF,UAAYH,EAAYI,mBADlBtF,KAENuF,QAAUL,EAAYM,gBACvBL,GAAWD,EAAYO,eAAeN,GAH/BnF,KAIFmF,QAAUA,EAJRnF,KAOFmF,QAAUtF,EAAA,EAAK6F,gBAEpBN,GAAUF,EAAYS,cAAcP,GAT7BpF,KAUFoF,OAASA,EAVPpF,KAaFoF,OAASvF,EAAA,EAAK6F,gBAAgBE,OAAO,EAAG,IAerD,OAZAV,EAAYO,eAAiB,SAAU5C,GACnC,OAAOA,EAAGgD,MAAM,mBAA4B,qCAAPhD,GAEzCqC,EAAYS,cAAgB,SAAU9C,GAClC,OAAOA,EAAGgD,MAAM,mBAA4B,qBAAPhD,GAEzCqC,EAAYY,UAAUC,SAAW,WAE7B,OADW/F,KACCuF,QAAU,IADXvF,KACsBmF,QAAU,IADhCnF,KAC2CoF,OAAS,IADpDpF,KAC+DqF,WAE9EH,EAAYI,mBAAqB,KACjCJ,EAAYM,gBAAkB,KACvBN,EA9BqB,GCa5Bc,EAAqBpH,EAAA,EAAUqH,kBAC/B,EAAcrH,EAAA,EAAUG,WACxB,EAAWH,EAAA,EAAUC,QAErBqH,EAAa,EAqDjB,SAASC,EAAiCC,GACtC,IAAIhH,EAAS,GACb,IACS4G,EAAmBI,IACnBJ,EAAmBI,EAAe,WAClCJ,EAAmBI,EAAe,SAAEhF,cACrChC,GAAU,UAAYgH,EAAe,SAAEhF,WAAa,MAG5D,MAAOiF,IACP,OAAOjH,EAGX,SAASkH,EAAuBC,EAAqBC,EAAOC,EAASC,EAAYC,GAC7EJ,EAA8B,UAAoB,cAAE,IAAgBK,SAAUJ,EAAOC,EAASC,EAAYC,GAG9G,SAASE,EAAsBN,EAAqBC,EAAOC,EAASC,EAAYC,GAC5EJ,EAA8B,UAAoB,cAAE,IAAgBO,QAASN,EAAOC,EAASC,EAAYC,GAG7G,SAASI,EAAyBR,EAAqBS,EAAiBP,GAEpE,OAAO,SAAUQ,GACbX,EAAuBC,EAAqBS,EAAiBP,EAAS,CAClES,uBAAwBf,EAAiCc,EAAKE,MAC9DC,UAAWvH,EAAA,EAAKwH,KAAKJ,EAAKK,QAItC,SAASC,EAAS5H,EAAOkG,GACrB,OAAIlG,GAASkG,EACFlG,EAAM6H,QAAQ3B,IAEjB,EAEZ,IAAI,EAA6B,SAAU4B,GAEvC,SAASC,IACL,IAAIC,EAAQF,EAAOG,KAAK5H,OAASA,KACjC2H,EAAME,WAAaH,EAAYG,WAC/BF,EAAMG,SAAW,IACjB,IAQIC,EACAC,EACAC,EACAC,EAVAC,EAAW,cACXC,GAAoB,EACpBC,GAAkB,EAClBC,EAAqBH,GAAYA,EAASI,MAAQJ,EAASI,KAAKC,cAChEC,EAAUf,EAAYgB,iBACtBC,GAA+B,EAC/BC,EAAqB,EAKrBC,GAA0B,EAC1BC,EAAuB,EACvBC,GAAgC,EAChCC,EAAS,GACTC,EAAgB,GAsmBpB,OArmBA,YAAavB,EAAaC,GAAO,SAAUuB,EAAOC,GAwN9C,SAASC,EAAWtG,EAAQuG,EAAUC,GAClCN,EAAOO,KAAK,YAAgBzG,EAAQuG,EAAUC,IAyDlD,SAASE,EAAmBpD,EAAKqD,EAASC,GACtC,IAAIC,GAAa,EACbC,IAAYhL,EAAA,EAAU4E,SAASiG,GAAuCA,GAA3BA,GAAW,IAAII,KAAO,KAAiB,IAAIrB,cACtFtE,EAAMqD,EAASqC,EAAQ,KACvBE,EAAOvC,EAASqC,EAAQ,KA8B5B,QA7Ba,IAAT1F,IAAyB,IAAV4F,GAAeA,EAAO5F,KACrCA,EAAM4F,IAEG,IAAT5F,IAEA0F,EAASA,EAAOG,UAAU,EAAG7F,IAG5B8B,EAAmBI,GAIdJ,EAAmByD,KAEzBE,EAAiC,iBAAZF,IAAyD,IAAlCA,EAAQ,QAC/CC,IAAsC,IAA/BA,EAAK,MALjBC,GAA2C,IAA9BvD,EAAI,OAAmE,IAAjCwD,EAAO,KAO1DD,EAEKV,EAAcW,KACfX,EAAcW,GAAU,GAKxBX,EAAcW,KACdD,GAAa,GAGdA,EAKX,SAASK,EAAwB5D,EAAK6D,GAClC,IAAIC,GAAiB,EACjBC,EAAc9B,EAKlB,OAJKrC,EAAmBI,KACpB8D,GAA+C,IAA9BD,IAAuCjE,EAAmBI,EAAe,WAGvF+D,GAEAD,EAiCX,SAASE,EAAiBhE,GACtB,IACI,IAAItB,EAAesB,EAAItB,aACvB,GAAqB,KAAjBA,GAAwC,SAAjBA,EAEvB,OAAOsB,EAAIiE,aAGnB,MAAOhE,IAGP,OAAO,KAkEX,SAASiE,EAA2BlE,GAChC,IACI,IAAImE,EAAwBnE,EAAIoE,wBAChC,GAA8B,OAA1BD,EAEA,IAAe,IADHhD,EAASgD,EAAsB/B,cAAe,IAAeiC,+BACvD,CACd,IAAIC,EAAiBtE,EAAIuE,kBAAkB,IAAeC,sBAC1D,OAAO,IAAoBC,sBAAsBH,IAI7D,MAAOrE,GACHQ,EAAsBqC,EAAO,IAAmB4B,sCAAuC,gHAAiH,CACpM5D,uBAAwBf,EAAiCC,GACzDgB,UAAWvH,EAAA,EAAKwH,KAAKhB,MAIjC,SAAS0E,EAAchI,EAAMK,GACzB,GAAIA,EAAShC,YAAc8G,GAAeW,EAAyB,CAC/D,IAAImC,EAAgB,cACpB,GAAIA,GAAiBpM,EAAA,EAAUqM,WAAWD,EAAcE,MAAO,CAC3DhF,IACA,IAAIiF,EAASjD,EAAcnF,EAAO,IAAMmD,EACxC8E,EAAcE,KAAKC,GACnB,IAAIC,EAAUJ,EAAcK,iBAAiBF,GACzCC,GAA8B,IAAnBA,EAAQ3G,SACnBrB,EAASzC,SAAWyK,EAAQ,MAK5C,SAASE,EAAuBC,EAAenI,EAAUoI,EAAeC,GACpE,IAAI9K,EAAWyC,EAASzC,SACpB+K,EAAc,cACdC,EAAclD,EAAQmD,0BACtBC,EAAapD,EAAQqD,oBACrB1K,EAAagC,EAAShC,WACtB2K,EAAU,GACd,SAAUC,IACN,IACI,GAAIN,GAAe/K,EAAU,CACzBoL,IAGA,IAFA,IAAI1I,EAAa,KACb+H,EAAUM,EAAYO,aACjBC,EAAKd,EAAQ3G,OAAS,EAAGyH,GAAM,EAAGA,IAAM,CAC7C,IAAIC,EAAQf,EAAQc,GACpB,GAAIC,EAAO,CACP,GAAwB,aAApBA,EAAMC,UACFD,EAAMZ,gBAAkBA,IACe,IAAtChE,EAAS4E,EAAMzM,KAAM0B,KAA4D,IAAtCmG,EAASnG,EAAY+K,EAAMzM,QACvE2D,EAAa8I,QAGhB,GAAwB,SAApBA,EAAMC,WAAwBD,EAAMzM,OAASiB,EAASjB,KAAM,CAEjE0D,EAASC,WAAaA,EACtB,MAEJ,GAAI8I,EAAME,UAAY1L,EAAS0L,UAAY,IAEvC,SAKX1L,GACDyC,EAASC,YACT0I,GAAWJ,IACQ,IAAnBvI,EAASkJ,OACL3L,GAAY/B,EAAA,EAAUqM,WAAWS,EAAYa,aAE7Cb,EAAYa,WAAW5L,EAASjB,MAEpC0D,EAASmB,aAAewH,EAExBP,KAMAgB,WAAWR,EAAsBH,GAGzC,MAAOxF,GACHoF,EAAYpF,IA/CpB,GAiFJ,SAASoG,EAAkCC,GACvC,IAAItN,EAAS,GACb,IACS4G,EAAmB0G,KAEhBtN,GADmB,iBAAZ,EACG,UAAYsN,EAAQ,KAGpB,UAAYA,EAAM7C,IAAM,MAI9C,MAAOxD,GACHC,EAAuB4C,EAAO,IAAmByD,sBAAuB,kDAAmD,CAAEvF,UAAWvH,EAAA,EAAKwH,KAAKhB,KAEtJ,OAAOjH,EAEX,SAASwN,EAAoBC,EAAatL,EAAQmL,EAAOtJ,EAAUZ,EAAakE,GAI5E,SAASoG,EAAkBtG,EAAOH,EAAG0G,GACjC,IAAIC,EAAaD,GAAe,GAChCC,EAAoC,wBAAIP,EAAkCC,GACtErG,IACA2G,EAAsB,UAAInN,EAAA,EAAKwH,KAAKhB,IAExCQ,EAAsBqC,EAAO1C,EAAO,yGAA0GwG,GAT7I5J,IAWLA,EAAS1B,qBAAuB,IAAcuL,MAC9C7J,EAAS7B,OAASA,EAClB+J,EAAuB,QAASlI,GAAU,WACtC,IAAIR,EAAaQ,EAASf,gBAAgB,QAASsG,EAA8BnG,GAC7EI,EACAsG,EAAoC,4BAAEtG,GAGtCkK,EAAkB,IAAmBI,qBAAsB,KAAM,CAC7D1L,gBAAiB4B,EAAS5B,gBAC1BE,qBAAsB0B,EAAS1B,0BAGxC,SAAU2E,GACTyG,EAAkB,IAAmBhC,sCAAuCzE,EAAG,UAGvF,SAAS8G,EAA4BzI,GACjC,GAAIA,GAAYA,EAAS0I,QACrB,IACI,IAAI1C,EAAiBhG,EAAS0I,QAAQC,IAAI,IAAezC,sBACzD,OAAO,IAAoBC,sBAAsBH,GAErD,MAAOrE,GACHQ,EAAsBqC,EAAO,IAAmB4B,sCAAuC,gHAAiH,CACpMwC,wBAAyBb,EAAkC/H,GAC3D0C,UAAWvH,EAAA,EAAKwH,KAAKhB,MA9lBrC6C,EAAMqE,WAAa,SAAUC,EAAQC,EAAMC,EAAYC,GACnD,IAAKzE,EAAM0E,gBAAiB,CACxBzE,EAAKoE,WAAWC,EAAQC,EAAMC,EAAYC,GAC1C,IAAIE,EAAQ3E,EAAM4E,aACdC,EAAkBrG,EAAYsG,mBAClC,EAAY,EAASD,IAAkB,SAAUE,GAC7CxF,EAAQwF,GAASJ,EAAMK,UAAUxG,EAAYG,WAAYoG,EAAOF,EAAgBE,OAEpF,IAAIE,EAAyB1F,EAAQ0F,uBAOrC,GANAxF,EAA+BF,EAAQlG,4BACvCsG,EAA0BJ,EAAQ2F,uBAClCtF,EAAuBL,EAAQ4F,oBAC/BtF,EAAgCN,EAAQ6F,6BACxCrG,EAAoBkG,IAA2B,IAAwBI,IAAMJ,IAA2B,IAAwBK,WAChIxG,EAAqBmG,IAA2B,IAAwBK,YAAcL,IAA2B,IAAwBM,IACrI5F,EAAyB,CACzB,IAAI6F,EAAOlB,EAAOmB,oBAAsB,QAEpCzG,EADAwG,EAAKjK,OAAS,EA3IhB,YA4IsCiK,EAAK3E,UAAU2E,EAAKjK,OAAS,GAAK,IA5IxE,YA+IsCiK,EAAO,IAOnD,IAJoC,IAAhCjG,EAAQmG,qBAxHhC,SAAiCrI,GAC7B,IAAInH,GAAS,EACb,UAAWyP,iBAAmB,MAAiB7I,EAAmB6I,gBAAiB,CAC/E,IAAIC,EAAQD,eAAe,KAC3BzP,IAAU4G,EAAmB8I,IACxB9I,EAAmB8I,EAAMC,OACzB/I,EAAmB8I,EAAME,OACzBhJ,EAAmB8I,EAAMG,QAGlC,IACI,MAAMC,OAEV,MAAOC,GACH/P,GAAS,EAEb,GAAIA,EAEA,KACc,IAAIyP,gBACC,SAAI,GAEnB,IAAIO,EAAUP,eAAe,KAAcE,KAC3CF,eAAe,KAAcE,KAAOK,EAExC,MAAO/I,GAEHjH,GAAS,EACTkH,EAAuBC,EAAqB,IAAmBoG,sBAAuB,yEAA0E,CAC5JvF,UAAWvH,EAAA,EAAKwH,KAAKhB,KAIjC,OAAOjH,EA0RSiQ,CAAwBnG,KAAWb,IAEnCe,EAAWyF,eAAgB,OAAQ,CAC/BS,IAAK,SAAUrI,EAAM3F,EAAQuI,EAAKyC,GAC9B,IAAIlG,EAAMa,EAAKE,KACX/D,EAAWgD,EAAe,SACzBoD,EAAmBpD,EAAKyD,KAAQG,EAAwB5D,GAAK,IAC5DhD,GAAaA,EAASvB,mBAAmB5B,UAiG/D,SAAsBmG,EAAK9E,EAAQuI,EAAKyC,GACpC,IAAI/L,EAAWwH,GAAYA,EAASwH,gBAAkBxH,EAASwH,eAAehP,SAAYV,EAAA,EAAK6F,gBAC3FlF,EAASX,EAAA,EAAK6F,gBAAgBE,OAAO,EAAG,IACxCxC,EAAW,IAAI,EAAW7C,EAASC,EAAQ0I,EAAgB,WAC/D9F,EAAS9B,OAASA,EAClB8B,EAAShC,WAAayI,EACtBzG,EAASvB,mBAAmB5B,UAAW,EACvCmD,EAAStC,eAAiB,GAC1BsC,EAASkJ,MAAQA,EACjBlG,EAAe,SAAIhD,EAGvB,SAAqCgD,GACjCA,EAAe,SAAEvE,mBAAmBxB,oBAAsB,IAAYmP,OAAOpJ,EAAK,oBAAoB,WAClG,IACQA,GAA0B,IAAnBA,EAAIqJ,YAAoBzF,EAAwB5D,IA6BvE,SAAyBA,GACrB,IAAIhD,EAAWgD,EAAe,SAG9B,SAASsJ,EAAgBrJ,EAAG0G,GACxB,IAAIC,EAAaD,GAAe,GAChCC,EAAmC,uBAAI7G,EAAiCC,GACpEC,IACA2G,EAAsB,UAAInN,EAAA,EAAKwH,KAAKhB,IAExCQ,EAAsBqC,EAAO,IAAmBgE,qBAAsB,uGAAwGF,GARlL5J,EAAS1B,qBAAuB,IAAcuL,MAC9C7J,EAAS7B,OAAS6E,EAAI7E,OAStB+J,EAAuB,iBAAkBlI,GAAU,WAC/C,IACI,IAAIR,EAAaQ,EAASf,gBAAgB,OAAQsG,GAA8B,WAC5E,IAAIgH,EAAe,CACf5K,WAAYqB,EAAIrB,WAChBH,UAAW,KACXD,mBAAoB2F,EAA2BlE,GAC/CrD,KAAMqD,EAAItB,aACVuF,aAAcD,EAAiBhE,GAC/B1B,SAAU0B,EAAI1B,UAElB,GAAIqE,EAA+B,CAC/B,IAAIqE,EAAUhH,EAAIoE,wBAClB,GAAI4C,EAAS,CAGT,IAAIwC,EAAMxC,EAAQ8B,OAAOW,MAAM,WAC3BC,EAAsB,GAC1B,EAAYF,GAAK,SAAUG,GACvB,IAAIC,EAAQD,EAAKF,MAAM,MACnBI,EAASD,EAAME,QACfvQ,EAAQqQ,EAAMG,KAAK,MACvBL,EAAoBG,GAAUtQ,KAElCgQ,EAAa/K,UAAYkL,GAGjC,OAAOH,KAEP/M,EACAsG,EAAoC,4BAAEtG,GAGtC8M,EAAgB,KAAM,CAClBlO,gBAAiB4B,EAAS5B,gBAC1BE,qBAAsB0B,EAAS1B,uBAI3C,QAEI,IACI0E,EAAe,SAAI,KAEvB,MAAOC,SAIZ,SAAUA,GACTqJ,EAAgBrJ,EAAG,SAzFX+J,CAAgBhK,GAGxB,MAAOC,GACH,IAAIgK,EAAgBxQ,EAAA,EAAKwH,KAAKhB,GAEzBgK,IAAwE,IAAvD9I,EAAS8I,EAAc7H,cAAe,aACxDlC,EAAuB4C,EAAO,IAAmBoH,qBAAsB,0HAA2H,CAC9LpJ,uBAAwBf,EAAiCC,GACzDgB,UAAWiJ,QAf3BE,CAA4BnK,GA1GZoK,CAAapK,EAAK9E,EAAQuI,EAAKyC,IAGvCmE,MAAO1J,EAAyBmC,EAAO,IAAmByD,sBAAuB,iGAGrFvD,EAAWyF,eAAgB,OAAQ,CAC/BS,IAAK,SAAUrI,EAAMyJ,GACjB,IAAItK,EAAMa,EAAKE,KACX/D,EAAWgD,EAAe,SAC1B4D,EAAwB5D,KAAShD,EAASvB,mBAAmB1B,WAC7D4K,EAAc,MAAO3H,GACrBA,EAAS5B,gBAAkB,IAAcyL,MACzC7G,EAAM8C,EAAMyH,0BAA0BvN,OAAUwN,OAAWA,EAAWxK,GACtEhD,EAASvB,mBAAmB1B,UAAW,IAG/CsQ,MAAO1J,EAAyBmC,EAAO,IAAmB2H,sBAAuB,4FAGrFzH,EAAWyF,eAAgB,QAAS,CAChCS,IAAK,SAAUrI,GACX,IAAIb,EAAMa,EAAKE,KACX/D,EAAWgD,EAAe,SAC1B4D,EAAwB5D,KAAShD,EAASvB,mBAAmBzB,YAC7DgD,EAASlC,QAAU,EACnBkC,EAASvB,mBAAmBzB,WAAY,IAGhDqQ,MAAO1J,EAAyBmC,EAAO,IAAmB4H,uBAAwB,kGAGlFnI,GACAS,EAAWyF,eAAgB,mBAAoB,CAC3CS,IAAK,SAAUrI,EAAMgJ,EAAQtQ,GACzB,IAAIyG,EAAMa,EAAKE,KACX6C,EAAwB5D,KACxBA,EAAe,SAAEtF,eAAemP,GAAUtQ,IAGlD8Q,MAAO1J,EAAyBmC,EAAO,IAAmB6H,kCAAmC,6GAGrG1I,GAAkB,GApI1B,WACI,IAAI2I,GAzPZC,EAAU,eACTA,GACDjL,EAAmBiL,EAAQC,UAC3BlL,EAAmBiL,EAAQC,QAAQ,OACnClL,EAAmBiL,EAAgB,OAC5B,KAEJA,EAAgB,OAR3B,IACQA,EA0PQ,IAAKD,EACD,OAEJ,IAAIG,EAAS,cACTC,EAAaJ,EAAMK,UACc,IAAjC5I,EAAQ6I,sBACRtI,EAAOO,KAAK,YAAe4H,EAxQhC,QAwQkD,CAEzC7B,IAAK,SAAUzC,EAAaH,EAAOhD,GAC/B,IAAI6H,EACJ,GAAInJ,IACCoB,EAAmB,KAAMkD,EAAOhD,MAE/B0H,IAAc/I,GAAkB,CAClC,IAAImJ,EAAM3E,EAAY2E,MACtBD,EA8WpB,SAA4B7E,EAAOhD,GAC/B,IAAInJ,EAAWwH,GAAYA,EAASwH,gBAAkBxH,EAASwH,eAAehP,SAAYV,EAAA,EAAK6F,gBAC3FlF,EAASX,EAAA,EAAK6F,gBAAgBE,OAAO,EAAG,IACxCxC,EAAW,IAAI,EAAW7C,EAASC,EAAQ0I,EAAgB,WAC/D9F,EAAS5B,gBAAkB,IAAcyL,MACrCP,aAAiBwE,QACjB9N,EAAShC,WAAasL,EAAQA,EAAM7C,IAAM,GAG1CzG,EAAShC,WAAasL,EAE1B,IAAIpL,EAAS,MACToI,GAAQA,EAAKpI,OACbA,EAASoI,EAAKpI,OAEToL,GAASA,aAAiBwE,UAC/B5P,EAASoL,EAAMpL,QAEnB8B,EAAS9B,OAASA,EAClB,IAAIR,EAAiB,GACrB,GAAI6H,EAA8B,CAChB,IAAI8I,SAAS/H,EAAOA,EAAK0D,QAAU,IAAOV,aAAiBwE,SAAWxE,EAAMU,SAAiB,IACnGsE,SAAQ,SAAU/R,EAAOyE,GAC7BtD,EAAesD,GAAOzE,KAK9B,OAFAyD,EAAStC,eAAiBA,EAC1BiK,EAAc,QAAS3H,GAChBA,EA1YqBuO,CAAmBjF,EAAOhD,GACtC,IAAIkI,EAAU1I,EAAMyH,0BAA0BY,EAAW7E,EAAOhD,GAC5DkI,IAAYlI,GACZmD,EAAYgF,IAAI,EAAGD,GAEvBJ,EAAIM,KAAOP,IAGnBQ,IAAK,SAAUlF,EAAaH,GACxB,IAAI6E,EAAY1E,EAAY2E,MAAMM,KAC9BP,IAEA1E,EAAYmF,KAAOnF,EAAYmF,KAAKC,MAAK,SAAUvN,GAgB/C,OAfAkI,EAAoBC,GAAcnI,GAAY,IAAInD,OAAQmD,EAAU6M,GAAW,WAC3E,IAAI5B,EAAe,CACf5K,WAAYL,EAASK,WACrBH,UAAW,KACXD,mBAAoBwI,EAA4BzI,IAEpD,GAAIqE,EAA+B,CAC/B,IAAImJ,EAAsB,GAC1BxN,EAAS0I,QAAQsE,SAAQ,SAAU/R,EAAOD,GACtCwS,EAAoBxS,GAAQC,KAEhCgQ,EAAa/K,UAAYsN,EAE7B,OAAOvC,KAEJjL,KACD,OAAE,SAAUyN,GAElB,MADAvF,EAAoBC,EAAa,EAAGH,EAAO6E,EAAW,KAAM,CAAEa,MAAOD,EAAO1L,UACtE0L,OAKlB1B,MAAO1J,EAAyBmC,EAAO,IAAmByD,sBAAuB,4FAErFvE,GAAoB,GAEfgJ,GAOLpI,EAAOO,KAAK,YAAe4H,EAhUhC,QAgUkD,CACzC7B,IAAK,SAAUzC,EAAaH,EAAOhD,GAE/BF,EAAmB,KAAMkD,EAAOhD,OAIxC0H,IAGAD,EAAe,MAAEE,SAAWD,GAzL5BiB,GACI3E,EAAWjJ,OAAS,GAAKiJ,EAAY,CAErC,IADA,IAAI4E,OAAU,EAAQC,EAAQ,GACtBD,GAAWC,EAAQ7E,EAAWjJ,QAC9BiJ,EAAW6E,IAAU7E,EAAW6E,GAAO1K,aAAe,+BACtDyK,EAAU5E,EAAW6E,IAEzBA,IAEAD,IACAvK,EAAWuK,EAAQ5B,YAKnCxH,EAAMsJ,SAAW,WAEb,EAAYxJ,GAAQ,SAAUyJ,GAC1BA,EAAGC,QAEP1J,EAAS,GACTZ,GAAoB,EACpBC,GAAkB,EAClBa,EAAMyJ,gBAAe,IAEzBzJ,EAAM0J,oBAAsB,SAAUhQ,EAAY8D,GAC9CwC,EAAoC,4BAAEtG,EAAY8D,IAEtDwC,EAAMyH,0BAA4B,SAAUvN,EAAUsJ,EAAOhD,EAAMtD,GAE/D,IAAIyM,EAAoB3J,EAA0B,oBAAKZ,EACvD,GAAIoE,EAAO,CACP,GAAI,IAAoBoG,4BAA4BrK,EAASrF,EAASpB,iBAAkB6Q,GAAoB,CAQxG,GAPKnJ,IACDA,EAAO,IAKXA,EAAK0D,QAAU,IAAIqE,QAAQ/H,EAAK0D,SAAYV,aAAiBwE,SAAWxE,EAAMU,SAAiB,IAC3FnF,EAAmB,CACnB,IAAIpF,EAAK,IAAMO,EAAS7C,QAAU,IAAM6C,EAAS5C,OACjDkJ,EAAK0D,QAAQyE,IAAI,IAAekB,gBAAiBlQ,GAC7C8F,IACAvF,EAAStC,eAAe,IAAeiS,iBAAmBlQ,GAUlE,IAPImQ,EAAQvK,EAAQuK,OAAUjL,GAAYA,EAASiL,WAE/CtJ,EAAK0D,QAAQyE,IAAI,IAAejH,qBAAsB,IAAeqI,0BAA4BD,GAC7FrK,IACAvF,EAAStC,eAAe,IAAe8J,sBAAwB,IAAeqI,0BAA4BD,IAG9GhL,EAAoB,CACpB,IAAIkL,EAAc,IAAI,EAAY9P,EAAS7C,QAAS6C,EAAS5C,QAC7DkJ,EAAK0D,QAAQyE,IAAI,IAAesB,kBAAmBD,EAAYnN,YAC3D4C,IACAvF,EAAStC,eAAe,IAAeqS,mBAAqBD,EAAYnN,aAIpF,OAAO2D,EAEN,GAAItD,EAAK,CACV,GAAI,IAAoB0M,4BAA4BrK,EAASrF,EAASpB,iBAAkB6Q,GAAoB,CACxG,GAAI5K,EAAmB,CACfpF,EAAK,IAAMO,EAAS7C,QAAU,IAAM6C,EAAS5C,OACjD4F,EAAIgN,iBAAiB,IAAeL,gBAAiBlQ,GACjD8F,IACAvF,EAAStC,eAAe,IAAeiS,iBAAmBlQ,GAGlE,IAAImQ,EAOJ,IAPIA,EAAQvK,EAAQuK,OAAUjL,GAAYA,EAASiL,WAE/C5M,EAAIgN,iBAAiB,IAAexI,qBAAsB,IAAeqI,0BAA4BD,GACjGrK,IACAvF,EAAStC,eAAe,IAAe8J,sBAAwB,IAAeqI,0BAA4BD,IAG9GhL,EAAoB,CAChBkL,EAAc,IAAI,EAAY9P,EAAS7C,QAAS6C,EAAS5C,QAC7D4F,EAAIgN,iBAAiB,IAAeD,kBAAmBD,EAAYnN,YAC/D4C,IACAvF,EAAStC,eAAe,IAAeqS,mBAAqBD,EAAYnN,aAIpF,OAAOK,IAIf8C,EAAoC,4BAAI,SAAUtG,EAAY8D,EAAY2M,GACtE,IAA8B,IAA1BvK,GAA+BF,EAAqBE,EAAsB,CAIrEL,EAAQ0F,yBAA2B,IAAwBM,KACzDhG,EAAQ0F,yBAA2B,IAAwBK,YAClC,iBAAlB5L,EAAWC,IAA+D,MAA5CD,EAAWC,GAAGD,EAAWC,GAAG4B,OAAS,KAC7E7B,EAAWC,IAAM,KAErB,IAAIyQ,EAAOC,EAAA,EAAqBC,OAAO5Q,EAAY6Q,EAAA,EAAqBC,SAAUD,EAAA,EAAqBE,aAAczK,EAAgB,UAAKxC,EAAY2M,GACtJnK,EAAMuE,KAAKmG,MAAMN,QAEZ1K,IAAuBE,GAC5BxC,EAAuB4C,EAAO,IAAmB2K,qBAAsB,2LAA2L,KAEpQjL,MA6dHjB,EA2CX,OAtqBA,IAAkBD,EAAaD,GA6nB/BC,EAAYsG,iBAAmB,WAuB3B,MAtBa,CACTK,oBAAqB,IACrBO,qBAAqB,EACrB0C,sBAAsB,EACtBwC,2BAA2B,EAC3B3F,uBAAwB,IAAwBI,GAChDwF,iCAAkC,CAC9B,0BACA,+BACA,0BACA,iCAEJC,8BAA0BpD,EAC1BoC,WAAOpC,EACPqD,uBAAuB,EACvB1R,6BAA6B,EAC7B+L,8BAA8B,EAC9B4F,2BAA2B,EAC3B9F,wBAAwB,EACxBxC,0BAA2B,EAC3BE,oBAAqB,KAI7BpE,EAAYgB,eAAiB,WACzB,IAAIyL,EAAcnU,KAAKgO,mBAIvB,OAHA,EAAY,EAASmG,IAAc,SAAUxU,GACzCwU,EAAYxU,QAASiR,KAElBuD,GAIXzM,EAAY5B,UAAUsO,iBAAmB,SAAUd,EAAMe,GACrDrU,KAAKsU,YAAYhB,EAAMe,IAK3B3M,EAAYG,WAAa,uBAClBH,EAvqBqB,CAwqB9B6M,EAAA","file":"npm.microsoft+applicationinsights-dependencies-js@2.5.4.4aa7e7001105b622db29.js","sourcesContent":["/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.5.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DataSanitizer, UrlHelper, DateTimeUtils, Util } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, normalizeJsName } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\nvar _objKeys = CoreUtils.objKeys;\r\nvar _arrForEach = CoreUtils.arrForEach;\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 = DateTimeUtils.GetDuration(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, Util.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.perfTiming;\r\n var props = dependency[strProperties] || {};\r\n var propsSet = 0;\r\n var _isString = CoreUtils.isString;\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 strDuration = \"duration\";\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[strDuration];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, strDuration, 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 _arrForEach(_objKeys(value), function (key) {\r\n var val = value[key];\r\n if (key !== strName && _isString(val) || CoreUtils.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.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[strProperties] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self.stateChangeAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\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.perfMark = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self.requestHeaders = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self.ajaxTotalDuration = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self.requestUrl = null;\r\n self.requestSize = 0;\r\n self.method = null;\r\n self.status = null;\r\n self.requestSentTime = null;\r\n self.responseStartedTime = null;\r\n self.responseFinishedTime = 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.traceID = traceID;\r\n self.spanID = spanID;\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self.requestUrl ? UrlHelper.getAbsoluteUrl(self.requestUrl) : null;\r\n };\r\n self.getPathName = function () {\r\n return self.requestUrl ? DataSanitizer.sanitizeUrl(_logger, UrlHelper.getCompleteUrl(self.method, self.requestUrl)) : null;\r\n };\r\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(DateTimeUtils.GetDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self.ajaxTotalDuration < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self.traceID + \".\" + self.spanID,\r\n target: self.getAbsoluteUrl(),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n duration: self.ajaxTotalDuration,\r\n success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n responseCode: (+(self.status)),\r\n method: self.method\r\n },\r\n _a[strProperties] = { HttpMethod: self.method },\r\n _a);\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (_objKeys(self.requestHeaders).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].requestHeaders = self.requestHeaders;\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.correlationContext;\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response.headerMap) {\r\n if (_objKeys(response.headerMap).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].responseHeaders = response.headerMap;\r\n }\r\n }\r\n if (self.status >= 400) {\r\n var responseType = response.type;\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n }\r\n if (responseType === \"json\") {\r\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n var _a;\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 return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n;\r\n//# sourceMappingURL=ajaxRecord.js.map","/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.5.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { Util } from '@microsoft/applicationinsights-common';\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n var self = this;\r\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n self.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n self.traceId = traceId;\r\n }\r\n else {\r\n self.traceId = Util.generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n self.spanId = spanId;\r\n }\r\n else {\r\n self.spanId = Util.generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n var self = this;\r\n return self.version + \"-\" + self.traceId + \"-\" + self.spanId + \"-\" + self.traceFlag;\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.5.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport * as tslib_1 from \"tslib\";\r\nimport { RequestHeaders, Util, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, DateTimeUtils, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strUndefined, strPrototype, InstrumentFunc, InstrumentProto, getPerformance } from '@microsoft/applicationinsights-core-js';\r\nimport { ajaxRecord } from './ajaxRecord';\r\nimport { EventHelper } from './ajaxUtils';\r\nimport { Traceparent } from './TraceParent';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\nvar _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\nvar _arrForEach = CoreUtils.arrForEach;\r\nvar _objKeys = CoreUtils.objKeys;\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[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\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) {\r\n var result = false;\r\n if (typeof XMLHttpRequest !== strUndefined && !_isNullOrUndefined(XMLHttpRequest)) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !_isNullOrUndefined(proto) &&\r\n !_isNullOrUndefined(proto.open) &&\r\n !_isNullOrUndefined(proto.send) &&\r\n !_isNullOrUndefined(proto.abort);\r\n }\r\n // disable in IE8 or older (https://www.w3schools.com/jsref/jsref_trim_string.asp)\r\n try {\r\n \" a \".trim();\r\n }\r\n catch (ex) {\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 xhr[strAjaxData] = {};\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, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (!_isNullOrUndefined(xhr) &&\r\n !_isNullOrUndefined(xhr[strAjaxData]) &&\r\n !_isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) { }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.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 (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n exception: Util.dump(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n tslib_1.__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 strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n var location = getLocation();\r\n var _fetchInitialized = false; // fetch monitoring initialized\r\n var _xhrInitialized = false; // XHR monitoring initialized\r\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n var _config = AjaxMonitor.getEmptyConfig();\r\n var _enableRequestHeaderTracking = false;\r\n var _trackAjaxAttempts = 0;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking = false;\r\n var _maxAjaxCallsPerView = 0;\r\n var _enableResponseHeaderTracking = false;\r\n var _hooks = [];\r\n var _disabledUrls = {};\r\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var ctx_1 = _self._getTelCtx();\r\n var defaultConfig_1 = AjaxMonitor.getDefaultConfig();\r\n _arrForEach(_objKeys(defaultConfig_1), function (field) {\r\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, defaultConfig_1[field]);\r\n });\r\n var distributedTracingMode = _config.distributedTracingMode;\r\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey.length > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n if (_config.disableAjaxTracking === false) {\r\n _instrumentXhr();\r\n }\r\n _instrumentFetch();\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n _self.teardown = function () {\r\n // Remove all instrumentation hooks\r\n _arrForEach(_hooks, function (fn) {\r\n fn.rm();\r\n });\r\n _hooks = [];\r\n _fetchInitialized = false;\r\n _xhrInitialized = false;\r\n _self.setInitialized(false);\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _self[strTrackDependencyDataInternal](dependency, properties);\r\n };\r\n _self.includeCorrelationHeaders = 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 if (input) {\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), 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 init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return init;\r\n }\r\n else if (xhr) {\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[strTrackDependencyDataInternal] = 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 ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self.core.track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, _InternalMessageId.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 // 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 if (_config.disableFetchTracking === false) {\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (_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.includeCorrelationHeaders(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 var fetchData = callDetails.ctx().data;\r\n if (fetchData) {\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 || {}).status, response, fetchData, function () {\r\n var ajaxResponse = {\r\n statusText: response.statusText,\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n responseHeaderMap_1[name] = value;\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, fetchData, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\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 \"poyyfill\" 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 _hooks.push(InstrumentFunc(global, strFetch, {\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 }\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[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n req: function (args, method, url, async) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true) &&\r\n (!ajaxData || !ajaxData.xhrMonitoringState.openDone)) {\r\n _openHandler(xhr, method, url, async);\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n req: function (args, context) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n xhr = _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n req: function (args) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument setRequestHeader\r\n if (_enableRequestHeaderTracking) {\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n req: function (args, header, value) {\r\n var xhr = args.inst;\r\n if (_isMonitoredXhrInstance(xhr)) {\r\n xhr[strAjaxData].requestHeaders[header] = value;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n }\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!CoreUtils.isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\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)) {\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 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 particalar 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, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!_isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !_isNullOrUndefined(xhr[strAjaxData]);\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 _openHandler(xhr, method, url, async) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n ajaxData.async = async;\r\n xhr[strAjaxData] = ajaxData;\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = EventHelper.Attach(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = Util.dump(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n });\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.responseText;\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happend 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 = xhr[strAjaxData];\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.status = xhr.status;\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = Util.dump(e);\r\n }\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr.statusText,\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr.response\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\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 = headers.trim().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 responseHeaderMap_2[header] = value;\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n if (dependency) {\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\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 try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && CoreUtils.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.length === 1) {\r\n ajaxData.perfMark = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData.perfMark;\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config.ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData.requestUrl;\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.length - 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.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n // We hit the start event\r\n ajaxData.perfTiming = perfTiming;\r\n break;\r\n }\r\n if (entry.startTime < perfMark.startTime - 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.perfTiming || // - we have not found the perf entry or \r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) {\r\n if (perfMark && CoreUtils.isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark.name);\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 setTimeout(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 traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init.method) {\r\n method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input.method;\r\n }\r\n ajaxData.method = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n requestHeaders[key] = value;\r\n });\r\n }\r\n ajaxData.requestHeaders = requestHeaders;\r\n _createMarkId(\"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: '\" + input + \"')\";\r\n }\r\n else {\r\n result += \"(url: '\" + input.url + \"')\";\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: Util.dump(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, 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\"] = Util.dump(e);\r\n }\r\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n }\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.status = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n if (dependency) {\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response.headers) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI,\r\n correlationHeaderExcludedDomains: [\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\n correlationHeaderDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n var emptyConfig = this.getDefaultConfig();\r\n _arrForEach(_objKeys(emptyConfig), function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n// Removed Stub for AjaxMonitor.prototype.teardown.\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.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map"],"sourceRoot":""}