@microsoft/applicationinsights-channel-js 2.8.0-beta.2203-04 → 2.8.0-beta.2203-07
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-channel-js.integrity.json +9 -9
- package/browser/applicationinsights-channel-js.js +287 -105
- package/browser/applicationinsights-channel-js.js.map +1 -1
- package/browser/applicationinsights-channel-js.min.js +2 -2
- package/browser/applicationinsights-channel-js.min.js.map +1 -1
- package/dist/applicationinsights-channel-js.d.ts +1 -1
- package/dist/applicationinsights-channel-js.js +287 -105
- package/dist/applicationinsights-channel-js.js.map +1 -1
- package/dist/applicationinsights-channel-js.min.js +2 -2
- package/dist/applicationinsights-channel-js.min.js.map +1 -1
- package/dist/applicationinsights-channel-js.rollup.d.ts +1 -1
- package/dist-esm/EnvelopeCreator.js +2 -2
- package/dist-esm/EnvelopeCreator.js.map +1 -1
- package/dist-esm/Interfaces.js +1 -1
- package/dist-esm/Offline.js +77 -65
- package/dist-esm/Offline.js.map +1 -1
- package/dist-esm/SendBuffer.js +1 -1
- package/dist-esm/Sender.js +66 -59
- package/dist-esm/Sender.js.map +1 -1
- package/dist-esm/Serializer.js +1 -1
- package/dist-esm/TelemetryProcessors/Sample.js +1 -1
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js +1 -1
- package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +1 -1
- package/dist-esm/applicationinsights-channel-js.js +1 -1
- package/package.json +3 -3
- package/src/EnvelopeCreator.ts +1 -1
- package/src/Offline.ts +88 -76
- package/src/Sender.ts +68 -75
- package/types/Offline.d.ts +8 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Channel, 2.8.0-beta.2203-
|
|
2
|
+
* Application Insights JavaScript SDK - Channel, 2.8.0-beta.2203-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -340,6 +340,7 @@
|
|
|
340
340
|
var strIsInitialized = "isInitialized";
|
|
341
341
|
var strTeardown = "teardown";
|
|
342
342
|
var strCore = "core";
|
|
343
|
+
var strUpdate = "update";
|
|
343
344
|
var strDisabled = "disabled";
|
|
344
345
|
var strDoTeardown = "_doTeardown";
|
|
345
346
|
|
|
@@ -676,7 +677,7 @@
|
|
|
676
677
|
}
|
|
677
678
|
return theObject;
|
|
678
679
|
}
|
|
679
|
-
function objExtend(
|
|
680
|
+
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
680
681
|
var theArgs = arguments;
|
|
681
682
|
var extended = theArgs[0] || {};
|
|
682
683
|
var argLen = theArgs.length;
|
|
@@ -1064,6 +1065,10 @@
|
|
|
1064
1065
|
}
|
|
1065
1066
|
return DiagnosticLogger;
|
|
1066
1067
|
}());
|
|
1068
|
+
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1069
|
+
if (isUserAct === void 0) { isUserAct = false; }
|
|
1070
|
+
(logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1071
|
+
}
|
|
1067
1072
|
|
|
1068
1073
|
var strExecutionContextKey = "ctx";
|
|
1069
1074
|
var PerfEvent = /** @class */ (function () {
|
|
@@ -1390,7 +1395,7 @@
|
|
|
1390
1395
|
completeDetails.func.call(completeDetails.self, completeDetails.args);
|
|
1391
1396
|
}
|
|
1392
1397
|
catch (e) {
|
|
1393
|
-
core.logger
|
|
1398
|
+
_throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1394
1399
|
}
|
|
1395
1400
|
});
|
|
1396
1401
|
_onComplete = [];
|
|
@@ -1489,6 +1494,27 @@
|
|
|
1489
1494
|
context.createNew = _createNew;
|
|
1490
1495
|
return context;
|
|
1491
1496
|
}
|
|
1497
|
+
function createProcessTelemetryUpdateContext(telemetryChain, config, core, startAt) {
|
|
1498
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1499
|
+
var context = internalContext.ctx;
|
|
1500
|
+
function _processNext(updateState) {
|
|
1501
|
+
return context.iterate(function (plugin) {
|
|
1502
|
+
if (isFunction(plugin[strUpdate])) {
|
|
1503
|
+
plugin[strUpdate](context, updateState);
|
|
1504
|
+
}
|
|
1505
|
+
});
|
|
1506
|
+
}
|
|
1507
|
+
function _createNew(plugins, startAt) {
|
|
1508
|
+
if (plugins === void 0) { plugins = null; }
|
|
1509
|
+
if (isArray(plugins)) {
|
|
1510
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1511
|
+
}
|
|
1512
|
+
return createProcessTelemetryUpdateContext(plugins || context.getNext(), config, core, startAt);
|
|
1513
|
+
}
|
|
1514
|
+
context.processNext = _processNext;
|
|
1515
|
+
context.createNew = _createNew;
|
|
1516
|
+
return context;
|
|
1517
|
+
}
|
|
1492
1518
|
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1493
1519
|
var firstProxy = null;
|
|
1494
1520
|
var add = startAt ? false : true;
|
|
@@ -1535,6 +1561,7 @@
|
|
|
1535
1561
|
},
|
|
1536
1562
|
processTelemetry: _processTelemetry,
|
|
1537
1563
|
unload: _unloadPlugin,
|
|
1564
|
+
update: _updatePlugin,
|
|
1538
1565
|
_id: chainId,
|
|
1539
1566
|
_setNext: function (nextPlugin) {
|
|
1540
1567
|
nextProxy = nextPlugin;
|
|
@@ -1574,7 +1601,7 @@
|
|
|
1574
1601
|
hasRun = true;
|
|
1575
1602
|
}
|
|
1576
1603
|
if (!nextProxy || !hasNextRun) {
|
|
1577
|
-
itemCtx.diagLog()
|
|
1604
|
+
_throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1578
1605
|
}
|
|
1579
1606
|
}
|
|
1580
1607
|
}, details, isAsync);
|
|
@@ -1622,6 +1649,24 @@
|
|
|
1622
1649
|
unloadCtx.processNext(unloadState);
|
|
1623
1650
|
}
|
|
1624
1651
|
}
|
|
1652
|
+
function _updatePlugin(updateCtx, updateState) {
|
|
1653
|
+
function _callUpdate() {
|
|
1654
|
+
var hasRun = false;
|
|
1655
|
+
if (plugin) {
|
|
1656
|
+
var pluginState = _getPluginState(plugin);
|
|
1657
|
+
var pluginCore = plugin[strCore] || pluginState.core;
|
|
1658
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
|
|
1659
|
+
if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
|
|
1660
|
+
hasRun = true;
|
|
1661
|
+
}
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
return hasRun;
|
|
1665
|
+
}
|
|
1666
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1667
|
+
updateCtx.processNext(updateState);
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1625
1670
|
return objFreeze(proxyChain);
|
|
1626
1671
|
}
|
|
1627
1672
|
|
|
@@ -1640,7 +1685,7 @@
|
|
|
1640
1685
|
handler(unloadCtx, unloadState);
|
|
1641
1686
|
}
|
|
1642
1687
|
catch (e) {
|
|
1643
|
-
unloadCtx.diagLog()
|
|
1688
|
+
_throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
1644
1689
|
}
|
|
1645
1690
|
});
|
|
1646
1691
|
handlers = [];
|
|
@@ -1699,6 +1744,30 @@
|
|
|
1699
1744
|
}
|
|
1700
1745
|
return result;
|
|
1701
1746
|
};
|
|
1747
|
+
_self.update = function (updateCtx, updateState) {
|
|
1748
|
+
if (!_self.core || (updateCtx && _self.core !== updateCtx.core())) {
|
|
1749
|
+
return;
|
|
1750
|
+
}
|
|
1751
|
+
var result;
|
|
1752
|
+
var updateDone = false;
|
|
1753
|
+
var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, {}, _self.core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1754
|
+
var theUpdateState = updateState || {
|
|
1755
|
+
reason: 0
|
|
1756
|
+
};
|
|
1757
|
+
function _updateCallback() {
|
|
1758
|
+
if (!updateDone) {
|
|
1759
|
+
updateDone = true;
|
|
1760
|
+
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
1764
|
+
_updateCallback();
|
|
1765
|
+
}
|
|
1766
|
+
else {
|
|
1767
|
+
result = true;
|
|
1768
|
+
}
|
|
1769
|
+
return result;
|
|
1770
|
+
};
|
|
1702
1771
|
_self._addHook = function (hooks) {
|
|
1703
1772
|
if (hooks) {
|
|
1704
1773
|
if (isArray(hooks)) {
|
|
@@ -1775,6 +1844,8 @@
|
|
|
1775
1844
|
var strOnPrefix = "on";
|
|
1776
1845
|
var strAttachEvent = "attachEvent";
|
|
1777
1846
|
var strAddEventHelper = "addEventListener";
|
|
1847
|
+
var strDetachEvent = "detachEvent";
|
|
1848
|
+
var strRemoveEventListener = "removeEventListener";
|
|
1778
1849
|
var strEvents = "events";
|
|
1779
1850
|
createUniqueNamespace("aiEvtPageHide");
|
|
1780
1851
|
createUniqueNamespace("aiEvtPageShow");
|
|
@@ -1787,12 +1858,12 @@
|
|
|
1787
1858
|
}
|
|
1788
1859
|
return name;
|
|
1789
1860
|
}
|
|
1790
|
-
function _getEvtNamespace(eventName,
|
|
1791
|
-
if (
|
|
1861
|
+
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1862
|
+
if (evtNamespace) {
|
|
1792
1863
|
var theNamespace_1 = "";
|
|
1793
|
-
if (isArray(
|
|
1864
|
+
if (isArray(evtNamespace)) {
|
|
1794
1865
|
theNamespace_1 = "";
|
|
1795
|
-
arrForEach(
|
|
1866
|
+
arrForEach(evtNamespace, function (name) {
|
|
1796
1867
|
name = _normalizeNamespace(name);
|
|
1797
1868
|
if (name) {
|
|
1798
1869
|
if (name[0] !== ".") {
|
|
@@ -1803,7 +1874,7 @@
|
|
|
1803
1874
|
});
|
|
1804
1875
|
}
|
|
1805
1876
|
else {
|
|
1806
|
-
theNamespace_1 = _normalizeNamespace(
|
|
1877
|
+
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1807
1878
|
}
|
|
1808
1879
|
if (theNamespace_1) {
|
|
1809
1880
|
if (theNamespace_1[0] !== ".") {
|
|
@@ -1827,6 +1898,16 @@
|
|
|
1827
1898
|
}
|
|
1828
1899
|
return registeredEvents;
|
|
1829
1900
|
}
|
|
1901
|
+
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1902
|
+
if (obj && evtName && evtName.type) {
|
|
1903
|
+
if (obj[strRemoveEventListener]) {
|
|
1904
|
+
obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
|
|
1905
|
+
}
|
|
1906
|
+
else if (obj[strDetachEvent]) {
|
|
1907
|
+
obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1830
1911
|
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1831
1912
|
var result = false;
|
|
1832
1913
|
if (obj && evtName && evtName.type && handlerRef) {
|
|
@@ -1841,6 +1922,49 @@
|
|
|
1841
1922
|
}
|
|
1842
1923
|
return result;
|
|
1843
1924
|
}
|
|
1925
|
+
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1926
|
+
var idx = events.length;
|
|
1927
|
+
while (idx--) {
|
|
1928
|
+
var theEvent = events[idx];
|
|
1929
|
+
if (theEvent) {
|
|
1930
|
+
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1931
|
+
if (!unRegFn || unRegFn(theEvent)) {
|
|
1932
|
+
_doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
|
|
1933
|
+
events.splice(idx, 1);
|
|
1934
|
+
}
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1940
|
+
if (evtName.type) {
|
|
1941
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
|
|
1942
|
+
}
|
|
1943
|
+
else {
|
|
1944
|
+
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1945
|
+
objForEachKey(eventCache, function (evtType, events) {
|
|
1946
|
+
_doUnregister(target, events, evtName, unRegFn);
|
|
1947
|
+
});
|
|
1948
|
+
if (objKeys(eventCache).length === 0) {
|
|
1949
|
+
elmNodeData.kill(target, strEvents);
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
}
|
|
1953
|
+
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1954
|
+
var newNamespaces;
|
|
1955
|
+
if (namespaces) {
|
|
1956
|
+
if (isArray(namespaces)) {
|
|
1957
|
+
newNamespaces = [theNamespace].concat(namespaces);
|
|
1958
|
+
}
|
|
1959
|
+
else {
|
|
1960
|
+
newNamespaces = [theNamespace, namespaces];
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
else {
|
|
1964
|
+
newNamespaces = theNamespace;
|
|
1965
|
+
}
|
|
1966
|
+
return newNamespaces;
|
|
1967
|
+
}
|
|
1844
1968
|
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1845
1969
|
if (useCapture === void 0) { useCapture = false; }
|
|
1846
1970
|
var result = false;
|
|
@@ -1863,9 +1987,26 @@
|
|
|
1863
1987
|
}
|
|
1864
1988
|
return result;
|
|
1865
1989
|
}
|
|
1866
|
-
function
|
|
1990
|
+
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1867
1991
|
if (useCapture === void 0) { useCapture = false; }
|
|
1868
|
-
|
|
1992
|
+
if (target) {
|
|
1993
|
+
try {
|
|
1994
|
+
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1995
|
+
var found_1 = false;
|
|
1996
|
+
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1997
|
+
if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
|
|
1998
|
+
found_1 = true;
|
|
1999
|
+
return true;
|
|
2000
|
+
}
|
|
2001
|
+
return false;
|
|
2002
|
+
});
|
|
2003
|
+
if (!found_1) {
|
|
2004
|
+
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
2005
|
+
}
|
|
2006
|
+
}
|
|
2007
|
+
catch (e) {
|
|
2008
|
+
}
|
|
2009
|
+
}
|
|
1869
2010
|
}
|
|
1870
2011
|
|
|
1871
2012
|
var LoggingSeverity = createEnumStyle({
|
|
@@ -1989,7 +2130,7 @@
|
|
|
1989
2130
|
name = strTrim(name.toString());
|
|
1990
2131
|
if (name.length > 150 ) {
|
|
1991
2132
|
nameTrunc = name.substring(0, 150 );
|
|
1992
|
-
logger
|
|
2133
|
+
_throwInternal(logger, 2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
|
|
1993
2134
|
}
|
|
1994
2135
|
}
|
|
1995
2136
|
return nameTrunc || name;
|
|
@@ -2002,7 +2143,7 @@
|
|
|
2002
2143
|
value = strTrim(value);
|
|
2003
2144
|
if (value.toString().length > maxLength) {
|
|
2004
2145
|
valueTrunc = value.toString().substring(0, maxLength);
|
|
2005
|
-
logger
|
|
2146
|
+
_throwInternal(logger, 2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
|
|
2006
2147
|
}
|
|
2007
2148
|
}
|
|
2008
2149
|
return valueTrunc || value;
|
|
@@ -2015,7 +2156,7 @@
|
|
|
2015
2156
|
if (message) {
|
|
2016
2157
|
if (message.length > 32768 ) {
|
|
2017
2158
|
messageTrunc = message.substring(0, 32768 );
|
|
2018
|
-
logger
|
|
2159
|
+
_throwInternal(logger, 2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
|
|
2019
2160
|
}
|
|
2020
2161
|
}
|
|
2021
2162
|
return messageTrunc || message;
|
|
@@ -2026,7 +2167,7 @@
|
|
|
2026
2167
|
var value = "" + exception;
|
|
2027
2168
|
if (value.length > 32768 ) {
|
|
2028
2169
|
exceptionTrunc = value.substring(0, 32768 );
|
|
2029
|
-
logger
|
|
2170
|
+
_throwInternal(logger, 2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
|
|
2030
2171
|
}
|
|
2031
2172
|
}
|
|
2032
2173
|
return exceptionTrunc || exception;
|
|
@@ -2040,7 +2181,7 @@
|
|
|
2040
2181
|
value = getJSON().stringify(value);
|
|
2041
2182
|
}
|
|
2042
2183
|
catch (e) {
|
|
2043
|
-
logger
|
|
2184
|
+
_throwInternal(logger, 2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
|
|
2044
2185
|
}
|
|
2045
2186
|
}
|
|
2046
2187
|
value = dataSanitizeString(logger, value, 8192 );
|
|
@@ -2071,7 +2212,7 @@
|
|
|
2071
2212
|
input = strTrim(input);
|
|
2072
2213
|
if (input.length > maxLength) {
|
|
2073
2214
|
inputTrunc = input.substring(0, maxLength);
|
|
2074
|
-
logger
|
|
2215
|
+
_throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
|
|
2075
2216
|
}
|
|
2076
2217
|
}
|
|
2077
2218
|
return inputTrunc || input;
|
|
@@ -2140,8 +2281,8 @@
|
|
|
2140
2281
|
}
|
|
2141
2282
|
return null;
|
|
2142
2283
|
}
|
|
2143
|
-
function utlCanUseSessionStorage() {
|
|
2144
|
-
if (_canUseSessionStorage === undefined) {
|
|
2284
|
+
function utlCanUseSessionStorage(reset) {
|
|
2285
|
+
if (reset || _canUseSessionStorage === undefined) {
|
|
2145
2286
|
_canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
|
|
2146
2287
|
}
|
|
2147
2288
|
return _canUseSessionStorage;
|
|
@@ -2154,7 +2295,7 @@
|
|
|
2154
2295
|
}
|
|
2155
2296
|
catch (e) {
|
|
2156
2297
|
_canUseSessionStorage = false;
|
|
2157
|
-
logger
|
|
2298
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2158
2299
|
}
|
|
2159
2300
|
}
|
|
2160
2301
|
return null;
|
|
@@ -2168,7 +2309,7 @@
|
|
|
2168
2309
|
}
|
|
2169
2310
|
catch (e) {
|
|
2170
2311
|
_canUseSessionStorage = false;
|
|
2171
|
-
logger
|
|
2312
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2172
2313
|
}
|
|
2173
2314
|
}
|
|
2174
2315
|
return false;
|
|
@@ -3445,7 +3586,7 @@
|
|
|
3445
3586
|
}
|
|
3446
3587
|
}
|
|
3447
3588
|
var EnvelopeCreator = {
|
|
3448
|
-
Version: "2.8.0-beta.2203-
|
|
3589
|
+
Version: "2.8.0-beta.2203-07"
|
|
3449
3590
|
};
|
|
3450
3591
|
function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
3451
3592
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
@@ -3740,65 +3881,81 @@
|
|
|
3740
3881
|
return Serializer;
|
|
3741
3882
|
}());
|
|
3742
3883
|
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
target.onoffline = _setOffline;
|
|
3762
|
-
isListening = true;
|
|
3763
|
-
}
|
|
3764
|
-
}
|
|
3765
|
-
if (isListening) {
|
|
3766
|
-
var _navigator = getNavigator();
|
|
3767
|
-
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
3768
|
-
_onlineStatus = _navigator.onLine;
|
|
3769
|
-
}
|
|
3884
|
+
function _disableEvents(target, evtNamespace) {
|
|
3885
|
+
eventOff(target, null, null, evtNamespace);
|
|
3886
|
+
}
|
|
3887
|
+
function createOfflineListener(parentEvtNamespace) {
|
|
3888
|
+
var _document = getDocument();
|
|
3889
|
+
var _navigator = getNavigator();
|
|
3890
|
+
var _isListening = false;
|
|
3891
|
+
var _onlineStatus = true;
|
|
3892
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
3893
|
+
try {
|
|
3894
|
+
if (_enableEvents(getWindow())) {
|
|
3895
|
+
_isListening = true;
|
|
3896
|
+
}
|
|
3897
|
+
if (_document) {
|
|
3898
|
+
var target = _document.body || _document;
|
|
3899
|
+
if (target.ononline) {
|
|
3900
|
+
if (_enableEvents(target)) {
|
|
3901
|
+
_isListening = true;
|
|
3770
3902
|
}
|
|
3771
3903
|
}
|
|
3772
|
-
|
|
3773
|
-
|
|
3904
|
+
}
|
|
3905
|
+
if (_isListening) {
|
|
3906
|
+
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
3907
|
+
_onlineStatus = _navigator.onLine;
|
|
3774
3908
|
}
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
};
|
|
3787
|
-
_self.isOffline = function () {
|
|
3788
|
-
return !_self.isOnline();
|
|
3789
|
-
};
|
|
3790
|
-
function _setOnline() {
|
|
3791
|
-
_onlineStatus = true;
|
|
3909
|
+
}
|
|
3910
|
+
}
|
|
3911
|
+
catch (e) {
|
|
3912
|
+
_isListening = false;
|
|
3913
|
+
}
|
|
3914
|
+
function _enableEvents(target) {
|
|
3915
|
+
var enabled = false;
|
|
3916
|
+
if (target) {
|
|
3917
|
+
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
3918
|
+
if (enabled) {
|
|
3919
|
+
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
3792
3920
|
}
|
|
3793
|
-
|
|
3794
|
-
|
|
3921
|
+
}
|
|
3922
|
+
return enabled;
|
|
3923
|
+
}
|
|
3924
|
+
function _setOnline() {
|
|
3925
|
+
_onlineStatus = true;
|
|
3926
|
+
}
|
|
3927
|
+
function _setOffline() {
|
|
3928
|
+
_onlineStatus = false;
|
|
3929
|
+
}
|
|
3930
|
+
function _isOnline() {
|
|
3931
|
+
var result = true;
|
|
3932
|
+
if (_isListening) {
|
|
3933
|
+
result = _onlineStatus;
|
|
3934
|
+
}
|
|
3935
|
+
else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
3936
|
+
result = _navigator.onLine;
|
|
3937
|
+
}
|
|
3938
|
+
return result;
|
|
3939
|
+
}
|
|
3940
|
+
function _unload() {
|
|
3941
|
+
var win = getWindow();
|
|
3942
|
+
if (win && _isListening) {
|
|
3943
|
+
_disableEvents(win, _evtNamespace);
|
|
3944
|
+
if (_document) {
|
|
3945
|
+
var target = _document.body || _document;
|
|
3946
|
+
if (!isUndefined(target.ononline)) {
|
|
3947
|
+
_disableEvents(target, _evtNamespace);
|
|
3948
|
+
}
|
|
3795
3949
|
}
|
|
3796
|
-
|
|
3950
|
+
_isListening = false;
|
|
3951
|
+
}
|
|
3797
3952
|
}
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3953
|
+
return {
|
|
3954
|
+
isOnline: _isOnline,
|
|
3955
|
+
isListening: function () { return _isListening; },
|
|
3956
|
+
unload: _unload
|
|
3957
|
+
};
|
|
3958
|
+
}
|
|
3802
3959
|
|
|
3803
3960
|
var MIN_INPUT_LENGTH = 8;
|
|
3804
3961
|
var HashCodeScoreGenerator = /** @class */ (function () {
|
|
@@ -3926,22 +4083,22 @@
|
|
|
3926
4083
|
var _this = _super.call(this) || this;
|
|
3927
4084
|
_this.priority = 1001;
|
|
3928
4085
|
_this.identifier = BreezeChannelIdentifier;
|
|
4086
|
+
_this._senderConfig = _getDefaultAppInsightsChannelConfig();
|
|
3929
4087
|
var _consecutiveErrors;
|
|
3930
4088
|
var _retryAt;
|
|
3931
4089
|
var _lastSend;
|
|
3932
|
-
var _paused
|
|
4090
|
+
var _paused;
|
|
3933
4091
|
var _timeoutHandle;
|
|
3934
4092
|
var _serializer;
|
|
3935
4093
|
var _stamp_specific_redirects;
|
|
3936
|
-
var _headers
|
|
4094
|
+
var _headers;
|
|
3937
4095
|
var _syncFetchPayload = 0;
|
|
3938
4096
|
var _fallbackSender;
|
|
3939
4097
|
var _syncUnloadSender;
|
|
3940
|
-
|
|
4098
|
+
var _offlineListener;
|
|
4099
|
+
var _evtNamespace;
|
|
3941
4100
|
dynamicProto(Sender, _this, function (_self, _base) {
|
|
3942
|
-
|
|
3943
|
-
throwError("Method not implemented.");
|
|
3944
|
-
}
|
|
4101
|
+
_initDefaults();
|
|
3945
4102
|
_self.pause = function () {
|
|
3946
4103
|
_clearScheduledTimer();
|
|
3947
4104
|
_paused = true;
|
|
@@ -3964,7 +4121,7 @@
|
|
|
3964
4121
|
_self.triggerSend(isAsync, null, sendReason || 1 );
|
|
3965
4122
|
}
|
|
3966
4123
|
catch (e) {
|
|
3967
|
-
_self.diagLog()
|
|
4124
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3968
4125
|
}
|
|
3969
4126
|
}
|
|
3970
4127
|
};
|
|
@@ -3975,7 +4132,7 @@
|
|
|
3975
4132
|
_self.triggerSend(true, _doUnloadSend, 2 );
|
|
3976
4133
|
}
|
|
3977
4134
|
catch (e) {
|
|
3978
|
-
_self.diagLog()
|
|
4135
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, "failed to flush with beacon sender on page unload, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3979
4136
|
}
|
|
3980
4137
|
}
|
|
3981
4138
|
else {
|
|
@@ -3983,7 +4140,6 @@
|
|
|
3983
4140
|
}
|
|
3984
4141
|
}
|
|
3985
4142
|
};
|
|
3986
|
-
_self.teardown = _notImplemented;
|
|
3987
4143
|
_self.addHeader = function (name, value) {
|
|
3988
4144
|
_headers[name] = value;
|
|
3989
4145
|
};
|
|
@@ -3998,6 +4154,8 @@
|
|
|
3998
4154
|
_self._sender = null;
|
|
3999
4155
|
_stamp_specific_redirects = 0;
|
|
4000
4156
|
var diagLog = _self.diagLog();
|
|
4157
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
|
|
4158
|
+
_offlineListener = createOfflineListener(_evtNamespace);
|
|
4001
4159
|
var defaultConfig = _getDefaultAppInsightsChannelConfig();
|
|
4002
4160
|
objForEachKey(defaultConfig, function (field, value) {
|
|
4003
4161
|
_self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };
|
|
@@ -4006,7 +4164,7 @@
|
|
|
4006
4164
|
? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);
|
|
4007
4165
|
_self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);
|
|
4008
4166
|
if (!_validateInstrumentationKey(config)) {
|
|
4009
|
-
diagLog
|
|
4167
|
+
_throwInternal(diagLog, LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, "Invalid Instrumentation key " + config.instrumentationKey);
|
|
4010
4168
|
}
|
|
4011
4169
|
if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {
|
|
4012
4170
|
arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {
|
|
@@ -4052,22 +4210,22 @@
|
|
|
4052
4210
|
return;
|
|
4053
4211
|
}
|
|
4054
4212
|
if (!telemetryItem) {
|
|
4055
|
-
itemCtx.diagLog()
|
|
4213
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, "Cannot send empty telemetry");
|
|
4056
4214
|
return;
|
|
4057
4215
|
}
|
|
4058
4216
|
if (telemetryItem.baseData && !telemetryItem.baseType) {
|
|
4059
|
-
itemCtx.diagLog()
|
|
4217
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, "Cannot send telemetry without baseData and baseType");
|
|
4060
4218
|
return;
|
|
4061
4219
|
}
|
|
4062
4220
|
if (!telemetryItem.baseType) {
|
|
4063
4221
|
telemetryItem.baseType = "EventData";
|
|
4064
4222
|
}
|
|
4065
4223
|
if (!_self._sender) {
|
|
4066
|
-
itemCtx.diagLog()
|
|
4224
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, "Sender was not initialized");
|
|
4067
4225
|
return;
|
|
4068
4226
|
}
|
|
4069
4227
|
if (!_isSampledIn(telemetryItem)) {
|
|
4070
|
-
itemCtx.diagLog()
|
|
4228
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, "Telemetry item was sampled out and not sent", { SampleRate: _self._sample.sampleRate });
|
|
4071
4229
|
return;
|
|
4072
4230
|
}
|
|
4073
4231
|
else {
|
|
@@ -4077,7 +4235,7 @@
|
|
|
4077
4235
|
var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();
|
|
4078
4236
|
var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);
|
|
4079
4237
|
if (!aiEnvelope_1) {
|
|
4080
|
-
itemCtx.diagLog()
|
|
4238
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
|
|
4081
4239
|
return;
|
|
4082
4240
|
}
|
|
4083
4241
|
var doNotSendItem_1 = false;
|
|
@@ -4090,7 +4248,7 @@
|
|
|
4090
4248
|
}
|
|
4091
4249
|
}
|
|
4092
4250
|
catch (e) {
|
|
4093
|
-
itemCtx.diagLog()
|
|
4251
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
4094
4252
|
}
|
|
4095
4253
|
});
|
|
4096
4254
|
delete telemetryItem.tags[ProcessLegacy];
|
|
@@ -4108,7 +4266,7 @@
|
|
|
4108
4266
|
_setupTimer();
|
|
4109
4267
|
}
|
|
4110
4268
|
catch (e) {
|
|
4111
|
-
itemCtx.diagLog()
|
|
4269
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4112
4270
|
}
|
|
4113
4271
|
_self.processNext(telemetryItem, itemCtx);
|
|
4114
4272
|
};
|
|
@@ -4143,13 +4301,18 @@
|
|
|
4143
4301
|
catch (e) {
|
|
4144
4302
|
var ieVer = getIEVersion();
|
|
4145
4303
|
if (!ieVer || ieVer > 9) {
|
|
4146
|
-
_self.diagLog()
|
|
4304
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4147
4305
|
}
|
|
4148
4306
|
}
|
|
4149
4307
|
}
|
|
4150
4308
|
};
|
|
4309
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
4310
|
+
_self.onunloadFlush();
|
|
4311
|
+
_offlineListener.unload();
|
|
4312
|
+
_initDefaults();
|
|
4313
|
+
};
|
|
4151
4314
|
_self._onError = function (payload, message, event) {
|
|
4152
|
-
_self.diagLog()
|
|
4315
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.OnError, "Failed to send telemetry.", { message: message });
|
|
4153
4316
|
_self._buffer.clearSent(payload);
|
|
4154
4317
|
};
|
|
4155
4318
|
_self._onPartialSuccess = function (payload, results) {
|
|
@@ -4174,7 +4337,7 @@
|
|
|
4174
4337
|
}
|
|
4175
4338
|
if (retry.length > 0) {
|
|
4176
4339
|
_resendPayload(retry);
|
|
4177
|
-
_self.diagLog()
|
|
4340
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, "Partial success. " +
|
|
4178
4341
|
"Delivered: " + payload.length + ", Failed: " + failed.length +
|
|
4179
4342
|
". Will retry to send " + retry.length + " our of " + results.itemsReceived + " items");
|
|
4180
4343
|
}
|
|
@@ -4219,18 +4382,18 @@
|
|
|
4219
4382
|
}
|
|
4220
4383
|
if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {
|
|
4221
4384
|
_resendPayload(payload);
|
|
4222
|
-
_self.diagLog()
|
|
4385
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
4223
4386
|
"Response code " + status + ". Will retry to send " + payload.length + " items.");
|
|
4224
4387
|
}
|
|
4225
4388
|
else {
|
|
4226
4389
|
_self._onError(payload, errorMessage);
|
|
4227
4390
|
}
|
|
4228
4391
|
}
|
|
4229
|
-
else if (
|
|
4392
|
+
else if (_offlineListener && !_offlineListener.isOnline()) {
|
|
4230
4393
|
if (!_self._senderConfig.isRetryDisabled()) {
|
|
4231
4394
|
var offlineBackOffMultiplier = 10;
|
|
4232
4395
|
_resendPayload(payload, offlineBackOffMultiplier);
|
|
4233
|
-
_self.diagLog()
|
|
4396
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". Offline - Response Code: ".concat(status, ". Offline status: ").concat(!_offlineListener.isOnline(), ". Will retry to send ").concat(payload.length, " items."));
|
|
4234
4397
|
}
|
|
4235
4398
|
}
|
|
4236
4399
|
else {
|
|
@@ -4297,8 +4460,8 @@
|
|
|
4297
4460
|
}
|
|
4298
4461
|
}
|
|
4299
4462
|
if (droppedPayload.length > 0) {
|
|
4300
|
-
_fallbackSender(droppedPayload, true);
|
|
4301
|
-
_self.diagLog()
|
|
4463
|
+
_fallbackSender && _fallbackSender(droppedPayload, true);
|
|
4464
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
4302
4465
|
}
|
|
4303
4466
|
}
|
|
4304
4467
|
}
|
|
@@ -4339,7 +4502,7 @@
|
|
|
4339
4502
|
}
|
|
4340
4503
|
else {
|
|
4341
4504
|
_fallbackSender && _fallbackSender(payload, true);
|
|
4342
|
-
_self.diagLog()
|
|
4505
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
|
|
4343
4506
|
}
|
|
4344
4507
|
}
|
|
4345
4508
|
}
|
|
@@ -4430,7 +4593,7 @@
|
|
|
4430
4593
|
}
|
|
4431
4594
|
}
|
|
4432
4595
|
catch (e) {
|
|
4433
|
-
_self.diagLog()
|
|
4596
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, "Cannot parse the response. " + getExceptionName(e), {
|
|
4434
4597
|
response: response
|
|
4435
4598
|
});
|
|
4436
4599
|
}
|
|
@@ -4501,7 +4664,7 @@
|
|
|
4501
4664
|
xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };
|
|
4502
4665
|
var hostingProtocol = _window && _window.location && _window.location.protocol || "";
|
|
4503
4666
|
if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
4504
|
-
_self.diagLog()
|
|
4667
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
4505
4668
|
"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
|
|
4506
4669
|
buffer.clear();
|
|
4507
4670
|
return;
|
|
@@ -4532,7 +4695,7 @@
|
|
|
4532
4695
|
manager.eventsSendRequest(sendRequest, isAsync);
|
|
4533
4696
|
}
|
|
4534
4697
|
catch (e) {
|
|
4535
|
-
_self.diagLog()
|
|
4698
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
4536
4699
|
}
|
|
4537
4700
|
}
|
|
4538
4701
|
}
|
|
@@ -4545,6 +4708,25 @@
|
|
|
4545
4708
|
var regexp = new RegExp(UUID_Regex);
|
|
4546
4709
|
return regexp.test(config.instrumentationKey);
|
|
4547
4710
|
}
|
|
4711
|
+
function _initDefaults() {
|
|
4712
|
+
_self._sender = null;
|
|
4713
|
+
_self._buffer = null;
|
|
4714
|
+
_self._appId = null;
|
|
4715
|
+
_self._sample = null;
|
|
4716
|
+
_headers = {};
|
|
4717
|
+
_offlineListener = null;
|
|
4718
|
+
_consecutiveErrors = 0;
|
|
4719
|
+
_retryAt = null;
|
|
4720
|
+
_lastSend = null;
|
|
4721
|
+
_paused = false;
|
|
4722
|
+
_timeoutHandle = null;
|
|
4723
|
+
_serializer = null;
|
|
4724
|
+
_stamp_specific_redirects = 0;
|
|
4725
|
+
_syncFetchPayload = 0;
|
|
4726
|
+
_fallbackSender = null;
|
|
4727
|
+
_syncUnloadSender = null;
|
|
4728
|
+
_evtNamespace = null;
|
|
4729
|
+
}
|
|
4548
4730
|
});
|
|
4549
4731
|
return _this;
|
|
4550
4732
|
}
|