@microsoft/applicationinsights-dependencies-js 2.8.4-nightly.2205-09 → 2.8.5-nightly.2206-02
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.
- package/browser/applicationinsights-dependencies-js.integrity.json +9 -9
- package/browser/applicationinsights-dependencies-js.js +310 -190
- package/browser/applicationinsights-dependencies-js.js.map +1 -1
- package/browser/applicationinsights-dependencies-js.min.js +2 -2
- package/browser/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.api.json +92 -3
- package/dist/applicationinsights-dependencies-js.api.md +8 -1
- package/dist/applicationinsights-dependencies-js.d.ts +65 -2
- package/dist/applicationinsights-dependencies-js.js +310 -190
- package/dist/applicationinsights-dependencies-js.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.min.js +2 -2
- package/dist/applicationinsights-dependencies-js.min.js.map +1 -1
- package/dist/applicationinsights-dependencies-js.rollup.d.ts +65 -2
- package/dist-esm/DependencyListener.js +8 -0
- package/dist-esm/DependencyListener.js.map +1 -0
- package/dist-esm/ajax.js +83 -7
- package/dist-esm/ajax.js.map +1 -1
- package/dist-esm/ajaxRecord.js +1 -1
- package/dist-esm/ajaxUtils.js +1 -1
- package/dist-esm/applicationinsights-dependencies-js.js +1 -1
- package/package.json +3 -3
- package/src/DependencyListener.ts +65 -0
- package/src/ajax.ts +121 -9
- package/src/ajaxRecord.ts +1 -0
- package/types/DependencyListener.d.ts +52 -0
- package/types/ajax.d.ts +9 -1
- package/types/ajaxRecord.d.ts +1 -0
- package/types/tsdoc-metadata.json +1 -1
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "applicationinsights-dependencies-js",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.5-nightly.2206-02",
|
|
4
4
|
"ext": {
|
|
5
5
|
"@js": {
|
|
6
6
|
"file": "applicationinsights-dependencies-js.js",
|
|
7
7
|
"type": "text/javascript; charset=utf-8",
|
|
8
|
-
"integrity": "sha256-
|
|
8
|
+
"integrity": "sha256-c3bqrYUvQQ8drqhyvvOiz/Uj+cIoSJUBFIxRvfrTFaY= sha384-7HNWHTaVQMmYaiy7MPlERaa81/tFvUmG2gfjaq2ksqv1agvMaxHB2n9eulzLiVLg sha512-utQ2+oP4Hd031z3NSq9AU7AKA6B89cMx7AcUv9/cWxhE+7/CAp/1bNnMuRwGLa7VrDXPWq3DkK1KsMYe1PxcJA==",
|
|
9
9
|
"hashes": {
|
|
10
|
-
"sha256": "
|
|
11
|
-
"sha384": "
|
|
12
|
-
"sha512": "
|
|
10
|
+
"sha256": "c3bqrYUvQQ8drqhyvvOiz/Uj+cIoSJUBFIxRvfrTFaY=",
|
|
11
|
+
"sha384": "7HNWHTaVQMmYaiy7MPlERaa81/tFvUmG2gfjaq2ksqv1agvMaxHB2n9eulzLiVLg",
|
|
12
|
+
"sha512": "utQ2+oP4Hd031z3NSq9AU7AKA6B89cMx7AcUv9/cWxhE+7/CAp/1bNnMuRwGLa7VrDXPWq3DkK1KsMYe1PxcJA=="
|
|
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-
|
|
18
|
+
"integrity": "sha256-eVnJdZrUpBASIIWm8acgAXNd9QVnjEmxR3vlcOKPYA8= sha384-CFH1JbHVANjwNyjFCOhYvCLmPnW03ceQbqFu4YoJkikUV/71dnY5jy+SFqwq/444 sha512-/46bc9kR4tGPqrGmXpDnxHLo59zt2PhFVeqpMN/USmt71zJMGI2krJiDVqYJZwqISfApLmNw87lWToMOgNj8cg==",
|
|
19
19
|
"hashes": {
|
|
20
|
-
"sha256": "
|
|
21
|
-
"sha384": "
|
|
22
|
-
"sha512": "
|
|
20
|
+
"sha256": "eVnJdZrUpBASIIWm8acgAXNd9QVnjEmxR3vlcOKPYA8=",
|
|
21
|
+
"sha384": "CFH1JbHVANjwNyjFCOhYvCLmPnW03ceQbqFu4YoJkikUV/71dnY5jy+SFqwq/444",
|
|
22
|
+
"sha512": "/46bc9kR4tGPqrGmXpDnxHLo59zt2PhFVeqpMN/USmt71zJMGI2krJiDVqYJZwqISfApLmNw87lWToMOgNj8cg=="
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 2.8.5-nightly.2206-02
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -192,6 +192,9 @@
|
|
|
192
192
|
function _isArrayPoly(obj) {
|
|
193
193
|
return !!(obj && _objToString.call(obj) === "[object Array]");
|
|
194
194
|
}
|
|
195
|
+
function isError(obj) {
|
|
196
|
+
return !!(obj && _objToString.call(obj) === "[object Error]");
|
|
197
|
+
}
|
|
195
198
|
function isString(value) {
|
|
196
199
|
return typeof value === "string";
|
|
197
200
|
}
|
|
@@ -353,6 +356,12 @@
|
|
|
353
356
|
var dt = Date;
|
|
354
357
|
return dt.now ? dt.now() : new dt().getTime();
|
|
355
358
|
}
|
|
359
|
+
function getExceptionName(object) {
|
|
360
|
+
if (isError(object)) {
|
|
361
|
+
return object.name;
|
|
362
|
+
}
|
|
363
|
+
return strEmpty$1;
|
|
364
|
+
}
|
|
356
365
|
function setValue(target, field, value, valChk, srcChk) {
|
|
357
366
|
var theValue = value;
|
|
358
367
|
if (target) {
|
|
@@ -1181,7 +1190,7 @@
|
|
|
1181
1190
|
}
|
|
1182
1191
|
|
|
1183
1192
|
var _objDefineProperty = ObjDefineProperty;
|
|
1184
|
-
var version = "2.8.
|
|
1193
|
+
var version = "2.8.5-nightly.2206-02";
|
|
1185
1194
|
var instanceName = "." + newId(6);
|
|
1186
1195
|
var _dataUid = 0;
|
|
1187
1196
|
function _createAccessor(target, prop, value) {
|
|
@@ -1252,6 +1261,190 @@
|
|
|
1252
1261
|
return data;
|
|
1253
1262
|
}
|
|
1254
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
|
+
|
|
1255
1448
|
var pluginStateData = createElmNodeData("plugin");
|
|
1256
1449
|
function _getPluginState(plugin) {
|
|
1257
1450
|
return pluginStateData.get(plugin, "state", {}, true);
|
|
@@ -1778,135 +1971,6 @@
|
|
|
1778
1971
|
return BaseTelemetryPlugin;
|
|
1779
1972
|
}());
|
|
1780
1973
|
|
|
1781
|
-
var strOnPrefix = "on";
|
|
1782
|
-
var strAttachEvent = "attachEvent";
|
|
1783
|
-
var strAddEventHelper = "addEventListener";
|
|
1784
|
-
var strEvents = "events";
|
|
1785
|
-
createUniqueNamespace("aiEvtPageHide");
|
|
1786
|
-
createUniqueNamespace("aiEvtPageShow");
|
|
1787
|
-
var rRemoveEmptyNs = /\.[\.]+/g;
|
|
1788
|
-
var rRemoveTrailingEmptyNs = /[\.]+$/;
|
|
1789
|
-
var _guid = 1;
|
|
1790
|
-
var elmNodeData = createElmNodeData("events");
|
|
1791
|
-
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1792
|
-
function _normalizeNamespace(name) {
|
|
1793
|
-
if (name && name.replace) {
|
|
1794
|
-
return name.replace(/^\s*\.*|\.*\s*$/g, "");
|
|
1795
|
-
}
|
|
1796
|
-
return name;
|
|
1797
|
-
}
|
|
1798
|
-
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1799
|
-
if (evtNamespace) {
|
|
1800
|
-
var theNamespace_1 = "";
|
|
1801
|
-
if (isArray(evtNamespace)) {
|
|
1802
|
-
theNamespace_1 = "";
|
|
1803
|
-
arrForEach(evtNamespace, function (name) {
|
|
1804
|
-
name = _normalizeNamespace(name);
|
|
1805
|
-
if (name) {
|
|
1806
|
-
if (name[0] !== ".") {
|
|
1807
|
-
name = "." + name;
|
|
1808
|
-
}
|
|
1809
|
-
theNamespace_1 += name;
|
|
1810
|
-
}
|
|
1811
|
-
});
|
|
1812
|
-
}
|
|
1813
|
-
else {
|
|
1814
|
-
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1815
|
-
}
|
|
1816
|
-
if (theNamespace_1) {
|
|
1817
|
-
if (theNamespace_1[0] !== ".") {
|
|
1818
|
-
theNamespace_1 = "." + theNamespace_1;
|
|
1819
|
-
}
|
|
1820
|
-
eventName = (eventName || "") + theNamespace_1;
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
|
-
var parsedEvent = (eventNamespace.exec(eventName || "") || []);
|
|
1824
|
-
return {
|
|
1825
|
-
type: parsedEvent[1],
|
|
1826
|
-
ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
|
|
1827
|
-
};
|
|
1828
|
-
}
|
|
1829
|
-
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1830
|
-
if (addDefault === void 0) { addDefault = true; }
|
|
1831
|
-
var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
|
|
1832
|
-
var registeredEvents = aiEvts[evtName];
|
|
1833
|
-
if (!registeredEvents) {
|
|
1834
|
-
registeredEvents = aiEvts[evtName] = [];
|
|
1835
|
-
}
|
|
1836
|
-
return registeredEvents;
|
|
1837
|
-
}
|
|
1838
|
-
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1839
|
-
var result = false;
|
|
1840
|
-
if (obj && evtName && evtName.type && handlerRef) {
|
|
1841
|
-
if (obj[strAddEventHelper]) {
|
|
1842
|
-
obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
|
|
1843
|
-
result = true;
|
|
1844
|
-
}
|
|
1845
|
-
else if (obj[strAttachEvent]) {
|
|
1846
|
-
obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
1847
|
-
result = true;
|
|
1848
|
-
}
|
|
1849
|
-
}
|
|
1850
|
-
return result;
|
|
1851
|
-
}
|
|
1852
|
-
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1853
|
-
var newNamespaces;
|
|
1854
|
-
if (namespaces) {
|
|
1855
|
-
if (isArray(namespaces)) {
|
|
1856
|
-
newNamespaces = [theNamespace].concat(namespaces);
|
|
1857
|
-
}
|
|
1858
|
-
else {
|
|
1859
|
-
newNamespaces = [theNamespace, namespaces];
|
|
1860
|
-
}
|
|
1861
|
-
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
|
|
1862
|
-
}
|
|
1863
|
-
else {
|
|
1864
|
-
newNamespaces = theNamespace;
|
|
1865
|
-
}
|
|
1866
|
-
return newNamespaces;
|
|
1867
|
-
}
|
|
1868
|
-
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1869
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
1870
|
-
var result = false;
|
|
1871
|
-
if (target) {
|
|
1872
|
-
try {
|
|
1873
|
-
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1874
|
-
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1875
|
-
if (result && elmNodeData.accept(target)) {
|
|
1876
|
-
var registeredEvent = {
|
|
1877
|
-
guid: _guid++,
|
|
1878
|
-
evtName: evtName,
|
|
1879
|
-
handler: handlerRef,
|
|
1880
|
-
capture: useCapture
|
|
1881
|
-
};
|
|
1882
|
-
_getRegisteredEvents(target, evtName.type).push(registeredEvent);
|
|
1883
|
-
}
|
|
1884
|
-
}
|
|
1885
|
-
catch (e) {
|
|
1886
|
-
}
|
|
1887
|
-
}
|
|
1888
|
-
return result;
|
|
1889
|
-
}
|
|
1890
|
-
|
|
1891
|
-
function generateW3CId() {
|
|
1892
|
-
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
1893
|
-
var oct = strEmpty$1, tmp;
|
|
1894
|
-
for (var a = 0; a < 4; a++) {
|
|
1895
|
-
tmp = random32();
|
|
1896
|
-
oct +=
|
|
1897
|
-
hexValues[tmp & 0xF] +
|
|
1898
|
-
hexValues[tmp >> 4 & 0xF] +
|
|
1899
|
-
hexValues[tmp >> 8 & 0xF] +
|
|
1900
|
-
hexValues[tmp >> 12 & 0xF] +
|
|
1901
|
-
hexValues[tmp >> 16 & 0xF] +
|
|
1902
|
-
hexValues[tmp >> 20 & 0xF] +
|
|
1903
|
-
hexValues[tmp >> 24 & 0xF] +
|
|
1904
|
-
hexValues[tmp >> 28 & 0xF];
|
|
1905
|
-
}
|
|
1906
|
-
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
1907
|
-
return oct.substr(0, 8) + oct.substr(9, 4) + "4" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);
|
|
1908
|
-
}
|
|
1909
|
-
|
|
1910
1974
|
var aiInstrumentHooks = "_aiHooks";
|
|
1911
1975
|
var cbNames = [
|
|
1912
1976
|
"req", "rsp", "hkErr", "fnErr"
|
|
@@ -2361,6 +2425,43 @@
|
|
|
2361
2425
|
}
|
|
2362
2426
|
return result;
|
|
2363
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
|
+
}
|
|
2364
2465
|
|
|
2365
2466
|
var RemoteDependencyData = /** @class */ (function () {
|
|
2366
2467
|
function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {
|
|
@@ -2440,61 +2541,6 @@
|
|
|
2440
2541
|
return telemetryItem;
|
|
2441
2542
|
}
|
|
2442
2543
|
|
|
2443
|
-
var DEFAULT_VERSION = "00";
|
|
2444
|
-
var INVALID_VERSION = "ff";
|
|
2445
|
-
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2446
|
-
var INVALID_SPAN_ID = "0000000000000000";
|
|
2447
|
-
function _isValid(value, len, invalidValue) {
|
|
2448
|
-
if (value && value.length === len && value !== invalidValue) {
|
|
2449
|
-
return !!value.match(/^[\da-f]*$/);
|
|
2450
|
-
}
|
|
2451
|
-
return false;
|
|
2452
|
-
}
|
|
2453
|
-
function _formatValue(value, len, defValue) {
|
|
2454
|
-
if (_isValid(value, len)) {
|
|
2455
|
-
return value;
|
|
2456
|
-
}
|
|
2457
|
-
return defValue;
|
|
2458
|
-
}
|
|
2459
|
-
function _formatFlags(value) {
|
|
2460
|
-
if (isNaN(value) || value < 0 || value > 255) {
|
|
2461
|
-
value = 0x01;
|
|
2462
|
-
}
|
|
2463
|
-
var result = value.toString(16);
|
|
2464
|
-
while (result.length < 2) {
|
|
2465
|
-
result = "0" + result;
|
|
2466
|
-
}
|
|
2467
|
-
return result;
|
|
2468
|
-
}
|
|
2469
|
-
function createTraceParent(traceId, spanId, flags, version) {
|
|
2470
|
-
return {
|
|
2471
|
-
version: _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
|
|
2472
|
-
traceId: isValidTraceId(traceId) ? traceId : generateW3CId(),
|
|
2473
|
-
spanId: isValidSpanId(spanId) ? spanId : generateW3CId().substr(0, 16),
|
|
2474
|
-
traceFlags: flags >= 0 && flags <= 0xFF ? flags : 1
|
|
2475
|
-
};
|
|
2476
|
-
}
|
|
2477
|
-
function isValidTraceId(value) {
|
|
2478
|
-
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
2479
|
-
}
|
|
2480
|
-
function isValidSpanId(value) {
|
|
2481
|
-
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
2482
|
-
}
|
|
2483
|
-
function formatTraceParent(value) {
|
|
2484
|
-
if (value) {
|
|
2485
|
-
var flags = _formatFlags(value.traceFlags);
|
|
2486
|
-
if (!_isValid(flags, 2)) {
|
|
2487
|
-
flags = "01";
|
|
2488
|
-
}
|
|
2489
|
-
var version = value.version || DEFAULT_VERSION;
|
|
2490
|
-
if (version !== "00" && version !== "ff") {
|
|
2491
|
-
version = DEFAULT_VERSION;
|
|
2492
|
-
}
|
|
2493
|
-
return "".concat(version, "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), "-").concat(flags);
|
|
2494
|
-
}
|
|
2495
|
-
return "";
|
|
2496
|
-
}
|
|
2497
|
-
|
|
2498
2544
|
var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
|
|
2499
2545
|
|
|
2500
2546
|
var strProperties = "properties";
|
|
@@ -2785,6 +2831,35 @@
|
|
|
2785
2831
|
}
|
|
2786
2832
|
return -1;
|
|
2787
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
|
+
}
|
|
2788
2863
|
var AjaxMonitor = /** @class */ (function (_super) {
|
|
2789
2864
|
__extendsFn(AjaxMonitor, _super);
|
|
2790
2865
|
function AjaxMonitor() {
|
|
@@ -2811,6 +2886,8 @@
|
|
|
2811
2886
|
var _excludeRequestFromAutoTrackingPatterns;
|
|
2812
2887
|
var _addRequestContext;
|
|
2813
2888
|
var _evtNamespace;
|
|
2889
|
+
var _dependencyListenerId;
|
|
2890
|
+
var _dependencyListeners;
|
|
2814
2891
|
dynamicProto(AjaxMonitor, _this, function (_self, _base) {
|
|
2815
2892
|
var _addHook = _base._addHook;
|
|
2816
2893
|
_initDefaults();
|
|
@@ -2832,6 +2909,7 @@
|
|
|
2832
2909
|
};
|
|
2833
2910
|
_self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {
|
|
2834
2911
|
var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
|
|
2912
|
+
_processDependencyListeners(_dependencyListeners, _self.core, ajaxData, xhr, input, init);
|
|
2835
2913
|
if (input) {
|
|
2836
2914
|
if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {
|
|
2837
2915
|
if (!init) {
|
|
@@ -2853,7 +2931,11 @@
|
|
|
2853
2931
|
}
|
|
2854
2932
|
}
|
|
2855
2933
|
if (_isUsingW3CHeaders) {
|
|
2856
|
-
var
|
|
2934
|
+
var traceFlags = ajaxData.traceFlags;
|
|
2935
|
+
if (isNullOrUndefined(traceFlags)) {
|
|
2936
|
+
traceFlags = 0x01;
|
|
2937
|
+
}
|
|
2938
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, traceFlags));
|
|
2857
2939
|
init.headers.set(RequestHeaders[4 ], traceParent);
|
|
2858
2940
|
if (_enableRequestHeaderTracking) {
|
|
2859
2941
|
ajaxData.requestHeaders[RequestHeaders[4 ]] = traceParent;
|
|
@@ -2879,7 +2961,11 @@
|
|
|
2879
2961
|
}
|
|
2880
2962
|
}
|
|
2881
2963
|
if (_isUsingW3CHeaders) {
|
|
2882
|
-
var
|
|
2964
|
+
var traceFlags = ajaxData.traceFlags;
|
|
2965
|
+
if (isNullOrUndefined(traceFlags)) {
|
|
2966
|
+
traceFlags = 0x01;
|
|
2967
|
+
}
|
|
2968
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData.traceID, ajaxData.spanID, traceFlags));
|
|
2883
2969
|
xhr.setRequestHeader(RequestHeaders[4 ], traceParent);
|
|
2884
2970
|
if (_enableRequestHeaderTracking) {
|
|
2885
2971
|
ajaxData.requestHeaders[RequestHeaders[4 ]] = traceParent;
|
|
@@ -2908,6 +2994,24 @@
|
|
|
2908
2994
|
}
|
|
2909
2995
|
++_trackAjaxAttempts;
|
|
2910
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
|
+
};
|
|
2911
3015
|
function _initDefaults() {
|
|
2912
3016
|
var location = getLocation();
|
|
2913
3017
|
_fetchInitialized = false;
|
|
@@ -2930,6 +3034,8 @@
|
|
|
2930
3034
|
_excludeRequestFromAutoTrackingPatterns = null;
|
|
2931
3035
|
_addRequestContext = null;
|
|
2932
3036
|
_evtNamespace = null;
|
|
3037
|
+
_dependencyListenerId = 0;
|
|
3038
|
+
_dependencyListeners = [];
|
|
2933
3039
|
}
|
|
2934
3040
|
function _populateDefaults(config) {
|
|
2935
3041
|
var ctx = createProcessTelemetryContext(null, config, _self.core);
|
|
@@ -3168,10 +3274,22 @@
|
|
|
3168
3274
|
return initialized
|
|
3169
3275
|
&& ajaxValidation;
|
|
3170
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
|
+
}
|
|
3171
3287
|
function _openHandler(xhr, method, url, async) {
|
|
3172
|
-
var
|
|
3288
|
+
var distributedTraceCtx = _getDistributedTraceCtx();
|
|
3289
|
+
var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
|
|
3173
3290
|
var spanID = generateW3CId().substr(0, 16);
|
|
3174
3291
|
var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
|
|
3292
|
+
ajaxData.traceFlags = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
|
|
3175
3293
|
ajaxData.method = method;
|
|
3176
3294
|
ajaxData.requestUrl = url;
|
|
3177
3295
|
ajaxData.xhrMonitoringState.openDone = true;
|
|
@@ -3367,9 +3485,11 @@
|
|
|
3367
3485
|
})();
|
|
3368
3486
|
}
|
|
3369
3487
|
function _createFetchRecord(input, init) {
|
|
3370
|
-
var
|
|
3488
|
+
var distributedTraceCtx = _getDistributedTraceCtx();
|
|
3489
|
+
var traceID = (distributedTraceCtx && distributedTraceCtx.getTraceId()) || generateW3CId();
|
|
3371
3490
|
var spanID = generateW3CId().substr(0, 16);
|
|
3372
3491
|
var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());
|
|
3492
|
+
ajaxData.traceFlags = distributedTraceCtx && distributedTraceCtx.getTraceFlags();
|
|
3373
3493
|
ajaxData.requestSentTime = dateTimeUtilsNow();
|
|
3374
3494
|
ajaxData.errorStatusText = _enableAjaxErrorStatusText;
|
|
3375
3495
|
if (input instanceof Request) {
|