@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
|
@@ -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;
|
|
@@ -5394,6 +5744,33 @@
|
|
|
5394
5744
|
return PageViewPerformanceManager;
|
|
5395
5745
|
}());
|
|
5396
5746
|
|
|
5747
|
+
var Timing = /** @class */ (function () {
|
|
5748
|
+
function Timing(logger, name) {
|
|
5749
|
+
var _self = this;
|
|
5750
|
+
var _events = {};
|
|
5751
|
+
_self.start = function (name) {
|
|
5752
|
+
if (typeof _events[name] !== "undefined") {
|
|
5753
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
5754
|
+
}
|
|
5755
|
+
_events[name] = +new Date;
|
|
5756
|
+
};
|
|
5757
|
+
_self.stop = function (name, url, properties, measurements) {
|
|
5758
|
+
var start = _events[name];
|
|
5759
|
+
if (isNaN(start)) {
|
|
5760
|
+
_throwInternal(logger, LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, "stop was called without a corresponding start.", { name: name, key: name }, true);
|
|
5761
|
+
}
|
|
5762
|
+
else {
|
|
5763
|
+
var end = +new Date;
|
|
5764
|
+
var duration = dateTimeUtilsDuration(start, end);
|
|
5765
|
+
_self.action(name, url, duration, properties, measurements);
|
|
5766
|
+
}
|
|
5767
|
+
delete _events[name];
|
|
5768
|
+
_events[name] = undefined;
|
|
5769
|
+
};
|
|
5770
|
+
}
|
|
5771
|
+
return Timing;
|
|
5772
|
+
}());
|
|
5773
|
+
|
|
5397
5774
|
var durationProperty = "duration";
|
|
5398
5775
|
var strEvent = "event";
|
|
5399
5776
|
function _dispatchEvent(target, evnt) {
|
|
@@ -5411,47 +5788,78 @@
|
|
|
5411
5788
|
}
|
|
5412
5789
|
return error || "";
|
|
5413
5790
|
}
|
|
5414
|
-
var
|
|
5415
|
-
|
|
5416
|
-
|
|
5791
|
+
var MinMilliSeconds = 60000;
|
|
5792
|
+
function _configMilliseconds(value, defValue) {
|
|
5793
|
+
value = value || defValue;
|
|
5794
|
+
if (value < MinMilliSeconds) {
|
|
5795
|
+
value = MinMilliSeconds;
|
|
5796
|
+
}
|
|
5797
|
+
return value;
|
|
5798
|
+
}
|
|
5799
|
+
function _getDefaultConfig(config) {
|
|
5800
|
+
if (!config) {
|
|
5801
|
+
config = {};
|
|
5802
|
+
}
|
|
5803
|
+
config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
|
|
5804
|
+
config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
|
|
5805
|
+
config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);
|
|
5806
|
+
config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);
|
|
5807
|
+
config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);
|
|
5808
|
+
config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);
|
|
5809
|
+
if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
|
|
5810
|
+
config.samplingPercentage = 100;
|
|
5811
|
+
}
|
|
5812
|
+
config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
|
|
5813
|
+
config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
|
|
5814
|
+
config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
|
|
5815
|
+
config.namePrefix = config.namePrefix || "";
|
|
5816
|
+
config.enableDebug = stringToBoolOrDefault(config.enableDebug);
|
|
5817
|
+
config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
|
|
5818
|
+
config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
|
|
5819
|
+
return config;
|
|
5820
|
+
}
|
|
5821
|
+
function _updateStorageUsage(extConfig) {
|
|
5822
|
+
if (!isUndefined(extConfig.isStorageUseDisabled)) {
|
|
5823
|
+
if (extConfig.isStorageUseDisabled) {
|
|
5824
|
+
utlDisableStorage();
|
|
5825
|
+
}
|
|
5826
|
+
else {
|
|
5827
|
+
utlEnableStorage();
|
|
5828
|
+
}
|
|
5829
|
+
}
|
|
5830
|
+
}
|
|
5831
|
+
var AnalyticsPlugin = /** @class */ (function (_super) {
|
|
5832
|
+
__extendsFn(AnalyticsPlugin, _super);
|
|
5833
|
+
function AnalyticsPlugin() {
|
|
5417
5834
|
var _this = _super.call(this) || this;
|
|
5418
5835
|
_this.identifier = AnalyticsPluginIdentifier;
|
|
5419
5836
|
_this.priority = 180;
|
|
5420
5837
|
_this.autoRoutePVDelay = 500;
|
|
5421
5838
|
var _eventTracking;
|
|
5422
5839
|
var _pageTracking;
|
|
5423
|
-
var
|
|
5840
|
+
var _pageViewManager;
|
|
5841
|
+
var _pageViewPerformanceManager;
|
|
5842
|
+
var _pageVisitTimeManager;
|
|
5843
|
+
var _preInitTelemetryInitializers;
|
|
5844
|
+
var _isBrowserLinkTrackingEnabled;
|
|
5845
|
+
var _browserLinkInitializerAdded;
|
|
5846
|
+
var _enableAutoRouteTracking;
|
|
5847
|
+
var _historyListenerAdded;
|
|
5848
|
+
var _disableExceptionTracking;
|
|
5849
|
+
var _autoExceptionInstrumented;
|
|
5850
|
+
var _enableUnhandledPromiseRejectionTracking;
|
|
5851
|
+
var _autoUnhandledPromiseInstrumented;
|
|
5424
5852
|
var _prevUri;
|
|
5425
5853
|
var _currUri;
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5854
|
+
var _evtNamespace;
|
|
5855
|
+
dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
|
|
5856
|
+
var _addHook = _base._addHook;
|
|
5857
|
+
_initDefaults();
|
|
5429
5858
|
_self.getCookieMgr = function () {
|
|
5430
5859
|
return safeGetCookieMgr(_self.core);
|
|
5431
5860
|
};
|
|
5432
5861
|
_self.processTelemetry = function (env, itemCtx) {
|
|
5433
|
-
|
|
5434
|
-
var doNotSendItem = false;
|
|
5435
|
-
var telemetryInitializersCount = _self._telemetryInitializers.length;
|
|
5436
|
-
itemCtx = _self._getTelCtx(itemCtx);
|
|
5437
|
-
for (var i = 0; i < telemetryInitializersCount; ++i) {
|
|
5438
|
-
var telemetryInitializer = _self._telemetryInitializers[i];
|
|
5439
|
-
if (telemetryInitializer) {
|
|
5440
|
-
try {
|
|
5441
|
-
if (telemetryInitializer.apply(null, [env]) === false) {
|
|
5442
|
-
doNotSendItem = true;
|
|
5443
|
-
break;
|
|
5444
|
-
}
|
|
5445
|
-
}
|
|
5446
|
-
catch (e) {
|
|
5447
|
-
itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
5448
|
-
}
|
|
5449
|
-
}
|
|
5450
|
-
}
|
|
5451
|
-
if (!doNotSendItem) {
|
|
5452
|
-
_self.processNext(env, itemCtx);
|
|
5453
|
-
}
|
|
5454
|
-
}, function () { return ({ item: env }); }, !(env.sync));
|
|
5862
|
+
_self.processNext(env, itemCtx);
|
|
5455
5863
|
};
|
|
5456
5864
|
_self.trackEvent = function (event, customProperties) {
|
|
5457
5865
|
try {
|
|
@@ -5459,7 +5867,7 @@
|
|
|
5459
5867
|
_self.core.track(telemetryItem);
|
|
5460
5868
|
}
|
|
5461
5869
|
catch (e) {
|
|
5462
|
-
|
|
5870
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5463
5871
|
}
|
|
5464
5872
|
};
|
|
5465
5873
|
_self.startTrackEvent = function (name) {
|
|
@@ -5467,7 +5875,7 @@
|
|
|
5467
5875
|
_eventTracking.start(name);
|
|
5468
5876
|
}
|
|
5469
5877
|
catch (e) {
|
|
5470
|
-
|
|
5878
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5471
5879
|
}
|
|
5472
5880
|
};
|
|
5473
5881
|
_self.stopTrackEvent = function (name, properties, measurements) {
|
|
@@ -5475,7 +5883,7 @@
|
|
|
5475
5883
|
_eventTracking.stop(name, undefined, properties);
|
|
5476
5884
|
}
|
|
5477
5885
|
catch (e) {
|
|
5478
|
-
|
|
5886
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5479
5887
|
}
|
|
5480
5888
|
};
|
|
5481
5889
|
_self.trackTrace = function (trace, customProperties) {
|
|
@@ -5484,7 +5892,7 @@
|
|
|
5484
5892
|
_self.core.track(telemetryItem);
|
|
5485
5893
|
}
|
|
5486
5894
|
catch (e) {
|
|
5487
|
-
|
|
5895
|
+
_throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, "trackTrace failed, trace will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5488
5896
|
}
|
|
5489
5897
|
};
|
|
5490
5898
|
_self.trackMetric = function (metric, customProperties) {
|
|
@@ -5493,19 +5901,19 @@
|
|
|
5493
5901
|
_self.core.track(telemetryItem);
|
|
5494
5902
|
}
|
|
5495
5903
|
catch (e) {
|
|
5496
|
-
|
|
5904
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, "trackMetric failed, metric will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5497
5905
|
}
|
|
5498
5906
|
};
|
|
5499
5907
|
_self.trackPageView = function (pageView, customProperties) {
|
|
5500
5908
|
try {
|
|
5501
5909
|
var inPv = pageView || {};
|
|
5502
|
-
|
|
5910
|
+
_pageViewManager.trackPageView(inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
|
|
5503
5911
|
if (_self.config.autoTrackPageVisitTime) {
|
|
5504
|
-
|
|
5912
|
+
_pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);
|
|
5505
5913
|
}
|
|
5506
5914
|
}
|
|
5507
5915
|
catch (e) {
|
|
5508
|
-
|
|
5916
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5509
5917
|
}
|
|
5510
5918
|
};
|
|
5511
5919
|
_self.sendPageViewInternal = function (pageView, properties, systemProperties) {
|
|
@@ -5521,12 +5929,13 @@
|
|
|
5521
5929
|
_self.core.track(telemetryItem);
|
|
5522
5930
|
};
|
|
5523
5931
|
_self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
|
|
5932
|
+
var inPvp = pageViewPerformance || {};
|
|
5524
5933
|
try {
|
|
5525
|
-
|
|
5526
|
-
_self.sendPageViewPerformanceInternal(
|
|
5934
|
+
_pageViewPerformanceManager.populatePageViewPerformanceEvent(inPvp);
|
|
5935
|
+
_self.sendPageViewPerformanceInternal(inPvp, customProperties);
|
|
5527
5936
|
}
|
|
5528
5937
|
catch (e) {
|
|
5529
|
-
|
|
5938
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5530
5939
|
}
|
|
5531
5940
|
};
|
|
5532
5941
|
_self.startTrackPage = function (name) {
|
|
@@ -5538,7 +5947,7 @@
|
|
|
5538
5947
|
_pageTracking.start(name);
|
|
5539
5948
|
}
|
|
5540
5949
|
catch (e) {
|
|
5541
|
-
|
|
5950
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, "startTrackPage failed, page view may not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5542
5951
|
}
|
|
5543
5952
|
};
|
|
5544
5953
|
_self.stopTrackPage = function (name, url, properties, measurement) {
|
|
@@ -5553,11 +5962,11 @@
|
|
|
5553
5962
|
}
|
|
5554
5963
|
_pageTracking.stop(name, url, properties, measurement);
|
|
5555
5964
|
if (_self.config.autoTrackPageVisitTime) {
|
|
5556
|
-
|
|
5965
|
+
_pageVisitTimeManager.trackPreviousPageVisit(name, url);
|
|
5557
5966
|
}
|
|
5558
5967
|
}
|
|
5559
5968
|
catch (e) {
|
|
5560
|
-
|
|
5969
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5561
5970
|
}
|
|
5562
5971
|
};
|
|
5563
5972
|
_self.sendExceptionInternal = function (exception, customProperties, systemProperties) {
|
|
@@ -5567,11 +5976,14 @@
|
|
|
5567
5976
|
_self.core.track(telemetryItem);
|
|
5568
5977
|
};
|
|
5569
5978
|
_self.trackException = function (exception, customProperties) {
|
|
5979
|
+
if (exception && !exception.exception && exception.error) {
|
|
5980
|
+
exception.exception = exception.error;
|
|
5981
|
+
}
|
|
5570
5982
|
try {
|
|
5571
5983
|
_self.sendExceptionInternal(exception, customProperties);
|
|
5572
5984
|
}
|
|
5573
5985
|
catch (e) {
|
|
5574
|
-
|
|
5986
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
5575
5987
|
}
|
|
5576
5988
|
};
|
|
5577
5989
|
_self._onerror = function (exception) {
|
|
@@ -5605,158 +6017,97 @@
|
|
|
5605
6017
|
}
|
|
5606
6018
|
catch (e) {
|
|
5607
6019
|
var errorString = error ? (error.name + ", " + error.message) : "null";
|
|
5608
|
-
|
|
6020
|
+
_throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, "_onError threw exception while logging error, error will not be collected: "
|
|
5609
6021
|
+ getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
|
|
5610
6022
|
}
|
|
5611
6023
|
};
|
|
5612
6024
|
_self.addTelemetryInitializer = function (telemetryInitializer) {
|
|
5613
|
-
_self.
|
|
6025
|
+
if (_self.core) {
|
|
6026
|
+
return _self.core.addTelemetryInitializer(telemetryInitializer);
|
|
6027
|
+
}
|
|
6028
|
+
if (!_preInitTelemetryInitializers) {
|
|
6029
|
+
_preInitTelemetryInitializers = [];
|
|
6030
|
+
}
|
|
6031
|
+
_preInitTelemetryInitializers.push(telemetryInitializer);
|
|
5614
6032
|
};
|
|
5615
6033
|
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
5616
6034
|
if (_self.isInitialized()) {
|
|
5617
6035
|
return;
|
|
5618
6036
|
}
|
|
5619
6037
|
if (isNullOrUndefined(core)) {
|
|
5620
|
-
|
|
6038
|
+
throwError("Error initializing");
|
|
5621
6039
|
}
|
|
5622
6040
|
_base.initialize(config, core, extensions, pluginChain);
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
_self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
|
|
5650
|
-
_self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);
|
|
5651
|
-
_self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
5652
|
-
_self._telemetryInitializers = _self._telemetryInitializers || [];
|
|
5653
|
-
_addDefaultTelemetryInitializers(configGetters);
|
|
5654
|
-
_eventTracking = new Timing(_self.diagLog(), "trackEvent");
|
|
5655
|
-
_eventTracking.action =
|
|
5656
|
-
function (name, url, duration, properties) {
|
|
5657
|
-
if (!properties) {
|
|
6041
|
+
try {
|
|
6042
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("AnalyticsPlugin"), core.evtNamespace && core.evtNamespace());
|
|
6043
|
+
if (_preInitTelemetryInitializers) {
|
|
6044
|
+
arrForEach(_preInitTelemetryInitializers, function (initializer) {
|
|
6045
|
+
core.addTelemetryInitializer(initializer);
|
|
6046
|
+
});
|
|
6047
|
+
_preInitTelemetryInitializers = null;
|
|
6048
|
+
}
|
|
6049
|
+
var extConfig = _populateDefaults(config);
|
|
6050
|
+
_updateStorageUsage(extConfig);
|
|
6051
|
+
_pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);
|
|
6052
|
+
_pageViewManager = new PageViewManager(_this, extConfig.overridePageViewDuration, _self.core, _pageViewPerformanceManager);
|
|
6053
|
+
_pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
|
|
6054
|
+
_updateBrowserLinkTracking(extConfig, config);
|
|
6055
|
+
_eventTracking = new Timing(_self.diagLog(), "trackEvent");
|
|
6056
|
+
_eventTracking.action =
|
|
6057
|
+
function (name, url, duration, properties) {
|
|
6058
|
+
if (!properties) {
|
|
6059
|
+
properties = {};
|
|
6060
|
+
}
|
|
6061
|
+
properties[durationProperty] = duration.toString();
|
|
6062
|
+
_self.trackEvent({ name: name, properties: properties });
|
|
6063
|
+
};
|
|
6064
|
+
_pageTracking = new Timing(_self.diagLog(), "trackPageView");
|
|
6065
|
+
_pageTracking.action = function (name, url, duration, properties, measurements) {
|
|
6066
|
+
if (isNullOrUndefined(properties)) {
|
|
5658
6067
|
properties = {};
|
|
5659
6068
|
}
|
|
5660
6069
|
properties[durationProperty] = duration.toString();
|
|
5661
|
-
|
|
5662
|
-
|
|
5663
|
-
|
|
5664
|
-
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
properties[durationProperty] = duration.toString();
|
|
5669
|
-
var pageViewItem = {
|
|
5670
|
-
name: name,
|
|
5671
|
-
uri: url,
|
|
5672
|
-
properties: properties,
|
|
5673
|
-
measurements: measurements
|
|
5674
|
-
};
|
|
5675
|
-
_self.sendPageViewInternal(pageViewItem, properties);
|
|
5676
|
-
};
|
|
5677
|
-
var _window = getWindow();
|
|
5678
|
-
var _history = getHistory();
|
|
5679
|
-
var _location = getLocation(true);
|
|
5680
|
-
var instance = _this;
|
|
5681
|
-
if (_self.config.disableExceptionTracking === false &&
|
|
5682
|
-
!_self.config.autoExceptionInstrumented && _window) {
|
|
5683
|
-
var onerror_1 = "onerror";
|
|
5684
|
-
var originalOnError_1 = _window[onerror_1];
|
|
5685
|
-
_window.onerror = function (message, url, lineNumber, columnNumber, error) {
|
|
5686
|
-
var evt = _window[strEvent];
|
|
5687
|
-
var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);
|
|
5688
|
-
if (handled !== true) {
|
|
5689
|
-
instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));
|
|
5690
|
-
}
|
|
5691
|
-
return handled;
|
|
5692
|
-
};
|
|
5693
|
-
_self.config.autoExceptionInstrumented = true;
|
|
5694
|
-
}
|
|
5695
|
-
if (_self.config.disableExceptionTracking === false &&
|
|
5696
|
-
_self.config.enableUnhandledPromiseRejectionTracking === true &&
|
|
5697
|
-
!_self.config.autoUnhandledPromiseInstrumented && _window) {
|
|
5698
|
-
var onunhandledrejection_1 = "onunhandledrejection";
|
|
5699
|
-
var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];
|
|
5700
|
-
_window[onunhandledrejection_1] = function (error) {
|
|
5701
|
-
var evt = _window[strEvent];
|
|
5702
|
-
var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);
|
|
5703
|
-
if (handled !== true) {
|
|
5704
|
-
instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, evt));
|
|
5705
|
-
}
|
|
5706
|
-
return handled;
|
|
6070
|
+
var pageViewItem = {
|
|
6071
|
+
name: name,
|
|
6072
|
+
uri: url,
|
|
6073
|
+
properties: properties,
|
|
6074
|
+
measurements: measurements
|
|
6075
|
+
};
|
|
6076
|
+
_self.sendPageViewInternal(pageViewItem, properties);
|
|
5707
6077
|
};
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
&& _history && isFunction(_history.pushState) && isFunction(_history.replaceState)
|
|
5712
|
-
&& _window
|
|
5713
|
-
&& typeof Event !== "undefined") {
|
|
5714
|
-
var _self_1 = _this;
|
|
5715
|
-
arrForEach(extensions, function (extension) {
|
|
5716
|
-
if (extension.identifier === PropertiesPluginIdentifier) {
|
|
5717
|
-
_properties = extension;
|
|
5718
|
-
}
|
|
5719
|
-
});
|
|
5720
|
-
_history.pushState = (function (f) { return function pushState() {
|
|
5721
|
-
var ret = f.apply(this, arguments);
|
|
5722
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "pushState"));
|
|
5723
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5724
|
-
return ret;
|
|
5725
|
-
}; })(_history.pushState);
|
|
5726
|
-
_history.replaceState = (function (f) { return function replaceState() {
|
|
5727
|
-
var ret = f.apply(this, arguments);
|
|
5728
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "replaceState"));
|
|
5729
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5730
|
-
return ret;
|
|
5731
|
-
}; })(_history.replaceState);
|
|
5732
|
-
if (_window.addEventListener) {
|
|
5733
|
-
_window.addEventListener(_self_1.config.namePrefix + "popstate", function () {
|
|
5734
|
-
_dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + "locationchange"));
|
|
5735
|
-
});
|
|
5736
|
-
_window.addEventListener(_self_1.config.namePrefix + "locationchange", function () {
|
|
5737
|
-
if (_properties && _properties.context && _properties.context.telemetryTrace) {
|
|
5738
|
-
_properties.context.telemetryTrace.traceID = generateW3CId();
|
|
5739
|
-
var traceLocationName = "_unknown_";
|
|
5740
|
-
if (_location && _location.pathname) {
|
|
5741
|
-
traceLocationName = _location.pathname + (_location.hash || "");
|
|
5742
|
-
}
|
|
5743
|
-
_properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);
|
|
5744
|
-
}
|
|
5745
|
-
if (_currUri) {
|
|
5746
|
-
_prevUri = _currUri;
|
|
5747
|
-
_currUri = _location && _location.href || "";
|
|
5748
|
-
}
|
|
5749
|
-
else {
|
|
5750
|
-
_currUri = _location && _location.href || "";
|
|
5751
|
-
}
|
|
5752
|
-
setTimeout((function (uri) {
|
|
5753
|
-
_self_1.trackPageView({ refUri: uri, properties: { duration: 0 } });
|
|
5754
|
-
}).bind(_this, _prevUri), _self_1.autoRoutePVDelay);
|
|
5755
|
-
});
|
|
6078
|
+
if (hasWindow()) {
|
|
6079
|
+
_updateExceptionTracking(extConfig);
|
|
6080
|
+
_updateLocationChange(extConfig);
|
|
5756
6081
|
}
|
|
5757
6082
|
}
|
|
5758
|
-
|
|
6083
|
+
catch (e) {
|
|
6084
|
+
_self.setInitialized(false);
|
|
6085
|
+
throw e;
|
|
6086
|
+
}
|
|
5759
6087
|
};
|
|
6088
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
6089
|
+
eventOff(window, null, null, _evtNamespace);
|
|
6090
|
+
_initDefaults();
|
|
6091
|
+
};
|
|
6092
|
+
function _populateDefaults(config) {
|
|
6093
|
+
var ctx = createProcessTelemetryContext(null, config, _self.core);
|
|
6094
|
+
var identifier = _self.identifier;
|
|
6095
|
+
var defaults = _getDefaultConfig(config);
|
|
6096
|
+
var extConfig = _self.config = ctx.getExtCfg(identifier);
|
|
6097
|
+
if (defaults !== undefined) {
|
|
6098
|
+
objForEachKey(defaults, function (field, value) {
|
|
6099
|
+
extConfig[field] = ctx.getConfig(identifier, field, value);
|
|
6100
|
+
if (extConfig[field] === undefined) {
|
|
6101
|
+
extConfig = value;
|
|
6102
|
+
}
|
|
6103
|
+
});
|
|
6104
|
+
}
|
|
6105
|
+
return extConfig;
|
|
6106
|
+
}
|
|
6107
|
+
function _updateBrowserLinkTracking(extConfig, config) {
|
|
6108
|
+
_isBrowserLinkTrackingEnabled = extConfig.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;
|
|
6109
|
+
_addDefaultTelemetryInitializers();
|
|
6110
|
+
}
|
|
5760
6111
|
function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
|
|
5761
6112
|
var properties = { PageName: pageName, PageUrl: pageUrl };
|
|
5762
6113
|
_self.trackMetric({
|
|
@@ -5767,11 +6118,11 @@
|
|
|
5767
6118
|
sampleCount: 1
|
|
5768
6119
|
}, properties);
|
|
5769
6120
|
}
|
|
5770
|
-
function _addDefaultTelemetryInitializers(
|
|
5771
|
-
if (!
|
|
6121
|
+
function _addDefaultTelemetryInitializers() {
|
|
6122
|
+
if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {
|
|
5772
6123
|
var browserLinkPaths_1 = ["/browserLinkSignalR/", "/__browserLink/"];
|
|
5773
6124
|
var dropBrowserLinkRequests = function (envelope) {
|
|
5774
|
-
if (envelope.baseType === RemoteDependencyData.dataType) {
|
|
6125
|
+
if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData.dataType) {
|
|
5775
6126
|
var remoteData = envelope.baseData;
|
|
5776
6127
|
if (remoteData) {
|
|
5777
6128
|
for (var i = 0; i < browserLinkPaths_1.length; i++) {
|
|
@@ -5783,70 +6134,147 @@
|
|
|
5783
6134
|
}
|
|
5784
6135
|
return true;
|
|
5785
6136
|
};
|
|
5786
|
-
|
|
6137
|
+
_self.addTelemetryInitializer(dropBrowserLinkRequests);
|
|
6138
|
+
_browserLinkInitializerAdded = true;
|
|
5787
6139
|
}
|
|
5788
6140
|
}
|
|
5789
|
-
function _addTelemetryInitializer(telemetryInitializer) {
|
|
5790
|
-
_self._telemetryInitializers.push(telemetryInitializer);
|
|
5791
|
-
}
|
|
5792
6141
|
function _sendCORSException(exception, properties) {
|
|
5793
6142
|
var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);
|
|
5794
6143
|
_self.core.track(telemetryItem);
|
|
5795
6144
|
}
|
|
5796
|
-
|
|
5797
|
-
|
|
5798
|
-
|
|
5799
|
-
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);
|
|
5813
|
-
config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);
|
|
5814
|
-
config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);
|
|
5815
|
-
config.namePrefix = config.namePrefix || "";
|
|
5816
|
-
config.enableDebug = stringToBoolOrDefault(config.enableDebug);
|
|
5817
|
-
config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);
|
|
5818
|
-
config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
|
|
5819
|
-
return config;
|
|
5820
|
-
};
|
|
5821
|
-
ApplicationInsights.Version = "2.8.0-beta.2203-02";
|
|
5822
|
-
return ApplicationInsights;
|
|
5823
|
-
}(BaseTelemetryPlugin));
|
|
5824
|
-
var Timing = /** @class */ (function () {
|
|
5825
|
-
function Timing(logger, name) {
|
|
5826
|
-
var _self = this;
|
|
5827
|
-
var _events = {};
|
|
5828
|
-
_self.start = function (name) {
|
|
5829
|
-
if (typeof _events[name] !== "undefined") {
|
|
5830
|
-
logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: name, key: name }, true);
|
|
6145
|
+
function _updateExceptionTracking(extConfig) {
|
|
6146
|
+
var _window = getWindow();
|
|
6147
|
+
var locn = getLocation(true);
|
|
6148
|
+
_disableExceptionTracking = extConfig.disableExceptionTracking;
|
|
6149
|
+
if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
|
|
6150
|
+
_addHook(InstrumentFunc(_window, "onerror", {
|
|
6151
|
+
ns: _evtNamespace,
|
|
6152
|
+
rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
|
|
6153
|
+
if (!_disableExceptionTracking && callDetails.rslt !== true) {
|
|
6154
|
+
_self._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, callDetails.evt));
|
|
6155
|
+
}
|
|
6156
|
+
}
|
|
6157
|
+
}));
|
|
6158
|
+
_autoExceptionInstrumented = true;
|
|
6159
|
+
}
|
|
6160
|
+
_addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
|
|
5831
6161
|
}
|
|
5832
|
-
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
6162
|
+
function _updateLocationChange(extConfig) {
|
|
6163
|
+
var win = getWindow();
|
|
6164
|
+
var locn = getLocation(true);
|
|
6165
|
+
_enableAutoRouteTracking = extConfig.enableAutoRouteTracking === true;
|
|
6166
|
+
if (win && _enableAutoRouteTracking && hasHistory()) {
|
|
6167
|
+
var _history = getHistory();
|
|
6168
|
+
if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
|
|
6169
|
+
_addHistoryListener(extConfig, win, _history, locn);
|
|
6170
|
+
}
|
|
6171
|
+
}
|
|
5838
6172
|
}
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
|
|
6173
|
+
function _addHistoryListener(extConfig, win, history, locn) {
|
|
6174
|
+
function _popstateHandler() {
|
|
6175
|
+
if (_enableAutoRouteTracking) {
|
|
6176
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6177
|
+
}
|
|
6178
|
+
}
|
|
6179
|
+
function _locationChangeHandler() {
|
|
6180
|
+
if (_currUri) {
|
|
6181
|
+
_prevUri = _currUri;
|
|
6182
|
+
_currUri = locn && locn.href || "";
|
|
6183
|
+
}
|
|
6184
|
+
else {
|
|
6185
|
+
_currUri = locn && locn.href || "";
|
|
6186
|
+
}
|
|
6187
|
+
if (_enableAutoRouteTracking) {
|
|
6188
|
+
var properties = _self.core.getPlugin(PropertiesPluginIdentifier);
|
|
6189
|
+
if (properties) {
|
|
6190
|
+
var context = properties.plugin.context;
|
|
6191
|
+
if (context && context.telemetryTrace) {
|
|
6192
|
+
context.telemetryTrace.traceID = generateW3CId();
|
|
6193
|
+
var traceLocationName = "_unknown_";
|
|
6194
|
+
if (locn && locn.pathname) {
|
|
6195
|
+
traceLocationName = locn.pathname + (locn.hash || "");
|
|
6196
|
+
}
|
|
6197
|
+
context.telemetryTrace.name = dataSanitizeString(_self.diagLog(), traceLocationName);
|
|
6198
|
+
}
|
|
6199
|
+
}
|
|
6200
|
+
setTimeout((function (uri) {
|
|
6201
|
+
_self.trackPageView({ refUri: uri, properties: { duration: 0 } });
|
|
6202
|
+
}).bind(this, _prevUri), _self.autoRoutePVDelay);
|
|
6203
|
+
}
|
|
6204
|
+
}
|
|
6205
|
+
if (!_historyListenerAdded) {
|
|
6206
|
+
_addHook(InstrumentFunc(history, "pushState", {
|
|
6207
|
+
ns: _evtNamespace,
|
|
6208
|
+
rsp: function () {
|
|
6209
|
+
if (_enableAutoRouteTracking) {
|
|
6210
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "pushState"));
|
|
6211
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6212
|
+
}
|
|
6213
|
+
}
|
|
6214
|
+
}));
|
|
6215
|
+
_addHook(InstrumentFunc(history, "replaceState", {
|
|
6216
|
+
ns: _evtNamespace,
|
|
6217
|
+
rsp: function () {
|
|
6218
|
+
if (_enableAutoRouteTracking) {
|
|
6219
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "replaceState"));
|
|
6220
|
+
_dispatchEvent(win, createDomEvent(extConfig.namePrefix + "locationchange"));
|
|
6221
|
+
}
|
|
6222
|
+
}
|
|
6223
|
+
}));
|
|
6224
|
+
eventOn(win, extConfig.namePrefix + "popstate", _popstateHandler, _evtNamespace);
|
|
6225
|
+
eventOn(win, extConfig.namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
|
|
6226
|
+
_historyListenerAdded = true;
|
|
6227
|
+
}
|
|
6228
|
+
}
|
|
6229
|
+
function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
|
|
6230
|
+
_enableUnhandledPromiseRejectionTracking = extConfig.enableUnhandledPromiseRejectionTracking === true;
|
|
6231
|
+
if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
|
|
6232
|
+
_addHook(InstrumentFunc(_window, "onunhandledrejection", {
|
|
6233
|
+
ns: _evtNamespace,
|
|
6234
|
+
rsp: function (callDetails, error) {
|
|
6235
|
+
if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
|
|
6236
|
+
_self._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : "", 0, 0, error, callDetails.evt));
|
|
6237
|
+
}
|
|
6238
|
+
}
|
|
6239
|
+
}));
|
|
6240
|
+
_autoUnhandledPromiseInstrumented = true;
|
|
6241
|
+
extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
|
|
6242
|
+
}
|
|
5843
6243
|
}
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
6244
|
+
function _throwInternal(severity, msgId, msg, properties, isUserAct) {
|
|
6245
|
+
_self.diagLog().throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
6246
|
+
}
|
|
6247
|
+
function _initDefaults() {
|
|
6248
|
+
_eventTracking = null;
|
|
6249
|
+
_pageTracking = null;
|
|
6250
|
+
_pageViewManager = null;
|
|
6251
|
+
_pageViewPerformanceManager = null;
|
|
6252
|
+
_pageVisitTimeManager = null;
|
|
6253
|
+
_preInitTelemetryInitializers = null;
|
|
6254
|
+
_isBrowserLinkTrackingEnabled = false;
|
|
6255
|
+
_browserLinkInitializerAdded = false;
|
|
6256
|
+
_enableAutoRouteTracking = false;
|
|
6257
|
+
_historyListenerAdded = false;
|
|
6258
|
+
_disableExceptionTracking = false;
|
|
6259
|
+
_autoExceptionInstrumented = false;
|
|
6260
|
+
_enableUnhandledPromiseRejectionTracking = false;
|
|
6261
|
+
_autoUnhandledPromiseInstrumented = false;
|
|
6262
|
+
var location = getLocation(true);
|
|
6263
|
+
_prevUri = location && location.href || "";
|
|
6264
|
+
_currUri = null;
|
|
6265
|
+
_evtNamespace = null;
|
|
6266
|
+
}
|
|
6267
|
+
objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
|
|
6268
|
+
objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
|
|
6269
|
+
objDefineAccessors(_self, "_pageVisitTimeManager", function () { return _pageVisitTimeManager; });
|
|
6270
|
+
objDefineAccessors(_self, "_evtNamespace", function () { return "." + _evtNamespace; });
|
|
6271
|
+
});
|
|
6272
|
+
return _this;
|
|
5847
6273
|
}
|
|
5848
|
-
|
|
5849
|
-
|
|
6274
|
+
AnalyticsPlugin.Version = "2.8.0-beta.2203-05";
|
|
6275
|
+
AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
|
|
6276
|
+
return AnalyticsPlugin;
|
|
6277
|
+
}(BaseTelemetryPlugin));
|
|
5850
6278
|
|
|
5851
6279
|
var BaseSendBuffer = /** @class */ (function () {
|
|
5852
6280
|
function BaseSendBuffer(logger, config) {
|
|
@@ -6125,7 +6553,7 @@
|
|
|
6125
6553
|
}
|
|
6126
6554
|
}
|
|
6127
6555
|
var EnvelopeCreator = {
|
|
6128
|
-
Version: "2.8.0-beta.2203-
|
|
6556
|
+
Version: "2.8.0-beta.2203-05"
|
|
6129
6557
|
};
|
|
6130
6558
|
function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
|
|
6131
6559
|
EnvelopeCreatorInit(logger, telemetryItem);
|
|
@@ -6420,65 +6848,81 @@
|
|
|
6420
6848
|
return Serializer;
|
|
6421
6849
|
}());
|
|
6422
6850
|
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
|
|
6435
|
-
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
target.onoffline = _setOffline;
|
|
6442
|
-
isListening = true;
|
|
6443
|
-
}
|
|
6444
|
-
}
|
|
6445
|
-
if (isListening) {
|
|
6446
|
-
var _navigator = getNavigator();
|
|
6447
|
-
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
6448
|
-
_onlineStatus = _navigator.onLine;
|
|
6449
|
-
}
|
|
6851
|
+
function _disableEvents(target, evtNamespace) {
|
|
6852
|
+
eventOff(target, null, null, evtNamespace);
|
|
6853
|
+
}
|
|
6854
|
+
function createOfflineListener(parentEvtNamespace) {
|
|
6855
|
+
var _document = getDocument();
|
|
6856
|
+
var _navigator = getNavigator();
|
|
6857
|
+
var _isListening = false;
|
|
6858
|
+
var _onlineStatus = true;
|
|
6859
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
6860
|
+
try {
|
|
6861
|
+
if (_enableEvents(getWindow())) {
|
|
6862
|
+
_isListening = true;
|
|
6863
|
+
}
|
|
6864
|
+
if (_document) {
|
|
6865
|
+
var target = _document.body || _document;
|
|
6866
|
+
if (target.ononline) {
|
|
6867
|
+
if (_enableEvents(target)) {
|
|
6868
|
+
_isListening = true;
|
|
6450
6869
|
}
|
|
6451
6870
|
}
|
|
6452
|
-
|
|
6453
|
-
|
|
6871
|
+
}
|
|
6872
|
+
if (_isListening) {
|
|
6873
|
+
if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
6874
|
+
_onlineStatus = _navigator.onLine;
|
|
6454
6875
|
}
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
};
|
|
6467
|
-
_self.isOffline = function () {
|
|
6468
|
-
return !_self.isOnline();
|
|
6469
|
-
};
|
|
6470
|
-
function _setOnline() {
|
|
6471
|
-
_onlineStatus = true;
|
|
6876
|
+
}
|
|
6877
|
+
}
|
|
6878
|
+
catch (e) {
|
|
6879
|
+
_isListening = false;
|
|
6880
|
+
}
|
|
6881
|
+
function _enableEvents(target) {
|
|
6882
|
+
var enabled = false;
|
|
6883
|
+
if (target) {
|
|
6884
|
+
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
6885
|
+
if (enabled) {
|
|
6886
|
+
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
6472
6887
|
}
|
|
6473
|
-
|
|
6474
|
-
|
|
6888
|
+
}
|
|
6889
|
+
return enabled;
|
|
6890
|
+
}
|
|
6891
|
+
function _setOnline() {
|
|
6892
|
+
_onlineStatus = true;
|
|
6893
|
+
}
|
|
6894
|
+
function _setOffline() {
|
|
6895
|
+
_onlineStatus = false;
|
|
6896
|
+
}
|
|
6897
|
+
function _isOnline() {
|
|
6898
|
+
var result = true;
|
|
6899
|
+
if (_isListening) {
|
|
6900
|
+
result = _onlineStatus;
|
|
6901
|
+
}
|
|
6902
|
+
else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {
|
|
6903
|
+
result = _navigator.onLine;
|
|
6904
|
+
}
|
|
6905
|
+
return result;
|
|
6906
|
+
}
|
|
6907
|
+
function _unload() {
|
|
6908
|
+
var win = getWindow();
|
|
6909
|
+
if (win && _isListening) {
|
|
6910
|
+
_disableEvents(win, _evtNamespace);
|
|
6911
|
+
if (_document) {
|
|
6912
|
+
var target = _document.body || _document;
|
|
6913
|
+
if (!isUndefined(target.ononline)) {
|
|
6914
|
+
_disableEvents(target, _evtNamespace);
|
|
6915
|
+
}
|
|
6475
6916
|
}
|
|
6476
|
-
|
|
6917
|
+
_isListening = false;
|
|
6918
|
+
}
|
|
6477
6919
|
}
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6920
|
+
return {
|
|
6921
|
+
isOnline: _isOnline,
|
|
6922
|
+
isListening: function () { return _isListening; },
|
|
6923
|
+
unload: _unload
|
|
6924
|
+
};
|
|
6925
|
+
}
|
|
6482
6926
|
|
|
6483
6927
|
var MIN_INPUT_LENGTH = 8;
|
|
6484
6928
|
var HashCodeScoreGenerator = /** @class */ (function () {
|
|
@@ -6606,22 +7050,22 @@
|
|
|
6606
7050
|
var _this = _super.call(this) || this;
|
|
6607
7051
|
_this.priority = 1001;
|
|
6608
7052
|
_this.identifier = BreezeChannelIdentifier;
|
|
7053
|
+
_this._senderConfig = _getDefaultAppInsightsChannelConfig();
|
|
6609
7054
|
var _consecutiveErrors;
|
|
6610
7055
|
var _retryAt;
|
|
6611
7056
|
var _lastSend;
|
|
6612
|
-
var _paused
|
|
7057
|
+
var _paused;
|
|
6613
7058
|
var _timeoutHandle;
|
|
6614
7059
|
var _serializer;
|
|
6615
7060
|
var _stamp_specific_redirects;
|
|
6616
|
-
var _headers
|
|
7061
|
+
var _headers;
|
|
6617
7062
|
var _syncFetchPayload = 0;
|
|
6618
7063
|
var _fallbackSender;
|
|
6619
7064
|
var _syncUnloadSender;
|
|
6620
|
-
|
|
7065
|
+
var _offlineListener;
|
|
7066
|
+
var _evtNamespace;
|
|
6621
7067
|
dynamicProto(Sender, _this, function (_self, _base) {
|
|
6622
|
-
|
|
6623
|
-
throwError("Method not implemented.");
|
|
6624
|
-
}
|
|
7068
|
+
_initDefaults();
|
|
6625
7069
|
_self.pause = function () {
|
|
6626
7070
|
_clearScheduledTimer();
|
|
6627
7071
|
_paused = true;
|
|
@@ -6644,7 +7088,7 @@
|
|
|
6644
7088
|
_self.triggerSend(isAsync, null, sendReason || 1 );
|
|
6645
7089
|
}
|
|
6646
7090
|
catch (e) {
|
|
6647
|
-
_self.diagLog()
|
|
7091
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, "flush failed, telemetry will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
6648
7092
|
}
|
|
6649
7093
|
}
|
|
6650
7094
|
};
|
|
@@ -6655,7 +7099,7 @@
|
|
|
6655
7099
|
_self.triggerSend(true, _doUnloadSend, 2 );
|
|
6656
7100
|
}
|
|
6657
7101
|
catch (e) {
|
|
6658
|
-
_self.diagLog()
|
|
7102
|
+
_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) });
|
|
6659
7103
|
}
|
|
6660
7104
|
}
|
|
6661
7105
|
else {
|
|
@@ -6663,7 +7107,6 @@
|
|
|
6663
7107
|
}
|
|
6664
7108
|
}
|
|
6665
7109
|
};
|
|
6666
|
-
_self.teardown = _notImplemented;
|
|
6667
7110
|
_self.addHeader = function (name, value) {
|
|
6668
7111
|
_headers[name] = value;
|
|
6669
7112
|
};
|
|
@@ -6678,6 +7121,8 @@
|
|
|
6678
7121
|
_self._sender = null;
|
|
6679
7122
|
_stamp_specific_redirects = 0;
|
|
6680
7123
|
var diagLog = _self.diagLog();
|
|
7124
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
|
|
7125
|
+
_offlineListener = createOfflineListener(_evtNamespace);
|
|
6681
7126
|
var defaultConfig = _getDefaultAppInsightsChannelConfig();
|
|
6682
7127
|
objForEachKey(defaultConfig, function (field, value) {
|
|
6683
7128
|
_self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };
|
|
@@ -6686,7 +7131,7 @@
|
|
|
6686
7131
|
? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);
|
|
6687
7132
|
_self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);
|
|
6688
7133
|
if (!_validateInstrumentationKey(config)) {
|
|
6689
|
-
diagLog
|
|
7134
|
+
_throwInternal(diagLog, LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, "Invalid Instrumentation key " + config.instrumentationKey);
|
|
6690
7135
|
}
|
|
6691
7136
|
if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {
|
|
6692
7137
|
arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {
|
|
@@ -6732,22 +7177,22 @@
|
|
|
6732
7177
|
return;
|
|
6733
7178
|
}
|
|
6734
7179
|
if (!telemetryItem) {
|
|
6735
|
-
itemCtx.diagLog()
|
|
7180
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, "Cannot send empty telemetry");
|
|
6736
7181
|
return;
|
|
6737
7182
|
}
|
|
6738
7183
|
if (telemetryItem.baseData && !telemetryItem.baseType) {
|
|
6739
|
-
itemCtx.diagLog()
|
|
7184
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, "Cannot send telemetry without baseData and baseType");
|
|
6740
7185
|
return;
|
|
6741
7186
|
}
|
|
6742
7187
|
if (!telemetryItem.baseType) {
|
|
6743
7188
|
telemetryItem.baseType = "EventData";
|
|
6744
7189
|
}
|
|
6745
7190
|
if (!_self._sender) {
|
|
6746
|
-
itemCtx.diagLog()
|
|
7191
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, "Sender was not initialized");
|
|
6747
7192
|
return;
|
|
6748
7193
|
}
|
|
6749
7194
|
if (!_isSampledIn(telemetryItem)) {
|
|
6750
|
-
itemCtx.diagLog()
|
|
7195
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, "Telemetry item was sampled out and not sent", { SampleRate: _self._sample.sampleRate });
|
|
6751
7196
|
return;
|
|
6752
7197
|
}
|
|
6753
7198
|
else {
|
|
@@ -6757,7 +7202,7 @@
|
|
|
6757
7202
|
var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();
|
|
6758
7203
|
var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);
|
|
6759
7204
|
if (!aiEnvelope_1) {
|
|
6760
|
-
itemCtx.diagLog()
|
|
7205
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, "Unable to create an AppInsights envelope");
|
|
6761
7206
|
return;
|
|
6762
7207
|
}
|
|
6763
7208
|
var doNotSendItem_1 = false;
|
|
@@ -6770,7 +7215,7 @@
|
|
|
6770
7215
|
}
|
|
6771
7216
|
}
|
|
6772
7217
|
catch (e) {
|
|
6773
|
-
itemCtx.diagLog()
|
|
7218
|
+
_throwInternal(itemCtx.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
6774
7219
|
}
|
|
6775
7220
|
});
|
|
6776
7221
|
delete telemetryItem.tags[ProcessLegacy];
|
|
@@ -6788,7 +7233,7 @@
|
|
|
6788
7233
|
_setupTimer();
|
|
6789
7234
|
}
|
|
6790
7235
|
catch (e) {
|
|
6791
|
-
itemCtx.diagLog()
|
|
7236
|
+
_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) });
|
|
6792
7237
|
}
|
|
6793
7238
|
_self.processNext(telemetryItem, itemCtx);
|
|
6794
7239
|
};
|
|
@@ -6823,13 +7268,18 @@
|
|
|
6823
7268
|
catch (e) {
|
|
6824
7269
|
var ieVer = getIEVersion();
|
|
6825
7270
|
if (!ieVer || ieVer > 9) {
|
|
6826
|
-
_self.diagLog()
|
|
7271
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
6827
7272
|
}
|
|
6828
7273
|
}
|
|
6829
7274
|
}
|
|
6830
7275
|
};
|
|
7276
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
7277
|
+
_self.onunloadFlush();
|
|
7278
|
+
_offlineListener.unload();
|
|
7279
|
+
_initDefaults();
|
|
7280
|
+
};
|
|
6831
7281
|
_self._onError = function (payload, message, event) {
|
|
6832
|
-
_self.diagLog()
|
|
7282
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.OnError, "Failed to send telemetry.", { message: message });
|
|
6833
7283
|
_self._buffer.clearSent(payload);
|
|
6834
7284
|
};
|
|
6835
7285
|
_self._onPartialSuccess = function (payload, results) {
|
|
@@ -6854,7 +7304,7 @@
|
|
|
6854
7304
|
}
|
|
6855
7305
|
if (retry.length > 0) {
|
|
6856
7306
|
_resendPayload(retry);
|
|
6857
|
-
_self.diagLog()
|
|
7307
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, "Partial success. " +
|
|
6858
7308
|
"Delivered: " + payload.length + ", Failed: " + failed.length +
|
|
6859
7309
|
". Will retry to send " + retry.length + " our of " + results.itemsReceived + " items");
|
|
6860
7310
|
}
|
|
@@ -6899,18 +7349,18 @@
|
|
|
6899
7349
|
}
|
|
6900
7350
|
if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {
|
|
6901
7351
|
_resendPayload(payload);
|
|
6902
|
-
_self.diagLog()
|
|
7352
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
6903
7353
|
"Response code " + status + ". Will retry to send " + payload.length + " items.");
|
|
6904
7354
|
}
|
|
6905
7355
|
else {
|
|
6906
7356
|
_self._onError(payload, errorMessage);
|
|
6907
7357
|
}
|
|
6908
7358
|
}
|
|
6909
|
-
else if (
|
|
7359
|
+
else if (_offlineListener && !_offlineListener.isOnline()) {
|
|
6910
7360
|
if (!_self._senderConfig.isRetryDisabled()) {
|
|
6911
7361
|
var offlineBackOffMultiplier = 10;
|
|
6912
7362
|
_resendPayload(payload, offlineBackOffMultiplier);
|
|
6913
|
-
_self.diagLog()
|
|
7363
|
+
_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."));
|
|
6914
7364
|
}
|
|
6915
7365
|
}
|
|
6916
7366
|
else {
|
|
@@ -6977,8 +7427,8 @@
|
|
|
6977
7427
|
}
|
|
6978
7428
|
}
|
|
6979
7429
|
if (droppedPayload.length > 0) {
|
|
6980
|
-
_fallbackSender(droppedPayload, true);
|
|
6981
|
-
_self.diagLog()
|
|
7430
|
+
_fallbackSender && _fallbackSender(droppedPayload, true);
|
|
7431
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
6982
7432
|
}
|
|
6983
7433
|
}
|
|
6984
7434
|
}
|
|
@@ -7019,7 +7469,7 @@
|
|
|
7019
7469
|
}
|
|
7020
7470
|
else {
|
|
7021
7471
|
_fallbackSender && _fallbackSender(payload, true);
|
|
7022
|
-
_self.diagLog()
|
|
7472
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " + "Failed to send telemetry with Beacon API, retried with xhrSender.");
|
|
7023
7473
|
}
|
|
7024
7474
|
}
|
|
7025
7475
|
}
|
|
@@ -7110,7 +7560,7 @@
|
|
|
7110
7560
|
}
|
|
7111
7561
|
}
|
|
7112
7562
|
catch (e) {
|
|
7113
|
-
_self.diagLog()
|
|
7563
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, "Cannot parse the response. " + getExceptionName(e), {
|
|
7114
7564
|
response: response
|
|
7115
7565
|
});
|
|
7116
7566
|
}
|
|
@@ -7181,7 +7631,7 @@
|
|
|
7181
7631
|
xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };
|
|
7182
7632
|
var hostingProtocol = _window && _window.location && _window.location.protocol || "";
|
|
7183
7633
|
if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
7184
|
-
_self.diagLog()
|
|
7634
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, ". " +
|
|
7185
7635
|
"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
|
|
7186
7636
|
buffer.clear();
|
|
7187
7637
|
return;
|
|
@@ -7212,7 +7662,7 @@
|
|
|
7212
7662
|
manager.eventsSendRequest(sendRequest, isAsync);
|
|
7213
7663
|
}
|
|
7214
7664
|
catch (e) {
|
|
7215
|
-
_self.diagLog()
|
|
7665
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, "send request notification failed: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
7216
7666
|
}
|
|
7217
7667
|
}
|
|
7218
7668
|
}
|
|
@@ -7225,6 +7675,25 @@
|
|
|
7225
7675
|
var regexp = new RegExp(UUID_Regex);
|
|
7226
7676
|
return regexp.test(config.instrumentationKey);
|
|
7227
7677
|
}
|
|
7678
|
+
function _initDefaults() {
|
|
7679
|
+
_self._sender = null;
|
|
7680
|
+
_self._buffer = null;
|
|
7681
|
+
_self._appId = null;
|
|
7682
|
+
_self._sample = null;
|
|
7683
|
+
_headers = {};
|
|
7684
|
+
_offlineListener = null;
|
|
7685
|
+
_consecutiveErrors = 0;
|
|
7686
|
+
_retryAt = null;
|
|
7687
|
+
_lastSend = null;
|
|
7688
|
+
_paused = false;
|
|
7689
|
+
_timeoutHandle = null;
|
|
7690
|
+
_serializer = null;
|
|
7691
|
+
_stamp_specific_redirects = 0;
|
|
7692
|
+
_syncFetchPayload = 0;
|
|
7693
|
+
_fallbackSender = null;
|
|
7694
|
+
_syncUnloadSender = null;
|
|
7695
|
+
_evtNamespace = null;
|
|
7696
|
+
}
|
|
7228
7697
|
});
|
|
7229
7698
|
return _this;
|
|
7230
7699
|
}
|
|
@@ -7394,7 +7863,7 @@
|
|
|
7394
7863
|
return Device;
|
|
7395
7864
|
}());
|
|
7396
7865
|
|
|
7397
|
-
var Version = "2.8.0-beta.2203-
|
|
7866
|
+
var Version = "2.8.0-beta.2203-05";
|
|
7398
7867
|
var Internal = /** @class */ (function () {
|
|
7399
7868
|
function Internal(config) {
|
|
7400
7869
|
this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;
|
|
@@ -8817,7 +9286,7 @@
|
|
|
8817
9286
|
config.endpointUrl = ingest ? "".concat(ingest, "/v2/track") : config.endpointUrl;
|
|
8818
9287
|
config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;
|
|
8819
9288
|
}
|
|
8820
|
-
_self.appInsights = new
|
|
9289
|
+
_self.appInsights = new AnalyticsPlugin();
|
|
8821
9290
|
_self.properties = new PropertiesPlugin$1();
|
|
8822
9291
|
_self.dependencies = new AjaxMonitor();
|
|
8823
9292
|
_self.core = new AppInsightsCore();
|
|
@@ -9242,7 +9711,7 @@
|
|
|
9242
9711
|
}());
|
|
9243
9712
|
|
|
9244
9713
|
exports.AppInsightsCore = AppInsightsCore;
|
|
9245
|
-
exports.ApplicationAnalytics =
|
|
9714
|
+
exports.ApplicationAnalytics = AnalyticsPlugin;
|
|
9246
9715
|
exports.ApplicationInsights = Initialization;
|
|
9247
9716
|
exports.ApplicationInsightsContainer = ApplicationInsightsContainer;
|
|
9248
9717
|
exports.BaseCore = BaseCore;
|