@microsoft/applicationinsights-web 2.8.0-beta.2203-02 → 2.8.0-beta.2203-05
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/{ai.2.8.0-beta.2203-02.cjs.js → ai.2.8.0-beta.2203-05.cjs.js} +828 -359
- package/browser/ai.2.8.0-beta.2203-05.cjs.js.map +1 -0
- package/browser/ai.2.8.0-beta.2203-05.cjs.min.js +6 -0
- package/browser/ai.2.8.0-beta.2203-05.cjs.min.js.map +1 -0
- package/browser/{ai.2.8.0-beta.2203-02.gbl.js → ai.2.8.0-beta.2203-05.gbl.js} +828 -359
- package/browser/ai.2.8.0-beta.2203-05.gbl.js.map +1 -0
- package/browser/ai.2.8.0-beta.2203-05.gbl.min.js +6 -0
- package/browser/ai.2.8.0-beta.2203-05.gbl.min.js.map +1 -0
- package/browser/ai.2.8.0-beta.2203-05.integrity.json +66 -0
- package/browser/{ai.2.8.0-beta.2203-02.js → ai.2.8.0-beta.2203-05.js} +828 -359
- package/browser/ai.2.8.0-beta.2203-05.js.map +1 -0
- package/browser/ai.2.8.0-beta.2203-05.min.js +6 -0
- package/browser/ai.2.8.0-beta.2203-05.min.js.map +1 -0
- package/browser/ai.2.cjs.js +827 -358
- package/browser/ai.2.cjs.js.map +1 -1
- package/browser/ai.2.cjs.min.js +2 -2
- package/browser/ai.2.cjs.min.js.map +1 -1
- package/browser/ai.2.gbl.js +827 -358
- package/browser/ai.2.gbl.js.map +1 -1
- package/browser/ai.2.gbl.min.js +2 -2
- package/browser/ai.2.gbl.min.js.map +1 -1
- package/browser/ai.2.js +827 -358
- package/browser/ai.2.js.map +1 -1
- package/browser/ai.2.min.js +2 -2
- package/browser/ai.2.min.js.map +1 -1
- package/dist/applicationinsights-web.api.json +735 -167
- package/dist/applicationinsights-web.api.md +22 -19
- package/dist/applicationinsights-web.d.ts +168 -106
- package/dist/applicationinsights-web.js +828 -359
- package/dist/applicationinsights-web.js.map +1 -1
- package/dist/applicationinsights-web.min.js +2 -2
- package/dist/applicationinsights-web.min.js.map +1 -1
- package/dist/applicationinsights-web.rollup.d.ts +168 -106
- package/dist-esm/ApplicationInsightsContainer.js +1 -1
- package/dist-esm/ApplicationInsightsDeprecated.js +1 -1
- package/dist-esm/Init.js +1 -1
- package/dist-esm/Initialization.js +1 -1
- package/dist-esm/applicationinsights-web.js +1 -1
- package/package.json +7 -7
- package/types/Initialization.d.ts +1 -1
- package/browser/ai.2.8.0-beta.2203-02.cjs.js.map +0 -1
- package/browser/ai.2.8.0-beta.2203-02.cjs.min.js +0 -6
- package/browser/ai.2.8.0-beta.2203-02.cjs.min.js.map +0 -1
- package/browser/ai.2.8.0-beta.2203-02.gbl.js.map +0 -1
- package/browser/ai.2.8.0-beta.2203-02.gbl.min.js +0 -6
- package/browser/ai.2.8.0-beta.2203-02.gbl.min.js.map +0 -1
- package/browser/ai.2.8.0-beta.2203-02.integrity.json +0 -66
- package/browser/ai.2.8.0-beta.2203-02.js.map +0 -1
- package/browser/ai.2.8.0-beta.2203-02.min.js +0 -6
- package/browser/ai.2.8.0-beta.2203-02.min.js.map +0 -1
package/browser/ai.2.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-
|
|
2
|
+
* Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-05
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -357,6 +357,7 @@
|
|
|
357
357
|
var strIsInitialized = "isInitialized";
|
|
358
358
|
var strTeardown = "teardown";
|
|
359
359
|
var strCore = "core";
|
|
360
|
+
var strUpdate = "update";
|
|
360
361
|
var strDisabled = "disabled";
|
|
361
362
|
var strDoTeardown = "_doTeardown";
|
|
362
363
|
var strProcessNext = "processNext";
|
|
@@ -813,7 +814,7 @@
|
|
|
813
814
|
objForEachKey(values, function (field, value) {
|
|
814
815
|
enumClass[field] = value;
|
|
815
816
|
if (!isUndefined(enumClass[value])) {
|
|
816
|
-
throwError("
|
|
817
|
+
throwError("[" + value + "] exists for " + field);
|
|
817
818
|
}
|
|
818
819
|
enumClass[value] = field;
|
|
819
820
|
});
|
|
@@ -825,7 +826,7 @@
|
|
|
825
826
|
}
|
|
826
827
|
return theObject;
|
|
827
828
|
}
|
|
828
|
-
function objExtend(
|
|
829
|
+
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
829
830
|
var theArgs = arguments;
|
|
830
831
|
var extended = theArgs[0] || {};
|
|
831
832
|
var argLen = theArgs.length;
|
|
@@ -1272,6 +1273,10 @@
|
|
|
1272
1273
|
}
|
|
1273
1274
|
return DiagnosticLogger;
|
|
1274
1275
|
}());
|
|
1276
|
+
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1277
|
+
if (isUserAct === void 0) { isUserAct = false; }
|
|
1278
|
+
(logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1279
|
+
}
|
|
1275
1280
|
|
|
1276
1281
|
var strExecutionContextKey = "ctx";
|
|
1277
1282
|
var _defaultPerfManager = null;
|
|
@@ -1642,8 +1647,11 @@
|
|
|
1642
1647
|
return createTelemetryProxyChain([startAt], config, core);
|
|
1643
1648
|
}
|
|
1644
1649
|
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1645
|
-
var _nextProxy =
|
|
1650
|
+
var _nextProxy = null;
|
|
1646
1651
|
var _onComplete = [];
|
|
1652
|
+
if (startAt !== null) {
|
|
1653
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, config, core, startAt) : telemetryChain;
|
|
1654
|
+
}
|
|
1647
1655
|
var context = {
|
|
1648
1656
|
_next: _moveNext,
|
|
1649
1657
|
ctx: {
|
|
@@ -1693,7 +1701,7 @@
|
|
|
1693
1701
|
completeDetails.func.call(completeDetails.self, completeDetails.args);
|
|
1694
1702
|
}
|
|
1695
1703
|
catch (e) {
|
|
1696
|
-
core.logger
|
|
1704
|
+
_throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1697
1705
|
}
|
|
1698
1706
|
});
|
|
1699
1707
|
_onComplete = [];
|
|
@@ -1792,6 +1800,27 @@
|
|
|
1792
1800
|
context.createNew = _createNew;
|
|
1793
1801
|
return context;
|
|
1794
1802
|
}
|
|
1803
|
+
function createProcessTelemetryUpdateContext(telemetryChain, config, core, startAt) {
|
|
1804
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1805
|
+
var context = internalContext.ctx;
|
|
1806
|
+
function _processNext(updateState) {
|
|
1807
|
+
return context.iterate(function (plugin) {
|
|
1808
|
+
if (isFunction(plugin[strUpdate])) {
|
|
1809
|
+
plugin[strUpdate](context, updateState);
|
|
1810
|
+
}
|
|
1811
|
+
});
|
|
1812
|
+
}
|
|
1813
|
+
function _createNew(plugins, startAt) {
|
|
1814
|
+
if (plugins === void 0) { plugins = null; }
|
|
1815
|
+
if (isArray(plugins)) {
|
|
1816
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1817
|
+
}
|
|
1818
|
+
return createProcessTelemetryUpdateContext(plugins || context.getNext(), config, core, startAt);
|
|
1819
|
+
}
|
|
1820
|
+
context.processNext = _processNext;
|
|
1821
|
+
context.createNew = _createNew;
|
|
1822
|
+
return context;
|
|
1823
|
+
}
|
|
1795
1824
|
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1796
1825
|
var firstProxy = null;
|
|
1797
1826
|
var add = startAt ? false : true;
|
|
@@ -1838,6 +1867,7 @@
|
|
|
1838
1867
|
},
|
|
1839
1868
|
processTelemetry: _processTelemetry,
|
|
1840
1869
|
unload: _unloadPlugin,
|
|
1870
|
+
update: _updatePlugin,
|
|
1841
1871
|
_id: chainId,
|
|
1842
1872
|
_setNext: function (nextPlugin) {
|
|
1843
1873
|
nextProxy = nextPlugin;
|
|
@@ -1877,7 +1907,7 @@
|
|
|
1877
1907
|
hasRun = true;
|
|
1878
1908
|
}
|
|
1879
1909
|
if (!nextProxy || !hasNextRun) {
|
|
1880
|
-
itemCtx.diagLog()
|
|
1910
|
+
_throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + plugin.identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1881
1911
|
}
|
|
1882
1912
|
}
|
|
1883
1913
|
}, details, isAsync);
|
|
@@ -1925,6 +1955,24 @@
|
|
|
1925
1955
|
unloadCtx.processNext(unloadState);
|
|
1926
1956
|
}
|
|
1927
1957
|
}
|
|
1958
|
+
function _updatePlugin(updateCtx, updateState) {
|
|
1959
|
+
function _callUpdate() {
|
|
1960
|
+
var hasRun = false;
|
|
1961
|
+
if (plugin) {
|
|
1962
|
+
var pluginState = _getPluginState(plugin);
|
|
1963
|
+
var pluginCore = plugin[strCore] || pluginState.core;
|
|
1964
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
|
|
1965
|
+
if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
|
|
1966
|
+
hasRun = true;
|
|
1967
|
+
}
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
return hasRun;
|
|
1971
|
+
}
|
|
1972
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1973
|
+
updateCtx.processNext(updateState);
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1928
1976
|
return objFreeze(proxyChain);
|
|
1929
1977
|
}
|
|
1930
1978
|
|
|
@@ -2094,7 +2142,7 @@
|
|
|
2094
2142
|
_supportsCookies = doc[strCookie] !== undefined;
|
|
2095
2143
|
}
|
|
2096
2144
|
catch (e) {
|
|
2097
|
-
logger
|
|
2145
|
+
_throwInternal(logger, 2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2098
2146
|
}
|
|
2099
2147
|
}
|
|
2100
2148
|
return _supportsCookies;
|
|
@@ -2223,6 +2271,17 @@
|
|
|
2223
2271
|
}
|
|
2224
2272
|
_runChainOnComplete();
|
|
2225
2273
|
}
|
|
2274
|
+
function _doUpdate(updateCtx, updateState) {
|
|
2275
|
+
var theUpdateState = updateState || {
|
|
2276
|
+
reason: 0
|
|
2277
|
+
};
|
|
2278
|
+
_processChannelQueue(channelQueue, updateCtx, function (chainCtx) {
|
|
2279
|
+
chainCtx[strProcessNext](theUpdateState);
|
|
2280
|
+
}, function () {
|
|
2281
|
+
updateCtx[strProcessNext](theUpdateState);
|
|
2282
|
+
});
|
|
2283
|
+
return true;
|
|
2284
|
+
}
|
|
2226
2285
|
function _doTeardown(unloadCtx, unloadState) {
|
|
2227
2286
|
var theUnloadState = unloadState || {
|
|
2228
2287
|
reason: 0 ,
|
|
@@ -2274,7 +2333,8 @@
|
|
|
2274
2333
|
}, function () {
|
|
2275
2334
|
itemCtx[strProcessNext](item);
|
|
2276
2335
|
});
|
|
2277
|
-
}
|
|
2336
|
+
},
|
|
2337
|
+
update: _doUpdate
|
|
2278
2338
|
},
|
|
2279
2339
|
_a[strPause] = function () {
|
|
2280
2340
|
_processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {
|
|
@@ -2359,6 +2419,30 @@
|
|
|
2359
2419
|
return channelQueue;
|
|
2360
2420
|
}
|
|
2361
2421
|
|
|
2422
|
+
function createUnloadHandlerContainer() {
|
|
2423
|
+
var handlers = [];
|
|
2424
|
+
function _addHandler(handler) {
|
|
2425
|
+
if (handler) {
|
|
2426
|
+
handlers.push(handler);
|
|
2427
|
+
}
|
|
2428
|
+
}
|
|
2429
|
+
function _runHandlers(unloadCtx, unloadState) {
|
|
2430
|
+
arrForEach(handlers, function (handler) {
|
|
2431
|
+
try {
|
|
2432
|
+
handler(unloadCtx, unloadState);
|
|
2433
|
+
}
|
|
2434
|
+
catch (e) {
|
|
2435
|
+
_throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
2436
|
+
}
|
|
2437
|
+
});
|
|
2438
|
+
handlers = [];
|
|
2439
|
+
}
|
|
2440
|
+
return {
|
|
2441
|
+
add: _addHandler,
|
|
2442
|
+
run: _runHandlers
|
|
2443
|
+
};
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2362
2446
|
var strGetPlugin = "getPlugin";
|
|
2363
2447
|
var BaseTelemetryPlugin = /** @class */ (function () {
|
|
2364
2448
|
function BaseTelemetryPlugin() {
|
|
@@ -2366,6 +2450,7 @@
|
|
|
2366
2450
|
var _isinitialized;
|
|
2367
2451
|
var _rootCtx;
|
|
2368
2452
|
var _nextPlugin;
|
|
2453
|
+
var _unloadHandlerContainer;
|
|
2369
2454
|
var _hooks;
|
|
2370
2455
|
_initDefaults();
|
|
2371
2456
|
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
@@ -2387,6 +2472,7 @@
|
|
|
2387
2472
|
function _unloadCallback() {
|
|
2388
2473
|
if (!unloadDone) {
|
|
2389
2474
|
unloadDone = true;
|
|
2475
|
+
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
2390
2476
|
arrForEach(_hooks, function (fn) {
|
|
2391
2477
|
fn.rm();
|
|
2392
2478
|
});
|
|
@@ -2405,6 +2491,30 @@
|
|
|
2405
2491
|
}
|
|
2406
2492
|
return result;
|
|
2407
2493
|
};
|
|
2494
|
+
_self.update = function (updateCtx, updateState) {
|
|
2495
|
+
if (!_self.core || (updateCtx && _self.core !== updateCtx.core())) {
|
|
2496
|
+
return;
|
|
2497
|
+
}
|
|
2498
|
+
var result;
|
|
2499
|
+
var updateDone = false;
|
|
2500
|
+
var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, {}, _self.core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
2501
|
+
var theUpdateState = updateState || {
|
|
2502
|
+
reason: 0
|
|
2503
|
+
};
|
|
2504
|
+
function _updateCallback() {
|
|
2505
|
+
if (!updateDone) {
|
|
2506
|
+
updateDone = true;
|
|
2507
|
+
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
|
|
2508
|
+
}
|
|
2509
|
+
}
|
|
2510
|
+
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
2511
|
+
_updateCallback();
|
|
2512
|
+
}
|
|
2513
|
+
else {
|
|
2514
|
+
result = true;
|
|
2515
|
+
}
|
|
2516
|
+
return result;
|
|
2517
|
+
};
|
|
2408
2518
|
_self._addHook = function (hooks) {
|
|
2409
2519
|
if (hooks) {
|
|
2410
2520
|
if (isArray(hooks)) {
|
|
@@ -2415,6 +2525,7 @@
|
|
|
2415
2525
|
}
|
|
2416
2526
|
}
|
|
2417
2527
|
};
|
|
2528
|
+
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
2418
2529
|
});
|
|
2419
2530
|
_self.diagLog = function (itemCtx) {
|
|
2420
2531
|
return _getTelCtx(itemCtx).diagLog();
|
|
@@ -2471,6 +2582,7 @@
|
|
|
2471
2582
|
_rootCtx = null;
|
|
2472
2583
|
_nextPlugin = null;
|
|
2473
2584
|
_hooks = [];
|
|
2585
|
+
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
2474
2586
|
}
|
|
2475
2587
|
}
|
|
2476
2588
|
return BaseTelemetryPlugin;
|
|
@@ -2517,7 +2629,7 @@
|
|
|
2517
2629
|
}
|
|
2518
2630
|
}
|
|
2519
2631
|
catch (e) {
|
|
2520
|
-
itemCtx.diagLog()
|
|
2632
|
+
_throwInternal(itemCtx.diagLog(), 1 , 64 , "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
2521
2633
|
}
|
|
2522
2634
|
}
|
|
2523
2635
|
}
|
|
@@ -2540,6 +2652,8 @@
|
|
|
2540
2652
|
|
|
2541
2653
|
var strValidationError = "Plugins must provide initialize method";
|
|
2542
2654
|
var strNotificationManager = "_notificationManager";
|
|
2655
|
+
var strSdkUnloadingError = "SDK is still unloading...";
|
|
2656
|
+
var strSdkNotInitialized = "SDK is not initialized";
|
|
2543
2657
|
function _createPerfManager(core, notificationMgr) {
|
|
2544
2658
|
return new PerfManager(notificationMgr);
|
|
2545
2659
|
}
|
|
@@ -2569,6 +2683,16 @@
|
|
|
2569
2683
|
core: coreExtensions
|
|
2570
2684
|
};
|
|
2571
2685
|
}
|
|
2686
|
+
function _isPluginPresent(thePlugin, plugins) {
|
|
2687
|
+
var exists = false;
|
|
2688
|
+
arrForEach(plugins, function (plugin) {
|
|
2689
|
+
if (plugin === thePlugin) {
|
|
2690
|
+
exists = true;
|
|
2691
|
+
return -1;
|
|
2692
|
+
}
|
|
2693
|
+
});
|
|
2694
|
+
return exists;
|
|
2695
|
+
}
|
|
2572
2696
|
function _createDummyNotificationManager() {
|
|
2573
2697
|
var _a;
|
|
2574
2698
|
return objCreateFn((_a = {},
|
|
@@ -2593,15 +2717,20 @@
|
|
|
2593
2717
|
var _channelControl;
|
|
2594
2718
|
var _channelConfig;
|
|
2595
2719
|
var _channelQueue;
|
|
2720
|
+
var _isUnloading;
|
|
2596
2721
|
var _telemetryInitializerPlugin;
|
|
2597
2722
|
var _internalLogsEventName;
|
|
2598
2723
|
var _evtNamespace;
|
|
2724
|
+
var _unloadHandlers;
|
|
2599
2725
|
var _debugListener;
|
|
2600
2726
|
var _internalLogPoller = 0;
|
|
2601
2727
|
dynamicProto(BaseCore, this, function (_self) {
|
|
2602
2728
|
_initDefaults();
|
|
2603
2729
|
_self.isInitialized = function () { return _isInitialized; };
|
|
2604
2730
|
_self.initialize = function (config, extensions, logger, notificationManager) {
|
|
2731
|
+
if (_isUnloading) {
|
|
2732
|
+
throwError(strSdkUnloadingError);
|
|
2733
|
+
}
|
|
2605
2734
|
if (_self.isInitialized()) {
|
|
2606
2735
|
throwError("Core should not be initialized more than once");
|
|
2607
2736
|
}
|
|
@@ -2614,15 +2743,14 @@
|
|
|
2614
2743
|
_initDebugListener(config);
|
|
2615
2744
|
_initPerfManager(config);
|
|
2616
2745
|
config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;
|
|
2617
|
-
|
|
2618
|
-
extConfig.NotificationManager = notificationManager;
|
|
2746
|
+
_initExtConfig(config);
|
|
2619
2747
|
if (logger) {
|
|
2620
2748
|
_self.logger = logger;
|
|
2621
2749
|
}
|
|
2622
2750
|
_configExtensions = [];
|
|
2623
2751
|
_configExtensions.push.apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), config.extensions));
|
|
2624
2752
|
_channelConfig = (config || {}).channels;
|
|
2625
|
-
_initPluginChain(config);
|
|
2753
|
+
_initPluginChain(config, null);
|
|
2626
2754
|
if (_self.getTransmissionControls().length === 0) {
|
|
2627
2755
|
throwError("No channels available");
|
|
2628
2756
|
}
|
|
@@ -2640,7 +2768,7 @@
|
|
|
2640
2768
|
setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);
|
|
2641
2769
|
setValue(telemetryItem, "time", toISOString(new Date()), null, isNotTruthy);
|
|
2642
2770
|
setValue(telemetryItem, "ver", "4.0", null, isNullOrUndefined);
|
|
2643
|
-
if (_self.isInitialized()) {
|
|
2771
|
+
if (!_isUnloading && _self.isInitialized()) {
|
|
2644
2772
|
_createTelCtx().processNext(telemetryItem);
|
|
2645
2773
|
}
|
|
2646
2774
|
else {
|
|
@@ -2655,14 +2783,14 @@
|
|
|
2655
2783
|
}
|
|
2656
2784
|
return _notificationManager;
|
|
2657
2785
|
};
|
|
2658
|
-
_self
|
|
2786
|
+
_self[strAddNotificationListener] = function (listener) {
|
|
2659
2787
|
if (_notificationManager) {
|
|
2660
|
-
_notificationManager
|
|
2788
|
+
_notificationManager[strAddNotificationListener](listener);
|
|
2661
2789
|
}
|
|
2662
2790
|
};
|
|
2663
|
-
_self
|
|
2791
|
+
_self[strRemoveNotificationListener] = function (listener) {
|
|
2664
2792
|
if (_notificationManager) {
|
|
2665
|
-
_notificationManager
|
|
2793
|
+
_notificationManager[strRemoveNotificationListener](listener);
|
|
2666
2794
|
}
|
|
2667
2795
|
};
|
|
2668
2796
|
_self.getCookieMgr = function () {
|
|
@@ -2719,10 +2847,86 @@
|
|
|
2719
2847
|
}
|
|
2720
2848
|
};
|
|
2721
2849
|
proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, ["addTelemetryInitializer"]);
|
|
2850
|
+
_self.unload = function (isAsync, unloadComplete, cbTimeout) {
|
|
2851
|
+
if (isAsync === void 0) { isAsync = true; }
|
|
2852
|
+
if (!_isInitialized) {
|
|
2853
|
+
throwError(strSdkNotInitialized);
|
|
2854
|
+
}
|
|
2855
|
+
if (_isUnloading) {
|
|
2856
|
+
throwError(strSdkUnloadingError);
|
|
2857
|
+
}
|
|
2858
|
+
var unloadState = {
|
|
2859
|
+
reason: 50 ,
|
|
2860
|
+
isAsync: isAsync,
|
|
2861
|
+
flushComplete: false
|
|
2862
|
+
};
|
|
2863
|
+
var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self.config, _self);
|
|
2864
|
+
processUnloadCtx.onComplete(function () {
|
|
2865
|
+
_initDefaults();
|
|
2866
|
+
unloadComplete && unloadComplete(unloadState);
|
|
2867
|
+
}, _self);
|
|
2868
|
+
function _doUnload(flushComplete) {
|
|
2869
|
+
unloadState.flushComplete = flushComplete;
|
|
2870
|
+
_isUnloading = true;
|
|
2871
|
+
_unloadHandlers.run(processUnloadCtx, unloadState);
|
|
2872
|
+
_self.stopPollingInternalLogs();
|
|
2873
|
+
processUnloadCtx.processNext(unloadState);
|
|
2874
|
+
}
|
|
2875
|
+
if (_channelControl) {
|
|
2876
|
+
_channelControl.flush(isAsync, _doUnload, 6 , cbTimeout);
|
|
2877
|
+
}
|
|
2878
|
+
else {
|
|
2879
|
+
_doUnload(true);
|
|
2880
|
+
}
|
|
2881
|
+
};
|
|
2722
2882
|
_self.getPlugin = _getPlugin;
|
|
2883
|
+
_self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
|
|
2884
|
+
if (isAsync === void 0) { isAsync = true; }
|
|
2885
|
+
if (!plugin) {
|
|
2886
|
+
addCb && addCb(false);
|
|
2887
|
+
_logOrThrowError(strValidationError);
|
|
2888
|
+
return;
|
|
2889
|
+
}
|
|
2890
|
+
var existingPlugin = _getPlugin(plugin.identifier);
|
|
2891
|
+
if (existingPlugin && !replaceExisting) {
|
|
2892
|
+
addCb && addCb(false);
|
|
2893
|
+
_logOrThrowError("Plugin [" + plugin.identifier + "] is already loaded!");
|
|
2894
|
+
return;
|
|
2895
|
+
}
|
|
2896
|
+
var updateState = {
|
|
2897
|
+
reason: 16
|
|
2898
|
+
};
|
|
2899
|
+
function _addPlugin(removed) {
|
|
2900
|
+
_configExtensions.push(plugin);
|
|
2901
|
+
updateState.added = [plugin];
|
|
2902
|
+
_initPluginChain(_self.config, updateState);
|
|
2903
|
+
addCb && addCb(true);
|
|
2904
|
+
}
|
|
2905
|
+
if (existingPlugin) {
|
|
2906
|
+
var removedPlugins_1 = [existingPlugin.plugin];
|
|
2907
|
+
var unloadState = {
|
|
2908
|
+
reason: 2 ,
|
|
2909
|
+
isAsync: isAsync
|
|
2910
|
+
};
|
|
2911
|
+
_removePlugins(removedPlugins_1, unloadState, function (removed) {
|
|
2912
|
+
if (!removed) {
|
|
2913
|
+
addCb && addCb(false);
|
|
2914
|
+
}
|
|
2915
|
+
else {
|
|
2916
|
+
updateState.removed = removedPlugins_1;
|
|
2917
|
+
updateState.reason |= 32 ;
|
|
2918
|
+
_addPlugin();
|
|
2919
|
+
}
|
|
2920
|
+
});
|
|
2921
|
+
}
|
|
2922
|
+
else {
|
|
2923
|
+
_addPlugin();
|
|
2924
|
+
}
|
|
2925
|
+
};
|
|
2723
2926
|
_self.evtNamespace = function () {
|
|
2724
2927
|
return _evtNamespace;
|
|
2725
2928
|
};
|
|
2929
|
+
proxyFunctionAs(_self, "addUnloadCb", function () { return _unloadHandlers; }, "add");
|
|
2726
2930
|
function _initDefaults() {
|
|
2727
2931
|
_isInitialized = false;
|
|
2728
2932
|
_self.logger = new DiagnosticLogger({ loggingLevelConsole: 1 });
|
|
@@ -2740,13 +2944,15 @@
|
|
|
2740
2944
|
_channelControl = null;
|
|
2741
2945
|
_channelConfig = null;
|
|
2742
2946
|
_channelQueue = null;
|
|
2947
|
+
_isUnloading = false;
|
|
2743
2948
|
_internalLogsEventName = null;
|
|
2744
2949
|
_evtNamespace = createUniqueNamespace("AIBaseCore", true);
|
|
2950
|
+
_unloadHandlers = createUnloadHandlerContainer();
|
|
2745
2951
|
}
|
|
2746
2952
|
function _createTelCtx() {
|
|
2747
2953
|
return createProcessTelemetryContext(_getPluginChain(), _self.config, _self);
|
|
2748
2954
|
}
|
|
2749
|
-
function _initPluginChain(config) {
|
|
2955
|
+
function _initPluginChain(config, updateState) {
|
|
2750
2956
|
var theExtensions = _validateExtensions(_self.logger, ChannelControllerPriority, _configExtensions);
|
|
2751
2957
|
_coreExtensions = theExtensions.core;
|
|
2752
2958
|
_pluginChain = null;
|
|
@@ -2772,6 +2978,9 @@
|
|
|
2772
2978
|
_channelControl.initialize(config, _self, allExtensions);
|
|
2773
2979
|
initializePlugins(_createTelCtx(), allExtensions);
|
|
2774
2980
|
_self._extensions = objFreeze(sortPlugins(_coreExtensions || [])).slice();
|
|
2981
|
+
if (updateState) {
|
|
2982
|
+
_doUpdate(updateState);
|
|
2983
|
+
}
|
|
2775
2984
|
}
|
|
2776
2985
|
function _getPlugin(pluginIdentifier) {
|
|
2777
2986
|
var theExt = null;
|
|
@@ -2794,6 +3003,23 @@
|
|
|
2794
3003
|
isEnabled: function () {
|
|
2795
3004
|
var pluginState = _getPluginState(thePlugin);
|
|
2796
3005
|
return !pluginState[strTeardown] && !pluginState[strDisabled];
|
|
3006
|
+
},
|
|
3007
|
+
remove: function (isAsync, removeCb) {
|
|
3008
|
+
if (isAsync === void 0) { isAsync = true; }
|
|
3009
|
+
var pluginsToRemove = [thePlugin];
|
|
3010
|
+
var unloadState = {
|
|
3011
|
+
reason: 1 ,
|
|
3012
|
+
isAsync: isAsync
|
|
3013
|
+
};
|
|
3014
|
+
_removePlugins(pluginsToRemove, unloadState, function (removed) {
|
|
3015
|
+
if (removed) {
|
|
3016
|
+
_initPluginChain(_self.config, {
|
|
3017
|
+
reason: 32 ,
|
|
3018
|
+
removed: pluginsToRemove
|
|
3019
|
+
});
|
|
3020
|
+
}
|
|
3021
|
+
removeCb && removeCb(removed);
|
|
3022
|
+
});
|
|
2797
3023
|
}
|
|
2798
3024
|
};
|
|
2799
3025
|
}
|
|
@@ -2809,6 +3035,46 @@
|
|
|
2809
3035
|
}
|
|
2810
3036
|
return _pluginChain;
|
|
2811
3037
|
}
|
|
3038
|
+
function _removePlugins(thePlugins, unloadState, removeComplete) {
|
|
3039
|
+
if (thePlugins && thePlugins.length > 0) {
|
|
3040
|
+
var unloadChain = createTelemetryProxyChain(thePlugins, _self.config, _self);
|
|
3041
|
+
var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self.config, _self);
|
|
3042
|
+
unloadCtx.onComplete(function () {
|
|
3043
|
+
var removed = false;
|
|
3044
|
+
var newConfigExtensions = [];
|
|
3045
|
+
arrForEach(_configExtensions, function (plugin, idx) {
|
|
3046
|
+
if (!_isPluginPresent(plugin, thePlugins)) {
|
|
3047
|
+
newConfigExtensions.push(plugin);
|
|
3048
|
+
}
|
|
3049
|
+
else {
|
|
3050
|
+
removed = true;
|
|
3051
|
+
}
|
|
3052
|
+
});
|
|
3053
|
+
_configExtensions = newConfigExtensions;
|
|
3054
|
+
var newChannelConfig = [];
|
|
3055
|
+
if (_channelConfig) {
|
|
3056
|
+
arrForEach(_channelConfig, function (queue, idx) {
|
|
3057
|
+
var newQueue = [];
|
|
3058
|
+
arrForEach(queue, function (channel) {
|
|
3059
|
+
if (!_isPluginPresent(channel, thePlugins)) {
|
|
3060
|
+
newQueue.push(channel);
|
|
3061
|
+
}
|
|
3062
|
+
else {
|
|
3063
|
+
removed = true;
|
|
3064
|
+
}
|
|
3065
|
+
});
|
|
3066
|
+
newChannelConfig.push(newQueue);
|
|
3067
|
+
});
|
|
3068
|
+
_channelConfig = newChannelConfig;
|
|
3069
|
+
}
|
|
3070
|
+
removeComplete && removeComplete(removed);
|
|
3071
|
+
});
|
|
3072
|
+
unloadCtx.processNext(unloadState);
|
|
3073
|
+
}
|
|
3074
|
+
else {
|
|
3075
|
+
removeComplete(false);
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
2812
3078
|
function _flushInternalLogs() {
|
|
2813
3079
|
var queue = _self.logger ? _self.logger.queue : [];
|
|
2814
3080
|
if (queue) {
|
|
@@ -2843,6 +3109,25 @@
|
|
|
2843
3109
|
setValue(_self.config, "createPerfMgr", _createPerfManager);
|
|
2844
3110
|
}
|
|
2845
3111
|
}
|
|
3112
|
+
function _initExtConfig(config) {
|
|
3113
|
+
var extConfig = getSetValue(config, strExtensionConfig);
|
|
3114
|
+
extConfig.NotificationManager = _notificationManager;
|
|
3115
|
+
}
|
|
3116
|
+
function _doUpdate(updateState) {
|
|
3117
|
+
var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self.config, _self);
|
|
3118
|
+
if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {
|
|
3119
|
+
updateCtx.processNext(updateState);
|
|
3120
|
+
}
|
|
3121
|
+
}
|
|
3122
|
+
function _logOrThrowError(message) {
|
|
3123
|
+
var logger = _self.logger;
|
|
3124
|
+
if (logger) {
|
|
3125
|
+
_throwInternal(logger, 2 , 73 , message);
|
|
3126
|
+
}
|
|
3127
|
+
else {
|
|
3128
|
+
throwError(message);
|
|
3129
|
+
}
|
|
3130
|
+
}
|
|
2846
3131
|
});
|
|
2847
3132
|
}
|
|
2848
3133
|
return BaseCore;
|
|
@@ -2952,6 +3237,8 @@
|
|
|
2952
3237
|
var strOnPrefix = "on";
|
|
2953
3238
|
var strAttachEvent = "attachEvent";
|
|
2954
3239
|
var strAddEventHelper = "addEventListener";
|
|
3240
|
+
var strDetachEvent = "detachEvent";
|
|
3241
|
+
var strRemoveEventListener = "removeEventListener";
|
|
2955
3242
|
var strEvents = "events";
|
|
2956
3243
|
var strVisibilityChangeEvt = "visibilitychange";
|
|
2957
3244
|
var strPageHide = "pagehide";
|
|
@@ -2968,12 +3255,12 @@
|
|
|
2968
3255
|
}
|
|
2969
3256
|
return name;
|
|
2970
3257
|
}
|
|
2971
|
-
function _getEvtNamespace(eventName,
|
|
2972
|
-
if (
|
|
3258
|
+
function _getEvtNamespace(eventName, evtNamespace) {
|
|
3259
|
+
if (evtNamespace) {
|
|
2973
3260
|
var theNamespace_1 = "";
|
|
2974
|
-
if (isArray(
|
|
3261
|
+
if (isArray(evtNamespace)) {
|
|
2975
3262
|
theNamespace_1 = "";
|
|
2976
|
-
arrForEach(
|
|
3263
|
+
arrForEach(evtNamespace, function (name) {
|
|
2977
3264
|
name = _normalizeNamespace(name);
|
|
2978
3265
|
if (name) {
|
|
2979
3266
|
if (name[0] !== ".") {
|
|
@@ -2984,7 +3271,7 @@
|
|
|
2984
3271
|
});
|
|
2985
3272
|
}
|
|
2986
3273
|
else {
|
|
2987
|
-
theNamespace_1 = _normalizeNamespace(
|
|
3274
|
+
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
2988
3275
|
}
|
|
2989
3276
|
if (theNamespace_1) {
|
|
2990
3277
|
if (theNamespace_1[0] !== ".") {
|
|
@@ -3008,6 +3295,16 @@
|
|
|
3008
3295
|
}
|
|
3009
3296
|
return registeredEvents;
|
|
3010
3297
|
}
|
|
3298
|
+
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
3299
|
+
if (obj && evtName && evtName.type) {
|
|
3300
|
+
if (obj[strRemoveEventListener]) {
|
|
3301
|
+
obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
|
|
3302
|
+
}
|
|
3303
|
+
else if (obj[strDetachEvent]) {
|
|
3304
|
+
obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
3305
|
+
}
|
|
3306
|
+
}
|
|
3307
|
+
}
|
|
3011
3308
|
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
3012
3309
|
var result = false;
|
|
3013
3310
|
if (obj && evtName && evtName.type && handlerRef) {
|
|
@@ -3022,6 +3319,34 @@
|
|
|
3022
3319
|
}
|
|
3023
3320
|
return result;
|
|
3024
3321
|
}
|
|
3322
|
+
function _doUnregister(target, events, evtName, unRegFn) {
|
|
3323
|
+
var idx = events.length;
|
|
3324
|
+
while (idx--) {
|
|
3325
|
+
var theEvent = events[idx];
|
|
3326
|
+
if (theEvent) {
|
|
3327
|
+
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
3328
|
+
if (!unRegFn || unRegFn(theEvent)) {
|
|
3329
|
+
_doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
|
|
3330
|
+
events.splice(idx, 1);
|
|
3331
|
+
}
|
|
3332
|
+
}
|
|
3333
|
+
}
|
|
3334
|
+
}
|
|
3335
|
+
}
|
|
3336
|
+
function _unregisterEvents(target, evtName, unRegFn) {
|
|
3337
|
+
if (evtName.type) {
|
|
3338
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
|
|
3339
|
+
}
|
|
3340
|
+
else {
|
|
3341
|
+
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
3342
|
+
objForEachKey(eventCache, function (evtType, events) {
|
|
3343
|
+
_doUnregister(target, events, evtName, unRegFn);
|
|
3344
|
+
});
|
|
3345
|
+
if (objKeys(eventCache).length === 0) {
|
|
3346
|
+
elmNodeData.kill(target, strEvents);
|
|
3347
|
+
}
|
|
3348
|
+
}
|
|
3349
|
+
}
|
|
3025
3350
|
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
3026
3351
|
var newNamespaces;
|
|
3027
3352
|
if (namespaces) {
|
|
@@ -3059,6 +3384,27 @@
|
|
|
3059
3384
|
}
|
|
3060
3385
|
return result;
|
|
3061
3386
|
}
|
|
3387
|
+
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
3388
|
+
if (useCapture === void 0) { useCapture = false; }
|
|
3389
|
+
if (target) {
|
|
3390
|
+
try {
|
|
3391
|
+
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
3392
|
+
var found_1 = false;
|
|
3393
|
+
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
3394
|
+
if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
|
|
3395
|
+
found_1 = true;
|
|
3396
|
+
return true;
|
|
3397
|
+
}
|
|
3398
|
+
return false;
|
|
3399
|
+
});
|
|
3400
|
+
if (!found_1) {
|
|
3401
|
+
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
3402
|
+
}
|
|
3403
|
+
}
|
|
3404
|
+
catch (e) {
|
|
3405
|
+
}
|
|
3406
|
+
}
|
|
3407
|
+
}
|
|
3062
3408
|
function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
|
|
3063
3409
|
if (useCapture === void 0) { useCapture = false; }
|
|
3064
3410
|
return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);
|
|
@@ -3499,7 +3845,7 @@
|
|
|
3499
3845
|
name = strTrim(name.toString());
|
|
3500
3846
|
if (name.length > 150 ) {
|
|
3501
3847
|
nameTrunc = name.substring(0, 150 );
|
|
3502
|
-
logger
|
|
3848
|
+
_throwInternal(logger, 2 , _InternalMessageId.NameTooLong, "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
|
|
3503
3849
|
}
|
|
3504
3850
|
}
|
|
3505
3851
|
return nameTrunc || name;
|
|
@@ -3512,7 +3858,7 @@
|
|
|
3512
3858
|
value = strTrim(value);
|
|
3513
3859
|
if (value.toString().length > maxLength) {
|
|
3514
3860
|
valueTrunc = value.toString().substring(0, maxLength);
|
|
3515
|
-
logger
|
|
3861
|
+
_throwInternal(logger, 2 , _InternalMessageId.StringValueTooLong, "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
|
|
3516
3862
|
}
|
|
3517
3863
|
}
|
|
3518
3864
|
return valueTrunc || value;
|
|
@@ -3525,7 +3871,7 @@
|
|
|
3525
3871
|
if (message) {
|
|
3526
3872
|
if (message.length > 32768 ) {
|
|
3527
3873
|
messageTrunc = message.substring(0, 32768 );
|
|
3528
|
-
logger
|
|
3874
|
+
_throwInternal(logger, 2 , _InternalMessageId.MessageTruncated, "message is too long, it has been truncated to " + 32768 + " characters.", { message: message }, true);
|
|
3529
3875
|
}
|
|
3530
3876
|
}
|
|
3531
3877
|
return messageTrunc || message;
|
|
@@ -3536,7 +3882,7 @@
|
|
|
3536
3882
|
var value = "" + exception;
|
|
3537
3883
|
if (value.length > 32768 ) {
|
|
3538
3884
|
exceptionTrunc = value.substring(0, 32768 );
|
|
3539
|
-
logger
|
|
3885
|
+
_throwInternal(logger, 2 , _InternalMessageId.ExceptionTruncated, "exception is too long, it has been truncated to " + 32768 + " characters.", { exception: exception }, true);
|
|
3540
3886
|
}
|
|
3541
3887
|
}
|
|
3542
3888
|
return exceptionTrunc || exception;
|
|
@@ -3550,7 +3896,7 @@
|
|
|
3550
3896
|
value = getJSON().stringify(value);
|
|
3551
3897
|
}
|
|
3552
3898
|
catch (e) {
|
|
3553
|
-
logger
|
|
3899
|
+
_throwInternal(logger, 2 , _InternalMessageId.CannotSerializeObjectNonSerializable, "custom property is not valid", { exception: e }, true);
|
|
3554
3900
|
}
|
|
3555
3901
|
}
|
|
3556
3902
|
value = dataSanitizeString(logger, value, 8192 );
|
|
@@ -3581,7 +3927,7 @@
|
|
|
3581
3927
|
input = strTrim(input);
|
|
3582
3928
|
if (input.length > maxLength) {
|
|
3583
3929
|
inputTrunc = input.substring(0, maxLength);
|
|
3584
|
-
logger
|
|
3930
|
+
_throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
|
|
3585
3931
|
}
|
|
3586
3932
|
}
|
|
3587
3933
|
return inputTrunc || input;
|
|
@@ -3719,8 +4065,12 @@
|
|
|
3719
4065
|
_canUseLocalStorage = false;
|
|
3720
4066
|
_canUseSessionStorage = false;
|
|
3721
4067
|
}
|
|
3722
|
-
function
|
|
3723
|
-
|
|
4068
|
+
function utlEnableStorage() {
|
|
4069
|
+
_canUseLocalStorage = utlCanUseLocalStorage(true);
|
|
4070
|
+
_canUseSessionStorage = utlCanUseSessionStorage(true);
|
|
4071
|
+
}
|
|
4072
|
+
function utlCanUseLocalStorage(reset) {
|
|
4073
|
+
if (reset || _canUseLocalStorage === undefined) {
|
|
3724
4074
|
_canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
|
|
3725
4075
|
}
|
|
3726
4076
|
return _canUseLocalStorage;
|
|
@@ -3733,7 +4083,7 @@
|
|
|
3733
4083
|
}
|
|
3734
4084
|
catch (e) {
|
|
3735
4085
|
_canUseLocalStorage = false;
|
|
3736
|
-
logger
|
|
4086
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3737
4087
|
}
|
|
3738
4088
|
}
|
|
3739
4089
|
return null;
|
|
@@ -3747,7 +4097,7 @@
|
|
|
3747
4097
|
}
|
|
3748
4098
|
catch (e) {
|
|
3749
4099
|
_canUseLocalStorage = false;
|
|
3750
|
-
logger
|
|
4100
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3751
4101
|
}
|
|
3752
4102
|
}
|
|
3753
4103
|
return false;
|
|
@@ -3761,13 +4111,13 @@
|
|
|
3761
4111
|
}
|
|
3762
4112
|
catch (e) {
|
|
3763
4113
|
_canUseLocalStorage = false;
|
|
3764
|
-
logger
|
|
4114
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3765
4115
|
}
|
|
3766
4116
|
}
|
|
3767
4117
|
return false;
|
|
3768
4118
|
}
|
|
3769
|
-
function utlCanUseSessionStorage() {
|
|
3770
|
-
if (_canUseSessionStorage === undefined) {
|
|
4119
|
+
function utlCanUseSessionStorage(reset) {
|
|
4120
|
+
if (reset || _canUseSessionStorage === undefined) {
|
|
3771
4121
|
_canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
|
|
3772
4122
|
}
|
|
3773
4123
|
return _canUseSessionStorage;
|
|
@@ -3789,7 +4139,7 @@
|
|
|
3789
4139
|
}
|
|
3790
4140
|
catch (e) {
|
|
3791
4141
|
_canUseSessionStorage = false;
|
|
3792
|
-
logger
|
|
4142
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3793
4143
|
}
|
|
3794
4144
|
}
|
|
3795
4145
|
return null;
|
|
@@ -3803,7 +4153,7 @@
|
|
|
3803
4153
|
}
|
|
3804
4154
|
catch (e) {
|
|
3805
4155
|
_canUseSessionStorage = false;
|
|
3806
|
-
logger
|
|
4156
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3807
4157
|
}
|
|
3808
4158
|
}
|
|
3809
4159
|
return false;
|
|
@@ -3817,7 +4167,7 @@
|
|
|
3817
4167
|
}
|
|
3818
4168
|
catch (e) {
|
|
3819
4169
|
_canUseSessionStorage = false;
|
|
3820
|
-
logger
|
|
4170
|
+
_throwInternal(logger, 2 , _InternalMessageId.BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3821
4171
|
}
|
|
3822
4172
|
}
|
|
3823
4173
|
return false;
|
|
@@ -5552,6 +5902,33 @@
|
|
|
5552
5902
|
return PageViewPerformanceManager;
|
|
5553
5903
|
}());
|
|
5554
5904
|
|
|
5905
|
+
var Timing = /** @class */ (function () {
|
|
5906
|
+
function Timing(logger, name) {
|
|
5907
|
+
var _self = this;
|
|
5908
|
+
var _events = {};
|
|
5909
|
+
_self.start = function (name) {
|
|
5910
|
+
if (typeof _events[name] !== "undefined") {
|
|
5911
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
5912
|
+
}
|
|
5913
|
+
_events[name] = +new Date;
|
|
5914
|
+
};
|
|
5915
|
+
_self.stop = function (name, url, properties, measurements) {
|
|
5916
|
+
var start = _events[name];
|
|
5917
|
+
if (isNaN(start)) {
|
|
5918
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
5919
|
+
}
|
|
5920
|
+
else {
|
|
5921
|
+
var end = +new Date;
|
|
5922
|
+
var duration = dateTimeUtilsDuration(start, end);
|
|
5923
|
+
_self.action(name, url, duration, properties, measurements);
|
|
5924
|
+
}
|
|
5925
|
+
delete _events[name];
|
|
5926
|
+
_events[name] = undefined;
|
|
5927
|
+
};
|
|
5928
|
+
}
|
|
5929
|
+
return Timing;
|
|
5930
|
+
}());
|
|
5931
|
+
|
|
5555
5932
|
var durationProperty = "duration";
|
|
5556
5933
|
var strEvent = "event";
|
|
5557
5934
|
function _dispatchEvent(target, evnt) {
|
|
@@ -5569,47 +5946,78 @@
|
|
|
5569
5946
|
}
|
|
5570
5947
|
return error || "";
|
|
5571
5948
|
}
|
|
5572
|
-
var
|
|
5573
|
-
|
|
5574
|
-
|
|
5949
|
+
var MinMilliSeconds = 60000;
|
|
5950
|
+
function _configMilliseconds(value, defValue) {
|
|
5951
|
+
value = value || defValue;
|
|
5952
|
+
if (value < MinMilliSeconds) {
|
|
5953
|
+
value = MinMilliSeconds;
|
|
5954
|
+
}
|
|
5955
|
+
return value;
|
|
5956
|
+
}
|
|
5957
|
+
function _getDefaultConfig(config) {
|
|
5958
|
+
if (!config) {
|
|
5959
|
+
config = {};
|
|
5960
|
+
}
|
|
5961
|
+
config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
|
|
5962
|
+
config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
|
|
5963
|
+
config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
|
|
5964
|
+
config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
|
|
5965
|
+
config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
|
|
5966
|
+
config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
|
|
5967
|
+
if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
|
|
5968
|
+
config.samplingPercentage = 100;
|
|
5969
|
+
}
|
|
5970
|
+
config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
|
|
5971
|
+
config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
|
|
5972
|
+
config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
|
|
5973
|
+
config.namePrefix = config.namePrefix || "";
|
|
5974
|
+
config.enableDebug = stringToBoolOrDefault(config.enableDebug);
|
|
5975
|
+
config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
|
|
5976
|
+
config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
|
|
5977
|
+
return config;
|
|
5978
|
+
}
|
|
5979
|
+
function _updateStorageUsage(extConfig) {
|
|
5980
|
+
if (!isUndefined(extConfig.isStorageUseDisabled)) {
|
|
5981
|
+
if (extConfig.isStorageUseDisabled) {
|
|
5982
|
+
utlDisableStorage();
|
|
5983
|
+
}
|
|
5984
|
+
else {
|
|
5985
|
+
utlEnableStorage();
|
|
5986
|
+
}
|
|
5987
|
+
}
|
|
5988
|
+
}
|
|
5989
|
+
var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
5990
|
+
__extendsFn(AnalyticsPlugin, _super);
|
|
5991
|
+
function AnalyticsPlugin() {
|
|
5575
5992
|
var _this = _super.call(this) || this;
|
|
5576
5993
|
_this.identifier = AnalyticsPluginIdentifier;
|
|
5577
5994
|
_this.priority = 180;
|
|
5578
5995
|
_this.autoRoutePVDelay = 500;
|
|
5579
5996
|
var _eventTracking;
|
|
5580
5997
|
var _pageTracking;
|
|
5581
|
-
var
|
|
5998
|
+
var _pageViewManager;
|
|
5999
|
+
var _pageViewPerformanceManager;
|
|
6000
|
+
var _pageVisitTimeManager;
|
|
6001
|
+
var _preInitTelemetryInitializers;
|
|
6002
|
+
var _isBrowserLinkTrackingEnabled;
|
|
6003
|
+
var _browserLinkInitializerAdded;
|
|
6004
|
+
var _enableAutoRouteTracking;
|
|
6005
|
+
var _historyListenerAdded;
|
|
6006
|
+
var _disableExceptionTracking;
|
|
6007
|
+
var _autoExceptionInstrumented;
|
|
6008
|
+
var _enableUnhandledPromiseRejectionTracking;
|
|
6009
|
+
var _autoUnhandledPromiseInstrumented;
|
|
5582
6010
|
var _prevUri;
|
|
5583
6011
|
var _currUri;
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
6012
|
+
var _evtNamespace;
|
|
6013
|
+
dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
|
|
6014
|
+
var _addHook = _base._addHook;
|
|
6015
|
+
_initDefaults();
|
|
5587
6016
|
_self.getCookieMgr = function () {
|
|
5588
6017
|
return safeGetCookieMgr(_self.core);
|
|
5589
6018
|
};
|
|
5590
6019
|
_self.processTelemetry = function (env, itemCtx) {
|
|
5591
|
-
|
|
5592
|
-
var doNotSendItem = false;
|
|
5593
|
-
var telemetryInitializersCount = _self._telemetryInitializers.length;
|
|
5594
|
-
itemCtx = _self._getTelCtx(itemCtx);
|
|
5595
|
-
for (var i = 0; i < telemetryInitializersCount; ++i) {
|
|
5596
|
-
var telemetryInitializer = _self._telemetryInitializers[i];
|
|
5597
|
-
if (telemetryInitializer) {
|
|
5598
|
-
try {
|
|
5599
|
-
if (telemetryInitializer.apply(null, [env]) === false) {
|
|
5600
|
-
doNotSendItem = true;
|
|
5601
|
-
break;
|
|
5602
|
-
}
|
|
5603
|
-
}
|
|
5604
|
-
catch (e) {
|
|
5605
|
-
itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
5606
|
-
}
|
|
5607
|
-
}
|
|
5608
|
-
}
|
|
5609
|
-
if (!doNotSendItem) {
|
|
5610
|
-
_self.processNext(env, itemCtx);
|
|
5611
|
-
}
|
|
5612
|
-
}, function () { return ({ item: env }); }, !(env.sync));
|
|
6020
|
+
_self.processNext(env, itemCtx);
|
|
5613
6021
|
};
|
|
5614
6022
|
_self.trackEvent = function (event, customProperties) {
|
|
5615
6023
|
try {
|
|
@@ -5617,7 +6025,7 @@
|
|
|
5617
6025
|
_self.core.track(telemetryItem);
|
|
5618
6026
|
}
|
|
5619
6027
|
catch (e) {
|
|
5620
|
-
|
|
6028
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5621
6029
|
}
|
|
5622
6030
|
};
|
|
5623
6031
|
_self.startTrackEvent = function (name) {
|
|
@@ -5625,7 +6033,7 @@
|
|
|
5625
6033
|
_eventTracking.start(name);
|
|
5626
6034
|
}
|
|
5627
6035
|
catch (e) {
|
|
5628
|
-
|
|
6036
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5629
6037
|
}
|
|
5630
6038
|
};
|
|
5631
6039
|
_self.stopTrackEvent = function (name, properties, measurements) {
|
|
@@ -5633,7 +6041,7 @@
|
|
|
5633
6041
|
_eventTracking.stop(name, undefined, properties);
|
|
5634
6042
|
}
|
|
5635
6043
|
catch (e) {
|
|
5636
|
-
|
|
6044
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5637
6045
|
}
|
|
5638
6046
|
};
|
|
5639
6047
|
_self.trackTrace = function (trace, customProperties) {
|
|
@@ -5642,7 +6050,7 @@
|
|
|
5642
6050
|
_self.core.track(telemetryItem);
|
|
5643
6051
|
}
|
|
5644
6052
|
catch (e) {
|
|
5645
|
-
|
|
6053
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5646
6054
|
}
|
|
5647
6055
|
};
|
|
5648
6056
|
_self.trackMetric = function (metric, customProperties) {
|
|
@@ -5651,19 +6059,19 @@
|
|
|
5651
6059
|
_self.core.track(telemetryItem);
|
|
5652
6060
|
}
|
|
5653
6061
|
catch (e) {
|
|
5654
|
-
|
|
6062
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5655
6063
|
}
|
|
5656
6064
|
};
|
|
5657
6065
|
_self.trackPageView = function (pageView, customProperties) {
|
|
5658
6066
|
try {
|
|
5659
6067
|
var inPv = pageView || {};
|
|
5660
|
-
|
|
6068
|
+
_pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
5661
6069
|
if (_self.config.autoTrackPageVisitTime) {
|
|
5662
|
-
|
|
6070
|
+
_pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
|
|
5663
6071
|
}
|
|
5664
6072
|
}
|
|
5665
6073
|
catch (e) {
|
|
5666
|
-
|
|
6074
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5667
6075
|
}
|
|
5668
6076
|
};
|
|
5669
6077
|
_self.sendPageViewInternal = function (pageView, properties, systemProperties) {
|
|
@@ -5679,12 +6087,13 @@
|
|
|
5679
6087
|
_self.core.track(telemetryItem);
|
|
5680
6088
|
};
|
|
5681
6089
|
_self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
|
|
6090
|
+
var inPvp = pageViewPerformance || {};
|
|
5682
6091
|
try {
|
|
5683
|
-
|
|
5684
|
-
_self.sendPageViewPerformanceInternal(
|
|
6092
|
+
_pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
|
|
6093
|
+
_self.sendPageViewPerformanceInternal(inPvp, customProperties);
|
|
5685
6094
|
}
|
|
5686
6095
|
catch (e) {
|
|
5687
|
-
|
|
6096
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5688
6097
|
}
|
|
5689
6098
|
};
|
|
5690
6099
|
_self.startTrackPage = function (name) {
|
|
@@ -5696,7 +6105,7 @@
|
|
|
5696
6105
|
_pageTracking.start(name);
|
|
5697
6106
|
}
|
|
5698
6107
|
catch (e) {
|
|
5699
|
-
|
|
6108
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5700
6109
|
}
|
|
5701
6110
|
};
|
|
5702
6111
|
_self.stopTrackPage = function (name, url, properties, measurement) {
|
|
@@ -5711,11 +6120,11 @@
|
|
|
5711
6120
|
}
|
|
5712
6121
|
_pageTracking.stop(name, url, properties, measurement);
|
|
5713
6122
|
if (_self.config.autoTrackPageVisitTime) {
|
|
5714
|
-
|
|
6123
|
+
_pageVisitTimeManager.trackPreviousPageVisit(name, url);
|
|
5715
6124
|
}
|
|
5716
6125
|
}
|
|
5717
6126
|
catch (e) {
|
|
5718
|
-
|
|
6127
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5719
6128
|
}
|
|
5720
6129
|
};
|
|
5721
6130
|
_self.sendExceptionInternal = function (exception, customProperties, systemProperties) {
|
|
@@ -5725,11 +6134,14 @@
|
|
|
5725
6134
|
_self.core.track(telemetryItem);
|
|
5726
6135
|
};
|
|
5727
6136
|
_self.trackException = function (exception, customProperties) {
|
|
6137
|
+
if (exception && !exception.exception && exception.error) {
|
|
6138
|
+
exception.exception = exception.error;
|
|
6139
|
+
}
|
|
5728
6140
|
try {
|
|
5729
6141
|
_self.sendExceptionInternal(exception, customProperties);
|
|
5730
6142
|
}
|
|
5731
6143
|
catch (e) {
|
|
5732
|
-
|
|
6144
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5733
6145
|
}
|
|
5734
6146
|
};
|
|
5735
6147
|
_self._onerror = function (exception) {
|
|
@@ -5763,158 +6175,97 @@
|
|
|
5763
6175
|
}
|
|
5764
6176
|
catch (e) {
|
|
5765
6177
|
var errorString = error ? (error.name + ", " + error.message) : "null";
|
|
5766
|
-
|
|
6178
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
|
|
5767
6179
|
+ getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
|
|
5768
6180
|
}
|
|
5769
6181
|
};
|
|
5770
6182
|
_self.addTelemetryInitializer = function (telemetryInitializer) {
|
|
5771
|
-
_self.
|
|
6183
|
+
if (_self.core) {
|
|
6184
|
+
return _self.core.addTelemetryInitializer(telemetryInitializer);
|
|
6185
|
+
}
|
|
6186
|
+
if (!_preInitTelemetryInitializers) {
|
|
6187
|
+
_preInitTelemetryInitializers = [];
|
|
6188
|
+
}
|
|
6189
|
+
_preInitTelemetryInitializers.push(telemetryInitializer);
|
|
5772
6190
|
};
|
|
5773
6191
|
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
5774
6192
|
if (_self.isInitialized()) {
|
|
5775
6193
|
return;
|
|
5776
6194
|
}
|
|
5777
6195
|
if (isNullOrUndefined(core)) {
|
|
5778
|
-
|
|
6196
|
+
throwError("Error initializing");
|
|
5779
6197
|
}
|
|
5780
6198
|
_base.initialize(config, core, extensions, pluginChain);
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
|
|
5798
|
-
|
|
5799
|
-
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
_self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
|
|
5808
|
-
_self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);
|
|
5809
|
-
_self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
5810
|
-
_self._telemetryInitializers = _self._telemetryInitializers || [];
|
|
5811
|
-
_addDefaultTelemetryInitializers(configGetters);
|
|
5812
|
-
_eventTracking = new Timing(_self.diagLog(), "trackEvent");
|
|
5813
|
-
_eventTracking.action =
|
|
5814
|
-
function (name, url, duration, properties) {
|
|
5815
|
-
if (!properties) {
|
|
6199
|
+
try {
|
|
6200
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("AnalyticsPlugin"), core.evtNamespace && core.evtNamespace());
|
|
6201
|
+
if (_preInitTelemetryInitializers) {
|
|
6202
|
+
arrForEach(_preInitTelemetryInitializers, function (initializer) {
|
|
6203
|
+
core.addTelemetryInitializer(initializer);
|
|
6204
|
+
});
|
|
6205
|
+
_preInitTelemetryInitializers = null;
|
|
6206
|
+
}
|
|
6207
|
+
var extConfig = _populateDefaults(config);
|
|
6208
|
+
_updateStorageUsage(extConfig);
|
|
6209
|
+
_pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
|
|
6210
|
+
_pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);
|
|
6211
|
+
_pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
6212
|
+
_updateBrowserLinkTracking(extConfig, config);
|
|
6213
|
+
_eventTracking = new Timing(_self.diagLog(), "trackEvent");
|
|
6214
|
+
_eventTracking.action =
|
|
6215
|
+
function (name, url, duration, properties) {
|
|
6216
|
+
if (!properties) {
|
|
6217
|
+
properties = {};
|
|
6218
|
+
}
|
|
6219
|
+
properties[durationProperty] = duration.toString();
|
|
6220
|
+
_self.trackEvent({ name: name, properties: properties });
|
|
6221
|
+
};
|
|
6222
|
+
_pageTracking = new Timing(_self.diagLog(), "trackPageView");
|
|
6223
|
+
_pageTracking.action = function (name, url, duration, properties, measurements) {
|
|
6224
|
+
if (isNullOrUndefined(properties)) {
|
|
5816
6225
|
properties = {};
|
|
5817
6226
|
}
|
|
5818
6227
|
properties[durationProperty] = duration.toString();
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
properties[durationProperty] = duration.toString();
|
|
5827
|
-
var pageViewItem = {
|
|
5828
|
-
name: name,
|
|
5829
|
-
uri: url,
|
|
5830
|
-
properties: properties,
|
|
5831
|
-
measurements: measurements
|
|
5832
|
-
};
|
|
5833
|
-
_self.sendPageViewInternal(pageViewItem, properties);
|
|
5834
|
-
};
|
|
5835
|
-
var _window = getWindow();
|
|
5836
|
-
var _history = getHistory();
|
|
5837
|
-
var _location = getLocation(true);
|
|
5838
|
-
var instance = _this;
|
|
5839
|
-
if (_self.config.disableExceptionTracking === false &&
|
|
5840
|
-
!_self.config.autoExceptionInstrumented && _window) {
|
|
5841
|
-
var onerror_1 = "onerror";
|
|
5842
|
-
var originalOnError_1 = _window[onerror_1];
|
|
5843
|
-
_window.onerror = function (message, url, lineNumber, columnNumber, error) {
|
|
5844
|
-
var evt = _window[strEvent];
|
|
5845
|
-
var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);
|
|
5846
|
-
if (handled !== true) {
|
|
5847
|
-
instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));
|
|
5848
|
-
}
|
|
5849
|
-
return handled;
|
|
5850
|
-
};
|
|
5851
|
-
_self.config.autoExceptionInstrumented = true;
|
|
5852
|
-
}
|
|
5853
|
-
if (_self.config.disableExceptionTracking === false &&
|
|
5854
|
-
_self.config.enableUnhandledPromiseRejectionTracking === true &&
|
|
5855
|
-
!_self.config.autoUnhandledPromiseInstrumented && _window) {
|
|
5856
|
-
var onunhandledrejection_1 = "onunhandledrejection";
|
|
5857
|
-
var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];
|
|
5858
|
-
_window[onunhandledrejection_1] = function (error) {
|
|
5859
|
-
var evt = _window[strEvent];
|
|
5860
|
-
var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);
|
|
5861
|
-
if (handled !== true) {
|
|
5862
|
-
instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, evt));
|
|
5863
|
-
}
|
|
5864
|
-
return handled;
|
|
6228
|
+
var pageViewItem = {
|
|
6229
|
+
name: name,
|
|
6230
|
+
uri: url,
|
|
6231
|
+
properties: properties,
|
|
6232
|
+
measurements: measurements
|
|
6233
|
+
};
|
|
6234
|
+
_self.sendPageViewInternal(pageViewItem, properties);
|
|
5865
6235
|
};
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
&& _history && isFunction(_history.pushState) && isFunction(_history.replaceState)
|
|
5870
|
-
&& _window
|
|
5871
|
-
&& typeof Event !== "undefined") {
|
|
5872
|
-
var _self_1 = _this;
|
|
5873
|
-
arrForEach(extensions, function (extension) {
|
|
5874
|
-
if (extension.identifier === PropertiesPluginIdentifier) {
|
|
5875
|
-
_properties = extension;
|
|
5876
|
-
}
|
|
5877
|
-
});
|
|
5878
|
-
_history.pushState = (function (f) { return function pushState() {
|
|
5879
|
-
var ret = f.apply(this, arguments);
|
|
5880
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "pushState"));
|
|
5881
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5882
|
-
return ret;
|
|
5883
|
-
}; })(_history.pushState);
|
|
5884
|
-
_history.replaceState = (function (f) { return function replaceState() {
|
|
5885
|
-
var ret = f.apply(this, arguments);
|
|
5886
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "replaceState"));
|
|
5887
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5888
|
-
return ret;
|
|
5889
|
-
}; })(_history.replaceState);
|
|
5890
|
-
if (_window.addEventListener) {
|
|
5891
|
-
_window.addEventListener(_self_1.config.namePrefix + "popstate", function () {
|
|
5892
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5893
|
-
});
|
|
5894
|
-
_window.addEventListener(_self_1.config.namePrefix + "locationchange", function () {
|
|
5895
|
-
if (_properties && _properties.context && _properties.context.telemetryTrace) {
|
|
5896
|
-
_properties.context.telemetryTrace.traceID = generateW3CId();
|
|
5897
|
-
var traceLocationName = "_unknown_";
|
|
5898
|
-
if (_location && _location.pathname) {
|
|
5899
|
-
traceLocationName = _location.pathname + (_location.hash || "");
|
|
5900
|
-
}
|
|
5901
|
-
_properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);
|
|
5902
|
-
}
|
|
5903
|
-
if (_currUri) {
|
|
5904
|
-
_prevUri = _currUri;
|
|
5905
|
-
_currUri = _location && _location.href || "";
|
|
5906
|
-
}
|
|
5907
|
-
else {
|
|
5908
|
-
_currUri = _location && _location.href || "";
|
|
5909
|
-
}
|
|
5910
|
-
setTimeout((function (uri) {
|
|
5911
|
-
_self_1.trackPageView({ refUri: uri, properties: { duration: 0 } });
|
|
5912
|
-
}).bind(_this, _prevUri), _self_1.autoRoutePVDelay);
|
|
5913
|
-
});
|
|
6236
|
+
if (hasWindow()) {
|
|
6237
|
+
_updateExceptionTracking(extConfig);
|
|
6238
|
+
_updateLocationChange(extConfig);
|
|
5914
6239
|
}
|
|
5915
6240
|
}
|
|
5916
|
-
|
|
6241
|
+
catch (e) {
|
|
6242
|
+
_self.setInitialized(false);
|
|
6243
|
+
throw e;
|
|
6244
|
+
}
|
|
5917
6245
|
};
|
|
6246
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
6247
|
+
eventOff(window, null, null, _evtNamespace);
|
|
6248
|
+
_initDefaults();
|
|
6249
|
+
};
|
|
6250
|
+
function _populateDefaults(config) {
|
|
6251
|
+
var ctx = createProcessTelemetryContext(null, config, _self.core);
|
|
6252
|
+
var identifier = _self.identifier;
|
|
6253
|
+
var defaults = _getDefaultConfig(config);
|
|
6254
|
+
var extConfig = _self.config = ctx.getExtCfg(identifier);
|
|
6255
|
+
if (defaults !== undefined) {
|
|
6256
|
+
objForEachKey(defaults, function (field, value) {
|
|
6257
|
+
extConfig[field] = ctx.getConfig(identifier, field, value);
|
|
6258
|
+
if (extConfig[field] === undefined) {
|
|
6259
|
+
extConfig = value;
|
|
6260
|
+
}
|
|
6261
|
+
});
|
|
6262
|
+
}
|
|
6263
|
+
return extConfig;
|
|
6264
|
+
}
|
|
6265
|
+
function _updateBrowserLinkTracking(extConfig, config) {
|
|
6266
|
+
_isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;
|
|
6267
|
+
_addDefaultTelemetryInitializers();
|
|
6268
|
+
}
|
|
5918
6269
|
function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
|
|
5919
6270
|
var properties = { PageName: pageName, PageUrl: pageUrl };
|
|
5920
6271
|
_self.trackMetric({
|
|
@@ -5925,11 +6276,11 @@
|
|
|
5925
6276
|
sampleCount: 1
|
|
5926
6277
|
}, properties);
|
|
5927
6278
|
}
|
|
5928
|
-
function _addDefaultTelemetryInitializers(
|
|
5929
|
-
if (!
|
|
6279
|
+
function _addDefaultTelemetryInitializers() {
|
|
6280
|
+
if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {
|
|
5930
6281
|
var browserLinkPaths_1 = ["/browserLinkSignalR/", "/__browserLink/"];
|
|
5931
6282
|
var dropBrowserLinkRequests = function (envelope) {
|
|
5932
|
-
if (envelope.baseType === RemoteDependencyData.dataType) {
|
|
6283
|
+
if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {
|
|
5933
6284
|
var remoteData = envelope.baseData;
|
|
5934
6285
|
if (remoteData) {
|
|
5935
6286
|
for (var i = 0; i < browserLinkPaths_1.length; i++) {
|
|
@@ -5941,70 +6292,147 @@
|
|
|
5941
6292
|
}
|
|
5942
6293
|
return true;
|
|
5943
6294
|
};
|
|
5944
|
-
|
|
6295
|
+
_self.addTelemetryInitializer(dropBrowserLinkRequests);
|
|
6296
|
+
_browserLinkInitializerAdded = true;
|
|
5945
6297
|
}
|
|
5946
6298
|
}
|
|
5947
|
-
function _addTelemetryInitializer(telemetryInitializer) {
|
|
5948
|
-
_self._telemetryInitializers.push(telemetryInitializer);
|
|
5949
|
-
}
|
|
5950
6299
|
function _sendCORSException(exception, properties) {
|
|
5951
6300
|
var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);
|
|
5952
6301
|
_self.core.track(telemetryItem);
|
|
5953
6302
|
}
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
|
|
5971
|
-
config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
|
|
5972
|
-
config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
|
|
5973
|
-
config.namePrefix = config.namePrefix || "";
|
|
5974
|
-
config.enableDebug = stringToBoolOrDefault(config.enableDebug);
|
|
5975
|
-
config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
|
|
5976
|
-
config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
|
|
5977
|
-
return config;
|
|
5978
|
-
};
|
|
5979
|
-
ApplicationInsights.Version = "2.8.0-beta.2203-02";
|
|
5980
|
-
return ApplicationInsights;
|
|
5981
|
-
}(BaseTelemetryPlugin));
|
|
5982
|
-
var Timing = /** @class */ (function () {
|
|
5983
|
-
function Timing(logger, name) {
|
|
5984
|
-
var _self = this;
|
|
5985
|
-
var _events = {};
|
|
5986
|
-
_self.start = function (name) {
|
|
5987
|
-
if (typeof _events[name] !== "undefined") {
|
|
5988
|
-
logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
6303
|
+
function _updateExceptionTracking(extConfig) {
|
|
6304
|
+
var _window = getWindow();
|
|
6305
|
+
var locn = getLocation(true);
|
|
6306
|
+
_disableExceptionTracking = extConfig.disableExceptionTracking;
|
|
6307
|
+
if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
|
|
6308
|
+
_addHook(InstrumentFunc(_window, "onerror", {
|
|
6309
|
+
ns: _evtNamespace,
|
|
6310
|
+
rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
|
|
6311
|
+
if (!_disableExceptionTracking && callDetails.rslt !== true) {
|
|
6312
|
+
_self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));
|
|
6313
|
+
}
|
|
6314
|
+
}
|
|
6315
|
+
}));
|
|
6316
|
+
_autoExceptionInstrumented = true;
|
|
6317
|
+
}
|
|
6318
|
+
_addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
|
|
5989
6319
|
}
|
|
5990
|
-
|
|
5991
|
-
|
|
5992
|
-
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
6320
|
+
function _updateLocationChange(extConfig) {
|
|
6321
|
+
var win = getWindow();
|
|
6322
|
+
var locn = getLocation(true);
|
|
6323
|
+
_enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;
|
|
6324
|
+
if (win && _enableAutoRouteTracking && hasHistory()) {
|
|
6325
|
+
var _history = getHistory();
|
|
6326
|
+
if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
|
|
6327
|
+
_addHistoryListener(extConfig, win, _history, locn);
|
|
6328
|
+
}
|
|
6329
|
+
}
|
|
5996
6330
|
}
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6331
|
+
function _addHistoryListener(extConfig, win, history, locn) {
|
|
6332
|
+
function _popstateHandler() {
|
|
6333
|
+
if (_enableAutoRouteTracking) {
|
|
6334
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6335
|
+
}
|
|
6336
|
+
}
|
|
6337
|
+
function _locationChangeHandler() {
|
|
6338
|
+
if (_currUri) {
|
|
6339
|
+
_prevUri = _currUri;
|
|
6340
|
+
_currUri = locn && locn.href || "";
|
|
6341
|
+
}
|
|
6342
|
+
else {
|
|
6343
|
+
_currUri = locn && locn.href || "";
|
|
6344
|
+
}
|
|
6345
|
+
if (_enableAutoRouteTracking) {
|
|
6346
|
+
var properties = _self.core.getPlugin(PropertiesPluginIdentifier);
|
|
6347
|
+
if (properties) {
|
|
6348
|
+
var context = properties.plugin.context;
|
|
6349
|
+
if (context && context.telemetryTrace) {
|
|
6350
|
+
context.telemetryTrace.traceID = generateW3CId();
|
|
6351
|
+
var traceLocationName = "_unknown_";
|
|
6352
|
+
if (locn && locn.pathname) {
|
|
6353
|
+
traceLocationName = locn.pathname + (locn.hash || "");
|
|
6354
|
+
}
|
|
6355
|
+
context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);
|
|
6356
|
+
}
|
|
6357
|
+
}
|
|
6358
|
+
setTimeout((function (uri) {
|
|
6359
|
+
_self.trackPageView({ refUri: uri, properties: { duration: 0 } });
|
|
6360
|
+
}).bind(this, _prevUri), _self.autoRoutePVDelay);
|
|
6361
|
+
}
|
|
6362
|
+
}
|
|
6363
|
+
if (!_historyListenerAdded) {
|
|
6364
|
+
_addHook(InstrumentFunc(history, "pushState", {
|
|
6365
|
+
ns: _evtNamespace,
|
|
6366
|
+
rsp: function () {
|
|
6367
|
+
if (_enableAutoRouteTracking) {
|
|
6368
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "pushState"));
|
|
6369
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6370
|
+
}
|
|
6371
|
+
}
|
|
6372
|
+
}));
|
|
6373
|
+
_addHook(InstrumentFunc(history, "replaceState", {
|
|
6374
|
+
ns: _evtNamespace,
|
|
6375
|
+
rsp: function () {
|
|
6376
|
+
if (_enableAutoRouteTracking) {
|
|
6377
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "replaceState"));
|
|
6378
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6379
|
+
}
|
|
6380
|
+
}
|
|
6381
|
+
}));
|
|
6382
|
+
eventOn(win, extConfig.namePrefix + "popstate", _popstateHandler, _evtNamespace);
|
|
6383
|
+
eventOn(win, extConfig.namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
|
|
6384
|
+
_historyListenerAdded = true;
|
|
6385
|
+
}
|
|
6386
|
+
}
|
|
6387
|
+
function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
|
|
6388
|
+
_enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;
|
|
6389
|
+
if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
|
|
6390
|
+
_addHook(InstrumentFunc(_window, "onunhandledrejection", {
|
|
6391
|
+
ns: _evtNamespace,
|
|
6392
|
+
rsp: function (callDetails, error) {
|
|
6393
|
+
if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
|
|
6394
|
+
_self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, callDetails.evt));
|
|
6395
|
+
}
|
|
6396
|
+
}
|
|
6397
|
+
}));
|
|
6398
|
+
_autoUnhandledPromiseInstrumented = true;
|
|
6399
|
+
extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
|
|
6400
|
+
}
|
|
6001
6401
|
}
|
|
6002
|
-
|
|
6003
|
-
|
|
6004
|
-
|
|
6402
|
+
function _throwInternal(severity, msgId, msg, properties, isUserAct) {
|
|
6403
|
+
_self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
6404
|
+
}
|
|
6405
|
+
function _initDefaults() {
|
|
6406
|
+
_eventTracking = null;
|
|
6407
|
+
_pageTracking = null;
|
|
6408
|
+
_pageViewManager = null;
|
|
6409
|
+
_pageViewPerformanceManager = null;
|
|
6410
|
+
_pageVisitTimeManager = null;
|
|
6411
|
+
_preInitTelemetryInitializers = null;
|
|
6412
|
+
_isBrowserLinkTrackingEnabled = false;
|
|
6413
|
+
_browserLinkInitializerAdded = false;
|
|
6414
|
+
_enableAutoRouteTracking = false;
|
|
6415
|
+
_historyListenerAdded = false;
|
|
6416
|
+
_disableExceptionTracking = false;
|
|
6417
|
+
_autoExceptionInstrumented = false;
|
|
6418
|
+
_enableUnhandledPromiseRejectionTracking = false;
|
|
6419
|
+
_autoUnhandledPromiseInstrumented = false;
|
|
6420
|
+
var location = getLocation(true);
|
|
6421
|
+
_prevUri = location && location.href || "";
|
|
6422
|
+
_currUri = null;
|
|
6423
|
+
_evtNamespace = null;
|
|
6424
|
+
}
|
|
6425
|
+
objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
|
|
6426
|
+
objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
|
|
6427
|
+
objDefineAccessors(_self, "_pageVisitTimeManager", function () { return _pageVisitTimeManager; });
|
|
6428
|
+
objDefineAccessors(_self, "_evtNamespace", function () { return "." + _evtNamespace; });
|
|
6429
|
+
});
|
|
6430
|
+
return _this;
|
|
6005
6431
|
}
|
|
6006
|
-
|
|
6007
|
-
|
|
6432
|
+
AnalyticsPlugin.Version = "2.8.0-beta.2203-05";
|
|
6433
|
+
AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
|
|
6434
|
+
return AnalyticsPlugin;
|
|
6435
|
+
}(BaseTelemetryPlugin));
|
|
6008
6436
|
|
|
6009
6437
|
var BaseSendBuffer = /** @class */ (function () {
|
|
6010
6438
|
function BaseSendBuffer(logger, config) {
|
|
@@ -6283,7 +6711,7 @@
|
|
|
6283
6711
|
}
|
|
6284
6712
|
}
|
|
6285
6713
|
var EnvelopeCreator = {
|
|
6286
|
-
Version: "2.8.0-beta.2203-
|
|
6714
|
+
Version: "2.8.0-beta.2203-05"
|
|
6287
6715
|
};
|
|
6288
6716
|
function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
6289
6717
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
@@ -6578,65 +7006,81 @@
|
|
|
6578
7006
|
return Serializer;
|
|
6579
7007
|
}());
|
|
6580
7008
|
|
|
6581
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
|
|
6595
|
-
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
target.onoffline = _setOffline;
|
|
6600
|
-
isListening = true;
|
|
6601
|
-
}
|
|
6602
|
-
}
|
|
6603
|
-
if (isListening) {
|
|
6604
|
-
var _navigator = getNavigator();
|
|
6605
|
-
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
6606
|
-
_onlineStatus = _navigator.onLine;
|
|
6607
|
-
}
|
|
7009
|
+
function _disableEvents(target, evtNamespace) {
|
|
7010
|
+
eventOff(target, null, null, evtNamespace);
|
|
7011
|
+
}
|
|
7012
|
+
function createOfflineListener(parentEvtNamespace) {
|
|
7013
|
+
var _document = getDocument();
|
|
7014
|
+
var _navigator = getNavigator();
|
|
7015
|
+
var _isListening = false;
|
|
7016
|
+
var _onlineStatus = true;
|
|
7017
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
7018
|
+
try {
|
|
7019
|
+
if (_enableEvents(getWindow())) {
|
|
7020
|
+
_isListening = true;
|
|
7021
|
+
}
|
|
7022
|
+
if (_document) {
|
|
7023
|
+
var target = _document.body || _document;
|
|
7024
|
+
if (target.ononline) {
|
|
7025
|
+
if (_enableEvents(target)) {
|
|
7026
|
+
_isListening = true;
|
|
6608
7027
|
}
|
|
6609
7028
|
}
|
|
6610
|
-
|
|
6611
|
-
|
|
7029
|
+
}
|
|
7030
|
+
if (_isListening) {
|
|
7031
|
+
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
7032
|
+
_onlineStatus = _navigator.onLine;
|
|
6612
7033
|
}
|
|
6613
|
-
|
|
6614
|
-
|
|
6615
|
-
|
|
6616
|
-
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
};
|
|
6625
|
-
_self.isOffline = function () {
|
|
6626
|
-
return !_self.isOnline();
|
|
6627
|
-
};
|
|
6628
|
-
function _setOnline() {
|
|
6629
|
-
_onlineStatus = true;
|
|
7034
|
+
}
|
|
7035
|
+
}
|
|
7036
|
+
catch (e) {
|
|
7037
|
+
_isListening = false;
|
|
7038
|
+
}
|
|
7039
|
+
function _enableEvents(target) {
|
|
7040
|
+
var enabled = false;
|
|
7041
|
+
if (target) {
|
|
7042
|
+
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
7043
|
+
if (enabled) {
|
|
7044
|
+
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
6630
7045
|
}
|
|
6631
|
-
|
|
6632
|
-
|
|
7046
|
+
}
|
|
7047
|
+
return enabled;
|
|
7048
|
+
}
|
|
7049
|
+
function _setOnline() {
|
|
7050
|
+
_onlineStatus = true;
|
|
7051
|
+
}
|
|
7052
|
+
function _setOffline() {
|
|
7053
|
+
_onlineStatus = false;
|
|
7054
|
+
}
|
|
7055
|
+
function _isOnline() {
|
|
7056
|
+
var result = true;
|
|
7057
|
+
if (_isListening) {
|
|
7058
|
+
result = _onlineStatus;
|
|
7059
|
+
}
|
|
7060
|
+
else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
7061
|
+
result = _navigator.onLine;
|
|
7062
|
+
}
|
|
7063
|
+
return result;
|
|
7064
|
+
}
|
|
7065
|
+
function _unload() {
|
|
7066
|
+
var win = getWindow();
|
|
7067
|
+
if (win && _isListening) {
|
|
7068
|
+
_disableEvents(win, _evtNamespace);
|
|
7069
|
+
if (_document) {
|
|
7070
|
+
var target = _document.body || _document;
|
|
7071
|
+
if (!isUndefined(target.ononline)) {
|
|
7072
|
+
_disableEvents(target, _evtNamespace);
|
|
7073
|
+
}
|
|
6633
7074
|
}
|
|
6634
|
-
|
|
7075
|
+
_isListening = false;
|
|
7076
|
+
}
|
|
6635
7077
|
}
|
|
6636
|
-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
7078
|
+
return {
|
|
7079
|
+
isOnline: _isOnline,
|
|
7080
|
+
isListening: function () { return _isListening; },
|
|
7081
|
+
unload: _unload
|
|
7082
|
+
};
|
|
7083
|
+
}
|
|
6640
7084
|
|
|
6641
7085
|
var MIN_INPUT_LENGTH = 8;
|
|
6642
7086
|
var HashCodeScoreGenerator = /** @class */ (function () {
|
|
@@ -6764,22 +7208,22 @@
|
|
|
6764
7208
|
var _this = _super.call(this) || this;
|
|
6765
7209
|
_this.priority = 1001;
|
|
6766
7210
|
_this.identifier = BreezeChannelIdentifier;
|
|
7211
|
+
_this._senderConfig = _getDefaultAppInsightsChannelConfig();
|
|
6767
7212
|
var _consecutiveErrors;
|
|
6768
7213
|
var _retryAt;
|
|
6769
7214
|
var _lastSend;
|
|
6770
|
-
var _paused
|
|
7215
|
+
var _paused;
|
|
6771
7216
|
var _timeoutHandle;
|
|
6772
7217
|
var _serializer;
|
|
6773
7218
|
var _stamp_specific_redirects;
|
|
6774
|
-
var _headers
|
|
7219
|
+
var _headers;
|
|
6775
7220
|
var _syncFetchPayload = 0;
|
|
6776
7221
|
var _fallbackSender;
|
|
6777
7222
|
var _syncUnloadSender;
|
|
6778
|
-
|
|
7223
|
+
var _offlineListener;
|
|
7224
|
+
var _evtNamespace;
|
|
6779
7225
|
dynamicProto(Sender, _this, function (_self, _base) {
|
|
6780
|
-
|
|
6781
|
-
throwError("Method not implemented.");
|
|
6782
|
-
}
|
|
7226
|
+
_initDefaults();
|
|
6783
7227
|
_self.pause = function () {
|
|
6784
7228
|
_clearScheduledTimer();
|
|
6785
7229
|
_paused = true;
|
|
@@ -6802,7 +7246,7 @@
|
|
|
6802
7246
|
_self.triggerSend(isAsync, null, sendReason || 1 );
|
|
6803
7247
|
}
|
|
6804
7248
|
catch (e) {
|
|
6805
|
-
_self.diagLog()
|
|
7249
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
6806
7250
|
}
|
|
6807
7251
|
}
|
|
6808
7252
|
};
|
|
@@ -6813,7 +7257,7 @@
|
|
|
6813
7257
|
_self.triggerSend(true, _doUnloadSend, 2 );
|
|
6814
7258
|
}
|
|
6815
7259
|
catch (e) {
|
|
6816
|
-
_self.diagLog()
|
|
7260
|
+
_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) });
|
|
6817
7261
|
}
|
|
6818
7262
|
}
|
|
6819
7263
|
else {
|
|
@@ -6821,7 +7265,6 @@
|
|
|
6821
7265
|
}
|
|
6822
7266
|
}
|
|
6823
7267
|
};
|
|
6824
|
-
_self.teardown = _notImplemented;
|
|
6825
7268
|
_self.addHeader = function (name, value) {
|
|
6826
7269
|
_headers[name] = value;
|
|
6827
7270
|
};
|
|
@@ -6836,6 +7279,8 @@
|
|
|
6836
7279
|
_self._sender = null;
|
|
6837
7280
|
_stamp_specific_redirects = 0;
|
|
6838
7281
|
var diagLog = _self.diagLog();
|
|
7282
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
|
|
7283
|
+
_offlineListener = createOfflineListener(_evtNamespace);
|
|
6839
7284
|
var defaultConfig = _getDefaultAppInsightsChannelConfig();
|
|
6840
7285
|
objForEachKey(defaultConfig, function (field, value) {
|
|
6841
7286
|
_self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };
|
|
@@ -6844,7 +7289,7 @@
|
|
|
6844
7289
|
? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);
|
|
6845
7290
|
_self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);
|
|
6846
7291
|
if (!_validateInstrumentationKey(config)) {
|
|
6847
|
-
diagLog
|
|
7292
|
+
_throwInternal(diagLog, LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, "Invalid Instrumentation key " + config.instrumentationKey);
|
|
6848
7293
|
}
|
|
6849
7294
|
if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {
|
|
6850
7295
|
arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {
|
|
@@ -6890,22 +7335,22 @@
|
|
|
6890
7335
|
return;
|
|
6891
7336
|
}
|
|
6892
7337
|
if (!telemetryItem) {
|
|
6893
|
-
itemCtx.diagLog()
|
|
7338
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, "Cannot send empty telemetry");
|
|
6894
7339
|
return;
|
|
6895
7340
|
}
|
|
6896
7341
|
if (telemetryItem.baseData && !telemetryItem.baseType) {
|
|
6897
|
-
itemCtx.diagLog()
|
|
7342
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, "Cannot send telemetry without baseData and baseType");
|
|
6898
7343
|
return;
|
|
6899
7344
|
}
|
|
6900
7345
|
if (!telemetryItem.baseType) {
|
|
6901
7346
|
telemetryItem.baseType = "EventData";
|
|
6902
7347
|
}
|
|
6903
7348
|
if (!_self._sender) {
|
|
6904
|
-
itemCtx.diagLog()
|
|
7349
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, "Sender was not initialized");
|
|
6905
7350
|
return;
|
|
6906
7351
|
}
|
|
6907
7352
|
if (!_isSampledIn(telemetryItem)) {
|
|
6908
|
-
itemCtx.diagLog()
|
|
7353
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, "Telemetry item was sampled out and not sent", { SampleRate: _self._sample.sampleRate });
|
|
6909
7354
|
return;
|
|
6910
7355
|
}
|
|
6911
7356
|
else {
|
|
@@ -6915,7 +7360,7 @@
|
|
|
6915
7360
|
var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();
|
|
6916
7361
|
var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);
|
|
6917
7362
|
if (!aiEnvelope_1) {
|
|
6918
|
-
itemCtx.diagLog()
|
|
7363
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
|
|
6919
7364
|
return;
|
|
6920
7365
|
}
|
|
6921
7366
|
var doNotSendItem_1 = false;
|
|
@@ -6928,7 +7373,7 @@
|
|
|
6928
7373
|
}
|
|
6929
7374
|
}
|
|
6930
7375
|
catch (e) {
|
|
6931
|
-
itemCtx.diagLog()
|
|
7376
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
6932
7377
|
}
|
|
6933
7378
|
});
|
|
6934
7379
|
delete telemetryItem.tags[ProcessLegacy];
|
|
@@ -6946,7 +7391,7 @@
|
|
|
6946
7391
|
_setupTimer();
|
|
6947
7392
|
}
|
|
6948
7393
|
catch (e) {
|
|
6949
|
-
itemCtx.diagLog()
|
|
7394
|
+
_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) });
|
|
6950
7395
|
}
|
|
6951
7396
|
_self.processNext(telemetryItem, itemCtx);
|
|
6952
7397
|
};
|
|
@@ -6981,13 +7426,18 @@
|
|
|
6981
7426
|
catch (e) {
|
|
6982
7427
|
var ieVer = getIEVersion();
|
|
6983
7428
|
if (!ieVer || ieVer > 9) {
|
|
6984
|
-
_self.diagLog()
|
|
7429
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
6985
7430
|
}
|
|
6986
7431
|
}
|
|
6987
7432
|
}
|
|
6988
7433
|
};
|
|
7434
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
7435
|
+
_self.onunloadFlush();
|
|
7436
|
+
_offlineListener.unload();
|
|
7437
|
+
_initDefaults();
|
|
7438
|
+
};
|
|
6989
7439
|
_self._onError = function (payload, message, event) {
|
|
6990
|
-
_self.diagLog()
|
|
7440
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.OnError, "Failed to send telemetry.", { message: message });
|
|
6991
7441
|
_self._buffer.clearSent(payload);
|
|
6992
7442
|
};
|
|
6993
7443
|
_self._onPartialSuccess = function (payload, results) {
|
|
@@ -7012,7 +7462,7 @@
|
|
|
7012
7462
|
}
|
|
7013
7463
|
if (retry.length > 0) {
|
|
7014
7464
|
_resendPayload(retry);
|
|
7015
|
-
_self.diagLog()
|
|
7465
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, "Partial success. " +
|
|
7016
7466
|
"Delivered: " + payload.length + ", Failed: " + failed.length +
|
|
7017
7467
|
". Will retry to send " + retry.length + " our of " + results.itemsReceived + " items");
|
|
7018
7468
|
}
|
|
@@ -7057,18 +7507,18 @@
|
|
|
7057
7507
|
}
|
|
7058
7508
|
if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {
|
|
7059
7509
|
_resendPayload(payload);
|
|
7060
|
-
_self.diagLog()
|
|
7510
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
7061
7511
|
"Response code " + status + ". Will retry to send " + payload.length + " items.");
|
|
7062
7512
|
}
|
|
7063
7513
|
else {
|
|
7064
7514
|
_self._onError(payload, errorMessage);
|
|
7065
7515
|
}
|
|
7066
7516
|
}
|
|
7067
|
-
else if (
|
|
7517
|
+
else if (_offlineListener && !_offlineListener.isOnline()) {
|
|
7068
7518
|
if (!_self._senderConfig.isRetryDisabled()) {
|
|
7069
7519
|
var offlineBackOffMultiplier = 10;
|
|
7070
7520
|
_resendPayload(payload, offlineBackOffMultiplier);
|
|
7071
|
-
_self.diagLog()
|
|
7521
|
+
_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."));
|
|
7072
7522
|
}
|
|
7073
7523
|
}
|
|
7074
7524
|
else {
|
|
@@ -7135,8 +7585,8 @@
|
|
|
7135
7585
|
}
|
|
7136
7586
|
}
|
|
7137
7587
|
if (droppedPayload.length > 0) {
|
|
7138
|
-
_fallbackSender(droppedPayload, true);
|
|
7139
|
-
_self.diagLog()
|
|
7588
|
+
_fallbackSender && _fallbackSender(droppedPayload, true);
|
|
7589
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
7140
7590
|
}
|
|
7141
7591
|
}
|
|
7142
7592
|
}
|
|
@@ -7177,7 +7627,7 @@
|
|
|
7177
7627
|
}
|
|
7178
7628
|
else {
|
|
7179
7629
|
_fallbackSender && _fallbackSender(payload, true);
|
|
7180
|
-
_self.diagLog()
|
|
7630
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
|
|
7181
7631
|
}
|
|
7182
7632
|
}
|
|
7183
7633
|
}
|
|
@@ -7268,7 +7718,7 @@
|
|
|
7268
7718
|
}
|
|
7269
7719
|
}
|
|
7270
7720
|
catch (e) {
|
|
7271
|
-
_self.diagLog()
|
|
7721
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, "Cannot parse the response. " + getExceptionName(e), {
|
|
7272
7722
|
response: response
|
|
7273
7723
|
});
|
|
7274
7724
|
}
|
|
@@ -7339,7 +7789,7 @@
|
|
|
7339
7789
|
xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };
|
|
7340
7790
|
var hostingProtocol = _window && _window.location && _window.location.protocol || "";
|
|
7341
7791
|
if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
7342
|
-
_self.diagLog()
|
|
7792
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
7343
7793
|
"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
|
|
7344
7794
|
buffer.clear();
|
|
7345
7795
|
return;
|
|
@@ -7370,7 +7820,7 @@
|
|
|
7370
7820
|
manager.eventsSendRequest(sendRequest, isAsync);
|
|
7371
7821
|
}
|
|
7372
7822
|
catch (e) {
|
|
7373
|
-
_self.diagLog()
|
|
7823
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
7374
7824
|
}
|
|
7375
7825
|
}
|
|
7376
7826
|
}
|
|
@@ -7383,6 +7833,25 @@
|
|
|
7383
7833
|
var regexp = new RegExp(UUID_Regex);
|
|
7384
7834
|
return regexp.test(config.instrumentationKey);
|
|
7385
7835
|
}
|
|
7836
|
+
function _initDefaults() {
|
|
7837
|
+
_self._sender = null;
|
|
7838
|
+
_self._buffer = null;
|
|
7839
|
+
_self._appId = null;
|
|
7840
|
+
_self._sample = null;
|
|
7841
|
+
_headers = {};
|
|
7842
|
+
_offlineListener = null;
|
|
7843
|
+
_consecutiveErrors = 0;
|
|
7844
|
+
_retryAt = null;
|
|
7845
|
+
_lastSend = null;
|
|
7846
|
+
_paused = false;
|
|
7847
|
+
_timeoutHandle = null;
|
|
7848
|
+
_serializer = null;
|
|
7849
|
+
_stamp_specific_redirects = 0;
|
|
7850
|
+
_syncFetchPayload = 0;
|
|
7851
|
+
_fallbackSender = null;
|
|
7852
|
+
_syncUnloadSender = null;
|
|
7853
|
+
_evtNamespace = null;
|
|
7854
|
+
}
|
|
7386
7855
|
});
|
|
7387
7856
|
return _this;
|
|
7388
7857
|
}
|
|
@@ -7552,7 +8021,7 @@
|
|
|
7552
8021
|
return Device;
|
|
7553
8022
|
}());
|
|
7554
8023
|
|
|
7555
|
-
var Version = "2.8.0-beta.2203-
|
|
8024
|
+
var Version = "2.8.0-beta.2203-05";
|
|
7556
8025
|
var Internal = /** @class */ (function () {
|
|
7557
8026
|
function Internal(config) {
|
|
7558
8027
|
this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;
|
|
@@ -8975,7 +9444,7 @@
|
|
|
8975
9444
|
config.endpointUrl = ingest ? "".concat(ingest, "/v2/track") : config.endpointUrl;
|
|
8976
9445
|
config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;
|
|
8977
9446
|
}
|
|
8978
|
-
_self.appInsights = new
|
|
9447
|
+
_self.appInsights = new AnalyticsPlugin();
|
|
8979
9448
|
_self.properties = new PropertiesPlugin$1();
|
|
8980
9449
|
_self.dependencies = new AjaxMonitor();
|
|
8981
9450
|
_self.core = new AppInsightsCore();
|