@microsoft/applicationinsights-dependencies-js 3.0.0-beta.2208-19 → 3.0.0-beta.2209-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 (38) hide show
  1. package/browser/applicationinsights-dependencies-js.integrity.json +9 -9
  2. package/browser/applicationinsights-dependencies-js.js +157 -103
  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 +671 -34
  7. package/dist/applicationinsights-dependencies-js.api.md +63 -9
  8. package/dist/applicationinsights-dependencies-js.d.ts +73 -8
  9. package/dist/applicationinsights-dependencies-js.js +157 -103
  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 +75 -10
  14. package/dist-esm/DependencyInitializer.js +6 -0
  15. package/dist-esm/DependencyInitializer.js.map +1 -0
  16. package/dist-esm/DependencyListener.js +1 -1
  17. package/dist-esm/InternalConstants.js +1 -1
  18. package/dist-esm/__DynamicConstants.js +6 -6
  19. package/dist-esm/__DynamicConstants.js.map +1 -1
  20. package/dist-esm/ajax.js +153 -98
  21. package/dist-esm/ajax.js.map +1 -1
  22. package/dist-esm/ajaxRecord.js +1 -1
  23. package/dist-esm/ajaxUtils.js +1 -1
  24. package/dist-esm/applicationinsights-dependencies-js.js +1 -1
  25. package/package.json +3 -3
  26. package/src/DependencyInitializer.ts +44 -0
  27. package/src/DependencyListener.ts +13 -3
  28. package/src/__DynamicConstants.ts +5 -5
  29. package/src/ajax.ts +183 -106
  30. package/src/ajaxRecord.ts +5 -0
  31. package/src/applicationinsights-dependencies-js.ts +5 -1
  32. package/types/DependencyInitializer.d.ts +41 -0
  33. package/types/DependencyListener.d.ts +14 -3
  34. package/types/__DynamicConstants.d.ts +4 -4
  35. package/types/ajax.d.ts +18 -5
  36. package/types/ajaxRecord.d.ts +6 -0
  37. package/types/applicationinsights-dependencies-js.d.ts +2 -0
  38. package/types/tsdoc-metadata.json +1 -1
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-dependencies-js",
3
- "version": "3.0.0-beta.2208-19",
3
+ "version": "3.0.0-beta.2209-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-YBPmm/CG68izP5xHmpWgmaoNJO5iQHUnRUTAHd32ysc= sha384-pRYsRXGuN03RS/NLme4xsNnOlQbvlp0wCADQMoKgnTZAr8aaneR6qEemIGSvSE9l sha512-adrkMlKjfa93uOrlhanXbrSl5RRf1zwyNOACQ6o+ZRgXs72bQ8jy9D2AYHGvO1y4UQx9V84U3ayNu/o1QErblQ==",
8
+ "integrity": "sha256-78Mti9VrFrTGUcyLMjlA3ilQc0FXsSk6B6gYV1a08zA= sha384-mlDdyz3l8+pQQY+AH6m2UdYV/UjWL+fC7uMctJpCWJ9coIt9rppurnpheiyN0KFn sha512-e+DnvdW4Yjc3s3QY6ioSwv/TXNuSqPyi2APKNHdkhuSdbKnO8pYt0vAdylCHqsonNoPzLWUDDSSicFMNNS2QRg==",
9
9
  "hashes": {
10
- "sha256": "YBPmm/CG68izP5xHmpWgmaoNJO5iQHUnRUTAHd32ysc=",
11
- "sha384": "pRYsRXGuN03RS/NLme4xsNnOlQbvlp0wCADQMoKgnTZAr8aaneR6qEemIGSvSE9l",
12
- "sha512": "adrkMlKjfa93uOrlhanXbrSl5RRf1zwyNOACQ6o+ZRgXs72bQ8jy9D2AYHGvO1y4UQx9V84U3ayNu/o1QErblQ=="
10
+ "sha256": "78Mti9VrFrTGUcyLMjlA3ilQc0FXsSk6B6gYV1a08zA=",
11
+ "sha384": "mlDdyz3l8+pQQY+AH6m2UdYV/UjWL+fC7uMctJpCWJ9coIt9rppurnpheiyN0KFn",
12
+ "sha512": "e+DnvdW4Yjc3s3QY6ioSwv/TXNuSqPyi2APKNHdkhuSdbKnO8pYt0vAdylCHqsonNoPzLWUDDSSicFMNNS2QRg=="
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-evXrS9frP1yLL9nQG5VnTm+qVHwrKAFT+eOrE0xgwTU= sha384-y3WGgWESqjllGa2yA7Lg09mEmPp0GLXUlN3BCoR+VQTHOQI5o8kLWRzGi1M4SEHn sha512-kkgdV/2BIvjbGnViQnLsGi6uv5QHXBn3rJI+D+WVlJWoUIEgwxPC1fbFN6jr35xpZo11kiERWhdxw7yHpYWOUQ==",
18
+ "integrity": "sha256-NaVyZHkiE1xAfHP9EMiUlXFPmU6/SsLEmJqgbPoBvQY= sha384-onfa+yjnCj9BKgvZJiFC4wWKO9pO7rYfF/UdoQnsxe++ebVUyllHHSAHfzTeGM1/ sha512-58o6SOPr4B/lnNw2XsQTOX15oPz6vxa58mnqDq/WmZrUKpSmcCpkh92RAXYU8QUD/gbL0IuGZN+bNq2VMggERQ==",
19
19
  "hashes": {
20
- "sha256": "evXrS9frP1yLL9nQG5VnTm+qVHwrKAFT+eOrE0xgwTU=",
21
- "sha384": "y3WGgWESqjllGa2yA7Lg09mEmPp0GLXUlN3BCoR+VQTHOQI5o8kLWRzGi1M4SEHn",
22
- "sha512": "kkgdV/2BIvjbGnViQnLsGi6uv5QHXBn3rJI+D+WVlJWoUIEgwxPC1fbFN6jr35xpZo11kiERWhdxw7yHpYWOUQ=="
20
+ "sha256": "NaVyZHkiE1xAfHP9EMiUlXFPmU6/SsLEmJqgbPoBvQY=",
21
+ "sha384": "onfa+yjnCj9BKgvZJiFC4wWKO9pO7rYfF/UdoQnsxe++ebVUyllHHSAHfzTeGM1/",
22
+ "sha512": "58o6SOPr4B/lnNw2XsQTOX15oPz6vxa58mnqDq/WmZrUKpSmcCpkh92RAXYU8QUD/gbL0IuGZN+bNq2VMggERQ=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.0-beta.2208-19
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.0-beta.2209-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -455,14 +455,21 @@
455
455
  return _hasNavigator ? navigator : getInst(NAVIGATOR);
456
456
  }
457
457
 
458
+ var objGetOwnPropertyDescriptor = ObjClass.getOwnPropertyDescriptor;
459
+
458
460
  function objHasOwnProperty(obj, prop) {
459
461
  return obj && ObjProto[HAS_OWN_PROPERTY].call(obj, prop);
460
462
  }
461
463
 
464
+ var objHasOwn = ObjClass["hasOwn"] || polyObjHasOwn;
465
+ function polyObjHasOwn(obj, prop) {
466
+ return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);
467
+ }
468
+
462
469
  function objForEachKey(theObject, callbackfn, thisArg) {
463
470
  if (theObject && isObject(theObject)) {
464
471
  for (var prop in theObject) {
465
- if (objHasOwnProperty(theObject, prop)) {
472
+ if (objHasOwn(theObject, prop)) {
466
473
  if (callbackfn.call(thisArg || theObject, prop, theObject[prop]) === -1) {
467
474
  break;
468
475
  }
@@ -1314,7 +1321,7 @@
1314
1321
  }
1315
1322
 
1316
1323
  var _objDefineProperty = ObjDefineProperty;
1317
- var version = "3.0.0-beta.2208-19";
1324
+ var version = "3.0.0-beta.2209-03";
1318
1325
  var instanceName = "." + newId(6);
1319
1326
  var _dataUid = 0;
1320
1327
  function _createAccessor(target, prop, value) {
@@ -2791,17 +2798,17 @@
2791
2798
  var _DYN_TRACE_ID = "traceID";
2792
2799
  var _DYN_SPAN_ID = "spanID";
2793
2800
  var _DYN_TRACE_FLAGS = "traceFlags";
2794
- var _DYN_CORE = "core";
2801
+ var _DYN_CONTEXT = "context";
2795
2802
  var _DYN_TRACE_ID0 = "traceId";
2796
2803
  var _DYN_SPAN_ID1 = "spanId";
2797
- var _DYN_GET_DEFAULT_CONFIG = "getDefaultConfig";
2798
- var _DYN_TRACK_DEPENDENCY_DAT2 = "trackDependencyDataInternal";
2799
- var _DYN_INCLUDE_CORRELATION_3 = "includeCorrelationHeaders";
2804
+ var _DYN_CORE = "core";
2805
+ var _DYN_INCLUDE_CORRELATION_2 = "includeCorrelationHeaders";
2800
2806
  var _DYN_GET_ABSOLUTE_URL = "getAbsoluteUrl";
2801
2807
  var _DYN_HEADERS = "headers";
2802
2808
  var _DYN_REQUEST_HEADERS = "requestHeaders";
2803
2809
  var _DYN_APP_ID = "appId";
2804
2810
  var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
2811
+ var _DYN_TRACK_DEPENDENCY_DAT3 = "trackDependencyDataInternal";
2805
2812
  var _DYN_DISTRIBUTED_TRACING_4 = "distributedTracingMode";
2806
2813
  var _DYN_START_TIME = "startTime";
2807
2814
  var _DYN_TO_LOWER_CASE = "toLowerCase";
@@ -3082,6 +3089,13 @@
3082
3089
  var strDiagLog = "diagLog";
3083
3090
  var strAjaxData = "ajaxData";
3084
3091
  var strFetch = "fetch";
3092
+ var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
3093
+ var ERROR_PREFIX = ", monitoring data for this ajax call ";
3094
+ var ERROR_POSTFIX = ERROR_PREFIX + "may be incorrect.";
3095
+ var ERROR_NOT_SENT = ERROR_PREFIX + "won't be sent.";
3096
+ var CORRELATION_HEADER_ERROR = "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.";
3097
+ var CUSTOM_REQUEST_CONTEXT_ERROR = "Failed to add custom defined request context as configured call back may missing a null check.";
3098
+ var FAILED_TO_CALCULATE_DURATION_ERROR = "Failed to calculate the duration of the ";
3085
3099
  var _markCount = 0;
3086
3100
  function _supportsFetch() {
3087
3101
  var _global = getGlobal$1();
@@ -3125,9 +3139,7 @@
3125
3139
  function _getFailedAjaxDiagnosticsMessage(xhr) {
3126
3140
  var result = "";
3127
3141
  try {
3128
- if (!isNullOrUndefined(xhr) &&
3129
- !isNullOrUndefined(xhr[strAjaxData]) &&
3130
- !isNullOrUndefined(xhr[strAjaxData][_DYN_REQUEST_URL ])) {
3142
+ if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL ]) {
3131
3143
  result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL ] + "')";
3132
3144
  }
3133
3145
  }
@@ -3155,6 +3167,37 @@
3155
3167
  }
3156
3168
  return -1;
3157
3169
  }
3170
+ function _addHandler(container, id, theFunc) {
3171
+ var theHandler = {
3172
+ id: id,
3173
+ fn: theFunc
3174
+ };
3175
+ container.push(theHandler);
3176
+ return {
3177
+ remove: function () {
3178
+ arrForEach(container, function (initializer, idx) {
3179
+ if (initializer.id === theHandler.id) {
3180
+ container.splice(idx, 1);
3181
+ return -1;
3182
+ }
3183
+ });
3184
+ }
3185
+ };
3186
+ }
3187
+ function _processDependencyContainer(core, container, details, message) {
3188
+ var result = true;
3189
+ arrForEach(container, function (theFunc, idx) {
3190
+ try {
3191
+ if (theFunc.fn.call(null, details) === false) {
3192
+ result = false;
3193
+ }
3194
+ }
3195
+ catch (e) {
3196
+ _throwInternal(core && core.logger, 1 , 64 , "Dependency " + message + " [#" + idx + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
3197
+ }
3198
+ });
3199
+ return result;
3200
+ }
3158
3201
  function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
3159
3202
  var _a;
3160
3203
  var initializersCount = listeners[_DYN_LENGTH ];
@@ -3167,30 +3210,62 @@
3167
3210
  _a.traceId = ajaxData[_DYN_TRACE_ID ],
3168
3211
  _a.spanId = ajaxData[_DYN_SPAN_ID ],
3169
3212
  _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS ],
3213
+ _a.context = ajaxData[_DYN_CONTEXT ] || {},
3170
3214
  _a);
3171
- for (var i = 0; i < initializersCount; ++i) {
3172
- var dependencyListener = listeners[i];
3173
- if (dependencyListener && dependencyListener.fn) {
3174
- try {
3175
- dependencyListener.fn.call(null, details);
3176
- }
3177
- catch (e) {
3178
- var core_1 = details[_DYN_CORE ];
3179
- _throwInternal(core_1 && core_1.logger, 1 , 64 , "Dependency listener [#" + i + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
3180
- }
3181
- }
3182
- }
3215
+ _processDependencyContainer(core, listeners, details, "listener");
3183
3216
  ajaxData[_DYN_TRACE_ID ] = details[_DYN_TRACE_ID0 ];
3184
3217
  ajaxData[_DYN_SPAN_ID ] = details[_DYN_SPAN_ID1 ];
3185
3218
  ajaxData[_DYN_TRACE_FLAGS ] = details[_DYN_TRACE_FLAGS ];
3219
+ ajaxData[_DYN_CONTEXT ] = details[_DYN_CONTEXT ];
3186
3220
  }
3187
3221
  }
3222
+ var BLOB_CORE = "*.blob.core.";
3188
3223
  var DfltAjaxCorrelationHeaderExDomains = objDeepFreeze([
3189
- "*.blob.core.windows.net",
3190
- "*.blob.core.chinacloudapi.cn",
3191
- "*.blob.core.cloudapi.de",
3192
- "*.blob.core.usgovcloudapi.net"
3224
+ BLOB_CORE + "windows.net",
3225
+ BLOB_CORE + "chinacloudapi.cn",
3226
+ BLOB_CORE + "cloudapi.de",
3227
+ BLOB_CORE + "usgovcloudapi.net"
3193
3228
  ]);
3229
+ var _internalExcludeEndpoints = [
3230
+ /https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i
3231
+ ];
3232
+ function _getDefaultConfig() {
3233
+ var _a;
3234
+ var config = (_a = {},
3235
+ _a[_DYN_MAX_AJAX_CALLS_PER_V8 ] = 500,
3236
+ _a[_DYN_DISABLE_AJAX_TRACKIN11 ] = false,
3237
+ _a[_DYN_DISABLE_FETCH_TRACKI12 ] = false,
3238
+ _a[_DYN_EXCLUDE_REQUEST_FROM10 ] = undefined,
3239
+ _a.disableCorrelationHeaders = false,
3240
+ _a.distributedTracingMode = 1 ,
3241
+ _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
3242
+ _a.correlationHeaderDomains = undefined,
3243
+ _a.correlationHeaderExcludePatterns = undefined,
3244
+ _a[_DYN_APP_ID ] = undefined,
3245
+ _a.enableCorsCorrelation = false,
3246
+ _a[_DYN_ENABLE_REQUEST_HEADE5 ] = false,
3247
+ _a[_DYN_ENABLE_RESPONSE_HEAD9 ] = false,
3248
+ _a[_DYN_ENABLE_AJAX_ERROR_ST6 ] = false,
3249
+ _a[_DYN_ENABLE_AJAX_PERF_TRA7 ] = false,
3250
+ _a.maxAjaxPerfLookupAttempts = 3,
3251
+ _a[_DYN_AJAX_PERF_LOOKUP_DEL16 ] = 25,
3252
+ _a.ignoreHeaders = [
3253
+ "Authorization",
3254
+ "X-API-Key",
3255
+ "WWW-Authenticate"
3256
+ ],
3257
+ _a[_DYN_ADD_REQUEST_CONTEXT ] = undefined,
3258
+ _a.addIntEndpoints = true,
3259
+ _a);
3260
+ return config;
3261
+ }
3262
+ function _getEmptyConfig() {
3263
+ var emptyConfig = _getDefaultConfig();
3264
+ objForEachKey(emptyConfig, function (value) {
3265
+ emptyConfig[value] = undefined;
3266
+ });
3267
+ return emptyConfig;
3268
+ }
3194
3269
  var AjaxMonitor = /** @class */ (function (_super) {
3195
3270
  __extendsFn(AjaxMonitor, _super);
3196
3271
  function AjaxMonitor() {
@@ -3217,8 +3292,9 @@
3217
3292
  var _excludeRequestFromAutoTrackingPatterns;
3218
3293
  var _addRequestContext;
3219
3294
  var _evtNamespace;
3220
- var _dependencyListenerId;
3295
+ var _dependencyHandlerId;
3221
3296
  var _dependencyListeners;
3297
+ var _dependencyInitializers;
3222
3298
  dynamicProto(AjaxMonitor, _this, function (_self, _base) {
3223
3299
  var _addHook = _base._addHook;
3224
3300
  _initDefaults();
@@ -3236,9 +3312,9 @@
3236
3312
  _initDefaults();
3237
3313
  };
3238
3314
  _self.trackDependencyData = function (dependency, properties) {
3239
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, properties);
3315
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], null, dependency, properties);
3240
3316
  };
3241
- _self[_DYN_INCLUDE_CORRELATION_3 ] = function (ajaxData, input, init, xhr) {
3317
+ _self[_DYN_INCLUDE_CORRELATION_2 ] = function (ajaxData, input, init, xhr) {
3242
3318
  var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
3243
3319
  _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE ], ajaxData, xhr, input, init);
3244
3320
  if (input) {
@@ -3308,7 +3384,7 @@
3308
3384
  }
3309
3385
  return undefined;
3310
3386
  };
3311
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ] = function (dependency, properties, systemProperties) {
3387
+ _self[_DYN_TRACK_DEPENDENCY_DAT3 ] = function (dependency, properties, systemProperties) {
3312
3388
  if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {
3313
3389
  if ((_config[_DYN_DISTRIBUTED_TRACING_4 ] === 2
3314
3390
  || _config[_DYN_DISTRIBUTED_TRACING_4 ] === 1 )
@@ -3327,22 +3403,10 @@
3327
3403
  ++_trackAjaxAttempts;
3328
3404
  };
3329
3405
  _self.addDependencyListener = function (dependencyListener) {
3330
- var theInitializer = {
3331
- id: _dependencyListenerId++,
3332
- fn: dependencyListener
3333
- };
3334
- _dependencyListeners.push(theInitializer);
3335
- var handler = {
3336
- remove: function () {
3337
- arrForEach(_dependencyListeners, function (initializer, idx) {
3338
- if (initializer.id === theInitializer.id) {
3339
- _dependencyListeners.splice(idx, 1);
3340
- return -1;
3341
- }
3342
- });
3343
- }
3344
- };
3345
- return handler;
3406
+ return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);
3407
+ };
3408
+ _self.addDependencyInitializer = function (dependencyInitializer) {
3409
+ return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);
3346
3410
  };
3347
3411
  function _initDefaults() {
3348
3412
  var location = getLocation();
@@ -3366,13 +3430,14 @@
3366
3430
  _excludeRequestFromAutoTrackingPatterns = null;
3367
3431
  _addRequestContext = null;
3368
3432
  _evtNamespace = null;
3369
- _dependencyListenerId = 0;
3433
+ _dependencyHandlerId = 0;
3370
3434
  _dependencyListeners = [];
3435
+ _dependencyInitializers = [];
3371
3436
  }
3372
3437
  function _populateDefaults(config) {
3373
3438
  var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE ]);
3374
- _config = AjaxMonitor.getEmptyConfig();
3375
- var defaultConfig = AjaxMonitor[_DYN_GET_DEFAULT_CONFIG ]();
3439
+ _config = _getEmptyConfig();
3440
+ var defaultConfig = _getDefaultConfig();
3376
3441
  objForEachKey(defaultConfig, function (field, value) {
3377
3442
  _config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);
3378
3443
  });
@@ -3382,7 +3447,7 @@
3382
3447
  _enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA7 ];
3383
3448
  _maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V8 ];
3384
3449
  _enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD9 ];
3385
- _excludeRequestFromAutoTrackingPatterns = _config[_DYN_EXCLUDE_REQUEST_FROM10 ];
3450
+ _excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM10 ] || [], _config.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
3386
3451
  _addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT ];
3387
3452
  _isUsingAIHeaders = distributedTracingMode === 0 || distributedTracingMode === 1 ;
3388
3453
  _isUsingW3CHeaders = distributedTracingMode === 1 || distributedTracingMode === 2 ;
@@ -3401,7 +3466,7 @@
3401
3466
  function _populateContext() {
3402
3467
  var propExt = _self[_DYN_CORE ].getPlugin(PropertiesPluginIdentifier);
3403
3468
  if (propExt) {
3404
- _context = propExt.plugin.context;
3469
+ _context = propExt.plugin[_DYN_CONTEXT ];
3405
3470
  }
3406
3471
  }
3407
3472
  function _canIncludeHeaders(header) {
@@ -3433,7 +3498,7 @@
3433
3498
  !(isPolyfill && _xhrInitialized)) {
3434
3499
  var ctx = callDetails.ctx();
3435
3500
  fetchData = _createFetchRecord(input, init);
3436
- var newInit = _self[_DYN_INCLUDE_CORRELATION_3 ](fetchData, input, init);
3501
+ var newInit = _self[_DYN_INCLUDE_CORRELATION_2 ](fetchData, input, init);
3437
3502
  if (newInit !== init) {
3438
3503
  callDetails.set(1, newInit);
3439
3504
  }
@@ -3473,7 +3538,7 @@
3473
3538
  }
3474
3539
  }
3475
3540
  },
3476
- hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.")
3541
+ hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor Window.fetch" + ERROR_POSTFIX)
3477
3542
  }));
3478
3543
  _fetchInitialized = true;
3479
3544
  }
@@ -3508,7 +3573,7 @@
3508
3573
  }
3509
3574
  }
3510
3575
  },
3511
- hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.")
3576
+ hkErr: _createErrorCallbackFunc(_self, 15 , ERROR_HEADER + ".open" + ERROR_POSTFIX)
3512
3577
  });
3513
3578
  _hookProto(XMLHttpRequest, "send", {
3514
3579
  ns: _evtNamespace,
@@ -3519,12 +3584,12 @@
3519
3584
  if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE ]) {
3520
3585
  _createMarkId("xhr", ajaxData);
3521
3586
  ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
3522
- _self[_DYN_INCLUDE_CORRELATION_3 ](ajaxData, undefined, undefined, xhr);
3587
+ _self[_DYN_INCLUDE_CORRELATION_2 ](ajaxData, undefined, undefined, xhr);
3523
3588
  ajaxData.xhrMonitoringState[_DYN_SEND_DONE ] = true;
3524
3589
  }
3525
3590
  }
3526
3591
  },
3527
- hkErr: _createErrorCallbackFunc(_self, 17 , "Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.")
3592
+ hkErr: _createErrorCallbackFunc(_self, 17 , ERROR_HEADER + ERROR_POSTFIX)
3528
3593
  });
3529
3594
  _hookProto(XMLHttpRequest, "abort", {
3530
3595
  ns: _evtNamespace,
@@ -3538,7 +3603,7 @@
3538
3603
  }
3539
3604
  }
3540
3605
  },
3541
- hkErr: _createErrorCallbackFunc(_self, 13 , "Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.")
3606
+ hkErr: _createErrorCallbackFunc(_self, 13 , ERROR_HEADER + ".abort" + ERROR_POSTFIX)
3542
3607
  });
3543
3608
  _hookProto(XMLHttpRequest, "setRequestHeader", {
3544
3609
  ns: _evtNamespace,
@@ -3550,7 +3615,7 @@
3550
3615
  }
3551
3616
  }
3552
3617
  },
3553
- hkErr: _createErrorCallbackFunc(_self, 71 , "Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.")
3618
+ hkErr: _createErrorCallbackFunc(_self, 71 , ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
3554
3619
  });
3555
3620
  _xhrInitialized = true;
3556
3621
  }
@@ -3645,7 +3710,7 @@
3645
3710
  catch (e) {
3646
3711
  var exceptionText = dumpObj(e);
3647
3712
  if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE ](), "c00c023f") === -1) {
3648
- _throwInternalCritical(_self, 16 , "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", (_a = {},
3713
+ _throwInternalCritical(_self, 16 , ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
3649
3714
  _a[_DYN_AJAX_DIAGNOSTICS_MES17 ] = _getFailedAjaxDiagnosticsMessage(xhr),
3650
3715
  _a.exception = exceptionText,
3651
3716
  _a));
@@ -3674,7 +3739,7 @@
3674
3739
  if (e) {
3675
3740
  errorProps["exception"] = dumpObj(e);
3676
3741
  }
3677
- _throwInternalWarning(_self, 14 , "Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.", errorProps);
3742
+ _throwInternalWarning(_self, 14 , FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
3678
3743
  }
3679
3744
  _findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
3680
3745
  try {
@@ -3714,13 +3779,14 @@
3714
3779
  }
3715
3780
  }
3716
3781
  catch (e) {
3717
- _throwInternalWarning(_self, 104 , "Failed to add custom defined request context as configured call back may missing a null check.");
3782
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
3718
3783
  }
3719
3784
  if (dependency) {
3720
3785
  if (properties !== undefined) {
3721
3786
  dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
3722
3787
  }
3723
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, null, ajaxData[_DYN_GET_PART_APROPS ]());
3788
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
3789
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
3724
3790
  }
3725
3791
  else {
3726
3792
  _reportXhrError(null, {
@@ -3753,7 +3819,7 @@
3753
3819
  }
3754
3820
  }
3755
3821
  catch (e) {
3756
- _throwInternalWarning(_self, 18 , "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", (_a = {},
3822
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, (_a = {},
3757
3823
  _a[_DYN_AJAX_DIAGNOSTICS_MES17 ] = _getFailedAjaxDiagnosticsMessage(xhr),
3758
3824
  _a.exception = dumpObj(e),
3759
3825
  _a));
@@ -3887,7 +3953,7 @@
3887
3953
  if (e) {
3888
3954
  errorProps["exception"] = dumpObj(e);
3889
3955
  }
3890
- _throwInternalWarning(_self, msgId, "Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.", errorProps);
3956
+ _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
3891
3957
  }
3892
3958
  ajaxData[_DYN_RESPONSE_FINISHED_TI14 ] = dateTimeUtilsNow();
3893
3959
  ajaxData[_DYN_STATUS ] = status;
@@ -3900,13 +3966,14 @@
3900
3966
  }
3901
3967
  }
3902
3968
  catch (e) {
3903
- _throwInternalWarning(_self, 104 , "Failed to add custom defined request context as configured call back may missing a null check.");
3969
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
3904
3970
  }
3905
3971
  if (dependency) {
3906
3972
  if (properties !== undefined) {
3907
3973
  dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
3908
3974
  }
3909
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, null, ajaxData[_DYN_GET_PART_APROPS ]());
3975
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
3976
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
3910
3977
  }
3911
3978
  else {
3912
3979
  _reportFetchError(14 , null, {
@@ -3925,56 +3992,43 @@
3925
3992
  return correlationIdGetCorrelationContext(responseHeader);
3926
3993
  }
3927
3994
  catch (e) {
3928
- _throwInternalWarning(_self, 18 , "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", {
3995
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, {
3929
3996
  fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),
3930
3997
  exception: dumpObj(e)
3931
3998
  });
3932
3999
  }
3933
4000
  }
3934
4001
  }
4002
+ function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
4003
+ var _a;
4004
+ var result = true;
4005
+ var initializersCount = initializers[_DYN_LENGTH ];
4006
+ if (initializersCount > 0) {
4007
+ var details = (_a = {
4008
+ item: dependency
4009
+ },
4010
+ _a[STR_PROPERTIES ] = properties,
4011
+ _a.sysProperties = systemProperties,
4012
+ _a.context = ajaxData ? ajaxData[_DYN_CONTEXT ] : null,
4013
+ _a);
4014
+ result = _processDependencyContainer(core, initializers, details, "initializer");
4015
+ }
4016
+ if (result) {
4017
+ _self[_DYN_TRACK_DEPENDENCY_DAT3 ](dependency, properties, systemProperties);
4018
+ }
4019
+ }
3935
4020
  });
3936
4021
  return _this;
3937
4022
  }
3938
- AjaxMonitor.getDefaultConfig = function () {
3939
- var _a;
3940
- var config = (_a = {},
3941
- _a[_DYN_MAX_AJAX_CALLS_PER_V8 ] = 500,
3942
- _a[_DYN_DISABLE_AJAX_TRACKIN11 ] = false,
3943
- _a[_DYN_DISABLE_FETCH_TRACKI12 ] = false,
3944
- _a[_DYN_EXCLUDE_REQUEST_FROM10 ] = undefined,
3945
- _a.disableCorrelationHeaders = false,
3946
- _a.distributedTracingMode = 1 ,
3947
- _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
3948
- _a.correlationHeaderDomains = undefined,
3949
- _a.correlationHeaderExcludePatterns = undefined,
3950
- _a[_DYN_APP_ID ] = undefined,
3951
- _a.enableCorsCorrelation = false,
3952
- _a[_DYN_ENABLE_REQUEST_HEADE5 ] = false,
3953
- _a[_DYN_ENABLE_RESPONSE_HEAD9 ] = false,
3954
- _a[_DYN_ENABLE_AJAX_ERROR_ST6 ] = false,
3955
- _a[_DYN_ENABLE_AJAX_PERF_TRA7 ] = false,
3956
- _a.maxAjaxPerfLookupAttempts = 3,
3957
- _a[_DYN_AJAX_PERF_LOOKUP_DEL16 ] = 25,
3958
- _a.ignoreHeaders = [
3959
- "Authorization",
3960
- "X-API-Key",
3961
- "WWW-Authenticate"
3962
- ],
3963
- _a[_DYN_ADD_REQUEST_CONTEXT ] = undefined,
3964
- _a);
3965
- return config;
3966
- };
3967
- AjaxMonitor.getEmptyConfig = function () {
3968
- var emptyConfig = this[_DYN_GET_DEFAULT_CONFIG ]();
3969
- objForEachKey(emptyConfig, function (value) {
3970
- emptyConfig[value] = undefined;
3971
- });
3972
- return emptyConfig;
3973
- };
3974
4023
  AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
3975
4024
  this.processNext(item, itemCtx);
3976
4025
  };
4026
+ AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
4027
+ return null;
4028
+ };
3977
4029
  AjaxMonitor.identifier = "AjaxDependencyPlugin";
4030
+ AjaxMonitor.getDefaultConfig = _getDefaultConfig;
4031
+ AjaxMonitor.getEmptyConfig = _getEmptyConfig;
3978
4032
  return AjaxMonitor;
3979
4033
  }(BaseTelemetryPlugin));
3980
4034