@microsoft/applicationinsights-dependencies-js 2.8.7-nightly.2208-10 → 2.8.8-nightly.2209-01

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 +152 -105
  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 +152 -105
  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 +7 -7
  19. package/dist-esm/__DynamicConstants.js.map +1 -1
  20. package/dist-esm/ajax.js +155 -100
  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 +6 -6
  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 +5 -5
  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": "2.8.7-nightly.2208-10",
3
+ "version": "2.8.8-nightly.2209-01",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-dependencies-js.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-lbu/z3pJxY+or+0ZwMx8Rr40OZBfhjDTqDPr2amcv+w= sha384-pPM4TntGPsNq5BAJRtAKK6CEoGTrXbdNQQuGaH5Bk3HTKx6miEKWzZSQLvJMDBQ2 sha512-Pmc2MveuNc1nJTnULzUz7MtF+V52ztPRid9rn1wcLEf4oIZbpEbS4AIWizrec6956vBSoKfTYj8e1075MANmog==",
8
+ "integrity": "sha256-54y1PuiE9sTzvBlziGoismGAabrXko0w+mw+hjs+Oqg= sha384-Zx7zJEYgO/AKWcdgBPdWSKI3hWG503X0b+E+WKOWZc4krMiXT+Dds3kzQM0O8opT sha512-+hjxQjTClVlcFc8hqR9xbkSL1jzOMX1PBPbDf5i0/suk0PjZAmq3jZqa7FOuePhdAxZAl/jdlclB5Uqk7T2eaw==",
9
9
  "hashes": {
10
- "sha256": "lbu/z3pJxY+or+0ZwMx8Rr40OZBfhjDTqDPr2amcv+w=",
11
- "sha384": "pPM4TntGPsNq5BAJRtAKK6CEoGTrXbdNQQuGaH5Bk3HTKx6miEKWzZSQLvJMDBQ2",
12
- "sha512": "Pmc2MveuNc1nJTnULzUz7MtF+V52ztPRid9rn1wcLEf4oIZbpEbS4AIWizrec6956vBSoKfTYj8e1075MANmog=="
10
+ "sha256": "54y1PuiE9sTzvBlziGoismGAabrXko0w+mw+hjs+Oqg=",
11
+ "sha384": "Zx7zJEYgO/AKWcdgBPdWSKI3hWG503X0b+E+WKOWZc4krMiXT+Dds3kzQM0O8opT",
12
+ "sha512": "+hjxQjTClVlcFc8hqR9xbkSL1jzOMX1PBPbDf5i0/suk0PjZAmq3jZqa7FOuePhdAxZAl/jdlclB5Uqk7T2eaw=="
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-q8p2kYW7o62p6HwJArQRL7LOn8RW3imzWLAwgWX3DNk= sha384-tDnPxEz3v/10X29tbwy30/JHRQmG2Q39vPAoSc80uHPS6RvNy2XUgNqBu3kzUowq sha512-JjvGuilliF76BikxImD+q1XQC+sS0m0ycS406sXXBAGGjvw3io1ENEVsgVhLhijxVfyl6Y5p5Xm/rdTQ98H+dg==",
18
+ "integrity": "sha256-njAL9dGuwPIKjOf2M2v1cVHWNDN5R3FqshjkAuXMwQU= sha384-C1eP8JoHhNqVMD4lbQlGvNegq2SeeGmeocxOJn/uR/ruxQeb0Kd6Z/sTQGK6Gm4L sha512-8YE27GUNDAk2FT7B9wBYa6Vs26r/Yz1RTUJouoR/bs/Ucf4q9I4T1rMRzIpBCFTjT8Rqlxy+Okg2p//FU/KTLA==",
19
19
  "hashes": {
20
- "sha256": "q8p2kYW7o62p6HwJArQRL7LOn8RW3imzWLAwgWX3DNk=",
21
- "sha384": "tDnPxEz3v/10X29tbwy30/JHRQmG2Q39vPAoSc80uHPS6RvNy2XUgNqBu3kzUowq",
22
- "sha512": "JjvGuilliF76BikxImD+q1XQC+sS0m0ycS406sXXBAGGjvw3io1ENEVsgVhLhijxVfyl6Y5p5Xm/rdTQ98H+dg=="
20
+ "sha256": "njAL9dGuwPIKjOf2M2v1cVHWNDN5R3FqshjkAuXMwQU=",
21
+ "sha384": "C1eP8JoHhNqVMD4lbQlGvNegq2SeeGmeocxOJn/uR/ruxQeb0Kd6Z/sTQGK6Gm4L",
22
+ "sha512": "8YE27GUNDAk2FT7B9wBYa6Vs26r/Yz1RTUJouoR/bs/Ucf4q9I4T1rMRzIpBCFTjT8Rqlxy+Okg2p//FU/KTLA=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.7-nightly.2208-10
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.8-nightly.2209-01
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -1256,7 +1256,7 @@
1256
1256
  }
1257
1257
 
1258
1258
  var _objDefineProperty = ObjDefineProperty;
1259
- var version = "2.8.7-nightly.2208-10";
1259
+ var version = "2.8.8-nightly.2209-01";
1260
1260
  var instanceName = "." + newId(6);
1261
1261
  var _dataUid = 0;
1262
1262
  function _createAccessor(target, prop, value) {
@@ -2786,18 +2786,18 @@
2786
2786
  var _DYN_TRACE_ID = "traceID";
2787
2787
  var _DYN_SPAN_ID = "spanID";
2788
2788
  var _DYN_TRACE_FLAGS = "traceFlags";
2789
- var _DYN_CORE = "core";
2789
+ var _DYN_CONTEXT = "context";
2790
2790
  var _DYN_TRACE_ID0 = "traceId";
2791
2791
  var _DYN_SPAN_ID1 = "spanId";
2792
- var _DYN_GET_DEFAULT_CONFIG = "getDefaultConfig";
2793
- var _DYN_TRACK_DEPENDENCY_DAT2 = "trackDependencyDataInternal";
2794
- var _DYN_INCLUDE_CORRELATION_3 = "includeCorrelationHeaders";
2795
- var _DYN_CAN_INCLUDE_CORRELAT4 = "canIncludeCorrelationHeader";
2792
+ var _DYN_CORE = "core";
2793
+ var _DYN_INCLUDE_CORRELATION_2 = "includeCorrelationHeaders";
2794
+ var _DYN_CAN_INCLUDE_CORRELAT3 = "canIncludeCorrelationHeader";
2796
2795
  var _DYN_GET_ABSOLUTE_URL = "getAbsoluteUrl";
2797
2796
  var _DYN_HEADERS = "headers";
2798
2797
  var _DYN_REQUEST_HEADERS = "requestHeaders";
2799
2798
  var _DYN_APP_ID = "appId";
2800
2799
  var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
2800
+ var _DYN_TRACK_DEPENDENCY_DAT4 = "trackDependencyDataInternal";
2801
2801
  var _DYN_DISTRIBUTED_TRACING_5 = "distributedTracingMode";
2802
2802
  var _DYN_START_TIME = "startTime";
2803
2803
  var _DYN_TO_LOWER_CASE = "toLowerCase";
@@ -3079,6 +3079,13 @@
3079
3079
  var strDiagLog = "diagLog";
3080
3080
  var strAjaxData = "ajaxData";
3081
3081
  var strFetch = "fetch";
3082
+ var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
3083
+ var ERROR_PREFIX = ", monitoring data for this ajax call ";
3084
+ var ERROR_POSTFIX = ERROR_PREFIX + "may be incorrect.";
3085
+ var ERROR_NOT_SENT = ERROR_PREFIX + "won't be sent.";
3086
+ var CORRELATION_HEADER_ERROR = "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.";
3087
+ var CUSTOM_REQUEST_CONTEXT_ERROR = "Failed to add custom defined request context as configured call back may missing a null check.";
3088
+ var FAILED_TO_CALCULATE_DURATION_ERROR = "Failed to calculate the duration of the ";
3082
3089
  var _markCount = 0;
3083
3090
  function _supportsFetch() {
3084
3091
  var _global = getGlobal();
@@ -3122,9 +3129,7 @@
3122
3129
  function _getFailedAjaxDiagnosticsMessage(xhr) {
3123
3130
  var result = "";
3124
3131
  try {
3125
- if (!isNullOrUndefined(xhr) &&
3126
- !isNullOrUndefined(xhr[strAjaxData]) &&
3127
- !isNullOrUndefined(xhr[strAjaxData][_DYN_REQUEST_URL ])) {
3132
+ if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL ]) {
3128
3133
  result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL ] + "')";
3129
3134
  }
3130
3135
  }
@@ -3152,6 +3157,37 @@
3152
3157
  }
3153
3158
  return -1;
3154
3159
  }
3160
+ function _addHandler(container, id, theFunc) {
3161
+ var theHandler = {
3162
+ id: id,
3163
+ fn: theFunc
3164
+ };
3165
+ container.push(theHandler);
3166
+ return {
3167
+ remove: function () {
3168
+ arrForEach(container, function (initializer, idx) {
3169
+ if (initializer.id === theHandler.id) {
3170
+ container.splice(idx, 1);
3171
+ return -1;
3172
+ }
3173
+ });
3174
+ }
3175
+ };
3176
+ }
3177
+ function _processDependencyContainer(core, container, details, message) {
3178
+ var result = true;
3179
+ arrForEach(container, function (theFunc, idx) {
3180
+ try {
3181
+ if (theFunc.fn.call(null, details) === false) {
3182
+ result = false;
3183
+ }
3184
+ }
3185
+ catch (e) {
3186
+ _throwInternal(core && core.logger, 1 , 64 , "Dependency " + message + " [#" + idx + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
3187
+ }
3188
+ });
3189
+ return result;
3190
+ }
3155
3191
  function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
3156
3192
  var _a;
3157
3193
  var initializersCount = listeners[_DYN_LENGTH ];
@@ -3164,30 +3200,62 @@
3164
3200
  _a.traceId = ajaxData[_DYN_TRACE_ID ],
3165
3201
  _a.spanId = ajaxData[_DYN_SPAN_ID ],
3166
3202
  _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS ],
3203
+ _a.context = ajaxData[_DYN_CONTEXT ] || {},
3167
3204
  _a);
3168
- for (var i = 0; i < initializersCount; ++i) {
3169
- var dependencyListener = listeners[i];
3170
- if (dependencyListener && dependencyListener.fn) {
3171
- try {
3172
- dependencyListener.fn.call(null, details);
3173
- }
3174
- catch (e) {
3175
- var core_1 = details[_DYN_CORE ];
3176
- _throwInternal(core_1 && core_1.logger, 1 , 64 , "Dependency listener [#" + i + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
3177
- }
3178
- }
3179
- }
3205
+ _processDependencyContainer(core, listeners, details, "listener");
3180
3206
  ajaxData[_DYN_TRACE_ID ] = details[_DYN_TRACE_ID0 ];
3181
3207
  ajaxData[_DYN_SPAN_ID ] = details[_DYN_SPAN_ID1 ];
3182
3208
  ajaxData[_DYN_TRACE_FLAGS ] = details[_DYN_TRACE_FLAGS ];
3209
+ ajaxData[_DYN_CONTEXT ] = details[_DYN_CONTEXT ];
3183
3210
  }
3184
3211
  }
3212
+ var BLOB_CORE = "*.blob.core.";
3185
3213
  var DfltAjaxCorrelationHeaderExDomains = deepFreeze([
3186
- "*.blob.core.windows.net",
3187
- "*.blob.core.chinacloudapi.cn",
3188
- "*.blob.core.cloudapi.de",
3189
- "*.blob.core.usgovcloudapi.net"
3214
+ BLOB_CORE + "windows.net",
3215
+ BLOB_CORE + "chinacloudapi.cn",
3216
+ BLOB_CORE + "cloudapi.de",
3217
+ BLOB_CORE + "usgovcloudapi.net"
3190
3218
  ]);
3219
+ var _internalExcludeEndpoints = [
3220
+ /https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i
3221
+ ];
3222
+ function _getDefaultConfig() {
3223
+ var _a;
3224
+ var config = (_a = {},
3225
+ _a[_DYN_MAX_AJAX_CALLS_PER_V9 ] = 500,
3226
+ _a[_DYN_DISABLE_AJAX_TRACKIN12 ] = false,
3227
+ _a[_DYN_DISABLE_FETCH_TRACKI13 ] = false,
3228
+ _a[_DYN_EXCLUDE_REQUEST_FROM11 ] = undefined,
3229
+ _a.disableCorrelationHeaders = false,
3230
+ _a.distributedTracingMode = 1 ,
3231
+ _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
3232
+ _a.correlationHeaderDomains = undefined,
3233
+ _a.correlationHeaderExcludePatterns = undefined,
3234
+ _a[_DYN_APP_ID ] = undefined,
3235
+ _a.enableCorsCorrelation = false,
3236
+ _a[_DYN_ENABLE_REQUEST_HEADE6 ] = false,
3237
+ _a[_DYN_ENABLE_RESPONSE_HEAD10 ] = false,
3238
+ _a[_DYN_ENABLE_AJAX_ERROR_ST7 ] = false,
3239
+ _a[_DYN_ENABLE_AJAX_PERF_TRA8 ] = false,
3240
+ _a.maxAjaxPerfLookupAttempts = 3,
3241
+ _a[_DYN_AJAX_PERF_LOOKUP_DEL18 ] = 25,
3242
+ _a.ignoreHeaders = [
3243
+ "Authorization",
3244
+ "X-API-Key",
3245
+ "WWW-Authenticate"
3246
+ ],
3247
+ _a[_DYN_ADD_REQUEST_CONTEXT ] = undefined,
3248
+ _a.addIntEndpoints = true,
3249
+ _a);
3250
+ return config;
3251
+ }
3252
+ function _getEmptyConfig() {
3253
+ var emptyConfig = _getDefaultConfig();
3254
+ objForEachKey(emptyConfig, function (value) {
3255
+ emptyConfig[value] = undefined;
3256
+ });
3257
+ return emptyConfig;
3258
+ }
3191
3259
  var AjaxMonitor = /** @class */ (function (_super) {
3192
3260
  __extendsFn(AjaxMonitor, _super);
3193
3261
  function AjaxMonitor() {
@@ -3214,8 +3282,9 @@
3214
3282
  var _excludeRequestFromAutoTrackingPatterns;
3215
3283
  var _addRequestContext;
3216
3284
  var _evtNamespace;
3217
- var _dependencyListenerId;
3285
+ var _dependencyHandlerId;
3218
3286
  var _dependencyListeners;
3287
+ var _dependencyInitializers;
3219
3288
  dynamicProto(AjaxMonitor, _this, function (_self, _base) {
3220
3289
  var _addHook = _base._addHook;
3221
3290
  _initDefaults();
@@ -3233,13 +3302,13 @@
3233
3302
  _initDefaults();
3234
3303
  };
3235
3304
  _self.trackDependencyData = function (dependency, properties) {
3236
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, properties);
3305
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], null, dependency, properties);
3237
3306
  };
3238
- _self[_DYN_INCLUDE_CORRELATION_3 ] = function (ajaxData, input, init, xhr) {
3307
+ _self[_DYN_INCLUDE_CORRELATION_2 ] = function (ajaxData, input, init, xhr) {
3239
3308
  var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
3240
3309
  _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE ], ajaxData, xhr, input, init);
3241
3310
  if (input) {
3242
- if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT4 ](_config, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
3311
+ if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 ](_config, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
3243
3312
  if (!init) {
3244
3313
  init = {};
3245
3314
  }
@@ -3274,7 +3343,7 @@
3274
3343
  return init;
3275
3344
  }
3276
3345
  else if (xhr) {
3277
- if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT4 ](_config, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
3346
+ if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 ](_config, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
3278
3347
  if (_isUsingAIHeaders) {
3279
3348
  var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
3280
3349
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[3 ], id);
@@ -3305,7 +3374,7 @@
3305
3374
  }
3306
3375
  return undefined;
3307
3376
  };
3308
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ] = function (dependency, properties, systemProperties) {
3377
+ _self[_DYN_TRACK_DEPENDENCY_DAT4 ] = function (dependency, properties, systemProperties) {
3309
3378
  if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {
3310
3379
  if ((_config[_DYN_DISTRIBUTED_TRACING_5 ] === 2
3311
3380
  || _config[_DYN_DISTRIBUTED_TRACING_5 ] === 1 )
@@ -3324,22 +3393,10 @@
3324
3393
  ++_trackAjaxAttempts;
3325
3394
  };
3326
3395
  _self.addDependencyListener = function (dependencyListener) {
3327
- var theInitializer = {
3328
- id: _dependencyListenerId++,
3329
- fn: dependencyListener
3330
- };
3331
- _dependencyListeners.push(theInitializer);
3332
- var handler = {
3333
- remove: function () {
3334
- arrForEach(_dependencyListeners, function (initializer, idx) {
3335
- if (initializer.id === theInitializer.id) {
3336
- _dependencyListeners.splice(idx, 1);
3337
- return -1;
3338
- }
3339
- });
3340
- }
3341
- };
3342
- return handler;
3396
+ return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);
3397
+ };
3398
+ _self.addDependencyInitializer = function (dependencyInitializer) {
3399
+ return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);
3343
3400
  };
3344
3401
  function _initDefaults() {
3345
3402
  var location = getLocation();
@@ -3363,13 +3420,14 @@
3363
3420
  _excludeRequestFromAutoTrackingPatterns = null;
3364
3421
  _addRequestContext = null;
3365
3422
  _evtNamespace = null;
3366
- _dependencyListenerId = 0;
3423
+ _dependencyHandlerId = 0;
3367
3424
  _dependencyListeners = [];
3425
+ _dependencyInitializers = [];
3368
3426
  }
3369
3427
  function _populateDefaults(config) {
3370
3428
  var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE ]);
3371
- _config = AjaxMonitor.getEmptyConfig();
3372
- var defaultConfig = AjaxMonitor[_DYN_GET_DEFAULT_CONFIG ]();
3429
+ _config = _getEmptyConfig();
3430
+ var defaultConfig = _getDefaultConfig();
3373
3431
  objForEachKey(defaultConfig, function (field, value) {
3374
3432
  _config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);
3375
3433
  });
@@ -3379,7 +3437,7 @@
3379
3437
  _enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA8 ];
3380
3438
  _maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V9 ];
3381
3439
  _enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD10 ];
3382
- _excludeRequestFromAutoTrackingPatterns = _config[_DYN_EXCLUDE_REQUEST_FROM11 ];
3440
+ _excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM11 ] || [], _config.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
3383
3441
  _addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT ];
3384
3442
  _isUsingAIHeaders = distributedTracingMode === 0 || distributedTracingMode === 1 ;
3385
3443
  _isUsingW3CHeaders = distributedTracingMode === 1 || distributedTracingMode === 2 ;
@@ -3398,7 +3456,7 @@
3398
3456
  function _populateContext() {
3399
3457
  var propExt = _self[_DYN_CORE ].getPlugin(PropertiesPluginIdentifier);
3400
3458
  if (propExt) {
3401
- _context = propExt.plugin.context;
3459
+ _context = propExt.plugin[_DYN_CONTEXT ];
3402
3460
  }
3403
3461
  }
3404
3462
  function _canIncludeHeaders(header) {
@@ -3430,7 +3488,7 @@
3430
3488
  !(isPolyfill && _xhrInitialized)) {
3431
3489
  var ctx = callDetails.ctx();
3432
3490
  fetchData = _createFetchRecord(input, init);
3433
- var newInit = _self[_DYN_INCLUDE_CORRELATION_3 ](fetchData, input, init);
3491
+ var newInit = _self[_DYN_INCLUDE_CORRELATION_2 ](fetchData, input, init);
3434
3492
  if (newInit !== init) {
3435
3493
  callDetails.set(1, newInit);
3436
3494
  }
@@ -3469,7 +3527,7 @@
3469
3527
  }
3470
3528
  }
3471
3529
  },
3472
- hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.")
3530
+ hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor Window.fetch" + ERROR_POSTFIX)
3473
3531
  }));
3474
3532
  _fetchInitialized = true;
3475
3533
  }
@@ -3504,7 +3562,7 @@
3504
3562
  }
3505
3563
  }
3506
3564
  },
3507
- hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.")
3565
+ hkErr: _createErrorCallbackFunc(_self, 15 , ERROR_HEADER + ".open" + ERROR_POSTFIX)
3508
3566
  });
3509
3567
  _hookProto(XMLHttpRequest, "send", {
3510
3568
  ns: _evtNamespace,
@@ -3515,12 +3573,12 @@
3515
3573
  if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE ]) {
3516
3574
  _createMarkId("xhr", ajaxData);
3517
3575
  ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
3518
- _self[_DYN_INCLUDE_CORRELATION_3 ](ajaxData, undefined, undefined, xhr);
3576
+ _self[_DYN_INCLUDE_CORRELATION_2 ](ajaxData, undefined, undefined, xhr);
3519
3577
  ajaxData.xhrMonitoringState[_DYN_SEND_DONE ] = true;
3520
3578
  }
3521
3579
  }
3522
3580
  },
3523
- hkErr: _createErrorCallbackFunc(_self, 17 , "Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.")
3581
+ hkErr: _createErrorCallbackFunc(_self, 17 , ERROR_HEADER + ERROR_POSTFIX)
3524
3582
  });
3525
3583
  _hookProto(XMLHttpRequest, "abort", {
3526
3584
  ns: _evtNamespace,
@@ -3534,7 +3592,7 @@
3534
3592
  }
3535
3593
  }
3536
3594
  },
3537
- hkErr: _createErrorCallbackFunc(_self, 13 , "Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.")
3595
+ hkErr: _createErrorCallbackFunc(_self, 13 , ERROR_HEADER + ".abort" + ERROR_POSTFIX)
3538
3596
  });
3539
3597
  _hookProto(XMLHttpRequest, "setRequestHeader", {
3540
3598
  ns: _evtNamespace,
@@ -3546,7 +3604,7 @@
3546
3604
  }
3547
3605
  }
3548
3606
  },
3549
- hkErr: _createErrorCallbackFunc(_self, 71 , "Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.")
3607
+ hkErr: _createErrorCallbackFunc(_self, 71 , ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
3550
3608
  });
3551
3609
  _xhrInitialized = true;
3552
3610
  }
@@ -3641,7 +3699,7 @@
3641
3699
  catch (e) {
3642
3700
  var exceptionText = dumpObj(e);
3643
3701
  if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE ](), "c00c023f") === -1) {
3644
- _throwInternalCritical(_self, 16 , "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", (_a = {},
3702
+ _throwInternalCritical(_self, 16 , ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
3645
3703
  _a[_DYN_AJAX_DIAGNOSTICS_MES19 ] = _getFailedAjaxDiagnosticsMessage(xhr),
3646
3704
  _a.exception = exceptionText,
3647
3705
  _a));
@@ -3670,7 +3728,7 @@
3670
3728
  if (e) {
3671
3729
  errorProps["exception"] = dumpObj(e);
3672
3730
  }
3673
- _throwInternalWarning(_self, 14 , "Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.", errorProps);
3731
+ _throwInternalWarning(_self, 14 , FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
3674
3732
  }
3675
3733
  _findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
3676
3734
  try {
@@ -3710,13 +3768,14 @@
3710
3768
  }
3711
3769
  }
3712
3770
  catch (e) {
3713
- _throwInternalWarning(_self, 104 , "Failed to add custom defined request context as configured call back may missing a null check.");
3771
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
3714
3772
  }
3715
3773
  if (dependency) {
3716
3774
  if (properties !== undefined) {
3717
3775
  dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
3718
3776
  }
3719
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, null, ajaxData[_DYN_GET_PART_APROPS ]());
3777
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
3778
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
3720
3779
  }
3721
3780
  else {
3722
3781
  _reportXhrError(null, {
@@ -3749,7 +3808,7 @@
3749
3808
  }
3750
3809
  }
3751
3810
  catch (e) {
3752
- _throwInternalWarning(_self, 18 , "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", (_a = {},
3811
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, (_a = {},
3753
3812
  _a[_DYN_AJAX_DIAGNOSTICS_MES19 ] = _getFailedAjaxDiagnosticsMessage(xhr),
3754
3813
  _a.exception = dumpObj(e),
3755
3814
  _a));
@@ -3883,7 +3942,7 @@
3883
3942
  if (e) {
3884
3943
  errorProps["exception"] = dumpObj(e);
3885
3944
  }
3886
- _throwInternalWarning(_self, msgId, "Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.", errorProps);
3945
+ _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
3887
3946
  }
3888
3947
  ajaxData[_DYN_RESPONSE_FINISHED_TI15 ] = dateTimeUtilsNow();
3889
3948
  ajaxData[_DYN_STATUS ] = status;
@@ -3896,13 +3955,14 @@
3896
3955
  }
3897
3956
  }
3898
3957
  catch (e) {
3899
- _throwInternalWarning(_self, 104 , "Failed to add custom defined request context as configured call back may missing a null check.");
3958
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
3900
3959
  }
3901
3960
  if (dependency) {
3902
3961
  if (properties !== undefined) {
3903
3962
  dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
3904
3963
  }
3905
- _self[_DYN_TRACK_DEPENDENCY_DAT2 ](dependency, null, ajaxData[_DYN_GET_PART_APROPS ]());
3964
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
3965
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
3906
3966
  }
3907
3967
  else {
3908
3968
  _reportFetchError(14 , null, {
@@ -3921,56 +3981,43 @@
3921
3981
  return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 ](responseHeader);
3922
3982
  }
3923
3983
  catch (e) {
3924
- _throwInternalWarning(_self, 18 , "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.", {
3984
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, {
3925
3985
  fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),
3926
3986
  exception: dumpObj(e)
3927
3987
  });
3928
3988
  }
3929
3989
  }
3930
3990
  }
3991
+ function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
3992
+ var _a;
3993
+ var result = true;
3994
+ var initializersCount = initializers[_DYN_LENGTH ];
3995
+ if (initializersCount > 0) {
3996
+ var details = (_a = {
3997
+ item: dependency
3998
+ },
3999
+ _a[STR_PROPERTIES ] = properties,
4000
+ _a.sysProperties = systemProperties,
4001
+ _a.context = ajaxData ? ajaxData[_DYN_CONTEXT ] : null,
4002
+ _a);
4003
+ result = _processDependencyContainer(core, initializers, details, "initializer");
4004
+ }
4005
+ if (result) {
4006
+ _self[_DYN_TRACK_DEPENDENCY_DAT4 ](dependency, properties, systemProperties);
4007
+ }
4008
+ }
3931
4009
  });
3932
4010
  return _this;
3933
4011
  }
3934
- AjaxMonitor.getDefaultConfig = function () {
3935
- var _a;
3936
- var config = (_a = {},
3937
- _a[_DYN_MAX_AJAX_CALLS_PER_V9 ] = 500,
3938
- _a[_DYN_DISABLE_AJAX_TRACKIN12 ] = false,
3939
- _a[_DYN_DISABLE_FETCH_TRACKI13 ] = false,
3940
- _a[_DYN_EXCLUDE_REQUEST_FROM11 ] = undefined,
3941
- _a.disableCorrelationHeaders = false,
3942
- _a.distributedTracingMode = 1 ,
3943
- _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
3944
- _a.correlationHeaderDomains = undefined,
3945
- _a.correlationHeaderExcludePatterns = undefined,
3946
- _a[_DYN_APP_ID ] = undefined,
3947
- _a.enableCorsCorrelation = false,
3948
- _a[_DYN_ENABLE_REQUEST_HEADE6 ] = false,
3949
- _a[_DYN_ENABLE_RESPONSE_HEAD10 ] = false,
3950
- _a[_DYN_ENABLE_AJAX_ERROR_ST7 ] = false,
3951
- _a[_DYN_ENABLE_AJAX_PERF_TRA8 ] = false,
3952
- _a.maxAjaxPerfLookupAttempts = 3,
3953
- _a[_DYN_AJAX_PERF_LOOKUP_DEL18 ] = 25,
3954
- _a.ignoreHeaders = [
3955
- "Authorization",
3956
- "X-API-Key",
3957
- "WWW-Authenticate"
3958
- ],
3959
- _a[_DYN_ADD_REQUEST_CONTEXT ] = undefined,
3960
- _a);
3961
- return config;
3962
- };
3963
- AjaxMonitor.getEmptyConfig = function () {
3964
- var emptyConfig = this[_DYN_GET_DEFAULT_CONFIG ]();
3965
- objForEachKey(emptyConfig, function (value) {
3966
- emptyConfig[value] = undefined;
3967
- });
3968
- return emptyConfig;
3969
- };
3970
4012
  AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
3971
4013
  this.processNext(item, itemCtx);
3972
4014
  };
4015
+ AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
4016
+ return null;
4017
+ };
3973
4018
  AjaxMonitor.identifier = "AjaxDependencyPlugin";
4019
+ AjaxMonitor.getDefaultConfig = _getDefaultConfig;
4020
+ AjaxMonitor.getEmptyConfig = _getEmptyConfig;
3974
4021
  return AjaxMonitor;
3975
4022
  }(BaseTelemetryPlugin));
3976
4023