@microsoft/applicationinsights-dependencies-js 3.0.3-nightly3.2308-11 → 3.0.3-nightly3.2308-16
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/es5/applicationinsights-dependencies-js.cjs.js +127 -58
- package/browser/es5/applicationinsights-dependencies-js.cjs.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.cjs.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.cjs.min.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.gbl.js +129 -60
- package/browser/es5/applicationinsights-dependencies-js.gbl.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.gbl.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.gbl.min.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.integrity.json +25 -25
- package/browser/es5/applicationinsights-dependencies-js.js +129 -60
- package/browser/es5/applicationinsights-dependencies-js.js.map +1 -1
- package/browser/es5/applicationinsights-dependencies-js.min.js +2 -2
- package/browser/es5/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/es5/applicationinsights-dependencies-js.js +127 -58
- package/dist/es5/applicationinsights-dependencies-js.js.map +1 -1
- package/dist/es5/applicationinsights-dependencies-js.min.js +2 -2
- package/dist/es5/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist-es5/DependencyInitializer.js +1 -1
- package/dist-es5/DependencyListener.js +1 -1
- package/dist-es5/InternalConstants.js +1 -1
- package/dist-es5/__DynamicConstants.js +1 -1
- package/dist-es5/ajax.js +139 -58
- package/dist-es5/ajax.js.map +1 -1
- package/dist-es5/ajaxRecord.js +1 -1
- package/dist-es5/ajaxUtils.js +1 -1
- package/dist-es5/applicationinsights-dependencies-js.js +1 -1
- package/package.json +3 -3
- package/types/applicationinsights-dependencies-js.d.ts +18 -2
- package/types/applicationinsights-dependencies-js.namespaced.d.ts +18 -2
package/dist-es5/ajax.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3-nightly3.2308-
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3-nightly3.2308-16
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -15,7 +15,7 @@ import { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAG
|
|
|
15
15
|
import { ajaxRecord } from "./ajaxRecord";
|
|
16
16
|
var AJAX_MONITOR_PREFIX = "ai.ajxmn.";
|
|
17
17
|
var strDiagLog = "diagLog";
|
|
18
|
-
var
|
|
18
|
+
var AJAX_DATA_CONTAINER = "_ajaxData";
|
|
19
19
|
var STR_FETCH = "fetch";
|
|
20
20
|
var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
|
|
21
21
|
var ERROR_PREFIX = ", monitoring data for this ajax call ";
|
|
@@ -42,8 +42,8 @@ function _supportsFetch() {
|
|
|
42
42
|
* @returns True if Ajax monitoring is supported on this page, otherwise false
|
|
43
43
|
* @ignore
|
|
44
44
|
*/
|
|
45
|
-
function _supportsAjaxMonitoring(ajaxMonitorInstance) {
|
|
46
|
-
var _a;
|
|
45
|
+
function _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {
|
|
46
|
+
var _a, _b;
|
|
47
47
|
var result = false;
|
|
48
48
|
if (isXhrSupported()) {
|
|
49
49
|
var proto = XMLHttpRequest[strPrototype];
|
|
@@ -60,7 +60,13 @@ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
|
|
|
60
60
|
// Disable if the XmlHttpRequest can't be extended or hooked
|
|
61
61
|
try {
|
|
62
62
|
var xhr = new XMLHttpRequest();
|
|
63
|
-
|
|
63
|
+
var xhrData = {
|
|
64
|
+
xh: [],
|
|
65
|
+
i: (_a = {},
|
|
66
|
+
_a[ajaxDataId] = {},
|
|
67
|
+
_a)
|
|
68
|
+
};
|
|
69
|
+
xhr[AJAX_DATA_CONTAINER] = xhrData;
|
|
64
70
|
// Check that we can update the prototype
|
|
65
71
|
var theOpen = XMLHttpRequest[strPrototype].open;
|
|
66
72
|
XMLHttpRequest[strPrototype].open = theOpen;
|
|
@@ -68,19 +74,64 @@ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
|
|
|
68
74
|
catch (e) {
|
|
69
75
|
// We can't decorate the xhr object so disable monitoring
|
|
70
76
|
result = false;
|
|
71
|
-
_throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to enable XMLHttpRequest monitoring, extension is not supported", (
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
_throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to enable XMLHttpRequest monitoring, extension is not supported", (_b = {},
|
|
78
|
+
_b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),
|
|
79
|
+
_b));
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
82
|
return result;
|
|
77
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Internal helper to fetch the SDK instance tracking data for this XHR request
|
|
86
|
+
* @param xhr
|
|
87
|
+
* @param ajaxDataId
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
90
|
+
var _getAjaxData = function (xhr, ajaxDataId) {
|
|
91
|
+
if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {
|
|
92
|
+
return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* @ignore
|
|
98
|
+
* Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers
|
|
99
|
+
* that might cause an issue if multiple values are populated.
|
|
100
|
+
* @param xhr - The instrumented XHR instance
|
|
101
|
+
*/
|
|
102
|
+
var _addSharedXhrHeaders = function (xhr, name, value) {
|
|
103
|
+
if (xhr) {
|
|
104
|
+
var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
|
|
105
|
+
if (headers) {
|
|
106
|
+
headers.push({
|
|
107
|
+
n: name,
|
|
108
|
+
v: value
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var _isHeaderSet = function (xhr, name) {
|
|
114
|
+
var isPresent = false;
|
|
115
|
+
if (xhr) {
|
|
116
|
+
var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
|
|
117
|
+
if (headers) {
|
|
118
|
+
arrForEach(headers, function (header) {
|
|
119
|
+
if (header.n === name) {
|
|
120
|
+
isPresent = true;
|
|
121
|
+
return -1;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return isPresent;
|
|
127
|
+
};
|
|
78
128
|
/** @Ignore */
|
|
79
|
-
function _getFailedAjaxDiagnosticsMessage(xhr) {
|
|
129
|
+
function _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {
|
|
80
130
|
var result = "";
|
|
81
131
|
try {
|
|
82
|
-
|
|
83
|
-
|
|
132
|
+
var ajaxData = _getAjaxData(xhr, ajaxDataId);
|
|
133
|
+
if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {
|
|
134
|
+
result += "(url: '" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + "')";
|
|
84
135
|
}
|
|
85
136
|
}
|
|
86
137
|
catch (e) {
|
|
@@ -99,12 +150,12 @@ function _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties,
|
|
|
99
150
|
/** @Ignore */
|
|
100
151
|
function _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {
|
|
101
152
|
// tslint:disable-next-line
|
|
102
|
-
return function (
|
|
153
|
+
return function (callDetails) {
|
|
103
154
|
var _a;
|
|
104
155
|
_throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {
|
|
105
|
-
ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(
|
|
156
|
+
ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)
|
|
106
157
|
},
|
|
107
|
-
_a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(
|
|
158
|
+
_a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),
|
|
108
159
|
_a));
|
|
109
160
|
};
|
|
110
161
|
}
|
|
@@ -229,6 +280,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
229
280
|
var _excludeRequestFromAutoTrackingPatterns;
|
|
230
281
|
var _addRequestContext;
|
|
231
282
|
var _evtNamespace;
|
|
283
|
+
var _ajaxDataId;
|
|
232
284
|
var _dependencyHandlerId;
|
|
233
285
|
var _dependencyListeners;
|
|
234
286
|
var _dependencyInitializers;
|
|
@@ -302,17 +354,27 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
302
354
|
else if (xhr) { // XHR
|
|
303
355
|
if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
304
356
|
if (_isUsingAIHeaders) {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
357
|
+
if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {
|
|
358
|
+
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
359
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
360
|
+
if (_enableRequestHeaderTracking) {
|
|
361
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + "] as it has already been set by another instance");
|
|
309
366
|
}
|
|
310
367
|
}
|
|
311
368
|
var appId = _appId || (_context && _context.appId());
|
|
312
369
|
if (appId) {
|
|
313
|
-
xhr
|
|
314
|
-
|
|
315
|
-
|
|
370
|
+
if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {
|
|
371
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);
|
|
372
|
+
if (_enableRequestHeaderTracking) {
|
|
373
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + "] as it has already been set by another instance");
|
|
316
378
|
}
|
|
317
379
|
}
|
|
318
380
|
if (_isUsingW3CHeaders) {
|
|
@@ -320,10 +382,15 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
320
382
|
if (isNullOrUndefined(traceFlags)) {
|
|
321
383
|
traceFlags = 0x01;
|
|
322
384
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
385
|
+
if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {
|
|
386
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));
|
|
387
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);
|
|
388
|
+
if (_enableRequestHeaderTracking) {
|
|
389
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + "] as it has already been set by another instance");
|
|
327
394
|
}
|
|
328
395
|
}
|
|
329
396
|
}
|
|
@@ -384,6 +451,8 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
384
451
|
_dependencyHandlerId = 0;
|
|
385
452
|
_dependencyListeners = [];
|
|
386
453
|
_dependencyInitializers = [];
|
|
454
|
+
_ajaxDataId = createUniqueNamespace("ajaxData");
|
|
455
|
+
_self._ajaxDataId = _ajaxDataId;
|
|
387
456
|
_ignoreHeaders = null;
|
|
388
457
|
_maxAjaxPerfLookupAttempts = 1;
|
|
389
458
|
_ajaxPerfLookupDelay = 1;
|
|
@@ -535,7 +604,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
535
604
|
_addHook(InstrumentProto(target, funcName, callbacks));
|
|
536
605
|
}
|
|
537
606
|
function _instrumentXhr() {
|
|
538
|
-
if (!_supportsAjaxMonitoring(_self)) {
|
|
607
|
+
if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {
|
|
539
608
|
return;
|
|
540
609
|
}
|
|
541
610
|
_self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {
|
|
@@ -545,17 +614,17 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
545
614
|
// Instrument open
|
|
546
615
|
_hookProto(XMLHttpRequest, "open", {
|
|
547
616
|
ns: _evtNamespace,
|
|
548
|
-
req: function (
|
|
617
|
+
req: function (callDetails, method, url, async) {
|
|
549
618
|
if (!_disableAjaxTracking) {
|
|
550
|
-
var xhr =
|
|
551
|
-
var ajaxData = xhr
|
|
552
|
-
if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {
|
|
619
|
+
var xhr = callDetails[_DYN_INST /* @min:%2einst */];
|
|
620
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
621
|
+
if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {
|
|
553
622
|
if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {
|
|
554
623
|
// Only create a single ajaxData (even when multiple AI instances are running)
|
|
555
|
-
_openHandler(xhr, method, url, async);
|
|
624
|
+
ajaxData = _openHandler(xhr, method, url, async);
|
|
556
625
|
}
|
|
557
626
|
// always attach to the on ready state change (required for handling multiple instances)
|
|
558
|
-
_attachToOnReadyStateChange(xhr);
|
|
627
|
+
_attachToOnReadyStateChange(xhr, ajaxData);
|
|
559
628
|
}
|
|
560
629
|
}
|
|
561
630
|
},
|
|
@@ -564,11 +633,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
564
633
|
// Instrument send
|
|
565
634
|
_hookProto(XMLHttpRequest, "send", {
|
|
566
635
|
ns: _evtNamespace,
|
|
567
|
-
req: function (
|
|
636
|
+
req: function (callDetails, context) {
|
|
568
637
|
if (!_disableAjaxTracking) {
|
|
569
|
-
var xhr =
|
|
570
|
-
var ajaxData = xhr
|
|
571
|
-
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {
|
|
638
|
+
var xhr = callDetails[_DYN_INST /* @min:%2einst */];
|
|
639
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
640
|
+
if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {
|
|
572
641
|
_createMarkId("xhr", ajaxData);
|
|
573
642
|
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
574
643
|
_self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);
|
|
@@ -581,11 +650,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
581
650
|
// Instrument abort
|
|
582
651
|
_hookProto(XMLHttpRequest, "abort", {
|
|
583
652
|
ns: _evtNamespace,
|
|
584
|
-
req: function (
|
|
653
|
+
req: function (callDetails) {
|
|
585
654
|
if (!_disableAjaxTracking) {
|
|
586
|
-
var xhr =
|
|
587
|
-
var ajaxData = xhr
|
|
588
|
-
if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {
|
|
655
|
+
var xhr = callDetails[_DYN_INST /* @min:%2einst */];
|
|
656
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
657
|
+
if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {
|
|
589
658
|
ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;
|
|
590
659
|
ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;
|
|
591
660
|
}
|
|
@@ -596,11 +665,17 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
596
665
|
// Instrument setRequestHeader
|
|
597
666
|
_hookProto(XMLHttpRequest, "setRequestHeader", {
|
|
598
667
|
ns: _evtNamespace,
|
|
599
|
-
req: function (
|
|
600
|
-
if (!_disableAjaxTracking
|
|
601
|
-
var xhr =
|
|
602
|
-
|
|
603
|
-
|
|
668
|
+
req: function (callDetails, header, value) {
|
|
669
|
+
if (!_disableAjaxTracking) {
|
|
670
|
+
var xhr = callDetails[_DYN_INST /* @min:%2einst */];
|
|
671
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
672
|
+
if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {
|
|
673
|
+
_addSharedXhrHeaders(xhr, header, value);
|
|
674
|
+
if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {
|
|
675
|
+
if (ajaxData) {
|
|
676
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;
|
|
677
|
+
}
|
|
678
|
+
}
|
|
604
679
|
}
|
|
605
680
|
}
|
|
606
681
|
},
|
|
@@ -664,14 +739,14 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
664
739
|
}
|
|
665
740
|
return isDisabled;
|
|
666
741
|
}
|
|
667
|
-
/// <summary>Verifies that
|
|
742
|
+
/// <summary>Verifies that particular instance of XMLHttpRequest needs to be monitored</summary>
|
|
668
743
|
/// <param name="excludeAjaxDataValidation">Optional parameter. True if ajaxData must be excluded from verification</param>
|
|
669
744
|
/// <returns type="bool">True if instance needs to be monitored, otherwise false</returns>
|
|
670
|
-
function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {
|
|
745
|
+
function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {
|
|
671
746
|
var ajaxValidation = true;
|
|
672
747
|
var initialized = _xhrInitialized;
|
|
673
748
|
if (!isNullOrUndefined(xhr)) {
|
|
674
|
-
ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(
|
|
749
|
+
ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);
|
|
675
750
|
}
|
|
676
751
|
// checking to see that all interested functions on xhr were instrumented
|
|
677
752
|
return initialized
|
|
@@ -694,7 +769,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
694
769
|
var distributedTraceCtx = _getDistributedTraceCtx();
|
|
695
770
|
var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();
|
|
696
771
|
var spanID = strSubstr(generateW3CId(), 0, 16);
|
|
697
|
-
var
|
|
772
|
+
var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });
|
|
773
|
+
var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});
|
|
774
|
+
var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));
|
|
698
775
|
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();
|
|
699
776
|
ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;
|
|
700
777
|
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;
|
|
@@ -702,13 +779,13 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
702
779
|
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};
|
|
703
780
|
ajaxData.async = async;
|
|
704
781
|
ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;
|
|
705
|
-
|
|
782
|
+
return ajaxData;
|
|
706
783
|
}
|
|
707
|
-
function _attachToOnReadyStateChange(xhr) {
|
|
708
|
-
|
|
784
|
+
function _attachToOnReadyStateChange(xhr, ajaxData) {
|
|
785
|
+
ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, "readystatechange", function () {
|
|
709
786
|
var _a;
|
|
710
787
|
try {
|
|
711
|
-
if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {
|
|
788
|
+
if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {
|
|
712
789
|
_onAjaxComplete(xhr);
|
|
713
790
|
}
|
|
714
791
|
}
|
|
@@ -717,7 +794,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
717
794
|
// ignore messages with c00c023f, as this a known IE9 XHR abort issue
|
|
718
795
|
if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), "c00c023f") === -1) {
|
|
719
796
|
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
|
|
720
|
-
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
797
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
|
|
721
798
|
_a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,
|
|
722
799
|
_a));
|
|
723
800
|
}
|
|
@@ -738,12 +815,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
738
815
|
return null;
|
|
739
816
|
}
|
|
740
817
|
function _onAjaxComplete(xhr) {
|
|
741
|
-
var ajaxData = xhr
|
|
818
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
742
819
|
ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
743
820
|
ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];
|
|
744
821
|
function _reportXhrError(e, failedProps) {
|
|
745
822
|
var errorProps = failedProps || {};
|
|
746
|
-
errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr);
|
|
823
|
+
errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);
|
|
747
824
|
if (e) {
|
|
748
825
|
errorProps["exception"] = dumpObj(e);
|
|
749
826
|
}
|
|
@@ -808,7 +885,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
808
885
|
finally {
|
|
809
886
|
// cleanup telemetry data
|
|
810
887
|
try {
|
|
811
|
-
xhr[
|
|
888
|
+
var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });
|
|
889
|
+
var ajaxDataCntr = (xhrRequestData.i || {});
|
|
890
|
+
if (ajaxDataCntr[_ajaxDataId]) {
|
|
891
|
+
ajaxDataCntr[_ajaxDataId] = null;
|
|
892
|
+
}
|
|
812
893
|
}
|
|
813
894
|
catch (e) {
|
|
814
895
|
// May throw in environments that prevent extension or freeze xhr
|
|
@@ -832,7 +913,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
|
|
|
832
913
|
}
|
|
833
914
|
catch (e) {
|
|
834
915
|
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},
|
|
835
|
-
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),
|
|
916
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
|
|
836
917
|
_a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),
|
|
837
918
|
_a));
|
|
838
919
|
}
|