@microsoft/applicationinsights-dependencies-js 3.4.0-nightlybeta3.2505-36 → 3.4.0-nightlybeta3.2507-23

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 (34) hide show
  1. package/browser/es5/applicationinsights-dependencies-js.cjs.js +870 -322
  2. package/browser/es5/applicationinsights-dependencies-js.cjs.js.map +1 -1
  3. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js +2 -2
  4. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js.map +1 -1
  5. package/browser/es5/applicationinsights-dependencies-js.gbl.js +872 -324
  6. package/browser/es5/applicationinsights-dependencies-js.gbl.js.map +1 -1
  7. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js +2 -2
  8. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js.map +1 -1
  9. package/browser/es5/applicationinsights-dependencies-js.integrity.json +25 -25
  10. package/browser/es5/applicationinsights-dependencies-js.js +872 -324
  11. package/browser/es5/applicationinsights-dependencies-js.js.map +1 -1
  12. package/browser/es5/applicationinsights-dependencies-js.min.js +2 -2
  13. package/browser/es5/applicationinsights-dependencies-js.min.js.map +1 -1
  14. package/dist/es5/applicationinsights-dependencies-js.js +870 -322
  15. package/dist/es5/applicationinsights-dependencies-js.js.map +1 -1
  16. package/dist/es5/applicationinsights-dependencies-js.min.js +2 -2
  17. package/dist/es5/applicationinsights-dependencies-js.min.js.map +1 -1
  18. package/dist-es5/DependencyInitializer.js +1 -1
  19. package/dist-es5/DependencyListener.js +1 -1
  20. package/dist-es5/InternalConstants.js +2 -1
  21. package/dist-es5/InternalConstants.js.map +1 -1
  22. package/dist-es5/__DynamicConstants.js +15 -19
  23. package/dist-es5/__DynamicConstants.js.map +1 -1
  24. package/dist-es5/ajax.js +130 -62
  25. package/dist-es5/ajax.js.map +1 -1
  26. package/dist-es5/ajaxRecord.js +137 -148
  27. package/dist-es5/ajaxRecord.js.map +1 -1
  28. package/dist-es5/applicationinsights-dependencies-js.js +1 -2
  29. package/dist-es5/applicationinsights-dependencies-js.js.map +1 -1
  30. package/package.json +3 -3
  31. package/types/applicationinsights-dependencies-js.d.ts +150 -50
  32. package/types/applicationinsights-dependencies-js.namespaced.d.ts +628 -88
  33. package/dist-es5/ajaxUtils.js +0 -30
  34. package/dist-es5/ajaxUtils.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.2505-36
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 3.4.0-nightlybeta3.2507-23
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -36,6 +36,7 @@ var NAME = "name";
36
36
  var CALL = "call";
37
37
  var TO_STRING = "toString";
38
38
  var GET_OWN_PROPERTY_DESCRIPTOR = "getOwnPropertyDescriptor";
39
+ var GET_OWN_PROPERTY_SYMBOLS = "getOwnPropertySymbols";
39
40
  var ObjClass = ( /*#__PURE__*/_pureAssign(Object));
40
41
  var ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));
41
42
  var StrCls = ( /*#__PURE__*/_pureAssign(String));
@@ -108,6 +109,9 @@ var isError = ( /*#__PURE__*/_createObjIs("Error"));
108
109
  function _returnNothing() {
109
110
  return;
110
111
  }
112
+ function _returnEmptyArray() {
113
+ return [];
114
+ }
111
115
  var asString = ( /*#__PURE__*/_pureAssign(StrCls));
112
116
  var ERROR_TYPE = "[object Error]";
113
117
  /*#__NO_SIDE_EFFECTS__*/
@@ -184,7 +188,26 @@ function _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {
184
188
  throwTypeError("\"" + asString(funcName) + "\" not defined for " + dumpObj(thisArg));
185
189
  };
186
190
  }
191
+ function _objPropertyIsEnum(obj, propKey) {
192
+ var desc;
193
+ var fn = ObjClass.getOwnPropertyDescriptor;
194
+ if (!isStrictNullOrUndefined(obj) && fn) {
195
+ desc = safe(fn, [obj, propKey]).v || NULL_VALUE;
196
+ }
197
+ if (!desc) {
198
+ desc = safe(function () {
199
+ for (var key in obj) {
200
+ if (key === propKey) {
201
+ return { enumerable: true };
202
+ }
203
+ }
204
+ }).v;
205
+ }
206
+ return (desc && desc.enumerable) || false;
207
+ }
208
+ var objPropertyIsEnumerable = ( /*#__PURE__*/_unwrapFunctionWithPoly("propertyIsEnumerable", NULL_VALUE, _objPropertyIsEnum));
187
209
  var _objGetOwnPropertyDescriptor$1 = ( /*#__PURE__*/_pureAssign(( /*#__PURE__*/_pureRef(ObjClass, GET_OWN_PROPERTY_DESCRIPTOR)), _returnNothing));
210
+ var _objGetOwnPropertySymbols = ( /*#__PURE__*/_pureAssign(( /*#__PURE__*/_pureRef(ObjClass, GET_OWN_PROPERTY_SYMBOLS)), _returnEmptyArray));
188
211
  var propMap = {
189
212
  e: "enumerable",
190
213
  c: "configurable",
@@ -217,6 +240,18 @@ var objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, "defineProperties"))
217
240
  function objDefine(target, key, propDesc) {
218
241
  return objDefineProp(target, key, _createProp(propDesc));
219
242
  }
243
+ function objDefineProps(target, propDescMap) {
244
+ var props = {};
245
+ objForEachKey(propDescMap, function (key, value) {
246
+ props[key] = _createProp(value);
247
+ });
248
+ arrForEach(_objGetOwnPropertySymbols(propDescMap), function (sym) {
249
+ if (objPropertyIsEnumerable(propDescMap, sym)) {
250
+ props[sym] = _createProp(propDescMap[sym]);
251
+ }
252
+ });
253
+ return objDefineProperties(target, props);
254
+ }
220
255
  /*#__NO_SIDE_EFFECTS__*/
221
256
  function _createKeyValueMap(values, keyType, valueType, completeFn, writable) {
222
257
  var theMap = {};
@@ -475,6 +510,22 @@ function createCachedValue(value) {
475
510
  toJSON: function () { return value; }
476
511
  }, "v", { value: value });
477
512
  }
513
+ var createDeferredCachedValue = getDeferred;
514
+ /*#__NO_SIDE_EFFECTS__*/
515
+ function getDeferred(cb, argArray) {
516
+ var theValue = {
517
+ toJSON: function () { return theValue.v; }
518
+ };
519
+ return objDefineProp(theValue, "v", {
520
+ get: function () {
521
+ var result = fnApply(cb, null, argArray);
522
+ cb = NULL_VALUE;
523
+ objDefineProp(theValue, "v", { value: result });
524
+ return result;
525
+ },
526
+ configurable: true
527
+ });
528
+ }
478
529
  var WINDOW = "window";
479
530
  var _cachedGlobal;
480
531
  function _getGlobalInstFn(getFn, theArgs) {
@@ -1137,11 +1188,15 @@ var _DYN_LOGGER = "logger";
1137
1188
  var _DYN_CANCEL = "cancel";
1138
1189
  var _DYN_INITIALIZE = "initialize";
1139
1190
  var _DYN_IDENTIFIER = "identifier";
1191
+ var _DYN_TRACE_ID$1 = "traceId";
1192
+ var _DYN_SPAN_ID$1 = "spanId";
1193
+ var _DYN_TRACE_FLAGS$2 = "traceFlags";
1140
1194
  var _DYN_IS_INITIALIZED = "isInitialized";
1141
1195
  var _DYN_GET_PLUGIN = "getPlugin";
1142
1196
  var _DYN_NAME$1 = "name";
1143
1197
  var _DYN_PROCESS_NEXT = "processNext";
1144
1198
  var _DYN_GET_PROCESS_TEL_CONT2 = "getProcessTelContext";
1199
+ var _DYN_VALUE = "value";
1145
1200
  var _DYN_UNLOAD = "unload";
1146
1201
  var _DYN_VERSION = "version";
1147
1202
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
@@ -1157,11 +1212,14 @@ var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
1157
1212
  var _DYN_USER_AGENT = "userAgent";
1158
1213
  var _DYN_SPLIT$1 = "split";
1159
1214
  var _DYN_REPLACE = "replace";
1215
+ var _DYN_SUBSTRING = "substring";
1216
+ var _DYN_INDEX_OF = "indexOf";
1160
1217
  var _DYN_TYPE = "type";
1161
1218
  var _DYN_IS_CHILD_EVT = "isChildEvt";
1162
1219
  var _DYN_GET_CTX = "getCtx";
1163
1220
  var _DYN_SET_CTX = "setCtx";
1164
- var _DYN_TRACE_FLAGS$1 = "traceFlags";
1221
+ var _DYN_SET_TRACE_FLAGS = "setTraceFlags";
1222
+ var _DYN_TRACE_STATE$1 = "traceState";
1165
1223
 
1166
1224
  var aggregationErrorType;
1167
1225
  function throwAggregationError(message, sourceErrors) {
@@ -1188,6 +1246,8 @@ var STR_PROCESS_TELEMETRY = "processTelemetry";
1188
1246
  var STR_PRIORITY = "priority";
1189
1247
  var STR_GET_PERF_MGR = "getPerfMgr";
1190
1248
  var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
1249
+ var STR_REDACTED = "REDACTED";
1250
+ var DEFAULT_SENSITIVE_PARAMS = ["sig", "Signature", "AWSAccessKeyId", "X-Goog-Signature"];
1191
1251
 
1192
1252
  var strGetPrototypeOf = "getPrototypeOf";
1193
1253
  var rCamelCase = /-([a-z])/g;
@@ -1348,6 +1408,110 @@ function isXhrSupported() {
1348
1408
  }
1349
1409
  return isSupported;
1350
1410
  }
1411
+ function redactUserInfo(url) {
1412
+ return url.replace(/^([a-zA-Z][a-zA-Z0-9+.-]*:\/\/)([^:@]{1,200}):([^@]{1,200})@(.*)$/, "$1REDACTED:REDACTED@$4");
1413
+ }
1414
+ function redactQueryParameters(url, config) {
1415
+ var sensitiveParams;
1416
+ var questionMarkIndex = strIndexOf(url, "?");
1417
+ if (questionMarkIndex === -1) {
1418
+ return url;
1419
+ }
1420
+ if (config && config.redactQueryParams) {
1421
+ sensitiveParams = DEFAULT_SENSITIVE_PARAMS.concat(config.redactQueryParams);
1422
+ }
1423
+ else {
1424
+ sensitiveParams = DEFAULT_SENSITIVE_PARAMS;
1425
+ }
1426
+ var baseUrl = strSubstring(url, 0, questionMarkIndex + 1);
1427
+ var queryString = strSubstring(url, questionMarkIndex + 1);
1428
+ var fragment = STR_EMPTY;
1429
+ var hashIndex = strIndexOf(queryString, "#");
1430
+ if (hashIndex !== -1) {
1431
+ fragment = strSubstring(queryString, hashIndex);
1432
+ queryString = strSubstring(queryString, 0, hashIndex);
1433
+ }
1434
+ var hasPotentialSensitiveParam = false;
1435
+ for (var i = 0; i < sensitiveParams[_DYN_LENGTH$2 ]; i++) {
1436
+ var paramCheck = sensitiveParams[i] + "=";
1437
+ if (strIndexOf(queryString, paramCheck) !== -1) {
1438
+ hasPotentialSensitiveParam = true;
1439
+ break;
1440
+ }
1441
+ }
1442
+ if (!hasPotentialSensitiveParam) {
1443
+ return url;
1444
+ }
1445
+ var resultParts = [];
1446
+ var anyParamRedacted = false;
1447
+ if (queryString && queryString[_DYN_LENGTH$2 ]) {
1448
+ var pairs = queryString[_DYN_SPLIT$1 ]("&");
1449
+ for (var i = 0; i < pairs[_DYN_LENGTH$2 ]; i++) {
1450
+ var pair = pairs[i];
1451
+ if (!pair) {
1452
+ continue;
1453
+ }
1454
+ var equalsIndex = strIndexOf(pair, "=");
1455
+ if (equalsIndex === -1) {
1456
+ resultParts[_DYN_PUSH ](pair);
1457
+ }
1458
+ else {
1459
+ var paramName = pair[_DYN_SUBSTRING ](0, equalsIndex);
1460
+ var paramValue = pair[_DYN_SUBSTRING ](equalsIndex + 1);
1461
+ if (paramValue === STR_EMPTY) {
1462
+ resultParts[_DYN_PUSH ](pair);
1463
+ }
1464
+ else {
1465
+ var shouldRedact = false;
1466
+ for (var j = 0; j < sensitiveParams[_DYN_LENGTH$2 ]; j++) {
1467
+ if (paramName === sensitiveParams[j]) {
1468
+ shouldRedact = true;
1469
+ anyParamRedacted = true;
1470
+ break;
1471
+ }
1472
+ }
1473
+ if (shouldRedact) {
1474
+ resultParts[_DYN_PUSH ](paramName + "=" + STR_REDACTED);
1475
+ }
1476
+ else {
1477
+ resultParts[_DYN_PUSH ](pair);
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ }
1483
+ if (!anyParamRedacted) {
1484
+ return url;
1485
+ }
1486
+ return baseUrl + resultParts.join("&") + fragment;
1487
+ }
1488
+ function fieldRedaction(input, config) {
1489
+ if (!input || input[_DYN_INDEX_OF ](" ") !== -1) {
1490
+ return input;
1491
+ }
1492
+ var isRedactionDisabled = config && config.redactUrls === false;
1493
+ if (isRedactionDisabled) {
1494
+ return input;
1495
+ }
1496
+ var hasCredentials = strIndexOf(input, "@") !== -1;
1497
+ var hasQueryParams = strIndexOf(input, "?") !== -1;
1498
+ if (!hasCredentials && !hasQueryParams) {
1499
+ return input;
1500
+ }
1501
+ try {
1502
+ var result = input;
1503
+ if (hasCredentials) {
1504
+ result = redactUserInfo(input);
1505
+ }
1506
+ if (hasQueryParams) {
1507
+ result = redactQueryParameters(result, config);
1508
+ }
1509
+ return result;
1510
+ }
1511
+ catch (e) {
1512
+ return input;
1513
+ }
1514
+ }
1351
1515
 
1352
1516
  var UInt32Mask = 0x100000000;
1353
1517
  var MaxUInt32 = 0xffffffff;
@@ -1419,7 +1583,7 @@ function newId(maxLength) {
1419
1583
  return result;
1420
1584
  }
1421
1585
 
1422
- var version = '3.4.0-nightlybeta3.2505-36';
1586
+ var version = '3.4.0-nightlybeta3.2507-23';
1423
1587
  var instanceName = "." + newId(6);
1424
1588
  var _dataUid = 0;
1425
1589
  function _canAcceptData(target) {
@@ -2085,6 +2249,307 @@ function onConfigChange(config, configHandler, logger) {
2085
2249
  return createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
2086
2250
  }
2087
2251
 
2252
+ function generateW3CId() {
2253
+ var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
2254
+ var oct = STR_EMPTY, tmp;
2255
+ for (var a = 0; a < 4; a++) {
2256
+ tmp = random32();
2257
+ oct +=
2258
+ hexValues[tmp & 0xF] +
2259
+ hexValues[tmp >> 4 & 0xF] +
2260
+ hexValues[tmp >> 8 & 0xF] +
2261
+ hexValues[tmp >> 12 & 0xF] +
2262
+ hexValues[tmp >> 16 & 0xF] +
2263
+ hexValues[tmp >> 20 & 0xF] +
2264
+ hexValues[tmp >> 24 & 0xF] +
2265
+ hexValues[tmp >> 28 & 0xF];
2266
+ }
2267
+ var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
2268
+ return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
2269
+ }
2270
+
2271
+ var DEFAULT_VERSION = "00";
2272
+ var INVALID_VERSION = "ff";
2273
+ var INVALID_TRACE_ID = "00000000000000000000000000000000";
2274
+ var INVALID_SPAN_ID = "0000000000000000";
2275
+ function _isValid(value, len, invalidValue) {
2276
+ if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
2277
+ return !!value.match(/^[\da-f]*$/i);
2278
+ }
2279
+ return false;
2280
+ }
2281
+ function _formatValue(value, len, defValue) {
2282
+ if (_isValid(value, len)) {
2283
+ return value;
2284
+ }
2285
+ return defValue;
2286
+ }
2287
+ function _formatFlags(value) {
2288
+ if (isNaN(value) || value < 0 || value > 255) {
2289
+ value = 0x01;
2290
+ }
2291
+ var result = value.toString(16);
2292
+ while (result[_DYN_LENGTH$2 ] < 2) {
2293
+ result = "0" + result;
2294
+ }
2295
+ return result;
2296
+ }
2297
+ function createTraceParent(traceId, spanId, flags, version) {
2298
+ return {
2299
+ version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
2300
+ traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),
2301
+ spanId: isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
2302
+ traceFlags: (!isNullOrUndefined(flags) && flags >= 0 && flags <= 0xFF ? flags : 1 )
2303
+ };
2304
+ }
2305
+ function isValidTraceId(value) {
2306
+ return _isValid(value, 32, INVALID_TRACE_ID);
2307
+ }
2308
+ function isValidSpanId(value) {
2309
+ return _isValid(value, 16, INVALID_SPAN_ID);
2310
+ }
2311
+ function formatTraceParent(value) {
2312
+ if (value) {
2313
+ var flags = _formatFlags(value[_DYN_TRACE_FLAGS$2 ]);
2314
+ if (!_isValid(flags, 2)) {
2315
+ flags = "01";
2316
+ }
2317
+ var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
2318
+ if (version !== "00" && version !== "ff") {
2319
+ version = DEFAULT_VERSION;
2320
+ }
2321
+ 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());
2322
+ }
2323
+ return STR_EMPTY;
2324
+ }
2325
+
2326
+ var MAX_TRACE_STATE_MEMBERS = 32;
2327
+ var MAX_TRACE_STATE_LEN = 512;
2328
+ var LCALPHA = "[a-z]";
2329
+ var LCALPHA_DIGIT = "[a-z\\d]";
2330
+ var LCALPHA_DIGIT_UNDERSCORE_DASH_STAR_SLASH = "[a-z\\d_\\-*\\/]";
2331
+ var SIMPLE_KEY = "(" + LCALPHA + LCALPHA_DIGIT_UNDERSCORE_DASH_STAR_SLASH + "{0,255})";
2332
+ var TENANT_ID = "(" + LCALPHA_DIGIT + LCALPHA_DIGIT_UNDERSCORE_DASH_STAR_SLASH + "{0,240})";
2333
+ var SYSTEM_ID = "(" + LCALPHA + LCALPHA_DIGIT_UNDERSCORE_DASH_STAR_SLASH + "{0,13})";
2334
+ var MULTI_TENANT_KEY = "(" + TENANT_ID + "@" + SYSTEM_ID + ")";
2335
+ var NBLK_CHAR = "\x21-\x2B\\--\x3C\x3E-\x7E";
2336
+ var TRACESTATE_VALUE = "[\x20" + NBLK_CHAR + "]{0,255}[" + NBLK_CHAR + "]";
2337
+ var TRACESTATE_KVP_REGEX = new RegExp("^\\s*((?:" + SIMPLE_KEY + "|" + MULTI_TENANT_KEY + ")=(" + TRACESTATE_VALUE + "))\\s*$");
2338
+ function _parseListMember(value) {
2339
+ if (value) {
2340
+ TRACESTATE_KVP_REGEX.lastIndex = 0;
2341
+ var match = TRACESTATE_KVP_REGEX.exec(value);
2342
+ if (match && match[_DYN_LENGTH$2 ] >= 7 && match[1] && match[6]) {
2343
+ var type = match[3] ? 1 : 0 ;
2344
+ var multiTenant = null;
2345
+ if (type === 1 ) {
2346
+ multiTenant = {
2347
+ tenantId: match[4],
2348
+ systemId: match[5]
2349
+ };
2350
+ }
2351
+ var parts = {
2352
+ type: type,
2353
+ key: match[2],
2354
+ multiTenant: multiTenant,
2355
+ value: match[6]
2356
+ };
2357
+ return parts;
2358
+ }
2359
+ }
2360
+ return null;
2361
+ }
2362
+ function _parseTraceStateList(value) {
2363
+ var items = [];
2364
+ if (value) {
2365
+ var addedKeys_1 = [];
2366
+ arrForEach(strSplit(value, ","), function (member) {
2367
+ var parts = _parseListMember(member);
2368
+ if (parts) {
2369
+ if (arrIndexOf(addedKeys_1, parts.key) === -1) {
2370
+ items[_DYN_PUSH ](parts);
2371
+ addedKeys_1[_DYN_PUSH ](parts.key);
2372
+ if (items[_DYN_LENGTH$2 ] >= MAX_TRACE_STATE_MEMBERS) {
2373
+ return -1;
2374
+ }
2375
+ }
2376
+ }
2377
+ });
2378
+ }
2379
+ return items;
2380
+ }
2381
+ function _indexOf$1(items, key) {
2382
+ for (var lp = 0; lp < items[_DYN_LENGTH$2 ]; lp++) {
2383
+ if (items[lp].key === key) {
2384
+ return lp;
2385
+ }
2386
+ }
2387
+ return -1;
2388
+ }
2389
+ function _keys(items, parent) {
2390
+ var keys = [];
2391
+ var delKeys = [];
2392
+ arrForEach(items, function (member) {
2393
+ if (member[_DYN_VALUE ] != null) {
2394
+ keys[_DYN_PUSH ](member.key);
2395
+ }
2396
+ else {
2397
+ delKeys[_DYN_PUSH ](member.key);
2398
+ }
2399
+ });
2400
+ if (parent) {
2401
+ arrForEach(parent.keys, function (key) {
2402
+ if (arrIndexOf(keys, key) === -1 && arrIndexOf(delKeys, key) === -1) {
2403
+ keys[_DYN_PUSH ](key);
2404
+ }
2405
+ });
2406
+ }
2407
+ return keys;
2408
+ }
2409
+ function _isEmpty(items, parent) {
2410
+ var delKeys;
2411
+ var isEmpty = true;
2412
+ if (items && items[_DYN_LENGTH$2 ] > 0) {
2413
+ arrForEach(items, function (member) {
2414
+ if (member[_DYN_VALUE ] != null) {
2415
+ isEmpty = false;
2416
+ }
2417
+ else {
2418
+ if (!delKeys) {
2419
+ delKeys = [];
2420
+ }
2421
+ delKeys[_DYN_PUSH ](member.key);
2422
+ }
2423
+ });
2424
+ }
2425
+ if (isEmpty && parent) {
2426
+ isEmpty = parent.isEmpty;
2427
+ if (!isEmpty && delKeys && delKeys[_DYN_LENGTH$2 ] > 0) {
2428
+ isEmpty = true;
2429
+ arrForEach(parent.keys, function (key) {
2430
+ if (arrIndexOf(delKeys, key) === -1) {
2431
+ isEmpty = false;
2432
+ return -1;
2433
+ }
2434
+ });
2435
+ }
2436
+ }
2437
+ return isEmpty;
2438
+ }
2439
+ function createW3cTraceState(value, parent) {
2440
+ var cachedItems = createDeferredCachedValue(function () { return safe(_parseTraceStateList, [value || STR_EMPTY]).v || []; });
2441
+ function _get(key) {
2442
+ var value;
2443
+ var theItems = cachedItems.v;
2444
+ var idx = _indexOf$1(theItems, key);
2445
+ if (idx !== -1) {
2446
+ var itmValue = theItems[idx][_DYN_VALUE ];
2447
+ if (itmValue != null) {
2448
+ value = itmValue;
2449
+ }
2450
+ }
2451
+ else if (parent) {
2452
+ value = parent.get(key);
2453
+ }
2454
+ return value;
2455
+ }
2456
+ function _setMember(member) {
2457
+ if (member) {
2458
+ var theItems = cachedItems.v;
2459
+ var idx = _indexOf$1(theItems, member.key);
2460
+ if (idx !== -1) {
2461
+ theItems[_DYN_SPLICE ](idx, 1);
2462
+ }
2463
+ theItems.unshift(member);
2464
+ cachedItems = createCachedValue(theItems);
2465
+ return 0;
2466
+ }
2467
+ return -1;
2468
+ }
2469
+ function _set(key, value) {
2470
+ var member;
2471
+ if (key && isString(key) && !isNullOrUndefined(value) && isString(value)) {
2472
+ member = _parseListMember(key + "=" + value);
2473
+ }
2474
+ return _setMember(member);
2475
+ }
2476
+ function _del(key) {
2477
+ _setMember({
2478
+ type: 2 ,
2479
+ key: key
2480
+ });
2481
+ }
2482
+ function _headers(maxHeaders, maxKeys, maxLen) {
2483
+ var results = [];
2484
+ var result = STR_EMPTY;
2485
+ var numKeys = 0;
2486
+ var len = 0;
2487
+ maxKeys = maxKeys || MAX_TRACE_STATE_MEMBERS;
2488
+ maxLen = maxLen || MAX_TRACE_STATE_LEN;
2489
+ var theItems = cachedItems.v;
2490
+ arrForEach(_keys(theItems, parent), function (key) {
2491
+ var value = _get(key);
2492
+ if (!isNullOrUndefined(value) && isString(value)) {
2493
+ numKeys++;
2494
+ var val = key + "=" + value;
2495
+ var valLen = val[_DYN_LENGTH$2 ];
2496
+ if (len + 1 + valLen >= maxLen) {
2497
+ results[_DYN_PUSH ](result);
2498
+ if (maxHeaders && results[_DYN_LENGTH$2 ] <= maxHeaders) {
2499
+ return -1;
2500
+ }
2501
+ result = STR_EMPTY;
2502
+ len = 0;
2503
+ }
2504
+ if (result[_DYN_LENGTH$2 ] > 0) {
2505
+ result += ",";
2506
+ len++;
2507
+ }
2508
+ result += val;
2509
+ len += valLen;
2510
+ if (numKeys >= maxKeys) {
2511
+ return -1;
2512
+ }
2513
+ }
2514
+ });
2515
+ if (result) {
2516
+ results[_DYN_PUSH ](result);
2517
+ }
2518
+ return results;
2519
+ }
2520
+ var traceStateList = {
2521
+ keys: [],
2522
+ isEmpty: false,
2523
+ get: _get,
2524
+ set: _set,
2525
+ del: _del,
2526
+ hdrs: _headers,
2527
+ child: function () { return createW3cTraceState(null, traceStateList); }
2528
+ };
2529
+ function _toString() {
2530
+ var headers = traceStateList.hdrs(1);
2531
+ return headers[_DYN_LENGTH$2 ] > 0 ? headers[0] : STR_EMPTY;
2532
+ }
2533
+ objDefineProps(traceStateList, {
2534
+ "keys": {
2535
+ g: function () { return _keys(cachedItems.v, parent); }
2536
+ },
2537
+ "isEmpty": {
2538
+ g: function () { return _isEmpty(cachedItems.v, parent); }
2539
+ },
2540
+ "toString": {
2541
+ v: _toString,
2542
+ e: false
2543
+ },
2544
+ "_p": {
2545
+ v: parent,
2546
+ e: false
2547
+ }
2548
+ });
2549
+ objDefine(traceStateList, getKnownSymbol(11 ), { g: _toString });
2550
+ return traceStateList;
2551
+ }
2552
+
2088
2553
  var _aiNamespace = null;
2089
2554
  function _getExtensionNamespace() {
2090
2555
  var target = getInst("Microsoft");
@@ -2395,83 +2860,151 @@ function doPerf(mgrSource, getSource, func, details, isAsync) {
2395
2860
  return func();
2396
2861
  }
2397
2862
 
2398
- function generateW3CId() {
2399
- var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
2400
- var oct = STR_EMPTY, tmp;
2401
- for (var a = 0; a < 4; a++) {
2402
- tmp = random32();
2403
- oct +=
2404
- hexValues[tmp & 0xF] +
2405
- hexValues[tmp >> 4 & 0xF] +
2406
- hexValues[tmp >> 8 & 0xF] +
2407
- hexValues[tmp >> 12 & 0xF] +
2408
- hexValues[tmp >> 16 & 0xF] +
2409
- hexValues[tmp >> 20 & 0xF] +
2410
- hexValues[tmp >> 24 & 0xF] +
2411
- hexValues[tmp >> 28 & 0xF];
2412
- }
2413
- var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
2414
- return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
2863
+ var pluginStateData = createElmNodeData("plugin");
2864
+ function _getPluginState(plugin) {
2865
+ return pluginStateData.get(plugin, "state", {}, true);
2415
2866
  }
2416
-
2417
- var DEFAULT_VERSION = "00";
2418
- var INVALID_VERSION = "ff";
2419
- var INVALID_TRACE_ID = "00000000000000000000000000000000";
2420
- var INVALID_SPAN_ID = "0000000000000000";
2421
- function _isValid(value, len, invalidValue) {
2422
- if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
2423
- return !!value.match(/^[\da-f]*$/i);
2867
+ function isDistributedTraceContext(obj) {
2868
+ return obj &&
2869
+ isFunction(obj.getName) &&
2870
+ isFunction(obj.getTraceId) &&
2871
+ isFunction(obj.getSpanId) &&
2872
+ isFunction(obj.getTraceFlags) &&
2873
+ isFunction(obj.setName) &&
2874
+ isFunction(obj.setTraceId) &&
2875
+ isFunction(obj.setSpanId) &&
2876
+ isFunction(obj[_DYN_SET_TRACE_FLAGS ]);
2877
+ }
2878
+ function createDistributedTraceContext(parent) {
2879
+ var _a;
2880
+ var parentCtx = null;
2881
+ var spanContext = null;
2882
+ var traceId = (parent && isValidTraceId(parent[_DYN_TRACE_ID$1 ])) ? parent[_DYN_TRACE_ID$1 ] : generateW3CId();
2883
+ var spanId = (parent && isValidSpanId(parent[_DYN_SPAN_ID$1 ])) ? parent[_DYN_SPAN_ID$1 ] : STR_EMPTY;
2884
+ var traceFlags = parent ? parent[_DYN_TRACE_FLAGS$2 ] : UNDEFINED_VALUE;
2885
+ var isRemote = parent ? parent.isRemote : false;
2886
+ var pageName = STR_EMPTY;
2887
+ var traceState = null;
2888
+ if (parent) {
2889
+ if (isDistributedTraceContext(parent)) {
2890
+ parentCtx = parent;
2891
+ pageName = parentCtx.getName();
2892
+ }
2893
+ else {
2894
+ spanContext = parent;
2895
+ }
2424
2896
  }
2425
- return false;
2426
- }
2427
- function _formatValue(value, len, defValue) {
2428
- if (_isValid(value, len)) {
2429
- return value;
2897
+ if (!pageName) {
2898
+ pageName = "_unknown_";
2899
+ var location_1 = getLocation();
2900
+ if (location_1 && location_1.pathname) {
2901
+ pageName = location_1.pathname + (location_1.hash || "");
2902
+ }
2430
2903
  }
2431
- return defValue;
2432
- }
2433
- function _formatFlags(value) {
2434
- if (isNaN(value) || value < 0 || value > 255) {
2435
- value = 0x01;
2904
+ function _getName() {
2905
+ return pageName;
2436
2906
  }
2437
- var result = value.toString(16);
2438
- while (result[_DYN_LENGTH$2 ] < 2) {
2439
- result = "0" + result;
2907
+ function _setPageNameFn(updateParent) {
2908
+ return function (newValue) {
2909
+ if (updateParent) {
2910
+ parentCtx && parentCtx.setName(newValue);
2911
+ }
2912
+ pageName = newValue;
2913
+ };
2440
2914
  }
2441
- return result;
2442
- }
2443
- function createTraceParent(traceId, spanId, flags, version) {
2444
- return {
2445
- version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
2446
- traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),
2447
- spanId: isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
2448
- traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1
2449
- };
2450
- }
2451
- function isValidTraceId(value) {
2452
- return _isValid(value, 32, INVALID_TRACE_ID);
2453
- }
2454
- function isValidSpanId(value) {
2455
- return _isValid(value, 16, INVALID_SPAN_ID);
2456
- }
2457
- function formatTraceParent(value) {
2458
- if (value) {
2459
- var flags = _formatFlags(value[_DYN_TRACE_FLAGS$1 ]);
2460
- if (!_isValid(flags, 2)) {
2461
- flags = "01";
2462
- }
2463
- var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
2464
- if (version !== "00" && version !== "ff") {
2465
- version = DEFAULT_VERSION;
2915
+ function _getTraceId() {
2916
+ return traceId;
2917
+ }
2918
+ function _setTraceIdFn(updateParent) {
2919
+ return function (newValue) {
2920
+ if (updateParent) {
2921
+ parentCtx && parentCtx.setTraceId(newValue);
2922
+ }
2923
+ if (isValidTraceId(newValue)) {
2924
+ traceId = newValue;
2925
+ }
2926
+ };
2927
+ }
2928
+ function _getSpanId() {
2929
+ return spanId;
2930
+ }
2931
+ function _setSpanIdFn(updateParent) {
2932
+ return function (newValue) {
2933
+ if (updateParent) {
2934
+ parentCtx && parentCtx.setSpanId(newValue);
2935
+ }
2936
+ if (isValidSpanId(newValue)) {
2937
+ spanId = newValue;
2938
+ }
2939
+ };
2940
+ }
2941
+ function _getTraceFlags() {
2942
+ return traceFlags;
2943
+ }
2944
+ function _setTraceFlagsFn(updateParent) {
2945
+ return function (newTraceFlags) {
2946
+ if (updateParent) {
2947
+ parentCtx && parentCtx[_DYN_SET_TRACE_FLAGS ](newTraceFlags);
2948
+ }
2949
+ traceFlags = newTraceFlags;
2950
+ };
2951
+ }
2952
+ function _getTraceState() {
2953
+ if (!traceState) {
2954
+ if (spanContext && spanContext[_DYN_TRACE_STATE$1 ]) {
2955
+ traceState = createW3cTraceState(spanContext[_DYN_TRACE_STATE$1 ].serialize() || STR_EMPTY, parentCtx ? parentCtx[_DYN_TRACE_STATE$1 ] : undefined);
2956
+ }
2957
+ else {
2958
+ traceState = createW3cTraceState(STR_EMPTY, parentCtx ? parentCtx[_DYN_TRACE_STATE$1 ] : undefined);
2959
+ }
2466
2960
  }
2467
- 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());
2961
+ return traceState;
2468
2962
  }
2469
- return "";
2470
- }
2471
-
2472
- var pluginStateData = createElmNodeData("plugin");
2473
- function _getPluginState(plugin) {
2474
- return pluginStateData.get(plugin, "state", {}, true);
2963
+ var traceCtx = (_a = {
2964
+ getName: _getName,
2965
+ setName: _setPageNameFn(true),
2966
+ getTraceId: _getTraceId,
2967
+ setTraceId: _setTraceIdFn(true),
2968
+ getSpanId: _getSpanId,
2969
+ setSpanId: _setSpanIdFn(true),
2970
+ getTraceFlags: _getTraceFlags
2971
+ },
2972
+ _a[_DYN_SET_TRACE_FLAGS ] = _setTraceFlagsFn(true),
2973
+ _a.traceId = traceId,
2974
+ _a.spanId = spanId,
2975
+ _a.traceFlags = traceFlags,
2976
+ _a.traceState = traceState,
2977
+ _a.isRemote = isRemote,
2978
+ _a.pageName = pageName,
2979
+ _a);
2980
+ return objDefineProps(traceCtx, {
2981
+ pageName: {
2982
+ g: _getName,
2983
+ s: _setPageNameFn(false)
2984
+ },
2985
+ traceId: {
2986
+ g: _getTraceId,
2987
+ s: _setTraceIdFn(false)
2988
+ },
2989
+ spanId: {
2990
+ g: _getSpanId,
2991
+ s: _setSpanIdFn(false)
2992
+ },
2993
+ traceFlags: {
2994
+ g: _getTraceFlags,
2995
+ s: _setTraceFlagsFn(false)
2996
+ },
2997
+ isRemote: {
2998
+ v: isRemote,
2999
+ w: false
3000
+ },
3001
+ traceState: {
3002
+ g: _getTraceState
3003
+ },
3004
+ parentCtx: {
3005
+ g: function () { return parentCtx; }
3006
+ }
3007
+ });
2475
3008
  }
2476
3009
 
2477
3010
  var strTelemetryPluginChain = "TelemetryPluginChain";
@@ -2557,27 +3090,26 @@ function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
2557
3090
  }
2558
3091
  function _getExtCfg(identifier, createIfMissing) {
2559
3092
  var idCfg = null;
2560
- var cfg = dynamicHandler.cfg;
3093
+ var extCfg = _getCfg(dynamicHandler.cfg, "extensionConfig", createIfMissing);
3094
+ if (extCfg) {
3095
+ idCfg = _getCfg(extCfg, identifier, createIfMissing);
3096
+ }
3097
+ return idCfg;
3098
+ }
3099
+ function _getCfg(cfg, identifier, createIfMissing) {
3100
+ var idCfg = null;
2561
3101
  if (cfg && identifier) {
2562
- var extCfg = cfg[STR_EXTENSION_CONFIG ];
2563
- if (!extCfg && createIfMissing) {
2564
- extCfg = {};
2565
- }
2566
- cfg[STR_EXTENSION_CONFIG] = extCfg;
2567
- extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);
2568
- if (extCfg) {
2569
- idCfg = extCfg[identifier];
2570
- if (!idCfg && createIfMissing) {
2571
- idCfg = {};
2572
- }
2573
- extCfg[identifier] = idCfg;
2574
- idCfg = dynamicHandler.ref(extCfg, identifier);
3102
+ idCfg = cfg[identifier];
3103
+ if (!idCfg && createIfMissing) {
3104
+ idCfg = {};
2575
3105
  }
3106
+ cfg[identifier] = idCfg;
3107
+ idCfg = dynamicHandler.ref(cfg, identifier);
2576
3108
  }
2577
3109
  return idCfg;
2578
3110
  }
2579
- function _resolveExtCfg(identifier, defaultValues) {
2580
- var newConfig = _getExtCfg(identifier, true);
3111
+ function _resolveExtCfg(identifier, defaultValues, rootOnly) {
3112
+ var newConfig = rootOnly ? _getCfg(dynamicHandler.cfg, identifier, true) : _getExtCfg(identifier, true);
2581
3113
  if (defaultValues) {
2582
3114
  objForEachKey(defaultValues, function (field, defaultValue) {
2583
3115
  if (isNullOrUndefined(newConfig[field])) {
@@ -3286,7 +3818,7 @@ var DEFAULT_BREEZE_PATH = "/v2/track";
3286
3818
  var strNotSpecified = "not_specified";
3287
3819
  var strIkey = "iKey";
3288
3820
 
3289
- var RequestHeaders = createValueMap({
3821
+ var RequestHeaders = ( /* @__PURE__ */createValueMap({
3290
3822
  requestContextHeader: [0 , "Request-Context"],
3291
3823
  requestContextTargetKey: [1 , "appId"],
3292
3824
  requestContextAppIdFormat: [2 , "appId=cid-v1:"],
@@ -3296,7 +3828,7 @@ var RequestHeaders = createValueMap({
3296
3828
  sdkContextHeader: [6 , "Sdk-Context"],
3297
3829
  sdkContextHeaderAppIdRequest: [7 , "appId"],
3298
3830
  requestContextHeaderLowerCase: [8 , "request-context"]
3299
- });
3831
+ }));
3300
3832
 
3301
3833
  var _DYN_SPLIT = "split";
3302
3834
  var _DYN_LENGTH$1 = "length";
@@ -3306,6 +3838,7 @@ var _DYN_PATHNAME = "pathname";
3306
3838
  var _DYN_MATCH = "match";
3307
3839
  var _DYN_CORRELATION_HEADER_E0 = "correlationHeaderExcludePatterns";
3308
3840
  var _DYN_NAME = "name";
3841
+ var _DYN_TRACE_FLAGS$1 = "traceFlags";
3309
3842
  var _DYN_PROPERTIES = "properties";
3310
3843
  var _DYN_MEASUREMENTS = "measurements";
3311
3844
  var _DYN_DURATION = "duration";
@@ -3348,7 +3881,10 @@ function dataSanitizeString(logger, value, maxLength) {
3348
3881
  }
3349
3882
  return valueTrunc || value;
3350
3883
  }
3351
- function dataSanitizeUrl(logger, url) {
3884
+ function dataSanitizeUrl(logger, url, config) {
3885
+ if (isString(url)) {
3886
+ url = fieldRedaction(url, config);
3887
+ }
3352
3888
  return dataSanitizeInput(logger, url, 2048 , 66 );
3353
3889
  }
3354
3890
  function dataSanitizeProperties(logger, properties) {
@@ -3581,41 +4117,14 @@ function dateTimeUtilsDuration(start, end) {
3581
4117
  return result;
3582
4118
  }
3583
4119
  function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
3584
- var trace = telemetryTrace || {};
3585
- return {
3586
- getName: function () {
3587
- return trace[_DYN_NAME ];
3588
- },
3589
- setName: function (newValue) {
3590
- parentCtx && parentCtx.setName(newValue);
3591
- trace[_DYN_NAME ] = newValue;
3592
- },
3593
- getTraceId: function () {
3594
- return trace.traceID;
3595
- },
3596
- setTraceId: function (newValue) {
3597
- parentCtx && parentCtx.setTraceId(newValue);
3598
- if (isValidTraceId(newValue)) {
3599
- trace.traceID = newValue;
3600
- }
3601
- },
3602
- getSpanId: function () {
3603
- return trace.parentID;
3604
- },
3605
- setSpanId: function (newValue) {
3606
- parentCtx && parentCtx.setSpanId(newValue);
3607
- if (isValidSpanId(newValue)) {
3608
- trace.parentID = newValue;
3609
- }
3610
- },
3611
- getTraceFlags: function () {
3612
- return trace.traceFlags;
3613
- },
3614
- setTraceFlags: function (newTraceFlags) {
3615
- parentCtx && parentCtx.setTraceFlags(newTraceFlags);
3616
- trace.traceFlags = newTraceFlags;
3617
- }
3618
- };
4120
+ var traceCtx = createDistributedTraceContext(parentCtx);
4121
+ if (telemetryTrace) {
4122
+ traceCtx.pageName = telemetryTrace[_DYN_NAME ] || traceCtx.pageName || "";
4123
+ traceCtx.traceId = telemetryTrace.traceID || traceCtx.traceId || "";
4124
+ traceCtx.spanId = telemetryTrace.parentID || traceCtx.spanId || "";
4125
+ traceCtx[_DYN_TRACE_FLAGS$1 ] = (!isNullOrUndefined(telemetryTrace[_DYN_TRACE_FLAGS$1 ]) ? telemetryTrace[_DYN_TRACE_FLAGS$1 ] : traceCtx[_DYN_TRACE_FLAGS$1 ]) || 0;
4126
+ }
4127
+ return traceCtx;
3619
4128
  }
3620
4129
 
3621
4130
  var strEmpty = "";
@@ -3813,11 +4322,12 @@ var STR_PROPERTIES = "properties";
3813
4322
 
3814
4323
  var _DYN_REQUEST_URL = "requestUrl";
3815
4324
  var _DYN_LENGTH = "length";
3816
- var _DYN_TRACE_ID = "traceID";
3817
- var _DYN_SPAN_ID = "spanID";
4325
+ var _DYN_ABORTED = "aborted";
4326
+ var _DYN_TRACE_ID = "traceId";
4327
+ var _DYN_SPAN_ID = "spanId";
3818
4328
  var _DYN_TRACE_FLAGS = "traceFlags";
4329
+ var _DYN_TRACE_STATE = "traceState";
3819
4330
  var _DYN_CONTEXT = "context";
3820
- var _DYN_ABORTED = "aborted";
3821
4331
  var _DYN__ADD_HOOK = "_addHook";
3822
4332
  var _DYN_CORE = "core";
3823
4333
  var _DYN_INCLUDE_CORRELATION_0 = "includeCorrelationHeaders";
@@ -3841,8 +4351,6 @@ var _DYN_STATUS = "status";
3841
4351
  var _DYN_STATUS_TEXT = "statusText";
3842
4352
  var _DYN_HEADER_MAP = "headerMap";
3843
4353
  var _DYN_REQUEST_SENT_TIME = "requestSentTime";
3844
- var _DYN_GET_TRACE_ID = "getTraceId";
3845
- var _DYN_GET_TRACE_FLAGS = "getTraceFlags";
3846
4354
  var _DYN_METHOD = "method";
3847
4355
  var _DYN_ERROR_STATUS_TEXT = "errorStatusText";
3848
4356
  var _DYN_STATE_CHANGE_ATTACHE11 = "stateChangeAttached";
@@ -3850,13 +4358,10 @@ var _DYN_RESPONSE_TEXT = "responseText";
3850
4358
  var _DYN_RESPONSE_FINISHED_TI12 = "responseFinishedTime";
3851
4359
  var _DYN__CREATE_TRACK_ITEM = "CreateTrackItem";
3852
4360
  var _DYN_GET_ALL_RESPONSE_HEA13 = "getAllResponseHeaders";
3853
- var _DYN_GET_PART_APROPS = "getPartAProps";
3854
- var _DYN_PERF_MARK = "perfMark";
3855
4361
  var _DYN_PERF_TIMING = "perfTiming";
3856
4362
  var _DYN_AJAX_DIAGNOSTICS_MES14 = "ajaxDiagnosticsMessage";
3857
4363
  var _DYN_CORRELATION_CONTEXT = "correlationContext";
3858
4364
  var _DYN_AJAX_TOTAL_DURATION = "ajaxTotalDuration";
3859
- var _DYN_EVENT_TRACE_CTX = "eventTraceCtx";
3860
4365
 
3861
4366
  function _calcPerfDuration(resourceEntry, start, end) {
3862
4367
  var result = 0;
@@ -3951,7 +4456,7 @@ function _populatePerfData(ajaxData, dependency) {
3951
4456
  propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);
3952
4457
  }
3953
4458
  else {
3954
- if (ajaxData[_DYN_PERF_MARK ]) {
4459
+ if (ajaxData.perfMark) {
3955
4460
  propsSet |= _setPerfValue(props, "missing", ajaxData.perfAttempts);
3956
4461
  }
3957
4462
  }
@@ -3959,144 +4464,130 @@ function _populatePerfData(ajaxData, dependency) {
3959
4464
  dependency[STR_PROPERTIES ] = props;
3960
4465
  }
3961
4466
  }
3962
- var XHRMonitoringState = /** @class */ (function () {
3963
- function XHRMonitoringState() {
3964
- var self = this;
3965
- self.openDone = false;
3966
- self.setRequestHeaderDone = false;
3967
- self.sendDone = false;
3968
- self.abortDone = false;
3969
- self[_DYN_STATE_CHANGE_ATTACHE11 ] = false;
3970
- }
3971
- return XHRMonitoringState;
3972
- }());
3973
- var ajaxRecord = /** @class */ (function () {
3974
- function ajaxRecord(traceId, spanId, logger, traceCtx) {
3975
- var self = this;
3976
- var _logger = logger;
3977
- var strResponseText = "responseText";
3978
- self[_DYN_PERF_MARK ] = null;
3979
- self.completed = false;
3980
- self.requestHeadersSize = null;
3981
- self[_DYN_REQUEST_HEADERS ] = null;
3982
- self.responseReceivingDuration = null;
3983
- self.callbackDuration = null;
3984
- self[_DYN_AJAX_TOTAL_DURATION ] = null;
3985
- self[_DYN_ABORTED ] = 0;
3986
- self.pageUrl = null;
3987
- self[_DYN_REQUEST_URL ] = null;
3988
- self.requestSize = 0;
3989
- self[_DYN_METHOD ] = null;
3990
- self[_DYN_STATUS ] = null;
3991
- self[_DYN_REQUEST_SENT_TIME ] = null;
3992
- self.responseStartedTime = null;
3993
- self[_DYN_RESPONSE_FINISHED_TI12 ] = null;
3994
- self.callbackFinishedTime = null;
3995
- self.endTime = null;
3996
- self.xhrMonitoringState = new XHRMonitoringState();
3997
- self.clientFailure = 0;
3998
- self[_DYN_TRACE_ID ] = traceId;
3999
- self[_DYN_SPAN_ID ] = spanId;
4000
- self[_DYN_TRACE_FLAGS ] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();
4001
- if (traceCtx) {
4002
- self[_DYN_EVENT_TRACE_CTX ] = {
4003
- traceId: traceCtx[_DYN_GET_TRACE_ID ](),
4004
- spanId: traceCtx.getSpanId(),
4005
- traceFlags: traceCtx[_DYN_GET_TRACE_FLAGS ]()
4006
- };
4007
- }
4008
- else {
4009
- self[_DYN_EVENT_TRACE_CTX ] = null;
4010
- }
4011
- dynamicProto(ajaxRecord, self, function (self) {
4012
- self.getAbsoluteUrl = function () {
4013
- return self[_DYN_REQUEST_URL ] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL ]) : null;
4014
- };
4015
- self.getPathName = function () {
4016
- return self[_DYN_REQUEST_URL ] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD ], self[_DYN_REQUEST_URL ])) : null;
4017
- };
4018
- self[_DYN__CREATE_TRACK_ITEM ] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
4019
- var _a;
4020
- self.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;
4021
- if (self[_DYN_AJAX_TOTAL_DURATION ] < 0) {
4022
- return null;
4023
- }
4024
- var dependency = (_a = {
4025
- id: "|" + self[_DYN_TRACE_ID ] + "." + self[_DYN_SPAN_ID ],
4026
- target: self[_DYN_GET_ABSOLUTE_URL ](),
4027
- name: self.getPathName(),
4028
- type: ajaxType,
4029
- startTime: null,
4030
- duration: self[_DYN_AJAX_TOTAL_DURATION ],
4031
- success: (+(self[_DYN_STATUS ])) >= 200 && (+(self[_DYN_STATUS ])) < 400,
4032
- responseCode: (+(self[_DYN_STATUS ]))
4033
- },
4034
- _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD ] },
4035
- _a);
4036
- var props = dependency[STR_PROPERTIES];
4037
- if (self[_DYN_ABORTED ]) {
4038
- props[_DYN_ABORTED ] = true;
4039
- }
4040
- if (self[_DYN_REQUEST_SENT_TIME ]) {
4041
- dependency[_DYN_START_TIME ] = new Date();
4042
- dependency[_DYN_START_TIME ].setTime(self[_DYN_REQUEST_SENT_TIME ]);
4043
- }
4044
- _populatePerfData(self, dependency);
4045
- if (enableRequestHeaderTracking) {
4046
- if (objKeys(self.requestHeaders)[_DYN_LENGTH ] > 0) {
4047
- props[_DYN_REQUEST_HEADERS ] = self[_DYN_REQUEST_HEADERS ];
4048
- }
4467
+ function createXHRMonitoringState() {
4468
+ var _a;
4469
+ return _a = {
4470
+ openDone: false,
4471
+ setRequestHeaderDone: false,
4472
+ sendDone: false,
4473
+ abortDone: false
4474
+ },
4475
+ _a[_DYN_STATE_CHANGE_ATTACHE11 ] = false,
4476
+ _a;
4477
+ }
4478
+ function createAjaxRecord(traceCtx, logger) {
4479
+ var _a;
4480
+ var _logger = logger;
4481
+ var ajaxRecord = (_a = {
4482
+ perfMark: null,
4483
+ completed: false,
4484
+ requestHeadersSize: null
4485
+ },
4486
+ _a[_DYN_REQUEST_HEADERS ] = null,
4487
+ _a.responseReceivingDuration = null,
4488
+ _a.callbackDuration = null,
4489
+ _a[_DYN_AJAX_TOTAL_DURATION ] = null,
4490
+ _a.aborted = 0,
4491
+ _a.pageUrl = null,
4492
+ _a.requestUrl = null,
4493
+ _a.requestSize = 0,
4494
+ _a.method = null,
4495
+ _a.status = null,
4496
+ _a[_DYN_REQUEST_SENT_TIME ] = null,
4497
+ _a.responseStartedTime = null,
4498
+ _a[_DYN_RESPONSE_FINISHED_TI12 ] = null,
4499
+ _a.callbackFinishedTime = null,
4500
+ _a.endTime = null,
4501
+ _a.xhrMonitoringState = createXHRMonitoringState(),
4502
+ _a.clientFailure = 0,
4503
+ _a.traceCtx = traceCtx,
4504
+ _a.perfTiming = null,
4505
+ _a[_DYN_GET_ABSOLUTE_URL ] = function () {
4506
+ return ajaxRecord[_DYN_REQUEST_URL ] ? urlGetAbsoluteUrl(ajaxRecord[_DYN_REQUEST_URL ]) : null;
4507
+ },
4508
+ _a.getPathName = function () {
4509
+ return ajaxRecord[_DYN_REQUEST_URL ] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(ajaxRecord[_DYN_METHOD ], ajaxRecord[_DYN_REQUEST_URL ])) : null;
4510
+ },
4511
+ _a[_DYN__CREATE_TRACK_ITEM ] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
4512
+ var _a;
4513
+ ajaxRecord.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(ajaxRecord.requestSentTime, ajaxRecord.responseFinishedTime) * 1000) / 1000;
4514
+ if (ajaxRecord[_DYN_AJAX_TOTAL_DURATION ] < 0) {
4515
+ return null;
4516
+ }
4517
+ var dependency = (_a = {
4518
+ id: "|" + traceCtx[_DYN_TRACE_ID ] + "." + traceCtx[_DYN_SPAN_ID ],
4519
+ target: ajaxRecord[_DYN_GET_ABSOLUTE_URL ](),
4520
+ name: ajaxRecord.getPathName(),
4521
+ type: ajaxType,
4522
+ startTime: null,
4523
+ duration: ajaxRecord[_DYN_AJAX_TOTAL_DURATION ],
4524
+ success: (+(ajaxRecord[_DYN_STATUS ])) >= 200 && (+(ajaxRecord[_DYN_STATUS ])) < 400,
4525
+ responseCode: (+(ajaxRecord[_DYN_STATUS ]))
4526
+ },
4527
+ _a[STR_PROPERTIES] = { HttpMethod: ajaxRecord[_DYN_METHOD ] },
4528
+ _a);
4529
+ var props = dependency[STR_PROPERTIES];
4530
+ if (ajaxRecord[_DYN_ABORTED ]) {
4531
+ props[_DYN_ABORTED ] = true;
4532
+ }
4533
+ if (ajaxRecord[_DYN_REQUEST_SENT_TIME ]) {
4534
+ dependency[_DYN_START_TIME ] = new Date();
4535
+ dependency[_DYN_START_TIME ].setTime(ajaxRecord[_DYN_REQUEST_SENT_TIME ]);
4536
+ }
4537
+ _populatePerfData(this, dependency);
4538
+ if (enableRequestHeaderTracking) {
4539
+ if (objKeys(ajaxRecord.requestHeaders)[_DYN_LENGTH ] > 0) {
4540
+ props[_DYN_REQUEST_HEADERS ] = ajaxRecord[_DYN_REQUEST_HEADERS ];
4049
4541
  }
4050
- if (getResponse) {
4051
- var response = getResponse();
4052
- if (response) {
4053
- var correlationContext = response[_DYN_CORRELATION_CONTEXT ];
4054
- if (correlationContext) {
4055
- dependency.correlationContext = correlationContext;
4056
- }
4057
- if (response[_DYN_HEADER_MAP ]) {
4058
- if (objKeys(response.headerMap)[_DYN_LENGTH ] > 0) {
4059
- props.responseHeaders = response[_DYN_HEADER_MAP ];
4060
- }
4542
+ }
4543
+ if (getResponse) {
4544
+ var response = getResponse();
4545
+ if (response) {
4546
+ var correlationContext = response[_DYN_CORRELATION_CONTEXT ];
4547
+ if (correlationContext) {
4548
+ dependency.correlationContext = correlationContext;
4549
+ }
4550
+ if (response[_DYN_HEADER_MAP ]) {
4551
+ if (objKeys(response.headerMap)[_DYN_LENGTH ] > 0) {
4552
+ props.responseHeaders = response[_DYN_HEADER_MAP ];
4061
4553
  }
4062
- if (self[_DYN_ERROR_STATUS_TEXT ]) {
4063
- if (self[_DYN_STATUS ] >= 400) {
4064
- var responseType = response.type;
4065
- if (responseType === "" || responseType === "text") {
4066
- props.responseText = response.responseText ? response[_DYN_STATUS_TEXT ] + " - " + response[strResponseText] : response[_DYN_STATUS_TEXT ];
4067
- }
4068
- if (responseType === "json") {
4069
- props.responseText = response.response ? response[_DYN_STATUS_TEXT ] + " - " + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT ];
4070
- }
4554
+ }
4555
+ if (ajaxRecord[_DYN_ERROR_STATUS_TEXT ]) {
4556
+ if ((+(ajaxRecord[_DYN_STATUS ])) >= 400) {
4557
+ var responseType = response.type;
4558
+ if (responseType === "" || responseType === "text") {
4559
+ props.responseText = response.responseText ? response[_DYN_STATUS_TEXT ] + " - " + response[_DYN_RESPONSE_TEXT ] : response[_DYN_STATUS_TEXT ];
4071
4560
  }
4072
- else if (self[_DYN_STATUS ] === 0) {
4073
- props.responseText = response[_DYN_STATUS_TEXT ] || "";
4561
+ if (responseType === "json") {
4562
+ props.responseText = response.response ? response[_DYN_STATUS_TEXT ] + " - " + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT ];
4074
4563
  }
4075
4564
  }
4565
+ else if (ajaxRecord[_DYN_STATUS ] === 0) {
4566
+ props.responseText = response[_DYN_STATUS_TEXT ] || "";
4567
+ }
4076
4568
  }
4077
4569
  }
4078
- return dependency;
4079
- };
4080
- self[_DYN_GET_PART_APROPS ] = function () {
4081
- var partA = null;
4082
- var traceCtx = self[_DYN_EVENT_TRACE_CTX ];
4083
- if (traceCtx && (traceCtx.traceId || traceCtx.spanId)) {
4084
- partA = {};
4085
- var traceExt = partA[Extensions.TraceExt] = {
4086
- traceID: traceCtx.traceId,
4087
- parentID: traceCtx.spanId
4088
- };
4089
- if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS ])) {
4090
- traceExt[_DYN_TRACE_FLAGS ] = traceCtx[_DYN_TRACE_FLAGS ];
4091
- }
4570
+ }
4571
+ return dependency;
4572
+ },
4573
+ _a.getPartAProps = function () {
4574
+ var partA = null;
4575
+ var parentCtx = ajaxRecord.traceCtx.parentCtx;
4576
+ if (parentCtx && (parentCtx[_DYN_TRACE_ID ] || parentCtx[_DYN_SPAN_ID ])) {
4577
+ partA = {};
4578
+ var traceExt = partA[Extensions.TraceExt] = {
4579
+ traceID: parentCtx[_DYN_TRACE_ID ],
4580
+ parentID: parentCtx[_DYN_SPAN_ID ]
4581
+ };
4582
+ if (!isNullOrUndefined(parentCtx[_DYN_TRACE_FLAGS ])) {
4583
+ traceExt[_DYN_TRACE_FLAGS ] = parentCtx[_DYN_TRACE_FLAGS ];
4092
4584
  }
4093
- return partA;
4094
- };
4095
- });
4096
- }
4097
- ajaxRecord.__ieDyn=1;
4585
+ }
4586
+ return partA;
4587
+ },
4588
+ _a);
4098
4589
  return ajaxRecord;
4099
- }());
4590
+ }
4100
4591
 
4101
4592
  var _a;
4102
4593
  var strDiagLog = "diagLog";
@@ -4256,22 +4747,44 @@ function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init
4256
4747
  var initializersCount = listeners[_DYN_LENGTH ];
4257
4748
  var result = true;
4258
4749
  if (initializersCount > 0) {
4750
+ var traceCtx_1 = ajaxData.traceCtx;
4259
4751
  var details = {
4260
4752
  core: core,
4261
4753
  xhr: xhr,
4262
4754
  input: input,
4263
4755
  init: init,
4264
- traceId: ajaxData[_DYN_TRACE_ID ],
4265
- spanId: ajaxData[_DYN_SPAN_ID ],
4266
- traceFlags: ajaxData[_DYN_TRACE_FLAGS ],
4267
- context: ajaxData[_DYN_CONTEXT ] || {},
4268
4756
  aborted: !!ajaxData[_DYN_ABORTED ]
4269
4757
  };
4758
+ objDefineProps(details, {
4759
+ "traceId": {
4760
+ g: function () { return traceCtx_1[_DYN_TRACE_ID ]; },
4761
+ s: function (value) {
4762
+ traceCtx_1[_DYN_TRACE_ID ] = value;
4763
+ }
4764
+ },
4765
+ "spanId": {
4766
+ g: function () { return traceCtx_1[_DYN_SPAN_ID ]; },
4767
+ s: function (value) {
4768
+ traceCtx_1[_DYN_SPAN_ID ] = value;
4769
+ }
4770
+ },
4771
+ "traceFlags": {
4772
+ g: function () { return traceCtx_1[_DYN_TRACE_FLAGS ]; },
4773
+ s: function (value) {
4774
+ traceCtx_1[_DYN_TRACE_FLAGS ] = value;
4775
+ }
4776
+ },
4777
+ "traceState": {
4778
+ g: function () { return traceCtx_1[_DYN_TRACE_STATE ]; }
4779
+ },
4780
+ "context": {
4781
+ g: function () { return ajaxData[_DYN_CONTEXT ] || {}; },
4782
+ s: function (value) {
4783
+ ajaxData[_DYN_CONTEXT ] = value;
4784
+ }
4785
+ }
4786
+ });
4270
4787
  result = _processDependencyContainer(core, listeners, details, "listener");
4271
- ajaxData[_DYN_TRACE_ID ] = details.traceId;
4272
- ajaxData[_DYN_SPAN_ID ] = details.spanId;
4273
- ajaxData[_DYN_TRACE_FLAGS ] = details[_DYN_TRACE_FLAGS ];
4274
- ajaxData[_DYN_CONTEXT ] = details[_DYN_CONTEXT ];
4275
4788
  }
4276
4789
  return result;
4277
4790
  }
@@ -4327,6 +4840,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
4327
4840
  var _context;
4328
4841
  var _isUsingW3CHeaders;
4329
4842
  var _isUsingAIHeaders;
4843
+ var _isUsingW3CTraceState;
4330
4844
  var _markPrefix;
4331
4845
  var _enableAjaxPerfTracking;
4332
4846
  var _maxAjaxCallsPerView;
@@ -4374,41 +4888,65 @@ var AjaxMonitor = /** @class */ (function (_super) {
4374
4888
  if (!init) {
4375
4889
  init = {};
4376
4890
  }
4377
- var headers = new Headers(init[_DYN_HEADERS ] || (input instanceof Request ? (input[_DYN_HEADERS ] || {}) : {}));
4891
+ var traceCtx = ajaxData.traceCtx;
4892
+ var headers_1 = new Headers(init[_DYN_HEADERS ] || (input instanceof Request ? (input[_DYN_HEADERS ] || {}) : {}));
4378
4893
  if (_isUsingAIHeaders) {
4379
- var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
4380
- headers.set(RequestHeaders[3 ], id);
4894
+ var id = "|" + traceCtx[_DYN_TRACE_ID ] + "." + traceCtx[_DYN_SPAN_ID ];
4895
+ headers_1.set(RequestHeaders[3 ], id);
4381
4896
  if (_enableRequestHeaderTracking) {
4382
4897
  ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
4383
4898
  }
4384
4899
  }
4385
4900
  var appId = _appId || (_context && _context.appId());
4386
4901
  if (appId) {
4387
- headers.set(RequestHeaders[0 ], RequestHeaders[2 ] + appId);
4902
+ headers_1.set(RequestHeaders[0 ], RequestHeaders[2 ] + appId);
4388
4903
  if (_enableRequestHeaderTracking) {
4389
4904
  ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[0 ]] = RequestHeaders[2 ] + appId;
4390
4905
  }
4391
4906
  }
4392
4907
  if (_isUsingW3CHeaders) {
4393
- var traceFlags = ajaxData[_DYN_TRACE_FLAGS ];
4908
+ var traceFlags = traceCtx[_DYN_TRACE_FLAGS ];
4394
4909
  if (isNullOrUndefined(traceFlags)) {
4395
- traceFlags = 0x01;
4910
+ traceFlags = 1 ;
4396
4911
  }
4397
- var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
4398
- headers.set(RequestHeaders[4 ], traceParent);
4912
+ var traceParent = formatTraceParent(createTraceParent(traceCtx[_DYN_TRACE_ID ], traceCtx[_DYN_SPAN_ID ], traceFlags));
4913
+ headers_1.set(RequestHeaders[4 ], traceParent);
4399
4914
  if (_enableRequestHeaderTracking) {
4400
4915
  ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
4401
4916
  }
4402
4917
  }
4403
- init[_DYN_HEADERS ] = headers;
4918
+ if (_isUsingW3CTraceState) {
4919
+ if (traceCtx[_DYN_TRACE_STATE ] && !traceCtx[_DYN_TRACE_STATE ].isEmpty) {
4920
+ var traceStateHeaders = traceCtx[_DYN_TRACE_STATE ].hdrs();
4921
+ if (traceStateHeaders && traceStateHeaders[_DYN_LENGTH ] > 0) {
4922
+ var stateSet_1 = false;
4923
+ arrForEach(traceStateHeaders, function (stateValue) {
4924
+ if (stateValue) {
4925
+ if (!stateSet_1) {
4926
+ stateSet_1 = true;
4927
+ headers_1.set(RequestHeaders[5 ], stateValue);
4928
+ }
4929
+ else {
4930
+ headers_1.append(RequestHeaders[5 ], stateValue);
4931
+ }
4932
+ }
4933
+ });
4934
+ }
4935
+ if (_enableRequestHeaderTracking) {
4936
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[5 ]] = traceStateHeaders.join(",");
4937
+ }
4938
+ }
4939
+ }
4940
+ init[_DYN_HEADERS ] = headers_1;
4404
4941
  }
4405
4942
  return init;
4406
4943
  }
4407
4944
  else if (xhr) {
4408
4945
  if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
4946
+ var traceCtx = ajaxData.traceCtx;
4409
4947
  if (_isUsingAIHeaders) {
4410
4948
  if (!_isHeaderSet(xhr, RequestHeaders[3 ])) {
4411
- var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
4949
+ var id = "|" + traceCtx[_DYN_TRACE_ID ] + "." + traceCtx[_DYN_SPAN_ID ];
4412
4950
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[3 ], id);
4413
4951
  if (_enableRequestHeaderTracking) {
4414
4952
  ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
@@ -4431,12 +4969,12 @@ var AjaxMonitor = /** @class */ (function (_super) {
4431
4969
  }
4432
4970
  }
4433
4971
  if (_isUsingW3CHeaders) {
4434
- var traceFlags = ajaxData[_DYN_TRACE_FLAGS ];
4972
+ var traceFlags = traceCtx[_DYN_TRACE_FLAGS ];
4435
4973
  if (isNullOrUndefined(traceFlags)) {
4436
- traceFlags = 0x01;
4974
+ traceFlags = 1 ;
4437
4975
  }
4438
4976
  if (!_isHeaderSet(xhr, RequestHeaders[4 ])) {
4439
- var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
4977
+ var traceParent = formatTraceParent(createTraceParent(traceCtx[_DYN_TRACE_ID ], traceCtx[_DYN_SPAN_ID ], traceFlags));
4440
4978
  xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[4 ], traceParent);
4441
4979
  if (_enableRequestHeaderTracking) {
4442
4980
  ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
@@ -4446,6 +4984,21 @@ var AjaxMonitor = /** @class */ (function (_super) {
4446
4984
  _throwInternalWarning(_self, 71 , "Unable to set [" + RequestHeaders[4 ] + "] as it has already been set by another instance");
4447
4985
  }
4448
4986
  }
4987
+ if (_isUsingW3CTraceState) {
4988
+ if (traceCtx[_DYN_TRACE_STATE ] && !traceCtx[_DYN_TRACE_STATE ].isEmpty) {
4989
+ var traceStateHeaders = traceCtx[_DYN_TRACE_STATE ].hdrs();
4990
+ if (traceStateHeaders && traceStateHeaders[_DYN_LENGTH ] > 0) {
4991
+ arrForEach(traceStateHeaders, function (stateValue) {
4992
+ if (stateValue) {
4993
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[5 ], stateValue);
4994
+ }
4995
+ });
4996
+ }
4997
+ if (_enableRequestHeaderTracking) {
4998
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[5 ]] = traceStateHeaders.join(",");
4999
+ }
5000
+ }
5001
+ }
4449
5002
  }
4450
5003
  return xhr;
4451
5004
  }
@@ -4488,6 +5041,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
4488
5041
  _trackAjaxAttempts = 0;
4489
5042
  _context = null;
4490
5043
  _isUsingW3CHeaders = false;
5044
+ _isUsingW3CTraceState = false;
4491
5045
  _isUsingAIHeaders = false;
4492
5046
  _markPrefix = null;
4493
5047
  _enableAjaxPerfTracking = false;
@@ -4522,8 +5076,10 @@ var AjaxMonitor = /** @class */ (function (_super) {
4522
5076
  _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V5 ];
4523
5077
  _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM6 ] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
4524
5078
  _addRequestContext = _extensionConfig.addRequestContext;
4525
- _isUsingAIHeaders = _distributedTracingMode === 0 || _distributedTracingMode === 1 ;
4526
- _isUsingW3CHeaders = _distributedTracingMode === 1 || _distributedTracingMode === 2 ;
5079
+ var baseDistributedTracingMode = _distributedTracingMode & 15 ;
5080
+ _isUsingAIHeaders = baseDistributedTracingMode === 0 || baseDistributedTracingMode === 1 ;
5081
+ _isUsingW3CHeaders = baseDistributedTracingMode === 1 || baseDistributedTracingMode === 2 ;
5082
+ _isUsingW3CTraceState = !!(_distributedTracingMode & 16 );
4527
5083
  if (_enableAjaxPerfTracking) {
4528
5084
  _markPrefix = _ajaxDataId;
4529
5085
  }
@@ -4761,25 +5317,32 @@ var AjaxMonitor = /** @class */ (function (_super) {
4761
5317
  return initialized
4762
5318
  && ajaxValidation;
4763
5319
  }
4764
- function _getDistributedTraceCtx() {
5320
+ function _startSpan() {
4765
5321
  var distributedTraceCtx = null;
4766
5322
  if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
4767
- distributedTraceCtx = _self[_DYN_CORE ].getTraceCtx(false);
5323
+ distributedTraceCtx = createDistributedTraceContext(_self[_DYN_CORE ].getTraceCtx());
4768
5324
  }
4769
5325
  if (!distributedTraceCtx && _context && _context.telemetryTrace) {
4770
5326
  distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);
4771
5327
  }
4772
- return distributedTraceCtx;
5328
+ var newCtx = createDistributedTraceContext(distributedTraceCtx);
5329
+ newCtx[_DYN_TRACE_ID ] = newCtx[_DYN_TRACE_ID ] || generateW3CId();
5330
+ newCtx[_DYN_SPAN_ID ] = strSubstr(generateW3CId(), 0, 16);
5331
+ return createAjaxRecord(newCtx, _self[strDiagLog]());
5332
+ }
5333
+ function _endSpan(ajaxData, dependency, properties) {
5334
+ if (dependency) {
5335
+ if (properties !== undefined) {
5336
+ dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
5337
+ }
5338
+ var sysProperties = ajaxData.getPartAProps();
5339
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, properties, sysProperties);
5340
+ }
4773
5341
  }
4774
5342
  function _openHandler(xhr, method, url, async) {
4775
- var _a;
4776
- var distributedTraceCtx = _getDistributedTraceCtx();
4777
- var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID ]()) || generateW3CId();
4778
- var spanID = strSubstr(generateW3CId(), 0, 16);
4779
5343
  var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });
4780
5344
  var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});
4781
- var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));
4782
- ajaxData[_DYN_TRACE_FLAGS ] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS ]();
5345
+ var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || _startSpan());
4783
5346
  ajaxData[_DYN_METHOD ] = method;
4784
5347
  ajaxData[_DYN_REQUEST_URL ] = url;
4785
5348
  ajaxData.xhrMonitoringState.openDone = true;
@@ -4870,19 +5433,13 @@ var AjaxMonitor = /** @class */ (function (_super) {
4870
5433
  catch (e) {
4871
5434
  _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
4872
5435
  }
4873
- if (dependency) {
4874
- if (properties !== undefined) {
4875
- dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
4876
- }
4877
- var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
4878
- _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
4879
- }
4880
- else {
5436
+ if (!dependency) {
4881
5437
  _reportXhrError(null, {
4882
5438
  requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME ],
4883
5439
  responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 ]
4884
5440
  });
4885
5441
  }
5442
+ _endSpan(ajaxData, dependency, properties);
4886
5443
  }
4887
5444
  finally {
4888
5445
  try {
@@ -4927,13 +5484,13 @@ var AjaxMonitor = /** @class */ (function (_super) {
4927
5484
  performance_1.mark(markId);
4928
5485
  var entries = performance_1.getEntriesByName(markId);
4929
5486
  if (entries && entries[_DYN_LENGTH ] === 1) {
4930
- ajaxData[_DYN_PERF_MARK ] = entries[0];
5487
+ ajaxData.perfMark = entries[0];
4931
5488
  }
4932
5489
  }
4933
5490
  }
4934
5491
  }
4935
5492
  function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {
4936
- var perfMark = ajaxData[_DYN_PERF_MARK ];
5493
+ var perfMark = ajaxData.perfMark;
4937
5494
  var performance = getPerformance();
4938
5495
  var maxAttempts = _maxAjaxPerfLookupAttempts;
4939
5496
  var retryDelay = _ajaxPerfLookupDelay;
@@ -4984,12 +5541,7 @@ var AjaxMonitor = /** @class */ (function (_super) {
4984
5541
  })();
4985
5542
  }
4986
5543
  function _createFetchRecord(input, init) {
4987
- var _a;
4988
- var distributedTraceCtx = _getDistributedTraceCtx();
4989
- var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID ]()) || generateW3CId();
4990
- var spanID = strSubstr(generateW3CId(), 0, 16);
4991
- var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());
4992
- ajaxData[_DYN_TRACE_FLAGS ] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS ]();
5544
+ var ajaxData = _startSpan();
4993
5545
  ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
4994
5546
  ajaxData[_DYN_ERROR_STATUS_TEXT ] = _enableAjaxErrorStatusText;
4995
5547
  var requestUrl;
@@ -5005,6 +5557,9 @@ var AjaxMonitor = /** @class */ (function (_super) {
5005
5557
  requestUrl = strSplit(location_1.href, "#")[0];
5006
5558
  }
5007
5559
  }
5560
+ if (_self[_DYN_CORE ] && _self[_DYN_CORE ].config) {
5561
+ requestUrl = fieldRedaction(requestUrl, _self[_DYN_CORE ].config);
5562
+ }
5008
5563
  ajaxData[_DYN_REQUEST_URL ] = requestUrl;
5009
5564
  var method = "GET";
5010
5565
  if (init && init[_DYN_METHOD ]) {
@@ -5069,19 +5624,13 @@ var AjaxMonitor = /** @class */ (function (_super) {
5069
5624
  catch (e) {
5070
5625
  _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
5071
5626
  }
5072
- if (dependency) {
5073
- if (properties !== undefined) {
5074
- dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
5075
- }
5076
- var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
5077
- _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
5078
- }
5079
- else {
5627
+ if (!dependency) {
5080
5628
  _reportFetchError(14 , null, {
5081
5629
  requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME ],
5082
5630
  responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 ]
5083
5631
  });
5084
5632
  }
5633
+ _endSpan(ajaxData, dependency, properties);
5085
5634
  }, function (e) {
5086
5635
  _reportFetchError(18 , e, null);
5087
5636
  });
@@ -5132,5 +5681,4 @@ var AjaxMonitor = /** @class */ (function (_super) {
5132
5681
 
5133
5682
  exports.AjaxPlugin = AjaxMonitor;
5134
5683
  exports.DfltAjaxCorrelationHeaderExDomains = DfltAjaxCorrelationHeaderExDomains;
5135
- exports.ajaxRecord = ajaxRecord;
5136
5684
  //# sourceMappingURL=applicationinsights-dependencies-js.cjs.js.map