@microsoft/applicationinsights-dependencies-js 2.8.5-nightly.2206-04 → 2.8.5-nightly.2207-02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/applicationinsights-dependencies-js.integrity.json +9 -9
- package/browser/applicationinsights-dependencies-js.js +1124 -934
- package/browser/applicationinsights-dependencies-js.js.map +1 -1
- package/browser/applicationinsights-dependencies-js.min.js +2 -2
- package/browser/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.api.json +43 -5
- package/dist/applicationinsights-dependencies-js.api.md +6 -1
- package/dist/applicationinsights-dependencies-js.d.ts +9 -3
- package/dist/applicationinsights-dependencies-js.js +1124 -934
- package/dist/applicationinsights-dependencies-js.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.min.js +2 -2
- package/dist/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.rollup.d.ts +9 -3
- package/dist-esm/DependencyListener.js +1 -1
- package/dist-esm/InternalConstants.js +14 -0
- package/dist-esm/InternalConstants.js.map +1 -0
- package/dist-esm/__DynamicConstants.js +64 -0
- package/dist-esm/__DynamicConstants.js.map +1 -0
- package/dist-esm/ajax.js +201 -189
- package/dist-esm/ajax.js.map +1 -1
- package/dist-esm/ajaxRecord.js +54 -54
- package/dist-esm/ajaxRecord.js.map +1 -1
- package/dist-esm/ajaxUtils.js +3 -2
- package/dist-esm/ajaxUtils.js.map +1 -1
- package/dist-esm/applicationinsights-dependencies-js.js +2 -2
- package/dist-esm/applicationinsights-dependencies-js.js.map +1 -1
- package/package.json +7 -4
- package/src/InternalConstants.ts +13 -0
- package/src/__DynamicConstants.ts +62 -0
- package/src/ajax.ts +39 -32
- package/src/ajaxRecord.ts +25 -24
- package/src/ajaxUtils.ts +6 -6
- package/src/applicationinsights-dependencies-js.ts +1 -1
- package/types/InternalConstants.d.ts +2 -0
- package/types/__DynamicConstants.d.ts +50 -0
- package/types/ajax.d.ts +6 -4
- package/types/ajaxRecord.d.ts +2 -1
- package/types/applicationinsights-dependencies-js.d.ts +1 -1
- package/types/tsdoc-metadata.json +1 -1
package/dist-esm/ajax.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.5-nightly.
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.5-nightly.2207-02
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
import { __assignFn as __assign, __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
|
|
8
|
-
import { RequestHeaders, CorrelationIdHelper, createTelemetryItem, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, isInternalApplicationInsightsEndpoint, formatTraceParent, createTraceParent, createDistributedTraceContextFromTrace } from "@microsoft/applicationinsights-common";
|
|
9
|
-
import { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, BaseTelemetryPlugin, getLocation, getGlobal, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj, isXhrSupported, eventOn, mergeEvtNamespace, createUniqueNamespace, createProcessTelemetryContext, _throwInternal, getExceptionName } from "@microsoft/applicationinsights-core-js";
|
|
10
|
-
import { ajaxRecord } from "./ajaxRecord";
|
|
11
8
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
9
|
+
import { CorrelationIdHelper, DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from "@microsoft/applicationinsights-common";
|
|
10
|
+
import { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, deepFreeze, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, objForEachKey, strPrototype, strTrim } from "@microsoft/applicationinsights-core-js";
|
|
11
|
+
import { STR_PROPERTIES } from "./InternalConstants";
|
|
12
|
+
import { _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL15, _DYN_APP_ID, _DYN_CAN_INCLUDE_CORRELAT1, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI10, _DYN_DISTRIBUTED_TRACING_2, _DYN_ENABLE_AJAX_ERROR_ST4, _DYN_ENABLE_AJAX_PERF_TRA5, _DYN_ENABLE_REQUEST_HEADE3, _DYN_ENABLE_RESPONSE_HEAD7, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA13, _DYN_GET_CORRELATION_CONT14, _DYN_GET_DEFAULT_CONFIG, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_0, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V6, _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_TI12, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE11, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__CREATE_TRACK_ITEM } from "./__DynamicConstants";
|
|
13
|
+
import { ajaxRecord } from "./ajaxRecord";
|
|
12
14
|
var AJAX_MONITOR_PREFIX = "ai.ajxmn.";
|
|
13
15
|
var strDiagLog = "diagLog";
|
|
14
16
|
var strAjaxData = "ajaxData";
|
|
@@ -70,8 +72,8 @@ function _getFailedAjaxDiagnosticsMessage(xhr) {
|
|
|
70
72
|
try {
|
|
71
73
|
if (!isNullOrUndefined(xhr) &&
|
|
72
74
|
!isNullOrUndefined(xhr[strAjaxData]) &&
|
|
73
|
-
!isNullOrUndefined(xhr[strAjaxData]
|
|
74
|
-
result += "(url: '" + xhr[strAjaxData]
|
|
75
|
+
!isNullOrUndefined(xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */])) {
|
|
76
|
+
result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */] + "')";
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
catch (e) {
|
|
@@ -92,7 +94,7 @@ function _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message)
|
|
|
92
94
|
// tslint:disable-next-line
|
|
93
95
|
return function (args) {
|
|
94
96
|
_throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {
|
|
95
|
-
ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args
|
|
97
|
+
ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST /* @min:%2einst */]),
|
|
96
98
|
exception: dumpObj(args.err)
|
|
97
99
|
});
|
|
98
100
|
};
|
|
@@ -104,17 +106,18 @@ function _indexOf(value, match) {
|
|
|
104
106
|
return -1;
|
|
105
107
|
}
|
|
106
108
|
function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
|
|
107
|
-
var
|
|
109
|
+
var _a;
|
|
110
|
+
var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];
|
|
108
111
|
if (initializersCount > 0) {
|
|
109
|
-
var details = {
|
|
110
|
-
core
|
|
111
|
-
xhr
|
|
112
|
-
input
|
|
113
|
-
init
|
|
114
|
-
traceId
|
|
115
|
-
spanId
|
|
116
|
-
traceFlags
|
|
117
|
-
|
|
112
|
+
var details = (_a = {},
|
|
113
|
+
_a[_DYN_CORE /* @min:core */] = core,
|
|
114
|
+
_a.xhr = xhr,
|
|
115
|
+
_a.input = input,
|
|
116
|
+
_a.init = init,
|
|
117
|
+
_a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],
|
|
118
|
+
_a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],
|
|
119
|
+
_a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],
|
|
120
|
+
_a);
|
|
118
121
|
for (var i = 0; i < initializersCount; ++i) {
|
|
119
122
|
var dependencyListener = listeners[i];
|
|
120
123
|
if (dependencyListener && dependencyListener.fn) {
|
|
@@ -122,16 +125,22 @@ function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init
|
|
|
122
125
|
dependencyListener.fn.call(null, details);
|
|
123
126
|
}
|
|
124
127
|
catch (e) {
|
|
125
|
-
var core_1 = details
|
|
128
|
+
var core_1 = details[_DYN_CORE /* @min:%2ecore */];
|
|
126
129
|
_throwInternal(core_1 && core_1.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Dependency listener [#" + i + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
|
-
ajaxData
|
|
131
|
-
ajaxData
|
|
132
|
-
ajaxData
|
|
133
|
+
ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details.traceId;
|
|
134
|
+
ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details.spanId;
|
|
135
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
133
136
|
}
|
|
134
137
|
}
|
|
138
|
+
export var DfltAjaxCorrelationHeaderExDomains = deepFreeze([
|
|
139
|
+
"*.blob.core.windows.net",
|
|
140
|
+
"*.blob.core.chinacloudapi.cn",
|
|
141
|
+
"*.blob.core.cloudapi.de",
|
|
142
|
+
"*.blob.core.usgovcloudapi.net"
|
|
143
|
+
]);
|
|
135
144
|
var AjaxMonitor = /** @class */ (function (_super) {
|
|
136
145
|
__extends(AjaxMonitor, _super);
|
|
137
146
|
function AjaxMonitor() {
|
|
@@ -179,72 +188,73 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
179
188
|
_self.trackDependencyData = function (dependency, properties) {
|
|
180
189
|
_self[strTrackDependencyDataInternal](dependency, properties);
|
|
181
190
|
};
|
|
182
|
-
_self
|
|
191
|
+
_self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {
|
|
183
192
|
// Test Hook to allow the overriding of the location host
|
|
184
193
|
var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
|
|
185
|
-
_processDependencyListeners(_dependencyListeners, _self
|
|
194
|
+
_processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);
|
|
186
195
|
if (input) { // Fetch
|
|
187
|
-
if (CorrelationIdHelper
|
|
196
|
+
if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT1 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
188
197
|
if (!init) {
|
|
189
198
|
init = {};
|
|
190
199
|
}
|
|
191
200
|
// init headers override original request headers
|
|
192
201
|
// so, if they exist use only them, otherwise use request's because they should have been applied in the first place
|
|
193
202
|
// not using original request headers will result in them being lost
|
|
194
|
-
|
|
203
|
+
var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));
|
|
195
204
|
if (_isUsingAIHeaders) {
|
|
196
|
-
var id = "|" + ajaxData
|
|
197
|
-
|
|
205
|
+
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
206
|
+
headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
198
207
|
if (_enableRequestHeaderTracking) {
|
|
199
|
-
ajaxData
|
|
208
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;
|
|
200
209
|
}
|
|
201
210
|
}
|
|
202
|
-
var appId = _config
|
|
211
|
+
var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());
|
|
203
212
|
if (appId) {
|
|
204
|
-
|
|
213
|
+
headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);
|
|
205
214
|
if (_enableRequestHeaderTracking) {
|
|
206
|
-
ajaxData
|
|
215
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;
|
|
207
216
|
}
|
|
208
217
|
}
|
|
209
218
|
if (_isUsingW3CHeaders) {
|
|
210
|
-
var traceFlags = ajaxData
|
|
219
|
+
var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
211
220
|
if (isNullOrUndefined(traceFlags)) {
|
|
212
221
|
traceFlags = 0x01;
|
|
213
222
|
}
|
|
214
|
-
var traceParent = formatTraceParent(createTraceParent(ajaxData
|
|
215
|
-
|
|
223
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));
|
|
224
|
+
headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);
|
|
216
225
|
if (_enableRequestHeaderTracking) {
|
|
217
|
-
ajaxData
|
|
226
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;
|
|
218
227
|
}
|
|
219
228
|
}
|
|
229
|
+
init[_DYN_HEADERS /* @min:%2eheaders */] = headers;
|
|
220
230
|
}
|
|
221
231
|
return init;
|
|
222
232
|
}
|
|
223
233
|
else if (xhr) { // XHR
|
|
224
|
-
if (CorrelationIdHelper
|
|
234
|
+
if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT1 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
225
235
|
if (_isUsingAIHeaders) {
|
|
226
|
-
var id = "|" + ajaxData
|
|
227
|
-
xhr
|
|
236
|
+
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
237
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
228
238
|
if (_enableRequestHeaderTracking) {
|
|
229
|
-
ajaxData
|
|
239
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;
|
|
230
240
|
}
|
|
231
241
|
}
|
|
232
|
-
var appId = _config
|
|
242
|
+
var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());
|
|
233
243
|
if (appId) {
|
|
234
|
-
xhr
|
|
244
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);
|
|
235
245
|
if (_enableRequestHeaderTracking) {
|
|
236
|
-
ajaxData
|
|
246
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;
|
|
237
247
|
}
|
|
238
248
|
}
|
|
239
249
|
if (_isUsingW3CHeaders) {
|
|
240
|
-
var traceFlags = ajaxData
|
|
250
|
+
var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
241
251
|
if (isNullOrUndefined(traceFlags)) {
|
|
242
252
|
traceFlags = 0x01;
|
|
243
253
|
}
|
|
244
|
-
var traceParent = formatTraceParent(createTraceParent(ajaxData
|
|
245
|
-
xhr
|
|
254
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));
|
|
255
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);
|
|
246
256
|
if (_enableRequestHeaderTracking) {
|
|
247
|
-
ajaxData
|
|
257
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;
|
|
248
258
|
}
|
|
249
259
|
}
|
|
250
260
|
}
|
|
@@ -257,16 +267,16 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
257
267
|
// Hack since expected format in w3c mode is |abc.def.
|
|
258
268
|
// Non-w3c format is |abc.def
|
|
259
269
|
// @todo Remove if better solution is available, e.g. handle in portal
|
|
260
|
-
if ((_config
|
|
261
|
-
|| _config
|
|
262
|
-
&& typeof dependency.id === "string" && dependency.id[dependency.id
|
|
270
|
+
if ((_config[_DYN_DISTRIBUTED_TRACING_2 /* @min:%2edistributedTracingMode */] === 2 /* eDistributedTracingModes.W3C */
|
|
271
|
+
|| _config[_DYN_DISTRIBUTED_TRACING_2 /* @min:%2edistributedTracingMode */] === 1 /* eDistributedTracingModes.AI_AND_W3C */)
|
|
272
|
+
&& typeof dependency.id === "string" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== ".") {
|
|
263
273
|
dependency.id += ".";
|
|
264
274
|
}
|
|
265
|
-
if (isNullOrUndefined(dependency
|
|
266
|
-
dependency
|
|
275
|
+
if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {
|
|
276
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();
|
|
267
277
|
}
|
|
268
278
|
var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);
|
|
269
|
-
_self.
|
|
279
|
+
_self[_DYN_CORE /* @min:%2ecore */].track(item);
|
|
270
280
|
}
|
|
271
281
|
else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {
|
|
272
282
|
_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);
|
|
@@ -295,7 +305,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
295
305
|
var location = getLocation();
|
|
296
306
|
_fetchInitialized = false; // fetch monitoring initialized
|
|
297
307
|
_xhrInitialized = false; // XHR monitoring initialized
|
|
298
|
-
_currentWindowHost = location && location.host && location.host
|
|
308
|
+
_currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();
|
|
299
309
|
_config = AjaxMonitor.getEmptyConfig();
|
|
300
310
|
_enableRequestHeaderTracking = false;
|
|
301
311
|
_enableAjaxErrorStatusText = false;
|
|
@@ -317,37 +327,37 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
317
327
|
_dependencyListeners = [];
|
|
318
328
|
}
|
|
319
329
|
function _populateDefaults(config) {
|
|
320
|
-
var ctx = createProcessTelemetryContext(null, config, _self
|
|
330
|
+
var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);
|
|
321
331
|
// Reset to the empty config
|
|
322
332
|
_config = AjaxMonitor.getEmptyConfig();
|
|
323
|
-
var defaultConfig = AjaxMonitor
|
|
333
|
+
var defaultConfig = AjaxMonitor[_DYN_GET_DEFAULT_CONFIG /* @min:%2egetDefaultConfig */]();
|
|
324
334
|
objForEachKey(defaultConfig, function (field, value) {
|
|
325
335
|
_config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);
|
|
326
336
|
});
|
|
327
|
-
var distributedTracingMode = _config
|
|
328
|
-
_enableRequestHeaderTracking = _config
|
|
329
|
-
_enableAjaxErrorStatusText = _config
|
|
330
|
-
_enableAjaxPerfTracking = _config
|
|
331
|
-
_maxAjaxCallsPerView = _config
|
|
332
|
-
_enableResponseHeaderTracking = _config
|
|
333
|
-
_excludeRequestFromAutoTrackingPatterns = _config
|
|
334
|
-
_addRequestContext = _config
|
|
337
|
+
var distributedTracingMode = _config[_DYN_DISTRIBUTED_TRACING_2 /* @min:%2edistributedTracingMode */];
|
|
338
|
+
_enableRequestHeaderTracking = _config[_DYN_ENABLE_REQUEST_HEADE3 /* @min:%2eenableRequestHeaderTracking */];
|
|
339
|
+
_enableAjaxErrorStatusText = _config[_DYN_ENABLE_AJAX_ERROR_ST4 /* @min:%2eenableAjaxErrorStatusText */];
|
|
340
|
+
_enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA5 /* @min:%2eenableAjaxPerfTracking */];
|
|
341
|
+
_maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V6 /* @min:%2emaxAjaxCallsPerView */];
|
|
342
|
+
_enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD7 /* @min:%2eenableResponseHeaderTracking */];
|
|
343
|
+
_excludeRequestFromAutoTrackingPatterns = _config[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */];
|
|
344
|
+
_addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];
|
|
335
345
|
_isUsingAIHeaders = distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;
|
|
336
346
|
_isUsingW3CHeaders = distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;
|
|
337
347
|
if (_enableAjaxPerfTracking) {
|
|
338
348
|
var iKey = config.instrumentationKey || "unkwn";
|
|
339
|
-
if (iKey
|
|
340
|
-
_markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey
|
|
349
|
+
if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {
|
|
350
|
+
_markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + ".";
|
|
341
351
|
}
|
|
342
352
|
else {
|
|
343
353
|
_markPrefix = AJAX_MONITOR_PREFIX + iKey + ".";
|
|
344
354
|
}
|
|
345
355
|
}
|
|
346
|
-
_disableAjaxTracking = !!_config
|
|
347
|
-
_disableFetchTracking = !!_config
|
|
356
|
+
_disableAjaxTracking = !!_config[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];
|
|
357
|
+
_disableFetchTracking = !!_config[_DYN_DISABLE_FETCH_TRACKI10 /* @min:%2edisableFetchTracking */];
|
|
348
358
|
}
|
|
349
359
|
function _populateContext() {
|
|
350
|
-
var propExt = _self.
|
|
360
|
+
var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);
|
|
351
361
|
if (propExt) {
|
|
352
362
|
_context = propExt.plugin.context; // we could move IPropertiesPlugin to common as well
|
|
353
363
|
}
|
|
@@ -357,7 +367,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
357
367
|
var rlt = true;
|
|
358
368
|
if (header || _config.ignoreHeaders) {
|
|
359
369
|
arrForEach(_config.ignoreHeaders, (function (key) {
|
|
360
|
-
if (key
|
|
370
|
+
if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {
|
|
361
371
|
rlt = false;
|
|
362
372
|
return -1;
|
|
363
373
|
}
|
|
@@ -385,7 +395,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
385
395
|
!(isPolyfill && _xhrInitialized)) {
|
|
386
396
|
var ctx = callDetails.ctx();
|
|
387
397
|
fetchData = _createFetchRecord(input, init);
|
|
388
|
-
var newInit = _self
|
|
398
|
+
var newInit = _self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);
|
|
389
399
|
if (newInit !== init) {
|
|
390
400
|
callDetails.set(1, newInit);
|
|
391
401
|
}
|
|
@@ -398,12 +408,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
398
408
|
if (fetchData_1) {
|
|
399
409
|
// Replace the result with the new promise from this code
|
|
400
410
|
callDetails.rslt = callDetails.rslt.then(function (response) {
|
|
401
|
-
_reportFetchMetrics(callDetails, (response || {})
|
|
402
|
-
var
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
411
|
+
_reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {
|
|
412
|
+
var _a;
|
|
413
|
+
var ajaxResponse = (_a = {
|
|
414
|
+
statusText: response[_DYN_STATUS_TEXT /* @min:%2estatusText */]
|
|
415
|
+
},
|
|
416
|
+
_a[_DYN_HEADER_MAP /* @min:headerMap */] = null,
|
|
417
|
+
_a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),
|
|
418
|
+
_a);
|
|
407
419
|
if (_enableResponseHeaderTracking) {
|
|
408
420
|
var responseHeaderMap_1 = {};
|
|
409
421
|
response.headers.forEach(function (value, name) {
|
|
@@ -411,7 +423,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
411
423
|
responseHeaderMap_1[name] = value;
|
|
412
424
|
}
|
|
413
425
|
});
|
|
414
|
-
ajaxResponse
|
|
426
|
+
ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;
|
|
415
427
|
}
|
|
416
428
|
return ajaxResponse;
|
|
417
429
|
});
|
|
@@ -459,10 +471,10 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
459
471
|
ns: _evtNamespace,
|
|
460
472
|
req: function (args, method, url, async) {
|
|
461
473
|
if (!_disableAjaxTracking) {
|
|
462
|
-
var xhr = args
|
|
474
|
+
var xhr = args[_DYN_INST /* @min:%2einst */];
|
|
463
475
|
var ajaxData = xhr[strAjaxData];
|
|
464
476
|
if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {
|
|
465
|
-
if (!ajaxData || !ajaxData.xhrMonitoringState
|
|
477
|
+
if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {
|
|
466
478
|
// Only create a single ajaxData (even when multiple AI instances are running)
|
|
467
479
|
_openHandler(xhr, method, url, async);
|
|
468
480
|
}
|
|
@@ -478,13 +490,13 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
478
490
|
ns: _evtNamespace,
|
|
479
491
|
req: function (args, context) {
|
|
480
492
|
if (!_disableAjaxTracking) {
|
|
481
|
-
var xhr = args
|
|
493
|
+
var xhr = args[_DYN_INST /* @min:%2einst */];
|
|
482
494
|
var ajaxData = xhr[strAjaxData];
|
|
483
|
-
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState
|
|
495
|
+
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {
|
|
484
496
|
_createMarkId("xhr", ajaxData);
|
|
485
|
-
ajaxData
|
|
486
|
-
_self
|
|
487
|
-
ajaxData.xhrMonitoringState
|
|
497
|
+
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
498
|
+
_self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);
|
|
499
|
+
ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;
|
|
488
500
|
}
|
|
489
501
|
}
|
|
490
502
|
},
|
|
@@ -495,11 +507,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
495
507
|
ns: _evtNamespace,
|
|
496
508
|
req: function (args) {
|
|
497
509
|
if (!_disableAjaxTracking) {
|
|
498
|
-
var xhr = args
|
|
510
|
+
var xhr = args[_DYN_INST /* @min:%2einst */];
|
|
499
511
|
var ajaxData = xhr[strAjaxData];
|
|
500
|
-
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState
|
|
512
|
+
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {
|
|
501
513
|
ajaxData.aborted = 1;
|
|
502
|
-
ajaxData.xhrMonitoringState
|
|
514
|
+
ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;
|
|
503
515
|
}
|
|
504
516
|
}
|
|
505
517
|
},
|
|
@@ -510,9 +522,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
510
522
|
ns: _evtNamespace,
|
|
511
523
|
req: function (args, header, value) {
|
|
512
524
|
if (!_disableAjaxTracking && _enableRequestHeaderTracking) {
|
|
513
|
-
var xhr = args
|
|
525
|
+
var xhr = args[_DYN_INST /* @min:%2einst */];
|
|
514
526
|
if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {
|
|
515
|
-
xhr[strAjaxData]
|
|
527
|
+
xhr[strAjaxData][_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;
|
|
516
528
|
}
|
|
517
529
|
}
|
|
518
530
|
},
|
|
@@ -523,7 +535,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
523
535
|
}
|
|
524
536
|
function _isDisabledRequest(xhr, request, init) {
|
|
525
537
|
var isDisabled = false;
|
|
526
|
-
var theUrl = ((!isString(request) ? (request || {}).url || "" : request) || "")
|
|
538
|
+
var theUrl = ((!isString(request) ? (request || {}).url || "" : request) || "")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();
|
|
527
539
|
// check excludeRequestFromAutoTrackingPatterns before stripping off any query string
|
|
528
540
|
arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {
|
|
529
541
|
var theRegex = regex;
|
|
@@ -591,8 +603,8 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
591
603
|
}
|
|
592
604
|
function _getDistributedTraceCtx() {
|
|
593
605
|
var distributedTraceCtx = null;
|
|
594
|
-
if (_self
|
|
595
|
-
distributedTraceCtx = _self.
|
|
606
|
+
if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {
|
|
607
|
+
distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);
|
|
596
608
|
}
|
|
597
609
|
// Fall back
|
|
598
610
|
if (!distributedTraceCtx && _context && _context.telemetryTrace) {
|
|
@@ -605,17 +617,18 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
605
617
|
var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
|
|
606
618
|
var spanID = generateW3CId().substr(0, 16);
|
|
607
619
|
var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
|
|
608
|
-
ajaxData
|
|
609
|
-
ajaxData
|
|
610
|
-
ajaxData
|
|
611
|
-
ajaxData.xhrMonitoringState
|
|
612
|
-
ajaxData
|
|
620
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
|
|
621
|
+
ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;
|
|
622
|
+
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;
|
|
623
|
+
ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;
|
|
624
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};
|
|
613
625
|
ajaxData.async = async;
|
|
614
|
-
ajaxData
|
|
626
|
+
ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;
|
|
615
627
|
xhr[strAjaxData] = ajaxData;
|
|
616
628
|
}
|
|
617
629
|
function _attachToOnReadyStateChange(xhr) {
|
|
618
|
-
xhr[strAjaxData].xhrMonitoringState
|
|
630
|
+
xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = eventOn(xhr, "readystatechange", function () {
|
|
631
|
+
var _a;
|
|
619
632
|
try {
|
|
620
633
|
if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {
|
|
621
634
|
_onAjaxComplete(xhr);
|
|
@@ -624,11 +637,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
624
637
|
catch (e) {
|
|
625
638
|
var exceptionText = dumpObj(e);
|
|
626
639
|
// ignore messages with c00c023f, as this a known IE9 XHR abort issue
|
|
627
|
-
if (!exceptionText || _indexOf(exceptionText
|
|
628
|
-
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", {
|
|
629
|
-
ajaxDiagnosticsMessage
|
|
630
|
-
exception
|
|
631
|
-
|
|
640
|
+
if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), "c00c023f") === -1) {
|
|
641
|
+
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", (_a = {},
|
|
642
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
643
|
+
_a.exception = exceptionText,
|
|
644
|
+
_a));
|
|
632
645
|
}
|
|
633
646
|
}
|
|
634
647
|
}, _evtNamespace);
|
|
@@ -638,7 +651,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
638
651
|
var responseType = xhr.responseType;
|
|
639
652
|
if (responseType === "" || responseType === "text") {
|
|
640
653
|
// As per the specification responseText is only valid if the type is an empty string or "text"
|
|
641
|
-
return xhr
|
|
654
|
+
return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];
|
|
642
655
|
}
|
|
643
656
|
}
|
|
644
657
|
catch (e) {
|
|
@@ -648,8 +661,8 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
648
661
|
}
|
|
649
662
|
function _onAjaxComplete(xhr) {
|
|
650
663
|
var ajaxData = xhr[strAjaxData];
|
|
651
|
-
ajaxData
|
|
652
|
-
ajaxData
|
|
664
|
+
ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
665
|
+
ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];
|
|
653
666
|
function _reportXhrError(e, failedProps) {
|
|
654
667
|
var errorProps = failedProps || {};
|
|
655
668
|
errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr);
|
|
@@ -660,17 +673,19 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
660
673
|
}
|
|
661
674
|
_findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
|
|
662
675
|
try {
|
|
663
|
-
var dependency = ajaxData
|
|
664
|
-
var
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
676
|
+
var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */]("Ajax", _enableRequestHeaderTracking, function () {
|
|
677
|
+
var _a;
|
|
678
|
+
var ajaxResponse = (_a = {
|
|
679
|
+
statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]
|
|
680
|
+
},
|
|
681
|
+
_a[_DYN_HEADER_MAP /* @min:headerMap */] = null,
|
|
682
|
+
_a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),
|
|
683
|
+
_a.type = xhr.responseType,
|
|
684
|
+
_a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),
|
|
685
|
+
_a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],
|
|
686
|
+
_a);
|
|
672
687
|
if (_enableResponseHeaderTracking) {
|
|
673
|
-
var headers = xhr
|
|
688
|
+
var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();
|
|
674
689
|
if (headers) {
|
|
675
690
|
// xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null
|
|
676
691
|
// the regex converts the header string into an array of individual headers
|
|
@@ -684,7 +699,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
684
699
|
responseHeaderMap_2[header] = value;
|
|
685
700
|
}
|
|
686
701
|
});
|
|
687
|
-
ajaxResponse
|
|
702
|
+
ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;
|
|
688
703
|
}
|
|
689
704
|
}
|
|
690
705
|
return ajaxResponse;
|
|
@@ -692,7 +707,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
692
707
|
var properties = void 0;
|
|
693
708
|
try {
|
|
694
709
|
if (!!_addRequestContext) {
|
|
695
|
-
properties = _addRequestContext({ status: xhr
|
|
710
|
+
properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });
|
|
696
711
|
}
|
|
697
712
|
}
|
|
698
713
|
catch (e) {
|
|
@@ -700,14 +715,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
700
715
|
}
|
|
701
716
|
if (dependency) {
|
|
702
717
|
if (properties !== undefined) {
|
|
703
|
-
dependency
|
|
718
|
+
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
704
719
|
}
|
|
705
720
|
_self[strTrackDependencyDataInternal](dependency);
|
|
706
721
|
}
|
|
707
722
|
else {
|
|
708
723
|
_reportXhrError(null, {
|
|
709
|
-
requestSentTime: ajaxData
|
|
710
|
-
responseFinishedTime: ajaxData
|
|
724
|
+
requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],
|
|
725
|
+
responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]
|
|
711
726
|
});
|
|
712
727
|
}
|
|
713
728
|
}
|
|
@@ -725,43 +740,44 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
725
740
|
});
|
|
726
741
|
}
|
|
727
742
|
function _getAjaxCorrelationContext(xhr) {
|
|
743
|
+
var _a;
|
|
728
744
|
try {
|
|
729
|
-
var responseHeadersString = xhr
|
|
745
|
+
var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();
|
|
730
746
|
if (responseHeadersString !== null) {
|
|
731
|
-
var index = _indexOf(responseHeadersString
|
|
747
|
+
var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);
|
|
732
748
|
if (index !== -1) {
|
|
733
749
|
var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);
|
|
734
|
-
return CorrelationIdHelper
|
|
750
|
+
return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT14 /* @min:%2egetCorrelationContext */](responseHeader);
|
|
735
751
|
}
|
|
736
752
|
}
|
|
737
753
|
}
|
|
738
754
|
catch (e) {
|
|
739
|
-
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", {
|
|
740
|
-
ajaxDiagnosticsMessage
|
|
741
|
-
exception
|
|
742
|
-
|
|
755
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", (_a = {},
|
|
756
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
757
|
+
_a.exception = dumpObj(e),
|
|
758
|
+
_a));
|
|
743
759
|
}
|
|
744
760
|
}
|
|
745
761
|
function _createMarkId(type, ajaxData) {
|
|
746
|
-
if (ajaxData
|
|
762
|
+
if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {
|
|
747
763
|
var performance_1 = getPerformance();
|
|
748
764
|
if (performance_1 && isFunction(performance_1.mark)) {
|
|
749
765
|
_markCount++;
|
|
750
766
|
var markId = _markPrefix + type + "#" + _markCount;
|
|
751
767
|
performance_1.mark(markId);
|
|
752
768
|
var entries = performance_1.getEntriesByName(markId);
|
|
753
|
-
if (entries && entries
|
|
754
|
-
ajaxData
|
|
769
|
+
if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {
|
|
770
|
+
ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];
|
|
755
771
|
}
|
|
756
772
|
}
|
|
757
773
|
}
|
|
758
774
|
}
|
|
759
775
|
function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {
|
|
760
|
-
var perfMark = ajaxData
|
|
776
|
+
var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];
|
|
761
777
|
var performance = getPerformance();
|
|
762
778
|
var maxAttempts = _config.maxAjaxPerfLookupAttempts;
|
|
763
|
-
var retryDelay = _config
|
|
764
|
-
var requestUrl = ajaxData
|
|
779
|
+
var retryDelay = _config[_DYN_AJAX_PERF_LOOKUP_DEL15 /* @min:%2eajaxPerfLookupDelay */];
|
|
780
|
+
var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];
|
|
765
781
|
var attempt = 0;
|
|
766
782
|
(function locateResourceTiming() {
|
|
767
783
|
try {
|
|
@@ -769,21 +785,21 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
769
785
|
attempt++;
|
|
770
786
|
var perfTiming = null;
|
|
771
787
|
var entries = performance.getEntries();
|
|
772
|
-
for (var lp = entries
|
|
788
|
+
for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {
|
|
773
789
|
var entry = entries[lp];
|
|
774
790
|
if (entry) {
|
|
775
791
|
if (entry.entryType === "resource") {
|
|
776
792
|
if (entry.initiatorType === initiatorType &&
|
|
777
|
-
(_indexOf(entry
|
|
793
|
+
(_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {
|
|
778
794
|
perfTiming = entry;
|
|
779
795
|
}
|
|
780
796
|
}
|
|
781
|
-
else if (entry.entryType === "mark" && entry
|
|
797
|
+
else if (entry.entryType === "mark" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {
|
|
782
798
|
// We hit the start event
|
|
783
|
-
ajaxData
|
|
799
|
+
ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;
|
|
784
800
|
break;
|
|
785
801
|
}
|
|
786
|
-
if (entry
|
|
802
|
+
if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {
|
|
787
803
|
// Fallback to try and reduce the time spent looking for the perf entry
|
|
788
804
|
break;
|
|
789
805
|
}
|
|
@@ -791,12 +807,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
791
807
|
}
|
|
792
808
|
}
|
|
793
809
|
if (!perfMark || // - we don't have a perfMark or
|
|
794
|
-
ajaxData
|
|
810
|
+
ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or
|
|
795
811
|
attempt >= maxAttempts || // - we have tried too many attempts or
|
|
796
812
|
ajaxData.async === false) { // - this is a sync request
|
|
797
813
|
if (perfMark && isFunction(performance.clearMarks)) {
|
|
798
814
|
// Remove the mark so we don't fill up the performance resources too much
|
|
799
|
-
performance.clearMarks(perfMark
|
|
815
|
+
performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);
|
|
800
816
|
}
|
|
801
817
|
ajaxData.perfAttempts = attempt;
|
|
802
818
|
// just continue and report the track event
|
|
@@ -819,33 +835,33 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
819
835
|
var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
|
|
820
836
|
var spanID = generateW3CId().substr(0, 16);
|
|
821
837
|
var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
|
|
822
|
-
ajaxData
|
|
823
|
-
ajaxData
|
|
824
|
-
ajaxData
|
|
838
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
|
|
839
|
+
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
840
|
+
ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;
|
|
825
841
|
if (input instanceof Request) {
|
|
826
|
-
ajaxData
|
|
842
|
+
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input ? input.url : "";
|
|
827
843
|
}
|
|
828
844
|
else {
|
|
829
|
-
ajaxData
|
|
845
|
+
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input;
|
|
830
846
|
}
|
|
831
847
|
var method = "GET";
|
|
832
|
-
if (init && init
|
|
833
|
-
method = init
|
|
848
|
+
if (init && init[_DYN_METHOD /* @min:%2emethod */]) {
|
|
849
|
+
method = init[_DYN_METHOD /* @min:%2emethod */];
|
|
834
850
|
}
|
|
835
851
|
else if (input && input instanceof Request) {
|
|
836
|
-
method = input
|
|
852
|
+
method = input[_DYN_METHOD /* @min:%2emethod */];
|
|
837
853
|
}
|
|
838
|
-
ajaxData
|
|
854
|
+
ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;
|
|
839
855
|
var requestHeaders = {};
|
|
840
856
|
if (_enableRequestHeaderTracking) {
|
|
841
|
-
var headers = new Headers((init ? init
|
|
857
|
+
var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));
|
|
842
858
|
headers.forEach(function (value, key) {
|
|
843
859
|
if (_canIncludeHeaders(key)) {
|
|
844
860
|
requestHeaders[key] = value;
|
|
845
861
|
}
|
|
846
862
|
});
|
|
847
863
|
}
|
|
848
|
-
ajaxData
|
|
864
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;
|
|
849
865
|
_createMarkId("fetch", ajaxData);
|
|
850
866
|
return ajaxData;
|
|
851
867
|
}
|
|
@@ -878,10 +894,10 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
878
894
|
}
|
|
879
895
|
_throwInternalWarning(_self, msgId, "Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.", errorProps);
|
|
880
896
|
}
|
|
881
|
-
ajaxData
|
|
882
|
-
ajaxData
|
|
897
|
+
ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
898
|
+
ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;
|
|
883
899
|
_findPerfResourceEntry("fetch", ajaxData, function () {
|
|
884
|
-
var dependency = ajaxData
|
|
900
|
+
var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */]("Fetch", _enableRequestHeaderTracking, getResponse);
|
|
885
901
|
var properties;
|
|
886
902
|
try {
|
|
887
903
|
if (!!_addRequestContext) {
|
|
@@ -893,14 +909,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
893
909
|
}
|
|
894
910
|
if (dependency) {
|
|
895
911
|
if (properties !== undefined) {
|
|
896
|
-
dependency
|
|
912
|
+
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);
|
|
897
913
|
}
|
|
898
914
|
_self[strTrackDependencyDataInternal](dependency);
|
|
899
915
|
}
|
|
900
916
|
else {
|
|
901
917
|
_reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {
|
|
902
|
-
requestSentTime: ajaxData
|
|
903
|
-
responseFinishedTime: ajaxData
|
|
918
|
+
requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],
|
|
919
|
+
responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]
|
|
904
920
|
});
|
|
905
921
|
}
|
|
906
922
|
}, function (e) {
|
|
@@ -908,10 +924,10 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
908
924
|
});
|
|
909
925
|
}
|
|
910
926
|
function _getFetchCorrelationContext(response) {
|
|
911
|
-
if (response && response
|
|
927
|
+
if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {
|
|
912
928
|
try {
|
|
913
|
-
var responseHeader = response.
|
|
914
|
-
return CorrelationIdHelper
|
|
929
|
+
var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);
|
|
930
|
+
return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT14 /* @min:%2egetCorrelationContext */](responseHeader);
|
|
915
931
|
}
|
|
916
932
|
catch (e) {
|
|
917
933
|
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", {
|
|
@@ -925,40 +941,36 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
925
941
|
return _this;
|
|
926
942
|
}
|
|
927
943
|
AjaxMonitor.getDefaultConfig = function () {
|
|
928
|
-
var
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
enableAjaxPerfTracking: false,
|
|
949
|
-
maxAjaxPerfLookupAttempts: 3,
|
|
950
|
-
ajaxPerfLookupDelay: 25,
|
|
951
|
-
ignoreHeaders: [
|
|
944
|
+
var _a;
|
|
945
|
+
var config = (_a = {},
|
|
946
|
+
_a[_DYN_MAX_AJAX_CALLS_PER_V6 /* @min:maxAjaxCallsPerView */] = 500,
|
|
947
|
+
_a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,
|
|
948
|
+
_a[_DYN_DISABLE_FETCH_TRACKI10 /* @min:disableFetchTracking */] = false,
|
|
949
|
+
_a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,
|
|
950
|
+
_a.disableCorrelationHeaders = false,
|
|
951
|
+
_a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,
|
|
952
|
+
_a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
|
|
953
|
+
_a.correlationHeaderDomains = undefined,
|
|
954
|
+
_a.correlationHeaderExcludePatterns = undefined,
|
|
955
|
+
_a[_DYN_APP_ID /* @min:appId */] = undefined,
|
|
956
|
+
_a.enableCorsCorrelation = false,
|
|
957
|
+
_a[_DYN_ENABLE_REQUEST_HEADE3 /* @min:enableRequestHeaderTracking */] = false,
|
|
958
|
+
_a[_DYN_ENABLE_RESPONSE_HEAD7 /* @min:enableResponseHeaderTracking */] = false,
|
|
959
|
+
_a[_DYN_ENABLE_AJAX_ERROR_ST4 /* @min:enableAjaxErrorStatusText */] = false,
|
|
960
|
+
_a[_DYN_ENABLE_AJAX_PERF_TRA5 /* @min:enableAjaxPerfTracking */] = false,
|
|
961
|
+
_a.maxAjaxPerfLookupAttempts = 3,
|
|
962
|
+
_a[_DYN_AJAX_PERF_LOOKUP_DEL15 /* @min:ajaxPerfLookupDelay */] = 25,
|
|
963
|
+
_a.ignoreHeaders = [
|
|
952
964
|
"Authorization",
|
|
953
965
|
"X-API-Key",
|
|
954
966
|
"WWW-Authenticate"
|
|
955
967
|
],
|
|
956
|
-
addRequestContext
|
|
957
|
-
|
|
968
|
+
_a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,
|
|
969
|
+
_a);
|
|
958
970
|
return config;
|
|
959
971
|
};
|
|
960
972
|
AjaxMonitor.getEmptyConfig = function () {
|
|
961
|
-
var emptyConfig = this
|
|
973
|
+
var emptyConfig = this[_DYN_GET_DEFAULT_CONFIG /* @min:%2egetDefaultConfig */]();
|
|
962
974
|
objForEachKey(emptyConfig, function (value) {
|
|
963
975
|
emptyConfig[value] = undefined;
|
|
964
976
|
});
|