@microsoft/applicationinsights-dependencies-js 2.8.4-nightly.2205-07 → 2.8.4-nightly.2205-10

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.
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-dependencies-js",
3
- "version": "2.8.4-nightly.2205-07",
3
+ "version": "2.8.4-nightly.2205-10",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-dependencies-js.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-+QW76iDSBYapFFUtZm8r75zax+AznxiVFzvwLFdGMSw= sha384-JlU0FJFp2TqKkiGibuHGwJBrNU1cTBllXRM8qij+aFrvUCuczI58vMzIXsjU322t sha512-KrFNcTjbttbYK9rc2auveb6gbf/hhRuNjBGCvYlSlumCLbeD8UhseJKUExfpwirnwDEz7jTBjArxeYt0ATF5uA==",
8
+ "integrity": "sha256-vYehBv5hLHHmZ3Uy/RtsiI4LfIGy3QAlrssgfNvF7c4= sha384-uHvsVvgG6qpn0riQ/mULIWbLiBC/ir2WS6QDsHavfbdxyGhncuOYJc1Attv9qEAn sha512-5yzDinkSF49MnZLbO6kFsLVdGZbwdEZc1aXVSJ2ZupmmztenbM0hIJPH/+0Wjhn+K596D/mJoBar5unmWfNUCw==",
9
9
  "hashes": {
10
- "sha256": "+QW76iDSBYapFFUtZm8r75zax+AznxiVFzvwLFdGMSw=",
11
- "sha384": "JlU0FJFp2TqKkiGibuHGwJBrNU1cTBllXRM8qij+aFrvUCuczI58vMzIXsjU322t",
12
- "sha512": "KrFNcTjbttbYK9rc2auveb6gbf/hhRuNjBGCvYlSlumCLbeD8UhseJKUExfpwirnwDEz7jTBjArxeYt0ATF5uA=="
10
+ "sha256": "vYehBv5hLHHmZ3Uy/RtsiI4LfIGy3QAlrssgfNvF7c4=",
11
+ "sha384": "uHvsVvgG6qpn0riQ/mULIWbLiBC/ir2WS6QDsHavfbdxyGhncuOYJc1Attv9qEAn",
12
+ "sha512": "5yzDinkSF49MnZLbO6kFsLVdGZbwdEZc1aXVSJ2ZupmmztenbM0hIJPH/+0Wjhn+K596D/mJoBar5unmWfNUCw=="
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-QcerzWi1wSTDeS7nmHTYvpqW/1QG8N9GDYXcvsMxzKQ= sha384-YA7HnCLbElomt+IN0NqkpC6kUGlceUFzGsgQqCqHyUeEx8drghAMxF+S2gzofJ2r sha512-HMTiFU08neiIE7utc46EEVhF3UzBE0O/6tTfcDI655SoT6uIhUo0QktNy0/GecZb3LJSONAX+O5ewioYhy27+g==",
18
+ "integrity": "sha256-Zp4bz61TktgBsJy00l2mC215qSW4M4FTIkwbRSxgXz0= sha384-wTKQKgl1C8MUtPh/NQMprz4GvlN7vqswC6hB/yZLjd3zE3uRxICvJdIKQcMwB79f sha512-7y1bL3/64WX9gVhn4MWz5g+/KbrTdeMiUQaipwRnavyH9eyTaTqw7AwBr7rIZi/d1wqqPQ9YK5PelJMgkrpCoA==",
19
19
  "hashes": {
20
- "sha256": "QcerzWi1wSTDeS7nmHTYvpqW/1QG8N9GDYXcvsMxzKQ=",
21
- "sha384": "YA7HnCLbElomt+IN0NqkpC6kUGlceUFzGsgQqCqHyUeEx8drghAMxF+S2gzofJ2r",
22
- "sha512": "HMTiFU08neiIE7utc46EEVhF3UzBE0O/6tTfcDI655SoT6uIhUo0QktNy0/GecZb3LJSONAX+O5ewioYhy27+g=="
20
+ "sha256": "Zp4bz61TktgBsJy00l2mC215qSW4M4FTIkwbRSxgXz0=",
21
+ "sha384": "wTKQKgl1C8MUtPh/NQMprz4GvlN7vqswC6hB/yZLjd3zE3uRxICvJdIKQcMwB79f",
22
+ "sha512": "7y1bL3/64WX9gVhn4MWz5g+/KbrTdeMiUQaipwRnavyH9eyTaTqw7AwBr7rIZi/d1wqqPQ9YK5PelJMgkrpCoA=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.4-nightly.2205-07
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.4-nightly.2205-10
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -108,6 +108,8 @@
108
108
  var strDoTeardown = "_doTeardown";
109
109
 
110
110
  var strToISOString = "toISOString";
111
+ var cStrEndsWith = "endsWith";
112
+ var cStrStartsWith = "startsWith";
111
113
  var strIndexOf = "indexOf";
112
114
  var cStrTrim = "trim";
113
115
  var strToString = "toString";
@@ -115,9 +117,12 @@
115
117
  var strConstructor = "constructor";
116
118
  var _objDefineProperty$1 = ObjDefineProperty;
117
119
  var _objFreeze = ObjClass.freeze;
120
+ ObjClass.seal;
118
121
  var _objKeys = ObjClass.keys;
119
122
  var StringProto = String[strShimPrototype];
120
123
  var _strTrim = StringProto[cStrTrim];
124
+ StringProto[cStrEndsWith];
125
+ StringProto[cStrStartsWith];
121
126
  var DateProto = Date[strShimPrototype];
122
127
  var _dataToISOString = DateProto[strToISOString];
123
128
  var _isArray = Array.isArray;
@@ -187,6 +192,9 @@
187
192
  function _isArrayPoly(obj) {
188
193
  return !!(obj && _objToString.call(obj) === "[object Array]");
189
194
  }
195
+ function isError(obj) {
196
+ return !!(obj && _objToString.call(obj) === "[object Error]");
197
+ }
190
198
  function isString(value) {
191
199
  return typeof value === "string";
192
200
  }
@@ -348,6 +356,12 @@
348
356
  var dt = Date;
349
357
  return dt.now ? dt.now() : new dt().getTime();
350
358
  }
359
+ function getExceptionName(object) {
360
+ if (isError(object)) {
361
+ return object.name;
362
+ }
363
+ return strEmpty$1;
364
+ }
351
365
  function setValue(target, field, value, valChk, srcChk) {
352
366
  var theValue = value;
353
367
  if (target) {
@@ -1176,7 +1190,7 @@
1176
1190
  }
1177
1191
 
1178
1192
  var _objDefineProperty = ObjDefineProperty;
1179
- var version = "2.8.4-nightly.2205-07";
1193
+ var version = "2.8.4-nightly.2205-10";
1180
1194
  var instanceName = "." + newId(6);
1181
1195
  var _dataUid = 0;
1182
1196
  function _createAccessor(target, prop, value) {
@@ -1247,6 +1261,190 @@
1247
1261
  return data;
1248
1262
  }
1249
1263
 
1264
+ var strOnPrefix = "on";
1265
+ var strAttachEvent = "attachEvent";
1266
+ var strAddEventHelper = "addEventListener";
1267
+ var strEvents = "events";
1268
+ createUniqueNamespace("aiEvtPageHide");
1269
+ createUniqueNamespace("aiEvtPageShow");
1270
+ var rRemoveEmptyNs = /\.[\.]+/g;
1271
+ var rRemoveTrailingEmptyNs = /[\.]+$/;
1272
+ var _guid = 1;
1273
+ var elmNodeData = createElmNodeData("events");
1274
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1275
+ function _normalizeNamespace(name) {
1276
+ if (name && name.replace) {
1277
+ return name.replace(/^\s*\.*|\.*\s*$/g, "");
1278
+ }
1279
+ return name;
1280
+ }
1281
+ function _getEvtNamespace(eventName, evtNamespace) {
1282
+ if (evtNamespace) {
1283
+ var theNamespace_1 = "";
1284
+ if (isArray(evtNamespace)) {
1285
+ theNamespace_1 = "";
1286
+ arrForEach(evtNamespace, function (name) {
1287
+ name = _normalizeNamespace(name);
1288
+ if (name) {
1289
+ if (name[0] !== ".") {
1290
+ name = "." + name;
1291
+ }
1292
+ theNamespace_1 += name;
1293
+ }
1294
+ });
1295
+ }
1296
+ else {
1297
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
1298
+ }
1299
+ if (theNamespace_1) {
1300
+ if (theNamespace_1[0] !== ".") {
1301
+ theNamespace_1 = "." + theNamespace_1;
1302
+ }
1303
+ eventName = (eventName || "") + theNamespace_1;
1304
+ }
1305
+ }
1306
+ var parsedEvent = (eventNamespace.exec(eventName || "") || []);
1307
+ return {
1308
+ type: parsedEvent[1],
1309
+ ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
1310
+ };
1311
+ }
1312
+ function _getRegisteredEvents(target, evtName, addDefault) {
1313
+ if (addDefault === void 0) { addDefault = true; }
1314
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1315
+ var registeredEvents = aiEvts[evtName];
1316
+ if (!registeredEvents) {
1317
+ registeredEvents = aiEvts[evtName] = [];
1318
+ }
1319
+ return registeredEvents;
1320
+ }
1321
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
1322
+ var result = false;
1323
+ if (obj && evtName && evtName.type && handlerRef) {
1324
+ if (obj[strAddEventHelper]) {
1325
+ obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
1326
+ result = true;
1327
+ }
1328
+ else if (obj[strAttachEvent]) {
1329
+ obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
1330
+ result = true;
1331
+ }
1332
+ }
1333
+ return result;
1334
+ }
1335
+ function mergeEvtNamespace(theNamespace, namespaces) {
1336
+ var newNamespaces;
1337
+ if (namespaces) {
1338
+ if (isArray(namespaces)) {
1339
+ newNamespaces = [theNamespace].concat(namespaces);
1340
+ }
1341
+ else {
1342
+ newNamespaces = [theNamespace, namespaces];
1343
+ }
1344
+ newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
1345
+ }
1346
+ else {
1347
+ newNamespaces = theNamespace;
1348
+ }
1349
+ return newNamespaces;
1350
+ }
1351
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1352
+ if (useCapture === void 0) { useCapture = false; }
1353
+ var result = false;
1354
+ if (target) {
1355
+ try {
1356
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
1357
+ result = _doAttach(target, evtName, handlerRef, useCapture);
1358
+ if (result && elmNodeData.accept(target)) {
1359
+ var registeredEvent = {
1360
+ guid: _guid++,
1361
+ evtName: evtName,
1362
+ handler: handlerRef,
1363
+ capture: useCapture
1364
+ };
1365
+ _getRegisteredEvents(target, evtName.type).push(registeredEvent);
1366
+ }
1367
+ }
1368
+ catch (e) {
1369
+ }
1370
+ }
1371
+ return result;
1372
+ }
1373
+
1374
+ function generateW3CId() {
1375
+ var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
1376
+ var oct = strEmpty$1, tmp;
1377
+ for (var a = 0; a < 4; a++) {
1378
+ tmp = random32();
1379
+ oct +=
1380
+ hexValues[tmp & 0xF] +
1381
+ hexValues[tmp >> 4 & 0xF] +
1382
+ hexValues[tmp >> 8 & 0xF] +
1383
+ hexValues[tmp >> 12 & 0xF] +
1384
+ hexValues[tmp >> 16 & 0xF] +
1385
+ hexValues[tmp >> 20 & 0xF] +
1386
+ hexValues[tmp >> 24 & 0xF] +
1387
+ hexValues[tmp >> 28 & 0xF];
1388
+ }
1389
+ var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
1390
+ return oct.substr(0, 8) + oct.substr(9, 4) + "4" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);
1391
+ }
1392
+
1393
+ var DEFAULT_VERSION = "00";
1394
+ var INVALID_VERSION = "ff";
1395
+ var INVALID_TRACE_ID = "00000000000000000000000000000000";
1396
+ var INVALID_SPAN_ID = "0000000000000000";
1397
+ function _isValid(value, len, invalidValue) {
1398
+ if (value && value.length === len && value !== invalidValue) {
1399
+ return !!value.match(/^[\da-f]*$/);
1400
+ }
1401
+ return false;
1402
+ }
1403
+ function _formatValue(value, len, defValue) {
1404
+ if (_isValid(value, len)) {
1405
+ return value;
1406
+ }
1407
+ return defValue;
1408
+ }
1409
+ function _formatFlags(value) {
1410
+ if (isNaN(value) || value < 0 || value > 255) {
1411
+ value = 0x01;
1412
+ }
1413
+ var result = value.toString(16);
1414
+ while (result.length < 2) {
1415
+ result = "0" + result;
1416
+ }
1417
+ return result;
1418
+ }
1419
+ function createTraceParent(traceId, spanId, flags, version) {
1420
+ return {
1421
+ version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
1422
+ traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),
1423
+ spanId: isValidSpanId(spanId) ? spanId : generateW3CId().substr(0, 16),
1424
+ traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1
1425
+ };
1426
+ }
1427
+ function isValidTraceId(value) {
1428
+ return _isValid(value, 32, INVALID_TRACE_ID);
1429
+ }
1430
+ function isValidSpanId(value) {
1431
+ return _isValid(value, 16, INVALID_SPAN_ID);
1432
+ }
1433
+ function formatTraceParent(value) {
1434
+ if (value) {
1435
+ var flags = _formatFlags(value.traceFlags);
1436
+ if (!_isValid(flags, 2)) {
1437
+ flags = "01";
1438
+ }
1439
+ var version = value.version || DEFAULT_VERSION;
1440
+ if (version !== "00" && version !== "ff") {
1441
+ version = DEFAULT_VERSION;
1442
+ }
1443
+ return "".concat(version, "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), "-").concat(flags);
1444
+ }
1445
+ return "";
1446
+ }
1447
+
1250
1448
  var pluginStateData = createElmNodeData("plugin");
1251
1449
  function _getPluginState(plugin) {
1252
1450
  return pluginStateData.get(plugin, "state", {}, true);
@@ -1773,135 +1971,6 @@
1773
1971
  return BaseTelemetryPlugin;
1774
1972
  }());
1775
1973
 
1776
- var strOnPrefix = "on";
1777
- var strAttachEvent = "attachEvent";
1778
- var strAddEventHelper = "addEventListener";
1779
- var strEvents = "events";
1780
- createUniqueNamespace("aiEvtPageHide");
1781
- createUniqueNamespace("aiEvtPageShow");
1782
- var rRemoveEmptyNs = /\.[\.]+/g;
1783
- var rRemoveTrailingEmptyNs = /[\.]+$/;
1784
- var _guid = 1;
1785
- var elmNodeData = createElmNodeData("events");
1786
- var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1787
- function _normalizeNamespace(name) {
1788
- if (name && name.replace) {
1789
- return name.replace(/^\s*\.*|\.*\s*$/g, "");
1790
- }
1791
- return name;
1792
- }
1793
- function _getEvtNamespace(eventName, evtNamespace) {
1794
- if (evtNamespace) {
1795
- var theNamespace_1 = "";
1796
- if (isArray(evtNamespace)) {
1797
- theNamespace_1 = "";
1798
- arrForEach(evtNamespace, function (name) {
1799
- name = _normalizeNamespace(name);
1800
- if (name) {
1801
- if (name[0] !== ".") {
1802
- name = "." + name;
1803
- }
1804
- theNamespace_1 += name;
1805
- }
1806
- });
1807
- }
1808
- else {
1809
- theNamespace_1 = _normalizeNamespace(evtNamespace);
1810
- }
1811
- if (theNamespace_1) {
1812
- if (theNamespace_1[0] !== ".") {
1813
- theNamespace_1 = "." + theNamespace_1;
1814
- }
1815
- eventName = (eventName || "") + theNamespace_1;
1816
- }
1817
- }
1818
- var parsedEvent = (eventNamespace.exec(eventName || "") || []);
1819
- return {
1820
- type: parsedEvent[1],
1821
- ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
1822
- };
1823
- }
1824
- function _getRegisteredEvents(target, evtName, addDefault) {
1825
- if (addDefault === void 0) { addDefault = true; }
1826
- var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1827
- var registeredEvents = aiEvts[evtName];
1828
- if (!registeredEvents) {
1829
- registeredEvents = aiEvts[evtName] = [];
1830
- }
1831
- return registeredEvents;
1832
- }
1833
- function _doAttach(obj, evtName, handlerRef, useCapture) {
1834
- var result = false;
1835
- if (obj && evtName && evtName.type && handlerRef) {
1836
- if (obj[strAddEventHelper]) {
1837
- obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
1838
- result = true;
1839
- }
1840
- else if (obj[strAttachEvent]) {
1841
- obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
1842
- result = true;
1843
- }
1844
- }
1845
- return result;
1846
- }
1847
- function mergeEvtNamespace(theNamespace, namespaces) {
1848
- var newNamespaces;
1849
- if (namespaces) {
1850
- if (isArray(namespaces)) {
1851
- newNamespaces = [theNamespace].concat(namespaces);
1852
- }
1853
- else {
1854
- newNamespaces = [theNamespace, namespaces];
1855
- }
1856
- newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
1857
- }
1858
- else {
1859
- newNamespaces = theNamespace;
1860
- }
1861
- return newNamespaces;
1862
- }
1863
- function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1864
- if (useCapture === void 0) { useCapture = false; }
1865
- var result = false;
1866
- if (target) {
1867
- try {
1868
- var evtName = _getEvtNamespace(eventName, evtNamespace);
1869
- result = _doAttach(target, evtName, handlerRef, useCapture);
1870
- if (result && elmNodeData.accept(target)) {
1871
- var registeredEvent = {
1872
- guid: _guid++,
1873
- evtName: evtName,
1874
- handler: handlerRef,
1875
- capture: useCapture
1876
- };
1877
- _getRegisteredEvents(target, evtName.type).push(registeredEvent);
1878
- }
1879
- }
1880
- catch (e) {
1881
- }
1882
- }
1883
- return result;
1884
- }
1885
-
1886
- function generateW3CId() {
1887
- var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
1888
- var oct = strEmpty$1, tmp;
1889
- for (var a = 0; a < 4; a++) {
1890
- tmp = random32();
1891
- oct +=
1892
- hexValues[tmp & 0xF] +
1893
- hexValues[tmp >> 4 & 0xF] +
1894
- hexValues[tmp >> 8 & 0xF] +
1895
- hexValues[tmp >> 12 & 0xF] +
1896
- hexValues[tmp >> 16 & 0xF] +
1897
- hexValues[tmp >> 20 & 0xF] +
1898
- hexValues[tmp >> 24 & 0xF] +
1899
- hexValues[tmp >> 28 & 0xF];
1900
- }
1901
- var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
1902
- return oct.substr(0, 8) + oct.substr(9, 4) + "4" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);
1903
- }
1904
-
1905
1974
  var aiInstrumentHooks = "_aiHooks";
1906
1975
  var cbNames = [
1907
1976
  "req", "rsp", "hkErr", "fnErr"
@@ -2356,6 +2425,43 @@
2356
2425
  }
2357
2426
  return result;
2358
2427
  }
2428
+ function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
2429
+ var trace = telemetryTrace || {};
2430
+ return {
2431
+ getName: function () {
2432
+ return trace.name;
2433
+ },
2434
+ setName: function (newValue) {
2435
+ parentCtx && parentCtx.setName(newValue);
2436
+ trace.name = newValue;
2437
+ },
2438
+ getTraceId: function () {
2439
+ return trace.traceID;
2440
+ },
2441
+ setTraceId: function (newValue) {
2442
+ parentCtx && parentCtx.setTraceId(newValue);
2443
+ if (isValidTraceId(newValue)) {
2444
+ trace.traceID = newValue;
2445
+ }
2446
+ },
2447
+ getSpanId: function () {
2448
+ return trace.parentID;
2449
+ },
2450
+ setSpanId: function (newValue) {
2451
+ parentCtx && parentCtx.setSpanId(newValue);
2452
+ if (isValidSpanId(newValue)) {
2453
+ trace.parentID = newValue;
2454
+ }
2455
+ },
2456
+ getTraceFlags: function () {
2457
+ return trace.traceFlags;
2458
+ },
2459
+ setTraceFlags: function (newTraceFlags) {
2460
+ parentCtx && parentCtx.setTraceFlags(newTraceFlags);
2461
+ trace.traceFlags = newTraceFlags;
2462
+ }
2463
+ };
2464
+ }
2359
2465
 
2360
2466
  var RemoteDependencyData = /** @class */ (function () {
2361
2467
  function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {
@@ -2435,61 +2541,6 @@
2435
2541
  return telemetryItem;
2436
2542
  }
2437
2543
 
2438
- var DEFAULT_VERSION = "00";
2439
- var INVALID_VERSION = "ff";
2440
- var INVALID_TRACE_ID = "00000000000000000000000000000000";
2441
- var INVALID_SPAN_ID = "0000000000000000";
2442
- function _isValid(value, len, invalidValue) {
2443
- if (value && value.length === len && value !== invalidValue) {
2444
- return !!value.match(/^[\da-f]*$/);
2445
- }
2446
- return false;
2447
- }
2448
- function _formatValue(value, len, defValue) {
2449
- if (_isValid(value, len)) {
2450
- return value;
2451
- }
2452
- return defValue;
2453
- }
2454
- function _formatFlags(value) {
2455
- if (isNaN(value) || value < 0 || value > 255) {
2456
- value = 0x01;
2457
- }
2458
- var result = value.toString(16);
2459
- while (result.length < 2) {
2460
- result = "0" + result;
2461
- }
2462
- return result;
2463
- }
2464
- function createTraceParent(traceId, spanId, flags, version) {
2465
- return {
2466
- version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
2467
- traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),
2468
- spanId: isValidSpanId(spanId) ? spanId : generateW3CId().substr(0, 16),
2469
- traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1
2470
- };
2471
- }
2472
- function isValidTraceId(value) {
2473
- return _isValid(value, 32, INVALID_TRACE_ID);
2474
- }
2475
- function isValidSpanId(value) {
2476
- return _isValid(value, 16, INVALID_SPAN_ID);
2477
- }
2478
- function formatTraceParent(value) {
2479
- if (value) {
2480
- var flags = _formatFlags(value.traceFlags);
2481
- if (!_isValid(flags, 2)) {
2482
- flags = "01";
2483
- }
2484
- var version = value.version || DEFAULT_VERSION;
2485
- if (version !== "00" && version !== "ff") {
2486
- version = DEFAULT_VERSION;
2487
- }
2488
- return "".concat(version, "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), "-").concat(flags);
2489
- }
2490
- return "";
2491
- }
2492
-
2493
2544
  var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
2494
2545
 
2495
2546
  var strProperties = "properties";
@@ -2780,6 +2831,35 @@
2780
2831
  }
2781
2832
  return -1;
2782
2833
  }
2834
+ function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
2835
+ var initializersCount = listeners.length;
2836
+ if (initializersCount > 0) {
2837
+ var details = {
2838
+ core: core,
2839
+ xhr: xhr,
2840
+ input: input,
2841
+ init: init,
2842
+ traceId: ajaxData.traceID,
2843
+ spanId: ajaxData.spanID,
2844
+ traceFlags: ajaxData.traceFlags
2845
+ };
2846
+ for (var i = 0; i < initializersCount; ++i) {
2847
+ var dependencyListener = listeners[i];
2848
+ if (dependencyListener && dependencyListener.fn) {
2849
+ try {
2850
+ dependencyListener.fn.call(null, details);
2851
+ }
2852
+ catch (e) {
2853
+ var core_1 = details.core;
2854
+ _throwInternal(core_1 && core_1.logger, 1 , 64 , "Dependency listener [#" + i + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
2855
+ }
2856
+ }
2857
+ }
2858
+ ajaxData.traceID = details.traceId;
2859
+ ajaxData.spanID = details.spanId;
2860
+ ajaxData.traceFlags = details.traceFlags;
2861
+ }
2862
+ }
2783
2863
  var AjaxMonitor = /** @class */ (function (_super) {
2784
2864
  __extendsFn(AjaxMonitor, _super);
2785
2865
  function AjaxMonitor() {
@@ -2806,6 +2886,8 @@
2806
2886
  var _excludeRequestFromAutoTrackingPatterns;
2807
2887
  var _addRequestContext;
2808
2888
  var _evtNamespace;
2889
+ var _dependencyListenerId;
2890
+ var _dependencyListeners;
2809
2891
  dynamicProto(AjaxMonitor, _this, function (_self, _base) {
2810
2892
  var _addHook = _base._addHook;
2811
2893
  _initDefaults();
@@ -2827,6 +2909,7 @@
2827
2909
  };
2828
2910
  _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {
2829
2911
  var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
2912
+ _processDependencyListeners(_dependencyListeners, _self.core, ajaxData, xhr, input, init);
2830
2913
  if (input) {
2831
2914
  if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {
2832
2915
  if (!init) {
@@ -2848,7 +2931,11 @@
2848
2931
  }
2849
2932
  }
2850
2933
  if (_isUsingW3CHeaders) {
2851
- var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, 0x01));
2934
+ var traceFlags = ajaxData.traceFlags;
2935
+ if (isNullOrUndefined(traceFlags)) {
2936
+ traceFlags = 0x01;
2937
+ }
2938
+ var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, traceFlags));
2852
2939
  init.headers.set(RequestHeaders[4 ], traceParent);
2853
2940
  if (_enableRequestHeaderTracking) {
2854
2941
  ajaxData.requestHeaders[RequestHeaders[4 ]] = traceParent;
@@ -2874,7 +2961,11 @@
2874
2961
  }
2875
2962
  }
2876
2963
  if (_isUsingW3CHeaders) {
2877
- var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, 0x01));
2964
+ var traceFlags = ajaxData.traceFlags;
2965
+ if (isNullOrUndefined(traceFlags)) {
2966
+ traceFlags = 0x01;
2967
+ }
2968
+ var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, traceFlags));
2878
2969
  xhr.setRequestHeader(RequestHeaders[4 ], traceParent);
2879
2970
  if (_enableRequestHeaderTracking) {
2880
2971
  ajaxData.requestHeaders[RequestHeaders[4 ]] = traceParent;
@@ -2903,6 +2994,24 @@
2903
2994
  }
2904
2995
  ++_trackAjaxAttempts;
2905
2996
  };
2997
+ _self.addDependencyListener = function (dependencyListener) {
2998
+ var theInitializer = {
2999
+ id: _dependencyListenerId++,
3000
+ fn: dependencyListener
3001
+ };
3002
+ _dependencyListeners.push(theInitializer);
3003
+ var handler = {
3004
+ remove: function () {
3005
+ arrForEach(_dependencyListeners, function (initializer, idx) {
3006
+ if (initializer.id === theInitializer.id) {
3007
+ _dependencyListeners.splice(idx, 1);
3008
+ return -1;
3009
+ }
3010
+ });
3011
+ }
3012
+ };
3013
+ return handler;
3014
+ };
2906
3015
  function _initDefaults() {
2907
3016
  var location = getLocation();
2908
3017
  _fetchInitialized = false;
@@ -2925,6 +3034,8 @@
2925
3034
  _excludeRequestFromAutoTrackingPatterns = null;
2926
3035
  _addRequestContext = null;
2927
3036
  _evtNamespace = null;
3037
+ _dependencyListenerId = 0;
3038
+ _dependencyListeners = [];
2928
3039
  }
2929
3040
  function _populateDefaults(config) {
2930
3041
  var ctx = createProcessTelemetryContext(null, config, _self.core);
@@ -3163,10 +3274,22 @@
3163
3274
  return initialized
3164
3275
  && ajaxValidation;
3165
3276
  }
3277
+ function _getDistributedTraceCtx() {
3278
+ var distributedTraceCtx = null;
3279
+ if (_self.core && _self.core.getTraceCtx) {
3280
+ distributedTraceCtx = _self.core.getTraceCtx(false);
3281
+ }
3282
+ if (!distributedTraceCtx && _context && _context.telemetryTrace) {
3283
+ distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);
3284
+ }
3285
+ return distributedTraceCtx;
3286
+ }
3166
3287
  function _openHandler(xhr, method, url, async) {
3167
- var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();
3288
+ var distributedTraceCtx = _getDistributedTraceCtx();
3289
+ var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
3168
3290
  var spanID = generateW3CId().substr(0, 16);
3169
3291
  var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
3292
+ ajaxData.traceFlags = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
3170
3293
  ajaxData.method = method;
3171
3294
  ajaxData.requestUrl = url;
3172
3295
  ajaxData.xhrMonitoringState.openDone = true;
@@ -3362,9 +3485,11 @@
3362
3485
  })();
3363
3486
  }
3364
3487
  function _createFetchRecord(input, init) {
3365
- var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();
3488
+ var distributedTraceCtx = _getDistributedTraceCtx();
3489
+ var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
3366
3490
  var spanID = generateW3CId().substr(0, 16);
3367
3491
  var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
3492
+ ajaxData.traceFlags = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
3368
3493
  ajaxData.requestSentTime = dateTimeUtilsNow();
3369
3494
  ajaxData.errorStatusText = _enableAjaxErrorStatusText;
3370
3495
  if (input instanceof Request) {