@microsoft/applicationinsights-dependencies-js 2.8.16-nightly.2308-04 → 2.8.16-nightly.2309-03

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.
Files changed (28) hide show
  1. package/browser/applicationinsights-dependencies-js.integrity.json +9 -9
  2. package/browser/applicationinsights-dependencies-js.js +126 -58
  3. package/browser/applicationinsights-dependencies-js.js.map +1 -1
  4. package/browser/applicationinsights-dependencies-js.min.js +2 -2
  5. package/browser/applicationinsights-dependencies-js.min.js.map +1 -1
  6. package/dist/applicationinsights-dependencies-js.api.json +92 -6
  7. package/dist/applicationinsights-dependencies-js.api.md +12 -1
  8. package/dist/applicationinsights-dependencies-js.d.ts +21 -5
  9. package/dist/applicationinsights-dependencies-js.js +126 -56
  10. package/dist/applicationinsights-dependencies-js.js.map +1 -1
  11. package/dist/applicationinsights-dependencies-js.min.js +2 -2
  12. package/dist/applicationinsights-dependencies-js.min.js.map +1 -1
  13. package/dist/applicationinsights-dependencies-js.rollup.d.ts +21 -5
  14. package/dist-esm/DependencyInitializer.js +1 -1
  15. package/dist-esm/DependencyListener.js +1 -1
  16. package/dist-esm/InternalConstants.js +1 -1
  17. package/dist-esm/__DynamicConstants.js +1 -1
  18. package/dist-esm/ajax.js +136 -54
  19. package/dist-esm/ajax.js.map +1 -1
  20. package/dist-esm/ajaxRecord.js +1 -1
  21. package/dist-esm/ajaxUtils.js +1 -1
  22. package/dist-esm/applicationinsights-dependencies-js.js +1 -1
  23. package/package.json +3 -3
  24. package/src/ajax.ts +160 -60
  25. package/src/applicationinsights-dependencies-js.ts +1 -1
  26. package/types/ajax.d.ts +19 -4
  27. package/types/applicationinsights-dependencies-js.d.ts +1 -1
  28. package/types/tsdoc-metadata.json +1 -1
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-dependencies-js",
3
- "version": "2.8.16-nightly.2308-04",
3
+ "version": "2.8.16-nightly.2309-03",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-dependencies-js.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-CtCZNX+gkEftZLnlHLaIZ4fr7whpf9nedXdYB7XI1PU= sha384-f/yyqKA762PynKNX0a7rStnNQORgrF51EZRam7OTIXIEFZL2kPE9dK3WWLVWRaNw sha512-uGpWvpZR01V6T9jSbS4bJANt1xiFgLr81upAZ1OQMzyMiKXmOxuANutIZEs9GDe/wdh0J3N+68DWN0kfTUEvWw==",
8
+ "integrity": "sha256-cqWAqwZSt6PZC1anpO0rNdQN9tdJDglCuI0q6XziCUs= sha384-gFy+34IDCRyg+XtpAGFSXsCN7Sqf96hP/wMI2VOVS3qknF761kj49sA9Ul/VBIkB sha512-eSBu6SYNAjA1vdhULHylfd0L9vQDs6q7TLI2onlnP7xsJp1PEX8E9BlbbXsgBpfOx/seGJuXhfC3cHlU5HrNxg==",
9
9
  "hashes": {
10
- "sha256": "CtCZNX+gkEftZLnlHLaIZ4fr7whpf9nedXdYB7XI1PU=",
11
- "sha384": "f/yyqKA762PynKNX0a7rStnNQORgrF51EZRam7OTIXIEFZL2kPE9dK3WWLVWRaNw",
12
- "sha512": "uGpWvpZR01V6T9jSbS4bJANt1xiFgLr81upAZ1OQMzyMiKXmOxuANutIZEs9GDe/wdh0J3N+68DWN0kfTUEvWw=="
10
+ "sha256": "cqWAqwZSt6PZC1anpO0rNdQN9tdJDglCuI0q6XziCUs=",
11
+ "sha384": "gFy+34IDCRyg+XtpAGFSXsCN7Sqf96hP/wMI2VOVS3qknF761kj49sA9Ul/VBIkB",
12
+ "sha512": "eSBu6SYNAjA1vdhULHylfd0L9vQDs6q7TLI2onlnP7xsJp1PEX8E9BlbbXsgBpfOx/seGJuXhfC3cHlU5HrNxg=="
13
13
  }
14
14
  },
15
15
  "@min.js": {
16
16
  "file": "applicationinsights-dependencies-js.min.js",
17
17
  "type": "text/javascript; charset=utf-8",
18
- "integrity": "sha256-KCJayPBDszlcQyLCMRn0Ip+i5xjR8hLTTjHuTIVhw2o= sha384-WSCOa6MuyAMgzJ5/3wOu8YlUd2WVwr4hXXsBAu9awSKmJv3Q/jiyLNjETw9PhCOq sha512-KI70OkiGPD7OYWn9j/gY1esX1bnT+V4Hf39kOAm2IAZyLxDLUrMqcsicxJKg5iy65ExxZ2hJmZK727BDJJg8Bw==",
18
+ "integrity": "sha256-Rj33eq3C3nn+sgSK3SGSxaBmMblTptLhivTYhizteGI= sha384-LoC87S6jbq+dFS4luLWqQiju8vA6BnAKt1cRxAfNZvltS+ZaaOGKBdvTpVAn/zK1 sha512-e2kQn6UJbsFuNes7nefhJhCSCj0nwGX2QuSAiN9tGbrTAglGW1+be5kv1kIzA+MorJaK3zOcqMqqHinH1YYfHA==",
19
19
  "hashes": {
20
- "sha256": "KCJayPBDszlcQyLCMRn0Ip+i5xjR8hLTTjHuTIVhw2o=",
21
- "sha384": "WSCOa6MuyAMgzJ5/3wOu8YlUd2WVwr4hXXsBAu9awSKmJv3Q/jiyLNjETw9PhCOq",
22
- "sha512": "KI70OkiGPD7OYWn9j/gY1esX1bnT+V4Hf39kOAm2IAZyLxDLUrMqcsicxJKg5iy65ExxZ2hJmZK727BDJJg8Bw=="
20
+ "sha256": "Rj33eq3C3nn+sgSK3SGSxaBmMblTptLhivTYhizteGI=",
21
+ "sha384": "LoC87S6jbq+dFS4luLWqQiju8vA6BnAKt1cRxAfNZvltS+ZaaOGKBdvTpVAn/zK1",
22
+ "sha512": "e2kQn6UJbsFuNes7nefhJhCSCj0nwGX2QuSAiN9tGbrTAglGW1+be5kv1kIzA+MorJaK3zOcqMqqHinH1YYfHA=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,9 +1,7 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.16-nightly.2308-04
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.16-nightly.2309-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
- 'use strict';
6
-
7
5
  (function (global, factory) {
8
6
  var undef = "undefined";
9
7
  typeof exports === "object" && typeof module !== undef ? factory(exports) :
@@ -1307,7 +1305,7 @@ function newId(maxLength) {
1307
1305
  }
1308
1306
 
1309
1307
  var _objDefineProperty = ObjDefineProperty;
1310
- var version = "2.8.16-nightly.2308-04";
1308
+ var version = "2.8.16-nightly.2309-03";
1311
1309
  var instanceName = "." + newId(6);
1312
1310
  var _dataUid = 0;
1313
1311
  function _createAccessor(target, prop, value) {
@@ -1516,7 +1514,7 @@ var INVALID_TRACE_ID = "00000000000000000000000000000000";
1516
1514
  var INVALID_SPAN_ID = "0000000000000000";
1517
1515
  function _isValid(value, len, invalidValue) {
1518
1516
  if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
1519
- return !!value.match(/^[\da-f]*$/);
1517
+ return !!value.match(/^[\da-f]*$/i);
1520
1518
  }
1521
1519
  return false;
1522
1520
  }
@@ -1561,7 +1559,7 @@ function formatTraceParent(value) {
1561
1559
  if (version !== "00" && version !== "ff") {
1562
1560
  version = DEFAULT_VERSION;
1563
1561
  }
1564
- return "".concat(version, "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), "-").concat(flags);
1562
+ return "".concat(version.toLowerCase(), "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), "-").concat(flags.toLowerCase());
1565
1563
  }
1566
1564
  return "";
1567
1565
  }
@@ -3133,7 +3131,7 @@ var ajaxRecord = /** @class */ (function () {
3133
3131
 
3134
3132
  var AJAX_MONITOR_PREFIX = "ai.ajxmn.";
3135
3133
  var strDiagLog = "diagLog";
3136
- var strAjaxData = "ajaxData";
3134
+ var AJAX_DATA_CONTAINER = "_ajaxData";
3137
3135
  var STR_FETCH = "fetch";
3138
3136
  var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
3139
3137
  var ERROR_PREFIX = ", monitoring data for this ajax call ";
@@ -3165,7 +3163,8 @@ function isWebWorker() {
3165
3163
  }
3166
3164
  return _isWebWorker;
3167
3165
  }
3168
- function _supportsAjaxMonitoring(ajaxMonitorInstance) {
3166
+ function _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {
3167
+ var _a;
3169
3168
  var result = false;
3170
3169
  if (isXhrSupported()) {
3171
3170
  var proto = XMLHttpRequest[strShimPrototype];
@@ -3181,7 +3180,13 @@ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
3181
3180
  if (result) {
3182
3181
  try {
3183
3182
  var xhr = new XMLHttpRequest();
3184
- xhr[strAjaxData] = {};
3183
+ var xhrData = {
3184
+ xh: [],
3185
+ i: (_a = {},
3186
+ _a[ajaxDataId] = {},
3187
+ _a)
3188
+ };
3189
+ xhr[AJAX_DATA_CONTAINER] = xhrData;
3185
3190
  var theOpen = XMLHttpRequest[strShimPrototype].open;
3186
3191
  XMLHttpRequest[strShimPrototype].open = theOpen;
3187
3192
  }
@@ -3194,11 +3199,44 @@ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
3194
3199
  }
3195
3200
  return result;
3196
3201
  }
3197
- function _getFailedAjaxDiagnosticsMessage(xhr) {
3202
+ var _getAjaxData = function (xhr, ajaxDataId) {
3203
+ if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {
3204
+ return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];
3205
+ }
3206
+ return null;
3207
+ };
3208
+ var _addSharedXhrHeaders = function (xhr, name, value) {
3209
+ if (xhr) {
3210
+ var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
3211
+ if (headers) {
3212
+ headers.push({
3213
+ n: name,
3214
+ v: value
3215
+ });
3216
+ }
3217
+ }
3218
+ };
3219
+ var _isHeaderSet = function (xhr, name) {
3220
+ var isPresent = false;
3221
+ if (xhr) {
3222
+ var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
3223
+ if (headers) {
3224
+ arrForEach(headers, function (header) {
3225
+ if (header.n === name) {
3226
+ isPresent = true;
3227
+ return -1;
3228
+ }
3229
+ });
3230
+ }
3231
+ }
3232
+ return isPresent;
3233
+ };
3234
+ function _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {
3198
3235
  var result = "";
3199
3236
  try {
3200
- if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL ]) {
3201
- result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL ] + "')";
3237
+ var ajaxData = _getAjaxData(xhr, ajaxDataId);
3238
+ if (ajaxData && ajaxData[_DYN_REQUEST_URL ]) {
3239
+ result += "(url: '" + ajaxData[_DYN_REQUEST_URL ] + "')";
3202
3240
  }
3203
3241
  }
3204
3242
  catch (e) {
@@ -3212,10 +3250,10 @@ function _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties,
3212
3250
  _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 , msgId, message, properties, isUserAct);
3213
3251
  }
3214
3252
  function _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {
3215
- return function (args) {
3253
+ return function (callDetails) {
3216
3254
  _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {
3217
- ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST ]),
3218
- exception: dumpObj(args.err)
3255
+ ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST ], ajaxMonitorInstance._ajaxDataId),
3256
+ exception: dumpObj(callDetails.err)
3219
3257
  });
3220
3258
  };
3221
3259
  }
@@ -3349,6 +3387,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
3349
3387
  var _excludeRequestFromAutoTrackingPatterns;
3350
3388
  var _addRequestContext;
3351
3389
  var _evtNamespace;
3390
+ var _ajaxDataId;
3352
3391
  var _dependencyHandlerId;
3353
3392
  var _dependencyListeners;
3354
3393
  var _dependencyInitializers;
@@ -3412,17 +3451,27 @@ var AjaxMonitor = /** @class */ (function (_super) {
3412
3451
  else if (xhr) {
3413
3452
  if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 ](_config, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
3414
3453
  if (_isUsingAIHeaders) {
3415
- var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
3416
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[3 ], id);
3417
- if (_enableRequestHeaderTracking) {
3418
- ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
3454
+ if (!_isHeaderSet(xhr, RequestHeaders[3 ])) {
3455
+ var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
3456
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[3 ], id);
3457
+ if (_enableRequestHeaderTracking) {
3458
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
3459
+ }
3460
+ }
3461
+ else {
3462
+ _throwInternalWarning(_self, 71 , "Unable to set [" + RequestHeaders[3 ] + "] as it has already been set by another instance");
3419
3463
  }
3420
3464
  }
3421
3465
  var appId = _config[_DYN_APP_ID ] || (_context && _context[_DYN_APP_ID ]());
3422
3466
  if (appId) {
3423
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[0 ], RequestHeaders[2 ] + appId);
3424
- if (_enableRequestHeaderTracking) {
3425
- ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[0 ]] = RequestHeaders[2 ] + appId;
3467
+ if (!_isHeaderSet(xhr, RequestHeaders[0 ])) {
3468
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[0 ], RequestHeaders[2 ] + appId);
3469
+ if (_enableRequestHeaderTracking) {
3470
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[0 ]] = RequestHeaders[2 ] + appId;
3471
+ }
3472
+ }
3473
+ else {
3474
+ _throwInternalWarning(_self, 71 , "Unable to set [" + RequestHeaders[0 ] + "] as it has already been set by another instance");
3426
3475
  }
3427
3476
  }
3428
3477
  if (_isUsingW3CHeaders) {
@@ -3430,10 +3479,15 @@ var AjaxMonitor = /** @class */ (function (_super) {
3430
3479
  if (isNullOrUndefined(traceFlags)) {
3431
3480
  traceFlags = 0x01;
3432
3481
  }
3433
- var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
3434
- xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[4 ], traceParent);
3435
- if (_enableRequestHeaderTracking) {
3436
- ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
3482
+ if (!_isHeaderSet(xhr, RequestHeaders[4 ])) {
3483
+ var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
3484
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[4 ], traceParent);
3485
+ if (_enableRequestHeaderTracking) {
3486
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
3487
+ }
3488
+ }
3489
+ else {
3490
+ _throwInternalWarning(_self, 71 , "Unable to set [" + RequestHeaders[4 ] + "] as it has already been set by another instance");
3437
3491
  }
3438
3492
  }
3439
3493
  }
@@ -3490,6 +3544,8 @@ var AjaxMonitor = /** @class */ (function (_super) {
3490
3544
  _dependencyHandlerId = 0;
3491
3545
  _dependencyListeners = [];
3492
3546
  _dependencyInitializers = [];
3547
+ _ajaxDataId = createUniqueNamespace("ajaxData");
3548
+ _self._ajaxDataId = _ajaxDataId;
3493
3549
  }
3494
3550
  function _populateDefaults(config) {
3495
3551
  var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE ]);
@@ -3612,18 +3668,18 @@ var AjaxMonitor = /** @class */ (function (_super) {
3612
3668
  _addHook(InstrumentProto(target, funcName, callbacks));
3613
3669
  }
3614
3670
  function _instrumentXhr() {
3615
- if (_supportsAjaxMonitoring(_self) && !_disableAjaxTracking && !_xhrInitialized) {
3671
+ if (_supportsAjaxMonitoring(_self, _ajaxDataId) && !_disableAjaxTracking && !_xhrInitialized) {
3616
3672
  _hookProto(XMLHttpRequest, "open", {
3617
3673
  ns: _evtNamespace,
3618
- req: function (args, method, url, async) {
3674
+ req: function (callDetails, method, url, async) {
3619
3675
  if (!_disableAjaxTracking) {
3620
- var xhr = args[_DYN_INST ];
3621
- var ajaxData = xhr[strAjaxData];
3622
- if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {
3676
+ var xhr = callDetails[_DYN_INST ];
3677
+ var ajaxData = _getAjaxData(xhr, _ajaxDataId);
3678
+ if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {
3623
3679
  if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE ]) {
3624
- _openHandler(xhr, method, url, async);
3680
+ ajaxData = _openHandler(xhr, method, url, async);
3625
3681
  }
3626
- _attachToOnReadyStateChange(xhr);
3682
+ _attachToOnReadyStateChange(xhr, ajaxData);
3627
3683
  }
3628
3684
  }
3629
3685
  },
@@ -3631,11 +3687,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
3631
3687
  });
3632
3688
  _hookProto(XMLHttpRequest, "send", {
3633
3689
  ns: _evtNamespace,
3634
- req: function (args, context) {
3690
+ req: function (callDetails, context) {
3635
3691
  if (!_disableAjaxTracking) {
3636
- var xhr = args[_DYN_INST ];
3637
- var ajaxData = xhr[strAjaxData];
3638
- if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE ]) {
3692
+ var xhr = callDetails[_DYN_INST ];
3693
+ var ajaxData = _getAjaxData(xhr, _ajaxDataId);
3694
+ if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE ]) {
3639
3695
  _createMarkId("xhr", ajaxData);
3640
3696
  ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
3641
3697
  _self[_DYN_INCLUDE_CORRELATION_2 ](ajaxData, undefined, undefined, xhr);
@@ -3647,11 +3703,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
3647
3703
  });
3648
3704
  _hookProto(XMLHttpRequest, "abort", {
3649
3705
  ns: _evtNamespace,
3650
- req: function (args) {
3706
+ req: function (callDetails) {
3651
3707
  if (!_disableAjaxTracking) {
3652
- var xhr = args[_DYN_INST ];
3653
- var ajaxData = xhr[strAjaxData];
3654
- if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE ]) {
3708
+ var xhr = callDetails[_DYN_INST ];
3709
+ var ajaxData = _getAjaxData(xhr, _ajaxDataId);
3710
+ if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE ]) {
3655
3711
  ajaxData[_DYN_ABORTED ] = 1;
3656
3712
  ajaxData.xhrMonitoringState[_DYN_ABORT_DONE ] = true;
3657
3713
  }
@@ -3661,11 +3717,17 @@ var AjaxMonitor = /** @class */ (function (_super) {
3661
3717
  });
3662
3718
  _hookProto(XMLHttpRequest, "setRequestHeader", {
3663
3719
  ns: _evtNamespace,
3664
- req: function (args, header, value) {
3665
- if (!_disableAjaxTracking && _enableRequestHeaderTracking) {
3666
- var xhr = args[_DYN_INST ];
3667
- if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {
3668
- xhr[strAjaxData][_DYN_REQUEST_HEADERS ][header] = value;
3720
+ req: function (callDetails, header, value) {
3721
+ if (!_disableAjaxTracking) {
3722
+ var xhr = callDetails[_DYN_INST ];
3723
+ var ajaxData = _getAjaxData(xhr, _ajaxDataId);
3724
+ if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {
3725
+ _addSharedXhrHeaders(xhr, header, value);
3726
+ if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {
3727
+ if (ajaxData) {
3728
+ ajaxData[_DYN_REQUEST_HEADERS ][header] = value;
3729
+ }
3730
+ }
3669
3731
  }
3670
3732
  }
3671
3733
  },
@@ -3719,11 +3781,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
3719
3781
  }
3720
3782
  return isDisabled;
3721
3783
  }
3722
- function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {
3784
+ function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {
3723
3785
  var ajaxValidation = true;
3724
3786
  var initialized = _xhrInitialized;
3725
3787
  if (!isNullOrUndefined(xhr)) {
3726
- ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);
3788
+ ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);
3727
3789
  }
3728
3790
  return initialized
3729
3791
  && ajaxValidation;
@@ -3743,7 +3805,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
3743
3805
  var distributedTraceCtx = _getDistributedTraceCtx();
3744
3806
  var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID ]()) || generateW3CId();
3745
3807
  var spanID = generateW3CId().substr(0, 16);
3746
- var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());
3808
+ var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });
3809
+ var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});
3810
+ var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));
3747
3811
  ajaxData[_DYN_TRACE_FLAGS ] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS ]();
3748
3812
  ajaxData[_DYN_METHOD ] = method;
3749
3813
  ajaxData[_DYN_REQUEST_URL ] = url;
@@ -3751,12 +3815,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
3751
3815
  ajaxData[_DYN_REQUEST_HEADERS ] = {};
3752
3816
  ajaxData.async = async;
3753
3817
  ajaxData[_DYN_ERROR_STATUS_TEXT ] = _enableAjaxErrorStatusText;
3754
- xhr[strAjaxData] = ajaxData;
3818
+ return ajaxData;
3755
3819
  }
3756
- function _attachToOnReadyStateChange(xhr) {
3757
- xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE14 ] = eventOn(xhr, "readystatechange", function () {
3820
+ function _attachToOnReadyStateChange(xhr, ajaxData) {
3821
+ ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE14 ] = eventOn(xhr, "readystatechange", function () {
3758
3822
  try {
3759
- if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {
3823
+ if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {
3760
3824
  _onAjaxComplete(xhr);
3761
3825
  }
3762
3826
  }
@@ -3764,7 +3828,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
3764
3828
  var exceptionText = dumpObj(e);
3765
3829
  if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE ](), "c00c023f") === -1) {
3766
3830
  _throwInternalCritical(_self, 16 , ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, {
3767
- ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),
3831
+ ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
3768
3832
  exception: exceptionText
3769
3833
  });
3770
3834
  }
@@ -3783,12 +3847,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
3783
3847
  return null;
3784
3848
  }
3785
3849
  function _onAjaxComplete(xhr) {
3786
- var ajaxData = xhr[strAjaxData];
3850
+ var ajaxData = _getAjaxData(xhr, _ajaxDataId);
3787
3851
  ajaxData[_DYN_RESPONSE_FINISHED_TI15 ] = dateTimeUtilsNow();
3788
3852
  ajaxData[_DYN_STATUS ] = xhr[_DYN_STATUS ];
3789
3853
  function _reportXhrError(e, failedProps) {
3790
3854
  var errorProps = failedProps || {};
3791
- errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr);
3855
+ errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);
3792
3856
  if (e) {
3793
3857
  errorProps["exception"] = dumpObj(e);
3794
3858
  }
@@ -3848,7 +3912,11 @@ var AjaxMonitor = /** @class */ (function (_super) {
3848
3912
  }
3849
3913
  finally {
3850
3914
  try {
3851
- xhr[strAjaxData] = null;
3915
+ var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });
3916
+ var ajaxDataCntr = (xhrRequestData.i || {});
3917
+ if (ajaxDataCntr[_ajaxDataId]) {
3918
+ ajaxDataCntr[_ajaxDataId] = null;
3919
+ }
3852
3920
  }
3853
3921
  catch (e) {
3854
3922
  }
@@ -3870,7 +3938,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
3870
3938
  }
3871
3939
  catch (e) {
3872
3940
  _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, {
3873
- ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),
3941
+ ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
3874
3942
  exception: dumpObj(e)
3875
3943
  });
3876
3944
  }