@microsoft/applicationinsights-core-js 3.0.0-beta.2211-01 → 3.0.0-beta.2211-04
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/applicationinsights-core-js.integrity.json +9 -9
- package/browser/applicationinsights-core-js.js +1093 -1237
- package/browser/applicationinsights-core-js.js.map +1 -1
- package/browser/applicationinsights-core-js.min.js +2 -2
- package/browser/applicationinsights-core-js.min.js.map +1 -1
- package/dist/applicationinsights-core-js.api.json +91 -89
- package/dist/applicationinsights-core-js.api.md +11 -10
- package/dist/applicationinsights-core-js.d.ts +10 -9
- package/dist/applicationinsights-core-js.js +1093 -1237
- package/dist/applicationinsights-core-js.js.map +1 -1
- package/dist/applicationinsights-core-js.min.js +2 -2
- package/dist/applicationinsights-core-js.min.js.map +1 -1
- package/dist/applicationinsights-core-js.rollup.d.ts +10 -9
- package/dist-esm/Config/ConfigDefaults.js +1 -1
- package/dist-esm/Config/DynamicConfig.js +1 -1
- package/dist-esm/Config/DynamicProperty.js +1 -1
- package/dist-esm/Config/DynamicState.js +3 -3
- package/dist-esm/Config/DynamicState.js.map +1 -1
- package/dist-esm/Config/DynamicSupport.js +1 -1
- package/dist-esm/Config/IConfigDefaults.js +1 -1
- package/dist-esm/Config/IDynamicConfigHandler.js +1 -1
- package/dist-esm/Config/IDynamicPropertyHandler.js +1 -1
- package/dist-esm/Config/IDynamicWatcher.js +1 -1
- package/dist-esm/Config/_IDynamicConfigHandlerState.js +1 -1
- package/dist-esm/JavaScriptSDK/AggregationError.js +1 -1
- package/dist-esm/JavaScriptSDK/AppInsightsCore.js +115 -72
- package/dist-esm/JavaScriptSDK/AppInsightsCore.js.map +1 -1
- package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +1 -1
- package/dist-esm/JavaScriptSDK/Constants.js +8 -0
- package/dist-esm/JavaScriptSDK/Constants.js.map +1 -0
- package/dist-esm/JavaScriptSDK/CookieMgr.js +1 -1
- package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/DataCacheHelper.js +2 -2
- package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -1
- package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
- package/dist-esm/JavaScriptSDK/EnvUtils.js +1 -1
- package/dist-esm/JavaScriptSDK/EventHelpers.js +1 -1
- package/dist-esm/JavaScriptSDK/HelperFuncs.js +1 -1
- package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
- package/dist-esm/JavaScriptSDK/InternalConstants.js +1 -1
- package/dist-esm/JavaScriptSDK/NotificationManager.js +1 -1
- package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
- package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +5 -5
- package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
- package/dist-esm/JavaScriptSDK/RandomHelper.js +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +1 -1
- package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
- package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
- package/dist-esm/JavaScriptSDK/W3cTraceParent.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
- package/dist-esm/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
- package/dist-esm/__DynamicConstants.js +17 -17
- package/dist-esm/__DynamicConstants.js.map +1 -1
- package/dist-esm/applicationinsights-core-js.js +1 -1
- package/package.json +1 -1
- package/src/JavaScriptSDK/AppInsightsCore.ts +126 -79
- package/src/JavaScriptSDK/Constants.ts +4 -0
- package/src/JavaScriptSDK.Interfaces/IAppInsightsCore.ts +4 -3
- package/src/JavaScriptSDK.Interfaces/IChannelControls.ts +4 -4
- package/types/Config/IConfigDefaults.d.ts +3 -3
- package/types/Config/IDynamicWatcher.d.ts +1 -1
- package/types/JavaScriptSDK/AppInsightsCore.d.ts +3 -2
- package/types/JavaScriptSDK/Constants.d.ts +1 -0
- package/types/JavaScriptSDK/UnloadHandlerContainer.d.ts +1 -1
- package/types/JavaScriptSDK.Enums/EventsDiscardedReason.d.ts +1 -1
- package/types/JavaScriptSDK.Enums/LoggingEnums.d.ts +2 -2
- package/types/JavaScriptSDK.Interfaces/IAppInsightsCore.d.ts +3 -2
- package/types/JavaScriptSDK.Interfaces/IChannelControls.d.ts +4 -4
- package/types/JavaScriptSDK.Interfaces/IInstrumentHooks.d.ts +1 -1
- package/types/__DynamicConstants.d.ts +4 -4
- package/dist-esm/JavaScriptSDK/ChannelController.js +0 -217
- package/dist-esm/JavaScriptSDK/ChannelController.js.map +0 -1
- package/src/JavaScriptSDK/ChannelController.ts +0 -274
- package/types/JavaScriptSDK/ChannelController.d.ts +0 -19
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Core, 3.0.0-beta.2211-
|
|
2
|
+
* Application Insights JavaScript SDK - Core, 3.0.0-beta.2211-04
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -782,6 +782,22 @@
|
|
|
782
782
|
return _scheduleTimeoutWith(this, setTimeout, clearTimeout, _extractArgs(arguments, 0));
|
|
783
783
|
}
|
|
784
784
|
|
|
785
|
+
function scheduleInterval(callback, timeout) {
|
|
786
|
+
var self = this;
|
|
787
|
+
var theArguments = arguments;
|
|
788
|
+
var intervalId = setInterval.apply(self, theArguments);
|
|
789
|
+
return {
|
|
790
|
+
cancel: function () {
|
|
791
|
+
clearInterval(intervalId);
|
|
792
|
+
},
|
|
793
|
+
refresh: function () {
|
|
794
|
+
clearInterval(intervalId);
|
|
795
|
+
intervalId = setInterval.apply(self, theArguments);
|
|
796
|
+
return this;
|
|
797
|
+
}
|
|
798
|
+
};
|
|
799
|
+
}
|
|
800
|
+
|
|
785
801
|
var createEnumStyle = createEnum;
|
|
786
802
|
var createValueMap = createTypeMap;
|
|
787
803
|
|
|
@@ -805,9 +821,12 @@
|
|
|
805
821
|
var _DYN_APPLY = "apply";
|
|
806
822
|
var _DYN_PUSH = "push";
|
|
807
823
|
var _DYN_SPLICE = "splice";
|
|
824
|
+
var _DYN_CANCEL = "cancel";
|
|
808
825
|
var _DYN_INITIALIZE = "initialize";
|
|
809
826
|
var _DYN_IDENTIFIER = "identifier";
|
|
810
827
|
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
828
|
+
var _DYN_GET_PLUGIN = "getPlugin";
|
|
829
|
+
var _DYN_POLL_INTERNAL_LOGS = "pollInternalLogs";
|
|
811
830
|
var _DYN_NAME = "name";
|
|
812
831
|
var _DYN_TIME = "time";
|
|
813
832
|
var _DYN_PROCESS_NEXT = "processNext";
|
|
@@ -818,10 +837,9 @@
|
|
|
818
837
|
var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
|
|
819
838
|
var _DYN_ON_COMPLETE = "onComplete";
|
|
820
839
|
var _DYN_CALL = "call";
|
|
821
|
-
var _DYN_GET_PLUGIN = "getPlugin";
|
|
822
|
-
var _DYN_FLUSH = "flush";
|
|
823
840
|
var _DYN_VERSION = "version";
|
|
824
841
|
var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
|
|
842
|
+
var _DYN_CREATE_NEW = "createNew";
|
|
825
843
|
var _DYN_TEARDOWN = "teardown";
|
|
826
844
|
var _DYN_MESSAGE_ID = "messageId";
|
|
827
845
|
var _DYN_MESSAGE = "message";
|
|
@@ -831,8 +849,6 @@
|
|
|
831
849
|
var _DYN_UPDATE = "update";
|
|
832
850
|
var _DYN_GET_NEXT = "getNext";
|
|
833
851
|
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
834
|
-
var _DYN_CREATE_NEW = "createNew";
|
|
835
|
-
var _DYN_CONFIG = "config";
|
|
836
852
|
var _DYN_USER_AGENT = "userAgent";
|
|
837
853
|
var _DYN_SPLIT = "split";
|
|
838
854
|
var _DYN_NODE_TYPE = "nodeType";
|
|
@@ -1709,7 +1725,7 @@
|
|
|
1709
1725
|
}
|
|
1710
1726
|
|
|
1711
1727
|
var _objDefineProperty = ObjDefineProperty;
|
|
1712
|
-
var version = "3.0.0-beta.2211-
|
|
1728
|
+
var version = "3.0.0-beta.2211-04";
|
|
1713
1729
|
var instanceName = "." + newId(6);
|
|
1714
1730
|
var _dataUid = 0;
|
|
1715
1731
|
function _createAccessor(target, prop, value) {
|
|
@@ -2043,7 +2059,7 @@
|
|
|
2043
2059
|
if (_waitingHandlers) {
|
|
2044
2060
|
var notifyHandlers = _waitingHandlers;
|
|
2045
2061
|
_waitingHandlers = null;
|
|
2046
|
-
_watcherTimer && _watcherTimer
|
|
2062
|
+
_watcherTimer && _watcherTimer[_DYN_CANCEL ]();
|
|
2047
2063
|
_watcherTimer = null;
|
|
2048
2064
|
var watcherFailures_1 = [];
|
|
2049
2065
|
arrForEach(notifyHandlers, function (handler) {
|
|
@@ -2203,6 +2219,8 @@
|
|
|
2203
2219
|
createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
|
|
2204
2220
|
}
|
|
2205
2221
|
|
|
2222
|
+
var ChannelControllerPriority = 500;
|
|
2223
|
+
|
|
2206
2224
|
var listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];
|
|
2207
2225
|
var _aiNamespace = null;
|
|
2208
2226
|
var _debugListener;
|
|
@@ -2419,1308 +2437,1114 @@
|
|
|
2419
2437
|
_getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE ](severity, message);
|
|
2420
2438
|
}
|
|
2421
2439
|
|
|
2422
|
-
var
|
|
2423
|
-
var
|
|
2424
|
-
var
|
|
2425
|
-
var
|
|
2426
|
-
var
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
}
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
if (key) {
|
|
2454
|
-
if (key === PerfEvent[strParentContextKey]) {
|
|
2455
|
-
if (!_self[key]) {
|
|
2456
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
2457
|
-
}
|
|
2458
|
-
_self[key] = value;
|
|
2459
|
-
}
|
|
2460
|
-
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
2461
|
-
_self[key] = value;
|
|
2462
|
-
}
|
|
2463
|
-
else {
|
|
2464
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2465
|
-
ctx[key] = value;
|
|
2466
|
-
}
|
|
2467
|
-
}
|
|
2468
|
-
};
|
|
2469
|
-
_self[_DYN_COMPLETE ] = function () {
|
|
2470
|
-
var childTime = 0;
|
|
2471
|
-
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2472
|
-
if (isArray(childEvts)) {
|
|
2473
|
-
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
2474
|
-
var childEvt = childEvts[lp];
|
|
2475
|
-
if (childEvt) {
|
|
2476
|
-
childTime += childEvt[_DYN_TIME ];
|
|
2477
|
-
}
|
|
2478
|
-
}
|
|
2479
|
-
}
|
|
2480
|
-
_self[_DYN_TIME ] = utcNow() - _self.start;
|
|
2481
|
-
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
2482
|
-
_self[_DYN_COMPLETE ] = function () { };
|
|
2483
|
-
};
|
|
2484
|
-
}
|
|
2485
|
-
PerfEvent.ParentContextKey = "parent";
|
|
2486
|
-
PerfEvent.ChildrenContextKey = "childEvts";
|
|
2487
|
-
return PerfEvent;
|
|
2488
|
-
}());
|
|
2489
|
-
var PerfManager = /** @class */ (function () {
|
|
2490
|
-
function PerfManager(manager) {
|
|
2491
|
-
this.ctx = {};
|
|
2492
|
-
dynamicProto(PerfManager, this, function (_self) {
|
|
2493
|
-
_self.create = function (src, payloadDetails, isAsync) {
|
|
2494
|
-
return new PerfEvent(src, payloadDetails, isAsync);
|
|
2495
|
-
};
|
|
2496
|
-
_self.fire = function (perfEvent) {
|
|
2497
|
-
if (perfEvent) {
|
|
2498
|
-
perfEvent[_DYN_COMPLETE ]();
|
|
2499
|
-
if (manager && isFunction(manager[STR_PERF_EVENT ])) {
|
|
2500
|
-
manager[STR_PERF_EVENT ](perfEvent);
|
|
2501
|
-
}
|
|
2502
|
-
}
|
|
2503
|
-
};
|
|
2504
|
-
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2505
|
-
if (key) {
|
|
2506
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2507
|
-
ctx[key] = value;
|
|
2508
|
-
}
|
|
2509
|
-
};
|
|
2510
|
-
_self[_DYN_GET_CTX ] = function (key) {
|
|
2511
|
-
return (_self[strExecutionContextKey] || {})[key];
|
|
2512
|
-
};
|
|
2513
|
-
});
|
|
2514
|
-
}
|
|
2515
|
-
PerfManager.__ieDyn=1;
|
|
2516
|
-
return PerfManager;
|
|
2517
|
-
}());
|
|
2518
|
-
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
2519
|
-
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
2520
|
-
if (mgrSource) {
|
|
2521
|
-
var perfMgr = mgrSource;
|
|
2522
|
-
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
2523
|
-
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
2524
|
-
}
|
|
2525
|
-
if (perfMgr) {
|
|
2526
|
-
var perfEvt = void 0;
|
|
2527
|
-
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
2528
|
-
try {
|
|
2529
|
-
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
2530
|
-
if (perfEvt) {
|
|
2531
|
-
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
2532
|
-
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
2533
|
-
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
2534
|
-
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2535
|
-
if (!children) {
|
|
2536
|
-
children = [];
|
|
2537
|
-
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
2538
|
-
}
|
|
2539
|
-
children[_DYN_PUSH ](perfEvt);
|
|
2540
|
-
}
|
|
2541
|
-
}
|
|
2542
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
2543
|
-
return func(perfEvt);
|
|
2544
|
-
}
|
|
2545
|
-
}
|
|
2546
|
-
catch (ex) {
|
|
2547
|
-
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
2548
|
-
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
2549
|
-
}
|
|
2550
|
-
}
|
|
2551
|
-
finally {
|
|
2552
|
-
if (perfEvt) {
|
|
2553
|
-
perfMgr.fire(perfEvt);
|
|
2554
|
-
}
|
|
2555
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
2556
|
-
}
|
|
2557
|
-
}
|
|
2440
|
+
var _a$2, _b;
|
|
2441
|
+
var strToGMTString = "toGMTString";
|
|
2442
|
+
var strToUTCString = "toUTCString";
|
|
2443
|
+
var strCookie = "cookie";
|
|
2444
|
+
var strExpires = "expires";
|
|
2445
|
+
var strIsCookieUseDisabled = "isCookieUseDisabled";
|
|
2446
|
+
var strDisableCookiesUsage = "disableCookiesUsage";
|
|
2447
|
+
var strConfigCookieMgr = "_ckMgr";
|
|
2448
|
+
var _supportsCookies = null;
|
|
2449
|
+
var _allowUaSameSite = null;
|
|
2450
|
+
var _parsedCookieValue = null;
|
|
2451
|
+
var _doc = getDocument();
|
|
2452
|
+
var _cookieCache = {};
|
|
2453
|
+
var _globalCookieConfig = {};
|
|
2454
|
+
var defaultConfig$1 = objDeepFreeze((_a$2 = {},
|
|
2455
|
+
_a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
|
|
2456
|
+
_a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
|
|
2457
|
+
_a$2.enabled = UNDEFINED_VALUE,
|
|
2458
|
+
_a$2));
|
|
2459
|
+
var rootDefaultConfig = (_b = {
|
|
2460
|
+
cookieCfg: {},
|
|
2461
|
+
cookieDomain: UNDEFINED_VALUE,
|
|
2462
|
+
cookiePath: UNDEFINED_VALUE
|
|
2463
|
+
},
|
|
2464
|
+
_b[strDisableCookiesUsage] = UNDEFINED_VALUE,
|
|
2465
|
+
_b);
|
|
2466
|
+
function _gblCookieMgr(config, logger) {
|
|
2467
|
+
var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
|
|
2468
|
+
if (!inst) {
|
|
2469
|
+
inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);
|
|
2470
|
+
_globalCookieConfig[strConfigCookieMgr] = inst;
|
|
2558
2471
|
}
|
|
2559
|
-
return
|
|
2560
|
-
}
|
|
2561
|
-
function setGblPerfMgr(perfManager) {
|
|
2562
|
-
_defaultPerfManager = perfManager;
|
|
2563
|
-
}
|
|
2564
|
-
function getGblPerfMgr() {
|
|
2565
|
-
return _defaultPerfManager;
|
|
2566
|
-
}
|
|
2567
|
-
|
|
2568
|
-
var Undefined = strShimUndefined;
|
|
2569
|
-
function newGuid() {
|
|
2570
|
-
var uuid = generateW3CId();
|
|
2571
|
-
return strSubstring(uuid, 0, 8) + "-" + strSubstring(uuid, 8, 12) + "-" + strSubstring(uuid, 12, 16) + "-" + strSubstring(uuid, 16, 20) + "-" + strSubstring(uuid, 20);
|
|
2472
|
+
return inst;
|
|
2572
2473
|
}
|
|
2573
|
-
function
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
for (var a = 0; a < 4; a++) {
|
|
2577
|
-
tmp = random32();
|
|
2578
|
-
oct +=
|
|
2579
|
-
hexValues[tmp & 0xF] +
|
|
2580
|
-
hexValues[tmp >> 4 & 0xF] +
|
|
2581
|
-
hexValues[tmp >> 8 & 0xF] +
|
|
2582
|
-
hexValues[tmp >> 12 & 0xF] +
|
|
2583
|
-
hexValues[tmp >> 16 & 0xF] +
|
|
2584
|
-
hexValues[tmp >> 20 & 0xF] +
|
|
2585
|
-
hexValues[tmp >> 24 & 0xF] +
|
|
2586
|
-
hexValues[tmp >> 28 & 0xF];
|
|
2474
|
+
function _isMgrEnabled(cookieMgr) {
|
|
2475
|
+
if (cookieMgr) {
|
|
2476
|
+
return cookieMgr.isEnabled();
|
|
2587
2477
|
}
|
|
2588
|
-
|
|
2589
|
-
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2478
|
+
return true;
|
|
2590
2479
|
}
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
var INVALID_VERSION = "ff";
|
|
2595
|
-
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2596
|
-
var INVALID_SPAN_ID = "0000000000000000";
|
|
2597
|
-
var SAMPLED_FLAG = 0x01;
|
|
2598
|
-
function _isValid(value, len, invalidValue) {
|
|
2599
|
-
if (value && value[_DYN_LENGTH ] === len && value !== invalidValue) {
|
|
2600
|
-
return !!value.match(/^[\da-f]*$/i);
|
|
2480
|
+
function _isIgnoredCookie(cookieMgrCfg, name) {
|
|
2481
|
+
if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {
|
|
2482
|
+
return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;
|
|
2601
2483
|
}
|
|
2602
2484
|
return false;
|
|
2603
2485
|
}
|
|
2604
|
-
function
|
|
2605
|
-
if (
|
|
2606
|
-
|
|
2486
|
+
function _isBlockedCookie(cookieMgrCfg, name) {
|
|
2487
|
+
if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {
|
|
2488
|
+
if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {
|
|
2489
|
+
return true;
|
|
2490
|
+
}
|
|
2607
2491
|
}
|
|
2608
|
-
return
|
|
2492
|
+
return _isIgnoredCookie(cookieMgrCfg, name);
|
|
2609
2493
|
}
|
|
2610
|
-
function
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
var result = value.toString(16);
|
|
2615
|
-
while (result[_DYN_LENGTH ] < 2) {
|
|
2616
|
-
result = "0" + result;
|
|
2494
|
+
function safeGetCookieMgr(core, config) {
|
|
2495
|
+
var cookieMgr;
|
|
2496
|
+
if (core) {
|
|
2497
|
+
cookieMgr = core.getCookieMgr();
|
|
2617
2498
|
}
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
return _a = {},
|
|
2623
|
-
_a[_DYN_VERSION ] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
|
|
2624
|
-
_a[_DYN_TRACE_ID ] = isValidTraceId(traceId) ? traceId : generateW3CId(),
|
|
2625
|
-
_a[_DYN_SPAN_ID ] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
|
|
2626
|
-
_a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,
|
|
2627
|
-
_a;
|
|
2628
|
-
}
|
|
2629
|
-
function parseTraceParent(value) {
|
|
2630
|
-
var _a;
|
|
2631
|
-
if (!value) {
|
|
2632
|
-
return null;
|
|
2633
|
-
}
|
|
2634
|
-
if (isArray(value)) {
|
|
2635
|
-
value = value[0] || "";
|
|
2636
|
-
}
|
|
2637
|
-
if (!value || !isString(value) || value[_DYN_LENGTH ] > 8192) {
|
|
2638
|
-
return null;
|
|
2639
|
-
}
|
|
2640
|
-
var match = TRACE_PARENT_REGEX.exec(strTrim(value));
|
|
2641
|
-
if (!match ||
|
|
2642
|
-
match[1] === INVALID_VERSION ||
|
|
2643
|
-
match[2] === INVALID_TRACE_ID ||
|
|
2644
|
-
match[3] === INVALID_SPAN_ID) {
|
|
2645
|
-
return null;
|
|
2646
|
-
}
|
|
2647
|
-
return _a = {},
|
|
2648
|
-
_a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2649
|
-
_a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2650
|
-
_a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2651
|
-
_a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
|
|
2652
|
-
_a;
|
|
2653
|
-
}
|
|
2654
|
-
function isValidTraceId(value) {
|
|
2655
|
-
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
2656
|
-
}
|
|
2657
|
-
function isValidSpanId(value) {
|
|
2658
|
-
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
2659
|
-
}
|
|
2660
|
-
function isValidTraceParent(value) {
|
|
2661
|
-
if (!value ||
|
|
2662
|
-
!_isValid(value[_DYN_VERSION ], 2, INVALID_VERSION) ||
|
|
2663
|
-
!_isValid(value[_DYN_TRACE_ID ], 32, INVALID_TRACE_ID) ||
|
|
2664
|
-
!_isValid(value[_DYN_SPAN_ID ], 16, INVALID_SPAN_ID) ||
|
|
2665
|
-
!_isValid(_formatFlags(value[_DYN_TRACE_FLAGS ]), 2)) {
|
|
2666
|
-
return false;
|
|
2667
|
-
}
|
|
2668
|
-
return true;
|
|
2669
|
-
}
|
|
2670
|
-
function isSampledFlag(value) {
|
|
2671
|
-
if (isValidTraceParent(value)) {
|
|
2672
|
-
return (value[_DYN_TRACE_FLAGS ] & SAMPLED_FLAG) === SAMPLED_FLAG;
|
|
2673
|
-
}
|
|
2674
|
-
return false;
|
|
2675
|
-
}
|
|
2676
|
-
function formatTraceParent(value) {
|
|
2677
|
-
if (value) {
|
|
2678
|
-
var flags = _formatFlags(value[_DYN_TRACE_FLAGS ]);
|
|
2679
|
-
if (!_isValid(flags, 2)) {
|
|
2680
|
-
flags = "01";
|
|
2499
|
+
else if (config) {
|
|
2500
|
+
var cookieCfg = config.cookieCfg;
|
|
2501
|
+
if (cookieCfg && cookieCfg[strConfigCookieMgr]) {
|
|
2502
|
+
cookieMgr = cookieCfg[strConfigCookieMgr];
|
|
2681
2503
|
}
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
version = DEFAULT_VERSION;
|
|
2504
|
+
else {
|
|
2505
|
+
cookieMgr = createCookieMgr(config);
|
|
2685
2506
|
}
|
|
2686
|
-
return "".concat(version.toLowerCase(), "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), "-").concat(flags.toLowerCase());
|
|
2687
2507
|
}
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
function findW3cTraceParent() {
|
|
2691
|
-
var name = "traceparent";
|
|
2692
|
-
var traceParent = parseTraceParent(findMetaTag(name));
|
|
2693
|
-
if (!traceParent) {
|
|
2694
|
-
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
2508
|
+
if (!cookieMgr) {
|
|
2509
|
+
cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER ]);
|
|
2695
2510
|
}
|
|
2696
|
-
return
|
|
2697
|
-
}
|
|
2698
|
-
|
|
2699
|
-
var pluginStateData = createElmNodeData("plugin");
|
|
2700
|
-
function _getPluginState(plugin) {
|
|
2701
|
-
return pluginStateData.get(plugin, "state", {}, true);
|
|
2511
|
+
return cookieMgr;
|
|
2702
2512
|
}
|
|
2703
|
-
function
|
|
2704
|
-
var
|
|
2705
|
-
var
|
|
2706
|
-
var
|
|
2707
|
-
var
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
isInitialized = pluginState[_DYN_IS_INITIALIZED ];
|
|
2513
|
+
function createCookieMgr(rootConfig, logger) {
|
|
2514
|
+
var cookieMgrConfig;
|
|
2515
|
+
var _path;
|
|
2516
|
+
var _domain;
|
|
2517
|
+
var _enabled;
|
|
2518
|
+
var _getCookieFn;
|
|
2519
|
+
var _setCookieFn;
|
|
2520
|
+
var _delCookieFn;
|
|
2521
|
+
rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
|
|
2522
|
+
onConfigChange(rootConfig, function (details) {
|
|
2523
|
+
details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
|
|
2524
|
+
cookieMgrConfig = details[_DYN_SET_DF ](details.cfg.cookieCfg, defaultConfig$1);
|
|
2525
|
+
var isEnabled = cookieMgrConfig.enabled;
|
|
2526
|
+
if (isNullOrUndefined(isEnabled)) {
|
|
2527
|
+
var cookieEnabled = void 0;
|
|
2528
|
+
if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {
|
|
2529
|
+
cookieEnabled = !rootConfig[strIsCookieUseDisabled];
|
|
2721
2530
|
}
|
|
2722
|
-
if (!
|
|
2723
|
-
|
|
2531
|
+
if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
|
|
2532
|
+
cookieEnabled = !rootConfig[strDisableCookiesUsage];
|
|
2724
2533
|
}
|
|
2725
|
-
|
|
2726
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
2727
|
-
}
|
|
2728
|
-
}
|
|
2729
|
-
arrForEach(initPlugins, function (thePlugin) {
|
|
2730
|
-
var core = processContext[STR_CORE ]();
|
|
2731
|
-
thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
|
|
2732
|
-
pluginState = _getPluginState(thePlugin);
|
|
2733
|
-
if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
|
|
2734
|
-
pluginState[STR_CORE] = core;
|
|
2534
|
+
isEnabled = cookieEnabled;
|
|
2735
2535
|
}
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
result = -1;
|
|
2536
|
+
_path = cookieMgrConfig[STR_PATH ] || "/";
|
|
2537
|
+
_domain = cookieMgrConfig[STR_DOMAIN ];
|
|
2538
|
+
_enabled = isEnabled !== false;
|
|
2539
|
+
_getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;
|
|
2540
|
+
_setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
|
|
2541
|
+
_delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;
|
|
2542
|
+
}, logger);
|
|
2543
|
+
var cookieMgr = {
|
|
2544
|
+
isEnabled: function () {
|
|
2545
|
+
var enabled = _enabled && areCookiesSupported(logger);
|
|
2546
|
+
var gblManager = _globalCookieConfig[strConfigCookieMgr];
|
|
2547
|
+
if (enabled && gblManager && cookieMgr !== gblManager) {
|
|
2548
|
+
enabled = _isMgrEnabled(gblManager);
|
|
2750
2549
|
}
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2550
|
+
return enabled;
|
|
2551
|
+
},
|
|
2552
|
+
setEnabled: function (value) {
|
|
2553
|
+
_enabled = value !== false;
|
|
2554
|
+
},
|
|
2555
|
+
set: function (name, value, maxAgeSec, domain, path) {
|
|
2556
|
+
var result = false;
|
|
2557
|
+
if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
|
|
2558
|
+
var values = {};
|
|
2559
|
+
var theValue = strTrim(value || STR_EMPTY);
|
|
2560
|
+
var idx = strIndexOf(theValue, ";");
|
|
2561
|
+
if (idx !== -1) {
|
|
2562
|
+
theValue = strTrim(strLeft(value, idx));
|
|
2563
|
+
values = _extractParts(strSubstring(value, idx + 1));
|
|
2564
|
+
}
|
|
2565
|
+
setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
|
|
2566
|
+
if (!isNullOrUndefined(maxAgeSec)) {
|
|
2567
|
+
var _isIE = isIE();
|
|
2568
|
+
if (isUndefined(values[strExpires])) {
|
|
2569
|
+
var nowMs = utcNow();
|
|
2570
|
+
var expireMs = nowMs + (maxAgeSec * 1000);
|
|
2571
|
+
if (expireMs > 0) {
|
|
2572
|
+
var expiry = new Date();
|
|
2573
|
+
expiry.setTime(expireMs);
|
|
2574
|
+
setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
if (!_isIE) {
|
|
2578
|
+
setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
var location_1 = getLocation();
|
|
2582
|
+
if (location_1 && location_1.protocol === "https:") {
|
|
2583
|
+
setValue(values, "secure", null, null, isUndefined);
|
|
2584
|
+
if (_allowUaSameSite === null) {
|
|
2585
|
+
_allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
|
|
2586
|
+
}
|
|
2587
|
+
if (_allowUaSameSite) {
|
|
2588
|
+
setValue(values, "SameSite", "None", null, isUndefined);
|
|
2768
2589
|
}
|
|
2769
2590
|
}
|
|
2591
|
+
setValue(values, STR_PATH, path || _path, null, isUndefined);
|
|
2592
|
+
_setCookieFn(name, _formatCookieValue(theValue, values));
|
|
2593
|
+
result = true;
|
|
2770
2594
|
}
|
|
2771
|
-
|
|
2772
|
-
}
|
|
2773
|
-
return _doUnload();
|
|
2774
|
-
}
|
|
2775
|
-
function createDistributedTraceContext(parentCtx) {
|
|
2776
|
-
var trace = {};
|
|
2777
|
-
return {
|
|
2778
|
-
getName: function () {
|
|
2779
|
-
return trace[_DYN_NAME ];
|
|
2780
|
-
},
|
|
2781
|
-
setName: function (newValue) {
|
|
2782
|
-
parentCtx && parentCtx.setName(newValue);
|
|
2783
|
-
trace[_DYN_NAME ] = newValue;
|
|
2784
|
-
},
|
|
2785
|
-
getTraceId: function () {
|
|
2786
|
-
return trace[_DYN_TRACE_ID ];
|
|
2595
|
+
return result;
|
|
2787
2596
|
},
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
if (
|
|
2791
|
-
|
|
2597
|
+
get: function (name) {
|
|
2598
|
+
var value = STR_EMPTY;
|
|
2599
|
+
if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
|
|
2600
|
+
value = _getCookieFn(name);
|
|
2792
2601
|
}
|
|
2602
|
+
return value;
|
|
2793
2603
|
},
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
parentCtx && parentCtx.setSpanId(newValue);
|
|
2799
|
-
if (isValidSpanId(newValue)) {
|
|
2800
|
-
trace[_DYN_SPAN_ID ] = newValue;
|
|
2604
|
+
del: function (name, path) {
|
|
2605
|
+
var result = false;
|
|
2606
|
+
if (_isMgrEnabled(cookieMgr)) {
|
|
2607
|
+
result = cookieMgr.purge(name, path);
|
|
2801
2608
|
}
|
|
2609
|
+
return result;
|
|
2802
2610
|
},
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2611
|
+
purge: function (name, path) {
|
|
2612
|
+
var _a;
|
|
2613
|
+
var result = false;
|
|
2614
|
+
if (areCookiesSupported(logger)) {
|
|
2615
|
+
var values = (_a = {},
|
|
2616
|
+
_a[STR_PATH] = path ? path : "/",
|
|
2617
|
+
_a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
|
|
2618
|
+
_a);
|
|
2619
|
+
if (!isIE()) {
|
|
2620
|
+
values["max-age"] = "0";
|
|
2621
|
+
}
|
|
2622
|
+
_delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
|
|
2623
|
+
result = true;
|
|
2624
|
+
}
|
|
2625
|
+
return result;
|
|
2809
2626
|
}
|
|
2810
2627
|
};
|
|
2628
|
+
cookieMgr[strConfigCookieMgr] = cookieMgr;
|
|
2629
|
+
return cookieMgr;
|
|
2811
2630
|
}
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2631
|
+
function areCookiesSupported(logger) {
|
|
2632
|
+
if (_supportsCookies === null) {
|
|
2633
|
+
_supportsCookies = false;
|
|
2634
|
+
try {
|
|
2635
|
+
var doc = _doc || {};
|
|
2636
|
+
_supportsCookies = doc[strCookie] !== undefined;
|
|
2637
|
+
}
|
|
2638
|
+
catch (e) {
|
|
2639
|
+
_throwInternal(logger, 2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2821
2640
|
}
|
|
2822
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
2823
2641
|
}
|
|
2824
|
-
return
|
|
2642
|
+
return _supportsCookies;
|
|
2825
2643
|
}
|
|
2826
|
-
function
|
|
2827
|
-
var
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2644
|
+
function _extractParts(theValue) {
|
|
2645
|
+
var values = {};
|
|
2646
|
+
if (theValue && theValue[_DYN_LENGTH ]) {
|
|
2647
|
+
var parts = strTrim(theValue)[_DYN_SPLIT ](";");
|
|
2648
|
+
arrForEach(parts, function (thePart) {
|
|
2649
|
+
thePart = strTrim(thePart || STR_EMPTY);
|
|
2650
|
+
if (thePart) {
|
|
2651
|
+
var idx = strIndexOf(thePart, "=");
|
|
2652
|
+
if (idx === -1) {
|
|
2653
|
+
values[thePart] = null;
|
|
2654
|
+
}
|
|
2655
|
+
else {
|
|
2656
|
+
values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));
|
|
2657
|
+
}
|
|
2658
|
+
}
|
|
2659
|
+
});
|
|
2831
2660
|
}
|
|
2832
|
-
|
|
2833
|
-
|
|
2661
|
+
return values;
|
|
2662
|
+
}
|
|
2663
|
+
function _formatDate(theDate, func) {
|
|
2664
|
+
if (isFunction(theDate[func])) {
|
|
2665
|
+
return theDate[func]();
|
|
2834
2666
|
}
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
},
|
|
2852
|
-
getNext: function () {
|
|
2853
|
-
return _nextProxy;
|
|
2854
|
-
},
|
|
2855
|
-
setNext: function (nextPlugin) {
|
|
2856
|
-
_nextProxy = nextPlugin;
|
|
2857
|
-
},
|
|
2858
|
-
iterate: _iterateChain,
|
|
2859
|
-
onComplete: _addOnComplete
|
|
2667
|
+
return null;
|
|
2668
|
+
}
|
|
2669
|
+
function _formatCookieValue(value, values) {
|
|
2670
|
+
var cookieValue = value || STR_EMPTY;
|
|
2671
|
+
objForEachKey(values, function (name, theValue) {
|
|
2672
|
+
cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
|
|
2673
|
+
});
|
|
2674
|
+
return cookieValue;
|
|
2675
|
+
}
|
|
2676
|
+
function _getCookieValue(name) {
|
|
2677
|
+
var cookieValue = STR_EMPTY;
|
|
2678
|
+
if (_doc) {
|
|
2679
|
+
var theCookie = _doc[strCookie] || STR_EMPTY;
|
|
2680
|
+
if (_parsedCookieValue !== theCookie) {
|
|
2681
|
+
_cookieCache = _extractParts(theCookie);
|
|
2682
|
+
_parsedCookieValue = theCookie;
|
|
2860
2683
|
}
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2684
|
+
cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
|
|
2685
|
+
}
|
|
2686
|
+
return cookieValue;
|
|
2687
|
+
}
|
|
2688
|
+
function _setCookieValue(name, cookieValue) {
|
|
2689
|
+
if (_doc) {
|
|
2690
|
+
_doc[strCookie] = name + "=" + cookieValue;
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
function uaDisallowsSameSiteNone(userAgent) {
|
|
2694
|
+
if (!isString(userAgent)) {
|
|
2695
|
+
return false;
|
|
2696
|
+
}
|
|
2697
|
+
if (strContains(userAgent, "CPU iPhone OS 12") || strContains(userAgent, "iPad; CPU OS 12")) {
|
|
2698
|
+
return true;
|
|
2699
|
+
}
|
|
2700
|
+
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strContains(userAgent, "Version/") && strContains(userAgent, "Safari")) {
|
|
2701
|
+
return true;
|
|
2702
|
+
}
|
|
2703
|
+
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strEndsWith(userAgent, "AppleWebKit/605.1.15 (KHTML, like Gecko)")) {
|
|
2704
|
+
return true;
|
|
2705
|
+
}
|
|
2706
|
+
if (strContains(userAgent, "Chrome/5") || strContains(userAgent, "Chrome/6")) {
|
|
2707
|
+
return true;
|
|
2708
|
+
}
|
|
2709
|
+
if (strContains(userAgent, "UnrealEngine") && !strContains(userAgent, "Chrome")) {
|
|
2710
|
+
return true;
|
|
2711
|
+
}
|
|
2712
|
+
if (strContains(userAgent, "UCBrowser/12") || strContains(userAgent, "UCBrowser/11")) {
|
|
2713
|
+
return true;
|
|
2714
|
+
}
|
|
2715
|
+
return false;
|
|
2716
|
+
}
|
|
2717
|
+
|
|
2718
|
+
var defaultValues$1 = {
|
|
2719
|
+
perfEvtsSendAll: false
|
|
2720
|
+
};
|
|
2721
|
+
function _runListeners(listeners, name, isAsync, callback) {
|
|
2722
|
+
arrForEach(listeners, function (listener) {
|
|
2723
|
+
if (listener && listener[name]) {
|
|
2724
|
+
if (isAsync) {
|
|
2725
|
+
scheduleTimeout(function () { return callback(listener); }, 0);
|
|
2726
|
+
}
|
|
2727
|
+
else {
|
|
2728
|
+
try {
|
|
2729
|
+
callback(listener);
|
|
2730
|
+
}
|
|
2731
|
+
catch (e) {
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2866
2734
|
}
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2735
|
+
});
|
|
2736
|
+
}
|
|
2737
|
+
var NotificationManager = /** @class */ (function () {
|
|
2738
|
+
function NotificationManager(config) {
|
|
2739
|
+
this.listeners = [];
|
|
2740
|
+
var perfEvtsSendAll;
|
|
2741
|
+
var cfgHandler = createDynamicConfig(config, defaultValues$1);
|
|
2742
|
+
cfgHandler[_DYN_WATCH ](function (details) {
|
|
2743
|
+
perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;
|
|
2744
|
+
});
|
|
2745
|
+
dynamicProto(NotificationManager, this, function (_self) {
|
|
2746
|
+
_self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
|
|
2747
|
+
_self.listeners[_DYN_PUSH ](listener);
|
|
2748
|
+
};
|
|
2749
|
+
_self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
|
|
2750
|
+
var index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
|
|
2751
|
+
while (index > -1) {
|
|
2752
|
+
_self.listeners[_DYN_SPLICE ](index, 1);
|
|
2753
|
+
index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
|
|
2754
|
+
}
|
|
2755
|
+
};
|
|
2756
|
+
_self[STR_EVENTS_SENT ] = function (events) {
|
|
2757
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SENT, true, function (listener) {
|
|
2758
|
+
listener[STR_EVENTS_SENT ](events);
|
|
2759
|
+
});
|
|
2760
|
+
};
|
|
2761
|
+
_self[STR_EVENTS_DISCARDED ] = function (events, reason) {
|
|
2762
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_DISCARDED, true, function (listener) {
|
|
2763
|
+
listener[STR_EVENTS_DISCARDED ](events, reason);
|
|
2764
|
+
});
|
|
2765
|
+
};
|
|
2766
|
+
_self[STR_EVENTS_SEND_REQUEST ] = function (sendReason, isAsync) {
|
|
2767
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
|
|
2768
|
+
listener[STR_EVENTS_SEND_REQUEST ](sendReason, isAsync);
|
|
2769
|
+
});
|
|
2770
|
+
};
|
|
2771
|
+
_self[STR_PERF_EVENT ] = function (perfEvent) {
|
|
2772
|
+
if (perfEvent) {
|
|
2773
|
+
if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
|
|
2774
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
|
|
2775
|
+
if (perfEvent[_DYN_IS_ASYNC ]) {
|
|
2776
|
+
scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
|
|
2777
|
+
}
|
|
2778
|
+
else {
|
|
2779
|
+
listener[STR_PERF_EVENT ](perfEvent);
|
|
2780
|
+
}
|
|
2781
|
+
});
|
|
2782
|
+
}
|
|
2783
|
+
}
|
|
2784
|
+
};
|
|
2785
|
+
});
|
|
2786
|
+
}
|
|
2787
|
+
NotificationManager.__ieDyn=1;
|
|
2788
|
+
return NotificationManager;
|
|
2789
|
+
}());
|
|
2790
|
+
|
|
2791
|
+
var strExecutionContextKey = "ctx";
|
|
2792
|
+
var strParentContextKey = "ParentContextKey";
|
|
2793
|
+
var strChildrenContextKey = "ChildrenContextKey";
|
|
2794
|
+
var _defaultPerfManager = null;
|
|
2795
|
+
var PerfEvent = /** @class */ (function () {
|
|
2796
|
+
function PerfEvent(name, payloadDetails, isAsync) {
|
|
2797
|
+
var _self = this;
|
|
2798
|
+
_self.start = utcNow();
|
|
2799
|
+
_self[_DYN_NAME ] = name;
|
|
2800
|
+
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
2801
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
2802
|
+
if (isFunction(payloadDetails)) {
|
|
2803
|
+
var theDetails_1;
|
|
2804
|
+
objDefineAccessors(_self, "payload", function () {
|
|
2805
|
+
if (!theDetails_1 && isFunction(payloadDetails)) {
|
|
2806
|
+
theDetails_1 = payloadDetails();
|
|
2807
|
+
payloadDetails = null;
|
|
2808
|
+
}
|
|
2809
|
+
return theDetails_1;
|
|
2872
2810
|
});
|
|
2873
2811
|
}
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
2881
|
-
arrForEach(onComplete, function (completeDetails) {
|
|
2882
|
-
try {
|
|
2883
|
-
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
2884
|
-
}
|
|
2885
|
-
catch (e) {
|
|
2886
|
-
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
2887
|
-
}
|
|
2888
|
-
});
|
|
2889
|
-
_onComplete = [];
|
|
2812
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
2813
|
+
if (key) {
|
|
2814
|
+
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
2815
|
+
return _self[key];
|
|
2816
|
+
}
|
|
2817
|
+
return (_self[strExecutionContextKey] || {})[key];
|
|
2890
2818
|
}
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2819
|
+
return null;
|
|
2820
|
+
};
|
|
2821
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2822
|
+
if (key) {
|
|
2823
|
+
if (key === PerfEvent[strParentContextKey]) {
|
|
2824
|
+
if (!_self[key]) {
|
|
2825
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
2826
|
+
}
|
|
2827
|
+
_self[key] = value;
|
|
2828
|
+
}
|
|
2829
|
+
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
2830
|
+
_self[key] = value;
|
|
2831
|
+
}
|
|
2832
|
+
else {
|
|
2833
|
+
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2834
|
+
ctx[key] = value;
|
|
2835
|
+
}
|
|
2901
2836
|
}
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2837
|
+
};
|
|
2838
|
+
_self[_DYN_COMPLETE ] = function () {
|
|
2839
|
+
var childTime = 0;
|
|
2840
|
+
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2841
|
+
if (isArray(childEvts)) {
|
|
2842
|
+
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
2843
|
+
var childEvt = childEvts[lp];
|
|
2844
|
+
if (childEvt) {
|
|
2845
|
+
childTime += childEvt[_DYN_TIME ];
|
|
2846
|
+
}
|
|
2908
2847
|
}
|
|
2909
|
-
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
2910
|
-
idCfg = extCfg[identifier];
|
|
2911
2848
|
}
|
|
2912
|
-
|
|
2913
|
-
|
|
2849
|
+
_self[_DYN_TIME ] = utcNow() - _self.start;
|
|
2850
|
+
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
2851
|
+
_self[_DYN_COMPLETE ] = function () { };
|
|
2852
|
+
};
|
|
2914
2853
|
}
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2854
|
+
PerfEvent.ParentContextKey = "parent";
|
|
2855
|
+
PerfEvent.ChildrenContextKey = "childEvts";
|
|
2856
|
+
return PerfEvent;
|
|
2857
|
+
}());
|
|
2858
|
+
var PerfManager = /** @class */ (function () {
|
|
2859
|
+
function PerfManager(manager) {
|
|
2860
|
+
this.ctx = {};
|
|
2861
|
+
dynamicProto(PerfManager, this, function (_self) {
|
|
2862
|
+
_self.create = function (src, payloadDetails, isAsync) {
|
|
2863
|
+
return new PerfEvent(src, payloadDetails, isAsync);
|
|
2864
|
+
};
|
|
2865
|
+
_self.fire = function (perfEvent) {
|
|
2866
|
+
if (perfEvent) {
|
|
2867
|
+
perfEvent[_DYN_COMPLETE ]();
|
|
2868
|
+
if (manager && isFunction(manager[STR_PERF_EVENT ])) {
|
|
2869
|
+
manager[STR_PERF_EVENT ](perfEvent);
|
|
2923
2870
|
}
|
|
2924
2871
|
}
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2872
|
+
};
|
|
2873
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2874
|
+
if (key) {
|
|
2875
|
+
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2876
|
+
ctx[key] = value;
|
|
2877
|
+
}
|
|
2878
|
+
};
|
|
2879
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
2880
|
+
return (_self[strExecutionContextKey] || {})[key];
|
|
2881
|
+
};
|
|
2882
|
+
});
|
|
2929
2883
|
}
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
theValue = rootConfig[field];
|
|
2884
|
+
PerfManager.__ieDyn=1;
|
|
2885
|
+
return PerfManager;
|
|
2886
|
+
}());
|
|
2887
|
+
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
2888
|
+
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
2889
|
+
if (mgrSource) {
|
|
2890
|
+
var perfMgr = mgrSource;
|
|
2891
|
+
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
2892
|
+
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
2940
2893
|
}
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2894
|
+
if (perfMgr) {
|
|
2895
|
+
var perfEvt = void 0;
|
|
2896
|
+
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
2897
|
+
try {
|
|
2898
|
+
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
2899
|
+
if (perfEvt) {
|
|
2900
|
+
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
2901
|
+
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
2902
|
+
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
2903
|
+
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2904
|
+
if (!children) {
|
|
2905
|
+
children = [];
|
|
2906
|
+
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
2907
|
+
}
|
|
2908
|
+
children[_DYN_PUSH ](perfEvt);
|
|
2909
|
+
}
|
|
2910
|
+
}
|
|
2911
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
2912
|
+
return func(perfEvt);
|
|
2913
|
+
}
|
|
2914
|
+
}
|
|
2915
|
+
catch (ex) {
|
|
2916
|
+
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
2917
|
+
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
2918
|
+
}
|
|
2919
|
+
}
|
|
2920
|
+
finally {
|
|
2921
|
+
if (perfEvt) {
|
|
2922
|
+
perfMgr.fire(perfEvt);
|
|
2923
|
+
}
|
|
2924
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
2949
2925
|
}
|
|
2950
2926
|
}
|
|
2951
2927
|
}
|
|
2952
|
-
return
|
|
2928
|
+
return func();
|
|
2953
2929
|
}
|
|
2954
|
-
function
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2930
|
+
function setGblPerfMgr(perfManager) {
|
|
2931
|
+
_defaultPerfManager = perfManager;
|
|
2932
|
+
}
|
|
2933
|
+
function getGblPerfMgr() {
|
|
2934
|
+
return _defaultPerfManager;
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2937
|
+
var Undefined = strShimUndefined;
|
|
2938
|
+
function newGuid() {
|
|
2939
|
+
var uuid = generateW3CId();
|
|
2940
|
+
return strSubstring(uuid, 0, 8) + "-" + strSubstring(uuid, 8, 12) + "-" + strSubstring(uuid, 12, 16) + "-" + strSubstring(uuid, 16, 20) + "-" + strSubstring(uuid, 20);
|
|
2941
|
+
}
|
|
2942
|
+
function generateW3CId() {
|
|
2943
|
+
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2944
|
+
var oct = STR_EMPTY, tmp;
|
|
2945
|
+
for (var a = 0; a < 4; a++) {
|
|
2946
|
+
tmp = random32();
|
|
2947
|
+
oct +=
|
|
2948
|
+
hexValues[tmp & 0xF] +
|
|
2949
|
+
hexValues[tmp >> 4 & 0xF] +
|
|
2950
|
+
hexValues[tmp >> 8 & 0xF] +
|
|
2951
|
+
hexValues[tmp >> 12 & 0xF] +
|
|
2952
|
+
hexValues[tmp >> 16 & 0xF] +
|
|
2953
|
+
hexValues[tmp >> 20 & 0xF] +
|
|
2954
|
+
hexValues[tmp >> 24 & 0xF] +
|
|
2955
|
+
hexValues[tmp >> 28 & 0xF];
|
|
2964
2956
|
}
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2957
|
+
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2958
|
+
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
var TRACE_PARENT_REGEX = /^([\da-f]{2})-([\da-f]{32})-([\da-f]{16})-([\da-f]{2})(-[^\s]{1,64})?$/i;
|
|
2962
|
+
var DEFAULT_VERSION = "00";
|
|
2963
|
+
var INVALID_VERSION = "ff";
|
|
2964
|
+
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2965
|
+
var INVALID_SPAN_ID = "0000000000000000";
|
|
2966
|
+
var SAMPLED_FLAG = 0x01;
|
|
2967
|
+
function _isValid(value, len, invalidValue) {
|
|
2968
|
+
if (value && value[_DYN_LENGTH ] === len && value !== invalidValue) {
|
|
2969
|
+
return !!value.match(/^[\da-f]*$/i);
|
|
2971
2970
|
}
|
|
2972
|
-
|
|
2973
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
2974
|
-
return context;
|
|
2971
|
+
return false;
|
|
2975
2972
|
}
|
|
2976
|
-
function
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
var context = internalContext.ctx;
|
|
2980
|
-
function _processNext(unloadState) {
|
|
2981
|
-
var nextPlugin = internalContext._next();
|
|
2982
|
-
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
2983
|
-
return !nextPlugin;
|
|
2973
|
+
function _formatValue(value, len, defValue) {
|
|
2974
|
+
if (_isValid(value, len)) {
|
|
2975
|
+
return value;
|
|
2984
2976
|
}
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
2977
|
+
return defValue;
|
|
2978
|
+
}
|
|
2979
|
+
function _formatFlags(value) {
|
|
2980
|
+
if (isNaN(value) || value < 0 || value > 255) {
|
|
2981
|
+
value = 0x01;
|
|
2991
2982
|
}
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2983
|
+
var result = value.toString(16);
|
|
2984
|
+
while (result[_DYN_LENGTH ] < 2) {
|
|
2985
|
+
result = "0" + result;
|
|
2986
|
+
}
|
|
2987
|
+
return result;
|
|
2995
2988
|
}
|
|
2996
|
-
function
|
|
2997
|
-
var
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
2989
|
+
function createTraceParent(traceId, spanId, flags, version) {
|
|
2990
|
+
var _a;
|
|
2991
|
+
return _a = {},
|
|
2992
|
+
_a[_DYN_VERSION ] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
|
|
2993
|
+
_a[_DYN_TRACE_ID ] = isValidTraceId(traceId) ? traceId : generateW3CId(),
|
|
2994
|
+
_a[_DYN_SPAN_ID ] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
|
|
2995
|
+
_a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,
|
|
2996
|
+
_a;
|
|
2997
|
+
}
|
|
2998
|
+
function parseTraceParent(value) {
|
|
2999
|
+
var _a;
|
|
3000
|
+
if (!value) {
|
|
3001
|
+
return null;
|
|
3006
3002
|
}
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
if (isArray(plugins)) {
|
|
3010
|
-
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3011
|
-
}
|
|
3012
|
-
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3003
|
+
if (isArray(value)) {
|
|
3004
|
+
value = value[0] || "";
|
|
3013
3005
|
}
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
return context;
|
|
3017
|
-
}
|
|
3018
|
-
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
3019
|
-
var firstProxy = null;
|
|
3020
|
-
var add = startAt ? false : true;
|
|
3021
|
-
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
3022
|
-
var lastProxy_1 = null;
|
|
3023
|
-
arrForEach(plugins, function (thePlugin) {
|
|
3024
|
-
if (!add && startAt === thePlugin) {
|
|
3025
|
-
add = true;
|
|
3026
|
-
}
|
|
3027
|
-
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
3028
|
-
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
3029
|
-
if (!firstProxy) {
|
|
3030
|
-
firstProxy = newProxy;
|
|
3031
|
-
}
|
|
3032
|
-
if (lastProxy_1) {
|
|
3033
|
-
lastProxy_1._setNext(newProxy);
|
|
3034
|
-
}
|
|
3035
|
-
lastProxy_1 = newProxy;
|
|
3036
|
-
}
|
|
3037
|
-
});
|
|
3006
|
+
if (!value || !isString(value) || value[_DYN_LENGTH ] > 8192) {
|
|
3007
|
+
return null;
|
|
3038
3008
|
}
|
|
3039
|
-
|
|
3040
|
-
|
|
3009
|
+
var match = TRACE_PARENT_REGEX.exec(strTrim(value));
|
|
3010
|
+
if (!match ||
|
|
3011
|
+
match[1] === INVALID_VERSION ||
|
|
3012
|
+
match[2] === INVALID_TRACE_ID ||
|
|
3013
|
+
match[3] === INVALID_SPAN_ID) {
|
|
3014
|
+
return null;
|
|
3041
3015
|
}
|
|
3042
|
-
return
|
|
3016
|
+
return _a = {},
|
|
3017
|
+
_a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3018
|
+
_a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3019
|
+
_a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3020
|
+
_a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
|
|
3021
|
+
_a;
|
|
3043
3022
|
}
|
|
3044
|
-
function
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3023
|
+
function isValidTraceId(value) {
|
|
3024
|
+
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
3025
|
+
}
|
|
3026
|
+
function isValidSpanId(value) {
|
|
3027
|
+
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
3028
|
+
}
|
|
3029
|
+
function isValidTraceParent(value) {
|
|
3030
|
+
if (!value ||
|
|
3031
|
+
!_isValid(value[_DYN_VERSION ], 2, INVALID_VERSION) ||
|
|
3032
|
+
!_isValid(value[_DYN_TRACE_ID ], 32, INVALID_TRACE_ID) ||
|
|
3033
|
+
!_isValid(value[_DYN_SPAN_ID ], 16, INVALID_SPAN_ID) ||
|
|
3034
|
+
!_isValid(_formatFlags(value[_DYN_TRACE_FLAGS ]), 2)) {
|
|
3035
|
+
return false;
|
|
3051
3036
|
}
|
|
3052
|
-
|
|
3053
|
-
|
|
3037
|
+
return true;
|
|
3038
|
+
}
|
|
3039
|
+
function isSampledFlag(value) {
|
|
3040
|
+
if (isValidTraceParent(value)) {
|
|
3041
|
+
return (value[_DYN_TRACE_FLAGS ] & SAMPLED_FLAG) === SAMPLED_FLAG;
|
|
3054
3042
|
}
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
processTelemetry: _processTelemetry,
|
|
3063
|
-
unload: _unloadPlugin,
|
|
3064
|
-
update: _updatePlugin,
|
|
3065
|
-
_id: chainId,
|
|
3066
|
-
_setNext: function (nextPlugin) {
|
|
3067
|
-
nextProxy = nextPlugin;
|
|
3068
|
-
}
|
|
3069
|
-
};
|
|
3070
|
-
function _getTelCtx() {
|
|
3071
|
-
var itemCtx;
|
|
3072
|
-
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
3073
|
-
itemCtx = plugin[strGetTelCtx]();
|
|
3043
|
+
return false;
|
|
3044
|
+
}
|
|
3045
|
+
function formatTraceParent(value) {
|
|
3046
|
+
if (value) {
|
|
3047
|
+
var flags = _formatFlags(value[_DYN_TRACE_FLAGS ]);
|
|
3048
|
+
if (!_isValid(flags, 2)) {
|
|
3049
|
+
flags = "01";
|
|
3074
3050
|
}
|
|
3075
|
-
|
|
3076
|
-
|
|
3051
|
+
var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
|
|
3052
|
+
if (version !== "00" && version !== "ff") {
|
|
3053
|
+
version = DEFAULT_VERSION;
|
|
3077
3054
|
}
|
|
3078
|
-
return
|
|
3055
|
+
return "".concat(version.toLowerCase(), "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), "-").concat(flags.toLowerCase());
|
|
3079
3056
|
}
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
itemCtx.setNext(nextProxy);
|
|
3088
|
-
if (plugin) {
|
|
3089
|
-
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
3090
|
-
hasRunContext[chainId] = true;
|
|
3091
|
-
try {
|
|
3092
|
-
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3093
|
-
if (nextId) {
|
|
3094
|
-
hasRunContext[nextId] = false;
|
|
3095
|
-
}
|
|
3096
|
-
hasRun = processPluginFn(itemCtx);
|
|
3097
|
-
}
|
|
3098
|
-
catch (error) {
|
|
3099
|
-
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
3100
|
-
if (hasNextRun) {
|
|
3101
|
-
hasRun = true;
|
|
3102
|
-
}
|
|
3103
|
-
if (!nextProxy || !hasNextRun) {
|
|
3104
|
-
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
3105
|
-
}
|
|
3106
|
-
}
|
|
3107
|
-
}, details, isAsync);
|
|
3108
|
-
}
|
|
3109
|
-
return hasRun;
|
|
3057
|
+
return "";
|
|
3058
|
+
}
|
|
3059
|
+
function findW3cTraceParent() {
|
|
3060
|
+
var name = "traceparent";
|
|
3061
|
+
var traceParent = parseTraceParent(findMetaTag(name));
|
|
3062
|
+
if (!traceParent) {
|
|
3063
|
+
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
3110
3064
|
}
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3065
|
+
return traceParent;
|
|
3066
|
+
}
|
|
3067
|
+
|
|
3068
|
+
var pluginStateData = createElmNodeData("plugin");
|
|
3069
|
+
function _getPluginState(plugin) {
|
|
3070
|
+
return pluginStateData.get(plugin, "state", {}, true);
|
|
3071
|
+
}
|
|
3072
|
+
function initializePlugins(processContext, extensions) {
|
|
3073
|
+
var initPlugins = [];
|
|
3074
|
+
var lastPlugin = null;
|
|
3075
|
+
var proxy = processContext[_DYN_GET_NEXT ]();
|
|
3076
|
+
var pluginState;
|
|
3077
|
+
while (proxy) {
|
|
3078
|
+
var thePlugin = proxy[_DYN_GET_PLUGIN ]();
|
|
3079
|
+
if (thePlugin) {
|
|
3080
|
+
if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN ] && thePlugin[STR_PROCESS_TELEMETRY ]) {
|
|
3081
|
+
lastPlugin[_DYN_SET_NEXT_PLUGIN ](thePlugin);
|
|
3116
3082
|
}
|
|
3117
|
-
var
|
|
3118
|
-
if (
|
|
3119
|
-
|
|
3083
|
+
var isInitialized = false;
|
|
3084
|
+
if (isFunction(thePlugin[_DYN_IS_INITIALIZED ])) {
|
|
3085
|
+
isInitialized = thePlugin[_DYN_IS_INITIALIZED ]();
|
|
3120
3086
|
}
|
|
3121
|
-
|
|
3122
|
-
|
|
3087
|
+
else {
|
|
3088
|
+
pluginState = _getPluginState(thePlugin);
|
|
3089
|
+
isInitialized = pluginState[_DYN_IS_INITIALIZED ];
|
|
3123
3090
|
}
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
}
|
|
3127
|
-
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
3128
|
-
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
3129
|
-
}
|
|
3130
|
-
}
|
|
3131
|
-
function _unloadPlugin(unloadCtx, unloadState) {
|
|
3132
|
-
function _callTeardown() {
|
|
3133
|
-
var hasRun = false;
|
|
3134
|
-
if (plugin) {
|
|
3135
|
-
var pluginState = _getPluginState(plugin);
|
|
3136
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3137
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3138
|
-
pluginState[STR_CORE ] = null;
|
|
3139
|
-
pluginState[_DYN_TEARDOWN ] = true;
|
|
3140
|
-
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
3141
|
-
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
3142
|
-
hasRun = true;
|
|
3143
|
-
}
|
|
3144
|
-
}
|
|
3091
|
+
if (!isInitialized) {
|
|
3092
|
+
initPlugins[_DYN_PUSH ](thePlugin);
|
|
3145
3093
|
}
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
3149
|
-
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
3094
|
+
lastPlugin = thePlugin;
|
|
3095
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3150
3096
|
}
|
|
3151
3097
|
}
|
|
3152
|
-
function
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3159
|
-
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
3160
|
-
hasRun = true;
|
|
3161
|
-
}
|
|
3162
|
-
}
|
|
3163
|
-
}
|
|
3164
|
-
return hasRun;
|
|
3165
|
-
}
|
|
3166
|
-
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
3167
|
-
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
3098
|
+
arrForEach(initPlugins, function (thePlugin) {
|
|
3099
|
+
var core = processContext[STR_CORE ]();
|
|
3100
|
+
thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
|
|
3101
|
+
pluginState = _getPluginState(thePlugin);
|
|
3102
|
+
if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
|
|
3103
|
+
pluginState[STR_CORE] = core;
|
|
3168
3104
|
}
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
var ProcessTelemetryContext = /** @class */ (function () {
|
|
3173
|
-
function ProcessTelemetryContext(pluginChain, config, core, startAt) {
|
|
3174
|
-
var _self = this;
|
|
3175
|
-
var context = createProcessTelemetryContext(pluginChain, config, core, startAt);
|
|
3176
|
-
proxyFunctions(_self, context, objKeys(context));
|
|
3177
|
-
}
|
|
3178
|
-
return ProcessTelemetryContext;
|
|
3179
|
-
}());
|
|
3180
|
-
|
|
3181
|
-
var ChannelControllerPriority = 500;
|
|
3182
|
-
var ChannelValidationMessage = "Channel has invalid priority - ";
|
|
3183
|
-
function _addChannelQueue(channelQueue, queue, core) {
|
|
3184
|
-
if (queue && isArray(queue) && queue[_DYN_LENGTH ] > 0) {
|
|
3185
|
-
queue = queue.sort(function (a, b) {
|
|
3186
|
-
return a[STR_PRIORITY ] - b[STR_PRIORITY ];
|
|
3187
|
-
});
|
|
3188
|
-
arrForEach(queue, function (queueItem) {
|
|
3189
|
-
if (queueItem[STR_PRIORITY ] < ChannelControllerPriority) {
|
|
3190
|
-
throwError(ChannelValidationMessage + queueItem[_DYN_IDENTIFIER ]);
|
|
3191
|
-
}
|
|
3192
|
-
});
|
|
3193
|
-
channelQueue[_DYN_PUSH ]({
|
|
3194
|
-
queue: objFreeze(queue),
|
|
3195
|
-
chain: createTelemetryProxyChain(queue, core[_DYN_CONFIG ], core)
|
|
3196
|
-
});
|
|
3197
|
-
}
|
|
3105
|
+
pluginState[_DYN_IS_INITIALIZED ] = true;
|
|
3106
|
+
delete pluginState[_DYN_TEARDOWN ];
|
|
3107
|
+
});
|
|
3198
3108
|
}
|
|
3199
|
-
function
|
|
3200
|
-
function
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
if (
|
|
3208
|
-
|
|
3209
|
-
onComplete = null;
|
|
3109
|
+
function sortPlugins(plugins) {
|
|
3110
|
+
return plugins.sort(function (extA, extB) {
|
|
3111
|
+
var result = 0;
|
|
3112
|
+
if (extB) {
|
|
3113
|
+
var bHasProcess = extB[STR_PROCESS_TELEMETRY];
|
|
3114
|
+
if (extA[STR_PROCESS_TELEMETRY]) {
|
|
3115
|
+
result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;
|
|
3116
|
+
}
|
|
3117
|
+
else if (bHasProcess) {
|
|
3118
|
+
result = -1;
|
|
3210
3119
|
}
|
|
3211
3120
|
}
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3215
|
-
var channelChain = channels.chain;
|
|
3216
|
-
var chainCtx = itemCtx[_DYN_CREATE_NEW ](channelChain);
|
|
3217
|
-
chainCtx[_DYN_ON_COMPLETE ](_runChainOnComplete);
|
|
3218
|
-
processFn(chainCtx);
|
|
3219
|
-
}
|
|
3220
|
-
else {
|
|
3221
|
-
waiting--;
|
|
3222
|
-
}
|
|
3223
|
-
});
|
|
3121
|
+
else {
|
|
3122
|
+
result = extA ? 1 : -1;
|
|
3224
3123
|
}
|
|
3225
|
-
|
|
3226
|
-
}
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
function _doTeardown(unloadCtx, unloadState) {
|
|
3239
|
-
var theUnloadState = unloadState || {
|
|
3240
|
-
reason: 0 ,
|
|
3241
|
-
isAsync: false
|
|
3242
|
-
};
|
|
3243
|
-
_processChannelQueue(channelQueue, unloadCtx, function (chainCtx) {
|
|
3244
|
-
chainCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
3245
|
-
}, function () {
|
|
3246
|
-
unloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
3247
|
-
isInitialized = false;
|
|
3248
|
-
});
|
|
3249
|
-
return true;
|
|
3250
|
-
}
|
|
3251
|
-
function _getChannel(pluginIdentifier) {
|
|
3252
|
-
var thePlugin = null;
|
|
3253
|
-
if (channelQueue && channelQueue[_DYN_LENGTH ] > 0) {
|
|
3254
|
-
arrForEach(channelQueue, function (channels) {
|
|
3255
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3256
|
-
arrForEach(channels.queue, function (ext) {
|
|
3257
|
-
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier) {
|
|
3258
|
-
thePlugin = ext;
|
|
3259
|
-
return -1;
|
|
3260
|
-
}
|
|
3261
|
-
});
|
|
3262
|
-
if (thePlugin) {
|
|
3263
|
-
return -1;
|
|
3124
|
+
return result;
|
|
3125
|
+
});
|
|
3126
|
+
}
|
|
3127
|
+
function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {
|
|
3128
|
+
var idx = 0;
|
|
3129
|
+
function _doUnload() {
|
|
3130
|
+
while (idx < components[_DYN_LENGTH ]) {
|
|
3131
|
+
var component = components[idx++];
|
|
3132
|
+
if (component) {
|
|
3133
|
+
var func = component._doUnload || component[_DYN__DO_TEARDOWN ];
|
|
3134
|
+
if (isFunction(func)) {
|
|
3135
|
+
if (func[_DYN_CALL ](component, unloadCtx, unloadState, _doUnload) === true) {
|
|
3136
|
+
return true;
|
|
3264
3137
|
}
|
|
3265
3138
|
}
|
|
3266
|
-
}
|
|
3139
|
+
}
|
|
3267
3140
|
}
|
|
3268
|
-
return thePlugin;
|
|
3269
3141
|
}
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3278
|
-
initializePlugins(createProcessTelemetryContext(channels.chain, config, core), extensions);
|
|
3279
|
-
}
|
|
3280
|
-
});
|
|
3142
|
+
return _doUnload();
|
|
3143
|
+
}
|
|
3144
|
+
function createDistributedTraceContext(parentCtx) {
|
|
3145
|
+
var trace = {};
|
|
3146
|
+
return {
|
|
3147
|
+
getName: function () {
|
|
3148
|
+
return trace[_DYN_NAME ];
|
|
3281
3149
|
},
|
|
3282
|
-
|
|
3283
|
-
|
|
3150
|
+
setName: function (newValue) {
|
|
3151
|
+
parentCtx && parentCtx.setName(newValue);
|
|
3152
|
+
trace[_DYN_NAME ] = newValue;
|
|
3284
3153
|
},
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
chainCtx[_DYN_PROCESS_NEXT ](item);
|
|
3288
|
-
}, function () {
|
|
3289
|
-
itemCtx[_DYN_PROCESS_NEXT ](item);
|
|
3290
|
-
});
|
|
3154
|
+
getTraceId: function () {
|
|
3155
|
+
return trace[_DYN_TRACE_ID ];
|
|
3291
3156
|
},
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
});
|
|
3298
|
-
}, null);
|
|
3157
|
+
setTraceId: function (newValue) {
|
|
3158
|
+
parentCtx && parentCtx.setTraceId(newValue);
|
|
3159
|
+
if (isValidTraceId(newValue)) {
|
|
3160
|
+
trace[_DYN_TRACE_ID ] = newValue;
|
|
3161
|
+
}
|
|
3299
3162
|
},
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
chainCtx.iterate(function (plugin) {
|
|
3303
|
-
plugin.resume && plugin.resume();
|
|
3304
|
-
});
|
|
3305
|
-
}, null);
|
|
3163
|
+
getSpanId: function () {
|
|
3164
|
+
return trace[_DYN_SPAN_ID ];
|
|
3306
3165
|
},
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
waiting--;
|
|
3316
|
-
if (doneIterating && waiting === 0) {
|
|
3317
|
-
cbTimer && cbTimer.cancel();
|
|
3318
|
-
cbTimer = null;
|
|
3319
|
-
callBack && callBack(doneIterating);
|
|
3320
|
-
callBack = null;
|
|
3321
|
-
}
|
|
3322
|
-
}
|
|
3323
|
-
_processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {
|
|
3324
|
-
chainCtx.iterate(function (plugin) {
|
|
3325
|
-
if (plugin[_DYN_FLUSH ]) {
|
|
3326
|
-
waiting++;
|
|
3327
|
-
var handled_1 = false;
|
|
3328
|
-
if (!plugin[_DYN_FLUSH ](isAsync, function () {
|
|
3329
|
-
handled_1 = true;
|
|
3330
|
-
doCallback();
|
|
3331
|
-
}, sendReason)) {
|
|
3332
|
-
if (!handled_1) {
|
|
3333
|
-
if (isAsync && cbTimer == null) {
|
|
3334
|
-
cbTimer = scheduleTimeout(function () {
|
|
3335
|
-
cbTimer = null;
|
|
3336
|
-
doCallback();
|
|
3337
|
-
}, cbTimeout);
|
|
3338
|
-
}
|
|
3339
|
-
else {
|
|
3340
|
-
doCallback();
|
|
3341
|
-
}
|
|
3342
|
-
}
|
|
3343
|
-
}
|
|
3344
|
-
}
|
|
3345
|
-
});
|
|
3346
|
-
}, function () {
|
|
3347
|
-
doneIterating = true;
|
|
3348
|
-
doCallback();
|
|
3349
|
-
});
|
|
3350
|
-
return true;
|
|
3166
|
+
setSpanId: function (newValue) {
|
|
3167
|
+
parentCtx && parentCtx.setSpanId(newValue);
|
|
3168
|
+
if (isValidSpanId(newValue)) {
|
|
3169
|
+
trace[_DYN_SPAN_ID ] = newValue;
|
|
3170
|
+
}
|
|
3171
|
+
},
|
|
3172
|
+
getTraceFlags: function () {
|
|
3173
|
+
return trace[_DYN_TRACE_FLAGS ];
|
|
3351
3174
|
},
|
|
3352
|
-
|
|
3353
|
-
|
|
3175
|
+
setTraceFlags: function (newTraceFlags) {
|
|
3176
|
+
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
3177
|
+
trace[_DYN_TRACE_FLAGS ] = newTraceFlags;
|
|
3354
3178
|
}
|
|
3355
3179
|
};
|
|
3356
|
-
return channelController;
|
|
3357
|
-
}
|
|
3358
|
-
function createChannelQueues(channels, extensions, core) {
|
|
3359
|
-
var channelQueue = [];
|
|
3360
|
-
if (channels) {
|
|
3361
|
-
arrForEach(channels, function (queue) { return _addChannelQueue(channelQueue, queue, core); });
|
|
3362
|
-
}
|
|
3363
|
-
if (extensions) {
|
|
3364
|
-
var extensionQueue_1 = [];
|
|
3365
|
-
arrForEach(extensions, function (plugin) {
|
|
3366
|
-
if (plugin[STR_PRIORITY ] > ChannelControllerPriority) {
|
|
3367
|
-
extensionQueue_1[_DYN_PUSH ](plugin);
|
|
3368
|
-
}
|
|
3369
|
-
});
|
|
3370
|
-
_addChannelQueue(channelQueue, extensionQueue_1, core);
|
|
3371
|
-
}
|
|
3372
|
-
return channelQueue;
|
|
3373
3180
|
}
|
|
3374
3181
|
|
|
3375
|
-
var
|
|
3376
|
-
var
|
|
3377
|
-
var
|
|
3378
|
-
var
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
var _supportsCookies = null;
|
|
3384
|
-
var _allowUaSameSite = null;
|
|
3385
|
-
var _parsedCookieValue = null;
|
|
3386
|
-
var _doc = getDocument();
|
|
3387
|
-
var _cookieCache = {};
|
|
3388
|
-
var _globalCookieConfig = {};
|
|
3389
|
-
var defaultConfig$1 = objDeepFreeze((_a$2 = {},
|
|
3390
|
-
_a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
|
|
3391
|
-
_a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
|
|
3392
|
-
_a$2.enabled = UNDEFINED_VALUE,
|
|
3393
|
-
_a$2));
|
|
3394
|
-
var rootDefaultConfig = (_b = {
|
|
3395
|
-
cookieCfg: {},
|
|
3396
|
-
cookieDomain: UNDEFINED_VALUE,
|
|
3397
|
-
cookiePath: UNDEFINED_VALUE
|
|
3398
|
-
},
|
|
3399
|
-
_b[strDisableCookiesUsage] = UNDEFINED_VALUE,
|
|
3400
|
-
_b);
|
|
3401
|
-
function _gblCookieMgr(config, logger) {
|
|
3402
|
-
var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
|
|
3403
|
-
if (!inst) {
|
|
3404
|
-
inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);
|
|
3405
|
-
_globalCookieConfig[strConfigCookieMgr] = inst;
|
|
3406
|
-
}
|
|
3407
|
-
return inst;
|
|
3408
|
-
}
|
|
3409
|
-
function _isMgrEnabled(cookieMgr) {
|
|
3410
|
-
if (cookieMgr) {
|
|
3411
|
-
return cookieMgr.isEnabled();
|
|
3412
|
-
}
|
|
3413
|
-
return true;
|
|
3414
|
-
}
|
|
3415
|
-
function _isIgnoredCookie(cookieMgrCfg, name) {
|
|
3416
|
-
if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {
|
|
3417
|
-
return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;
|
|
3418
|
-
}
|
|
3419
|
-
return false;
|
|
3420
|
-
}
|
|
3421
|
-
function _isBlockedCookie(cookieMgrCfg, name) {
|
|
3422
|
-
if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {
|
|
3423
|
-
if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {
|
|
3424
|
-
return true;
|
|
3182
|
+
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
3183
|
+
var strHasRunFlags = "_hasRun";
|
|
3184
|
+
var strGetTelCtx = "_getTelCtx";
|
|
3185
|
+
var _chainId = 0;
|
|
3186
|
+
function _getNextProxyStart(proxy, core, startAt) {
|
|
3187
|
+
while (proxy) {
|
|
3188
|
+
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
3189
|
+
return proxy;
|
|
3425
3190
|
}
|
|
3191
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3426
3192
|
}
|
|
3427
|
-
return
|
|
3193
|
+
return createTelemetryProxyChain([startAt], core.config || {}, core);
|
|
3428
3194
|
}
|
|
3429
|
-
function
|
|
3430
|
-
var
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
else if (config) {
|
|
3435
|
-
var cookieCfg = config.cookieCfg;
|
|
3436
|
-
if (cookieCfg && cookieCfg[strConfigCookieMgr]) {
|
|
3437
|
-
cookieMgr = cookieCfg[strConfigCookieMgr];
|
|
3438
|
-
}
|
|
3439
|
-
else {
|
|
3440
|
-
cookieMgr = createCookieMgr(config);
|
|
3441
|
-
}
|
|
3195
|
+
function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
|
|
3196
|
+
var _nextProxy = null;
|
|
3197
|
+
var _onComplete = [];
|
|
3198
|
+
if (!dynamicHandler) {
|
|
3199
|
+
dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER ]);
|
|
3442
3200
|
}
|
|
3443
|
-
if (
|
|
3444
|
-
|
|
3201
|
+
if (startAt !== null) {
|
|
3202
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
3445
3203
|
}
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
}
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
}
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
var idx = strIndexOf(theValue, ";");
|
|
3496
|
-
if (idx !== -1) {
|
|
3497
|
-
theValue = strTrim(strLeft(value, idx));
|
|
3498
|
-
values = _extractParts(strSubstring(value, idx + 1));
|
|
3499
|
-
}
|
|
3500
|
-
setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
|
|
3501
|
-
if (!isNullOrUndefined(maxAgeSec)) {
|
|
3502
|
-
var _isIE = isIE();
|
|
3503
|
-
if (isUndefined(values[strExpires])) {
|
|
3504
|
-
var nowMs = utcNow();
|
|
3505
|
-
var expireMs = nowMs + (maxAgeSec * 1000);
|
|
3506
|
-
if (expireMs > 0) {
|
|
3507
|
-
var expiry = new Date();
|
|
3508
|
-
expiry.setTime(expireMs);
|
|
3509
|
-
setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
|
|
3510
|
-
}
|
|
3511
|
-
}
|
|
3512
|
-
if (!_isIE) {
|
|
3513
|
-
setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
|
|
3514
|
-
}
|
|
3515
|
-
}
|
|
3516
|
-
var location_1 = getLocation();
|
|
3517
|
-
if (location_1 && location_1.protocol === "https:") {
|
|
3518
|
-
setValue(values, "secure", null, null, isUndefined);
|
|
3519
|
-
if (_allowUaSameSite === null) {
|
|
3520
|
-
_allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
|
|
3204
|
+
var context = {
|
|
3205
|
+
_next: _moveNext,
|
|
3206
|
+
ctx: {
|
|
3207
|
+
core: function () {
|
|
3208
|
+
return core;
|
|
3209
|
+
},
|
|
3210
|
+
diagLog: function () {
|
|
3211
|
+
return safeGetLogger(core, dynamicHandler.cfg);
|
|
3212
|
+
},
|
|
3213
|
+
getCfg: function () {
|
|
3214
|
+
return dynamicHandler.cfg;
|
|
3215
|
+
},
|
|
3216
|
+
getExtCfg: _resolveExtCfg,
|
|
3217
|
+
getConfig: _getConfig,
|
|
3218
|
+
hasNext: function () {
|
|
3219
|
+
return !!_nextProxy;
|
|
3220
|
+
},
|
|
3221
|
+
getNext: function () {
|
|
3222
|
+
return _nextProxy;
|
|
3223
|
+
},
|
|
3224
|
+
setNext: function (nextPlugin) {
|
|
3225
|
+
_nextProxy = nextPlugin;
|
|
3226
|
+
},
|
|
3227
|
+
iterate: _iterateChain,
|
|
3228
|
+
onComplete: _addOnComplete
|
|
3229
|
+
}
|
|
3230
|
+
};
|
|
3231
|
+
function _addOnComplete(onComplete, that) {
|
|
3232
|
+
var args = [];
|
|
3233
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
3234
|
+
args[_i - 2] = arguments[_i];
|
|
3235
|
+
}
|
|
3236
|
+
if (onComplete) {
|
|
3237
|
+
_onComplete[_DYN_PUSH ]({
|
|
3238
|
+
func: onComplete,
|
|
3239
|
+
self: !isUndefined(that) ? that : context.ctx,
|
|
3240
|
+
args: args
|
|
3241
|
+
});
|
|
3242
|
+
}
|
|
3243
|
+
}
|
|
3244
|
+
function _moveNext() {
|
|
3245
|
+
var nextProxy = _nextProxy;
|
|
3246
|
+
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
3247
|
+
if (!nextProxy) {
|
|
3248
|
+
var onComplete = _onComplete;
|
|
3249
|
+
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
3250
|
+
arrForEach(onComplete, function (completeDetails) {
|
|
3251
|
+
try {
|
|
3252
|
+
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
3521
3253
|
}
|
|
3522
|
-
|
|
3523
|
-
|
|
3254
|
+
catch (e) {
|
|
3255
|
+
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
3524
3256
|
}
|
|
3525
|
-
}
|
|
3526
|
-
|
|
3527
|
-
_setCookieFn(name, _formatCookieValue(theValue, values));
|
|
3528
|
-
result = true;
|
|
3257
|
+
});
|
|
3258
|
+
_onComplete = [];
|
|
3529
3259
|
}
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3260
|
+
}
|
|
3261
|
+
return nextProxy;
|
|
3262
|
+
}
|
|
3263
|
+
function _getExtCfg(identifier, createIfMissing) {
|
|
3264
|
+
var idCfg = null;
|
|
3265
|
+
var cfg = dynamicHandler.cfg;
|
|
3266
|
+
if (cfg && identifier) {
|
|
3267
|
+
var extCfg = cfg[STR_EXTENSION_CONFIG ];
|
|
3268
|
+
if (!extCfg && createIfMissing) {
|
|
3269
|
+
extCfg = {};
|
|
3536
3270
|
}
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3271
|
+
dynamicHandler.set(cfg, STR_EXTENSION_CONFIG, extCfg);
|
|
3272
|
+
extCfg = cfg[STR_EXTENSION_CONFIG ];
|
|
3273
|
+
if (extCfg) {
|
|
3274
|
+
idCfg = extCfg[identifier];
|
|
3275
|
+
if (!idCfg && createIfMissing) {
|
|
3276
|
+
idCfg = {};
|
|
3277
|
+
}
|
|
3278
|
+
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
3279
|
+
idCfg = extCfg[identifier];
|
|
3543
3280
|
}
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3281
|
+
}
|
|
3282
|
+
return idCfg;
|
|
3283
|
+
}
|
|
3284
|
+
function _resolveExtCfg(identifier, defaultValues) {
|
|
3285
|
+
var newConfig = _getExtCfg(identifier, true);
|
|
3286
|
+
if (defaultValues) {
|
|
3287
|
+
objForEachKey(defaultValues, function (field, defaultValue) {
|
|
3288
|
+
if (isNullOrUndefined(newConfig[field])) {
|
|
3289
|
+
var cfgValue = dynamicHandler.cfg[field];
|
|
3290
|
+
if (cfgValue || !isNullOrUndefined(cfgValue)) {
|
|
3291
|
+
newConfig[field] = cfgValue;
|
|
3292
|
+
}
|
|
3556
3293
|
}
|
|
3557
|
-
|
|
3558
|
-
|
|
3294
|
+
_applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);
|
|
3295
|
+
});
|
|
3296
|
+
}
|
|
3297
|
+
return dynamicHandler[_DYN_SET_DF ](newConfig, defaultValues);
|
|
3298
|
+
}
|
|
3299
|
+
function _getConfig(identifier, field, defaultValue) {
|
|
3300
|
+
if (defaultValue === void 0) { defaultValue = false; }
|
|
3301
|
+
var theValue;
|
|
3302
|
+
var extConfig = _getExtCfg(identifier, false);
|
|
3303
|
+
var rootConfig = dynamicHandler.cfg;
|
|
3304
|
+
if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {
|
|
3305
|
+
theValue = extConfig[field];
|
|
3306
|
+
}
|
|
3307
|
+
else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {
|
|
3308
|
+
theValue = rootConfig[field];
|
|
3309
|
+
}
|
|
3310
|
+
return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;
|
|
3311
|
+
}
|
|
3312
|
+
function _iterateChain(cb) {
|
|
3313
|
+
var nextPlugin;
|
|
3314
|
+
while (!!(nextPlugin = context._next())) {
|
|
3315
|
+
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
3316
|
+
if (plugin) {
|
|
3317
|
+
cb(plugin);
|
|
3559
3318
|
}
|
|
3560
|
-
return result;
|
|
3561
3319
|
}
|
|
3562
|
-
}
|
|
3563
|
-
|
|
3564
|
-
return cookieMgr;
|
|
3320
|
+
}
|
|
3321
|
+
return context;
|
|
3565
3322
|
}
|
|
3566
|
-
function
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3323
|
+
function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {
|
|
3324
|
+
var config = createDynamicConfig(cfg);
|
|
3325
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3326
|
+
var context = internalContext.ctx;
|
|
3327
|
+
function _processNext(env) {
|
|
3328
|
+
var nextPlugin = internalContext._next();
|
|
3329
|
+
if (nextPlugin) {
|
|
3330
|
+
nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
3572
3331
|
}
|
|
3573
|
-
|
|
3574
|
-
|
|
3332
|
+
return !nextPlugin;
|
|
3333
|
+
}
|
|
3334
|
+
function _createNew(plugins, startAt) {
|
|
3335
|
+
if (plugins === void 0) { plugins = null; }
|
|
3336
|
+
if (isArray(plugins)) {
|
|
3337
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3575
3338
|
}
|
|
3339
|
+
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
|
|
3576
3340
|
}
|
|
3577
|
-
|
|
3341
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3342
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3343
|
+
return context;
|
|
3578
3344
|
}
|
|
3579
|
-
function
|
|
3580
|
-
var
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3345
|
+
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
3346
|
+
var config = createDynamicConfig(core.config);
|
|
3347
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3348
|
+
var context = internalContext.ctx;
|
|
3349
|
+
function _processNext(unloadState) {
|
|
3350
|
+
var nextPlugin = internalContext._next();
|
|
3351
|
+
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
3352
|
+
return !nextPlugin;
|
|
3353
|
+
}
|
|
3354
|
+
function _createNew(plugins, startAt) {
|
|
3355
|
+
if (plugins === void 0) { plugins = null; }
|
|
3356
|
+
if (isArray(plugins)) {
|
|
3357
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3358
|
+
}
|
|
3359
|
+
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3360
|
+
}
|
|
3361
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3362
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3363
|
+
return context;
|
|
3364
|
+
}
|
|
3365
|
+
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
3366
|
+
var config = createDynamicConfig(core.config);
|
|
3367
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3368
|
+
var context = internalContext.ctx;
|
|
3369
|
+
function _processNext(updateState) {
|
|
3370
|
+
return context.iterate(function (plugin) {
|
|
3371
|
+
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
3372
|
+
plugin[_DYN_UPDATE ](context, updateState);
|
|
3593
3373
|
}
|
|
3594
3374
|
});
|
|
3595
3375
|
}
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3376
|
+
function _createNew(plugins, startAt) {
|
|
3377
|
+
if (plugins === void 0) { plugins = null; }
|
|
3378
|
+
if (isArray(plugins)) {
|
|
3379
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3380
|
+
}
|
|
3381
|
+
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3601
3382
|
}
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
var cookieValue = value || STR_EMPTY;
|
|
3606
|
-
objForEachKey(values, function (name, theValue) {
|
|
3607
|
-
cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
|
|
3608
|
-
});
|
|
3609
|
-
return cookieValue;
|
|
3383
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3384
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3385
|
+
return context;
|
|
3610
3386
|
}
|
|
3611
|
-
function
|
|
3612
|
-
var
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3387
|
+
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
3388
|
+
var firstProxy = null;
|
|
3389
|
+
var add = startAt ? false : true;
|
|
3390
|
+
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
3391
|
+
var lastProxy_1 = null;
|
|
3392
|
+
arrForEach(plugins, function (thePlugin) {
|
|
3393
|
+
if (!add && startAt === thePlugin) {
|
|
3394
|
+
add = true;
|
|
3395
|
+
}
|
|
3396
|
+
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
3397
|
+
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
3398
|
+
if (!firstProxy) {
|
|
3399
|
+
firstProxy = newProxy;
|
|
3400
|
+
}
|
|
3401
|
+
if (lastProxy_1) {
|
|
3402
|
+
lastProxy_1._setNext(newProxy);
|
|
3403
|
+
}
|
|
3404
|
+
lastProxy_1 = newProxy;
|
|
3405
|
+
}
|
|
3406
|
+
});
|
|
3620
3407
|
}
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
function _setCookieValue(name, cookieValue) {
|
|
3624
|
-
if (_doc) {
|
|
3625
|
-
_doc[strCookie] = name + "=" + cookieValue;
|
|
3408
|
+
if (startAt && !firstProxy) {
|
|
3409
|
+
return createTelemetryProxyChain([startAt], config, core);
|
|
3626
3410
|
}
|
|
3411
|
+
return firstProxy;
|
|
3627
3412
|
}
|
|
3628
|
-
function
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strContains(userAgent, "Version/") && strContains(userAgent, "Safari")) {
|
|
3636
|
-
return true;
|
|
3637
|
-
}
|
|
3638
|
-
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strEndsWith(userAgent, "AppleWebKit/605.1.15 (KHTML, like Gecko)")) {
|
|
3639
|
-
return true;
|
|
3640
|
-
}
|
|
3641
|
-
if (strContains(userAgent, "Chrome/5") || strContains(userAgent, "Chrome/6")) {
|
|
3642
|
-
return true;
|
|
3413
|
+
function createTelemetryPluginProxy(plugin, config, core) {
|
|
3414
|
+
var nextProxy = null;
|
|
3415
|
+
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
3416
|
+
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
3417
|
+
var chainId;
|
|
3418
|
+
if (plugin) {
|
|
3419
|
+
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
3643
3420
|
}
|
|
3644
|
-
|
|
3645
|
-
|
|
3421
|
+
else {
|
|
3422
|
+
chainId = "Unknown-0-" + _chainId++;
|
|
3646
3423
|
}
|
|
3647
|
-
|
|
3648
|
-
|
|
3424
|
+
var proxyChain = {
|
|
3425
|
+
getPlugin: function () {
|
|
3426
|
+
return plugin;
|
|
3427
|
+
},
|
|
3428
|
+
getNext: function () {
|
|
3429
|
+
return nextProxy;
|
|
3430
|
+
},
|
|
3431
|
+
processTelemetry: _processTelemetry,
|
|
3432
|
+
unload: _unloadPlugin,
|
|
3433
|
+
update: _updatePlugin,
|
|
3434
|
+
_id: chainId,
|
|
3435
|
+
_setNext: function (nextPlugin) {
|
|
3436
|
+
nextProxy = nextPlugin;
|
|
3437
|
+
}
|
|
3438
|
+
};
|
|
3439
|
+
function _getTelCtx() {
|
|
3440
|
+
var itemCtx;
|
|
3441
|
+
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
3442
|
+
itemCtx = plugin[strGetTelCtx]();
|
|
3443
|
+
}
|
|
3444
|
+
if (!itemCtx) {
|
|
3445
|
+
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
3446
|
+
}
|
|
3447
|
+
return itemCtx;
|
|
3649
3448
|
}
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
if (
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
}
|
|
3662
|
-
else {
|
|
3449
|
+
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
3450
|
+
var hasRun = false;
|
|
3451
|
+
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
3452
|
+
var hasRunContext = itemCtx[strHasRunFlags];
|
|
3453
|
+
if (!hasRunContext) {
|
|
3454
|
+
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
3455
|
+
}
|
|
3456
|
+
itemCtx.setNext(nextProxy);
|
|
3457
|
+
if (plugin) {
|
|
3458
|
+
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
3459
|
+
hasRunContext[chainId] = true;
|
|
3663
3460
|
try {
|
|
3664
|
-
|
|
3461
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3462
|
+
if (nextId) {
|
|
3463
|
+
hasRunContext[nextId] = false;
|
|
3464
|
+
}
|
|
3465
|
+
hasRun = processPluginFn(itemCtx);
|
|
3665
3466
|
}
|
|
3666
|
-
catch (
|
|
3467
|
+
catch (error) {
|
|
3468
|
+
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
3469
|
+
if (hasNextRun) {
|
|
3470
|
+
hasRun = true;
|
|
3471
|
+
}
|
|
3472
|
+
if (!nextProxy || !hasNextRun) {
|
|
3473
|
+
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
3474
|
+
}
|
|
3667
3475
|
}
|
|
3476
|
+
}, details, isAsync);
|
|
3477
|
+
}
|
|
3478
|
+
return hasRun;
|
|
3479
|
+
}
|
|
3480
|
+
function _processTelemetry(env, itemCtx) {
|
|
3481
|
+
itemCtx = itemCtx || _getTelCtx();
|
|
3482
|
+
function _callProcessTelemetry(itemCtx) {
|
|
3483
|
+
if (!plugin || !hasProcessTelemetry) {
|
|
3484
|
+
return false;
|
|
3485
|
+
}
|
|
3486
|
+
var pluginState = _getPluginState(plugin);
|
|
3487
|
+
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
3488
|
+
return false;
|
|
3489
|
+
}
|
|
3490
|
+
if (hasSetNext) {
|
|
3491
|
+
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
3668
3492
|
}
|
|
3493
|
+
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
3494
|
+
return true;
|
|
3669
3495
|
}
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
_self.listeners[_DYN_SPLICE ](index, 1);
|
|
3688
|
-
index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
|
|
3496
|
+
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
3497
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
3498
|
+
}
|
|
3499
|
+
}
|
|
3500
|
+
function _unloadPlugin(unloadCtx, unloadState) {
|
|
3501
|
+
function _callTeardown() {
|
|
3502
|
+
var hasRun = false;
|
|
3503
|
+
if (plugin) {
|
|
3504
|
+
var pluginState = _getPluginState(plugin);
|
|
3505
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3506
|
+
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3507
|
+
pluginState[STR_CORE ] = null;
|
|
3508
|
+
pluginState[_DYN_TEARDOWN ] = true;
|
|
3509
|
+
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
3510
|
+
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
3511
|
+
hasRun = true;
|
|
3512
|
+
}
|
|
3689
3513
|
}
|
|
3690
|
-
}
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
_self[STR_PERF_EVENT ] = function (perfEvent) {
|
|
3707
|
-
if (perfEvent) {
|
|
3708
|
-
if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
|
|
3709
|
-
_runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
|
|
3710
|
-
if (perfEvent[_DYN_IS_ASYNC ]) {
|
|
3711
|
-
scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
|
|
3712
|
-
}
|
|
3713
|
-
else {
|
|
3714
|
-
listener[STR_PERF_EVENT ](perfEvent);
|
|
3715
|
-
}
|
|
3716
|
-
});
|
|
3514
|
+
}
|
|
3515
|
+
return hasRun;
|
|
3516
|
+
}
|
|
3517
|
+
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
3518
|
+
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
3519
|
+
}
|
|
3520
|
+
}
|
|
3521
|
+
function _updatePlugin(updateCtx, updateState) {
|
|
3522
|
+
function _callUpdate() {
|
|
3523
|
+
var hasRun = false;
|
|
3524
|
+
if (plugin) {
|
|
3525
|
+
var pluginState = _getPluginState(plugin);
|
|
3526
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3527
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3528
|
+
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
3529
|
+
hasRun = true;
|
|
3717
3530
|
}
|
|
3718
3531
|
}
|
|
3719
|
-
}
|
|
3720
|
-
|
|
3532
|
+
}
|
|
3533
|
+
return hasRun;
|
|
3534
|
+
}
|
|
3535
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
3536
|
+
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
3537
|
+
}
|
|
3721
3538
|
}
|
|
3722
|
-
|
|
3723
|
-
|
|
3539
|
+
return objFreeze(proxyChain);
|
|
3540
|
+
}
|
|
3541
|
+
var ProcessTelemetryContext = /** @class */ (function () {
|
|
3542
|
+
function ProcessTelemetryContext(pluginChain, config, core, startAt) {
|
|
3543
|
+
var _self = this;
|
|
3544
|
+
var context = createProcessTelemetryContext(pluginChain, config, core, startAt);
|
|
3545
|
+
proxyFunctions(_self, context, objKeys(context));
|
|
3546
|
+
}
|
|
3547
|
+
return ProcessTelemetryContext;
|
|
3724
3548
|
}());
|
|
3725
3549
|
|
|
3726
3550
|
function createUnloadHandlerContainer() {
|
|
@@ -3984,6 +3808,7 @@
|
|
|
3984
3808
|
function _validateExtensions(logger, channelPriority, allExtensions) {
|
|
3985
3809
|
var _a;
|
|
3986
3810
|
var coreExtensions = [];
|
|
3811
|
+
var channels = [];
|
|
3987
3812
|
var extPriorities = {};
|
|
3988
3813
|
arrForEach(allExtensions, function (ext) {
|
|
3989
3814
|
if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
|
|
@@ -4002,11 +3827,13 @@
|
|
|
4002
3827
|
if (!extPriority || extPriority < channelPriority) {
|
|
4003
3828
|
coreExtensions[_DYN_PUSH ](ext);
|
|
4004
3829
|
}
|
|
3830
|
+
else {
|
|
3831
|
+
channels[_DYN_PUSH ](ext);
|
|
3832
|
+
}
|
|
4005
3833
|
});
|
|
4006
|
-
return _a = {
|
|
4007
|
-
all: allExtensions
|
|
4008
|
-
},
|
|
3834
|
+
return _a = {},
|
|
4009
3835
|
_a[STR_CORE ] = coreExtensions,
|
|
3836
|
+
_a[STR_CHANNELS ] = channels,
|
|
4010
3837
|
_a;
|
|
4011
3838
|
}
|
|
4012
3839
|
function _isPluginPresent(thePlugin, plugins) {
|
|
@@ -4084,10 +3911,8 @@
|
|
|
4084
3911
|
var _cookieManager;
|
|
4085
3912
|
var _pluginChain;
|
|
4086
3913
|
var _configExtensions;
|
|
4087
|
-
var _coreExtensions;
|
|
4088
|
-
var _channelControl;
|
|
4089
3914
|
var _channelConfig;
|
|
4090
|
-
var
|
|
3915
|
+
var _channels;
|
|
4091
3916
|
var _isUnloading;
|
|
4092
3917
|
var _telemetryInitializerPlugin;
|
|
4093
3918
|
var _internalLogsEventName;
|
|
@@ -4101,7 +3926,8 @@
|
|
|
4101
3926
|
var _extensions;
|
|
4102
3927
|
var _pluginVersionStringArr;
|
|
4103
3928
|
var _pluginVersionString;
|
|
4104
|
-
var _internalLogPoller
|
|
3929
|
+
var _internalLogPoller;
|
|
3930
|
+
var _internalLogPollerListening;
|
|
4105
3931
|
dynamicProto(AppInsightsCore, this, function (_self) {
|
|
4106
3932
|
_initDefaults();
|
|
4107
3933
|
_self["_getDbgPlgTargets"] = function () {
|
|
@@ -4133,19 +3959,26 @@
|
|
|
4133
3959
|
_configExtensions[_DYN_PUSH ].apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), cfgExtensions));
|
|
4134
3960
|
_channelConfig = config[STR_CHANNELS ];
|
|
4135
3961
|
_initPluginChain(null);
|
|
4136
|
-
if (!
|
|
3962
|
+
if (!_channels || _channels[_DYN_LENGTH ] === 0) {
|
|
4137
3963
|
throwError("No " + STR_CHANNELS + " available");
|
|
4138
3964
|
}
|
|
3965
|
+
if (_channels[_DYN_LENGTH ] > 1) {
|
|
3966
|
+
var teeController = _self[_DYN_GET_PLUGIN ]("TeeChannelController");
|
|
3967
|
+
if (!teeController || !teeController.plugin) {
|
|
3968
|
+
_throwInternal(_self[_DYN_LOGGER ], 1 , 28 , "TeeChannel required");
|
|
3969
|
+
}
|
|
3970
|
+
}
|
|
4139
3971
|
_registerDelayedCfgListener(config, _cfgListeners, _self[_DYN_LOGGER ]);
|
|
4140
3972
|
_cfgListeners = null;
|
|
4141
3973
|
_isInitialized = true;
|
|
4142
3974
|
_self.releaseQueue();
|
|
3975
|
+
_self[_DYN_POLL_INTERNAL_LOGS ]();
|
|
4143
3976
|
};
|
|
4144
|
-
_self.
|
|
3977
|
+
_self.getChannels = function () {
|
|
4145
3978
|
var controls = [];
|
|
4146
|
-
if (
|
|
4147
|
-
arrForEach(
|
|
4148
|
-
controls[_DYN_PUSH ](
|
|
3979
|
+
if (_channels) {
|
|
3980
|
+
arrForEach(_channels, function (channel) {
|
|
3981
|
+
controls[_DYN_PUSH ](channel);
|
|
4149
3982
|
});
|
|
4150
3983
|
}
|
|
4151
3984
|
return objFreeze(controls);
|
|
@@ -4228,26 +4061,33 @@
|
|
|
4228
4061
|
});
|
|
4229
4062
|
}
|
|
4230
4063
|
};
|
|
4231
|
-
_self
|
|
4064
|
+
_self[_DYN_POLL_INTERNAL_LOGS ] = function (eventName) {
|
|
4232
4065
|
_internalLogsEventName = eventName || null;
|
|
4233
|
-
|
|
4234
|
-
var interval =
|
|
4066
|
+
function _startLogPoller(config) {
|
|
4067
|
+
var interval = config.diagnosticLogInterval;
|
|
4235
4068
|
if (!interval || !(interval > 0)) {
|
|
4236
4069
|
interval = 10000;
|
|
4237
4070
|
}
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
}
|
|
4241
|
-
_internalLogPoller = setInterval(function () {
|
|
4071
|
+
_internalLogPoller && _internalLogPoller[_DYN_CANCEL ]();
|
|
4072
|
+
_internalLogPoller = scheduleInterval(function () {
|
|
4242
4073
|
_flushInternalLogs();
|
|
4243
4074
|
}, interval);
|
|
4244
|
-
}
|
|
4075
|
+
}
|
|
4076
|
+
if (!_internalLogPollerListening) {
|
|
4077
|
+
_internalLogPollerListening = true;
|
|
4078
|
+
_addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
|
|
4079
|
+
_startLogPoller(details.cfg);
|
|
4080
|
+
}));
|
|
4081
|
+
}
|
|
4082
|
+
else {
|
|
4083
|
+
_startLogPoller(_configHandler.cfg);
|
|
4084
|
+
}
|
|
4245
4085
|
return _internalLogPoller;
|
|
4246
4086
|
};
|
|
4247
4087
|
_self[_DYN_STOP_POLLING_INTERNA3 ] = function () {
|
|
4248
4088
|
if (_internalLogPoller) {
|
|
4249
|
-
|
|
4250
|
-
_internalLogPoller =
|
|
4089
|
+
_internalLogPoller[_DYN_CANCEL ]();
|
|
4090
|
+
_internalLogPoller = null;
|
|
4251
4091
|
_flushInternalLogs();
|
|
4252
4092
|
}
|
|
4253
4093
|
};
|
|
@@ -4289,9 +4129,7 @@
|
|
|
4289
4129
|
_self[_DYN_STOP_POLLING_INTERNA3 ]();
|
|
4290
4130
|
processUnloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
4291
4131
|
}
|
|
4292
|
-
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout))
|
|
4293
|
-
_doUnload(false);
|
|
4294
|
-
}
|
|
4132
|
+
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout)) ;
|
|
4295
4133
|
};
|
|
4296
4134
|
_self[_DYN_GET_PLUGIN ] = _getPlugin;
|
|
4297
4135
|
_self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
|
|
@@ -4372,7 +4210,7 @@
|
|
|
4372
4210
|
_self.evtNamespace = function () {
|
|
4373
4211
|
return _evtNamespace;
|
|
4374
4212
|
};
|
|
4375
|
-
_self
|
|
4213
|
+
_self.flush = _flushChannels;
|
|
4376
4214
|
_self.getTraceCtx = function (createNew) {
|
|
4377
4215
|
if (!_traceCtx) {
|
|
4378
4216
|
_traceCtx = createDistributedTraceContext();
|
|
@@ -4469,11 +4307,9 @@
|
|
|
4469
4307
|
_cfgPerfManager = null;
|
|
4470
4308
|
_cookieManager = null;
|
|
4471
4309
|
_pluginChain = null;
|
|
4472
|
-
_coreExtensions = null;
|
|
4473
4310
|
_configExtensions = [];
|
|
4474
|
-
_channelControl = null;
|
|
4475
4311
|
_channelConfig = null;
|
|
4476
|
-
|
|
4312
|
+
_channels = null;
|
|
4477
4313
|
_isUnloading = false;
|
|
4478
4314
|
_internalLogsEventName = null;
|
|
4479
4315
|
_evtNamespace = createUniqueNamespace("AIBaseCore", true);
|
|
@@ -4490,32 +4326,19 @@
|
|
|
4490
4326
|
}
|
|
4491
4327
|
function _initPluginChain(updateState) {
|
|
4492
4328
|
var theExtensions = _validateExtensions(_self[_DYN_LOGGER ], ChannelControllerPriority, _configExtensions);
|
|
4493
|
-
_coreExtensions = theExtensions[STR_CORE ];
|
|
4494
4329
|
_pluginChain = null;
|
|
4495
4330
|
_pluginVersionString = null;
|
|
4496
4331
|
_pluginVersionStringArr = null;
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
}
|
|
4508
|
-
_channelControl._setQueue(_channelQueue);
|
|
4509
|
-
}
|
|
4510
|
-
else {
|
|
4511
|
-
_channelControl = createChannelControllerPlugin(_channelQueue, _self);
|
|
4512
|
-
}
|
|
4513
|
-
allExtensions[_DYN_PUSH ](_channelControl);
|
|
4514
|
-
_coreExtensions[_DYN_PUSH ](_channelControl);
|
|
4515
|
-
_extensions = sortPlugins(allExtensions);
|
|
4516
|
-
_channelControl[_DYN_INITIALIZE ](_configHandler.cfg, _self, allExtensions);
|
|
4517
|
-
initializePlugins(_createTelCtx(), allExtensions);
|
|
4518
|
-
_extensions = objFreeze(sortPlugins(_coreExtensions || [])).slice();
|
|
4332
|
+
_channels = (_channelConfig || [])[0] || [];
|
|
4333
|
+
_channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS ]));
|
|
4334
|
+
var allExtensions = sortPlugins(theExtensions[STR_CORE ]);
|
|
4335
|
+
arrAppend(allExtensions, _channels);
|
|
4336
|
+
_extensions = objFreeze(allExtensions);
|
|
4337
|
+
var rootCtx = _createTelCtx();
|
|
4338
|
+
if (_channels && _channels[_DYN_LENGTH ] > 0) {
|
|
4339
|
+
initializePlugins(rootCtx[_DYN_CREATE_NEW ](_channels), allExtensions);
|
|
4340
|
+
}
|
|
4341
|
+
initializePlugins(rootCtx, allExtensions);
|
|
4519
4342
|
if (updateState) {
|
|
4520
4343
|
_doUpdate(updateState);
|
|
4521
4344
|
}
|
|
@@ -4524,14 +4347,11 @@
|
|
|
4524
4347
|
var theExt = null;
|
|
4525
4348
|
var thePlugin = null;
|
|
4526
4349
|
arrForEach(_extensions, function (ext) {
|
|
4527
|
-
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !==
|
|
4350
|
+
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {
|
|
4528
4351
|
thePlugin = ext;
|
|
4529
4352
|
return -1;
|
|
4530
4353
|
}
|
|
4531
4354
|
});
|
|
4532
|
-
if (!thePlugin && _channelControl) {
|
|
4533
|
-
thePlugin = _channelControl.getChannel(pluginIdentifier);
|
|
4534
|
-
}
|
|
4535
4355
|
if (thePlugin) {
|
|
4536
4356
|
theExt = {
|
|
4537
4357
|
plugin: thePlugin,
|
|
@@ -4567,7 +4387,7 @@
|
|
|
4567
4387
|
}
|
|
4568
4388
|
function _getPluginChain() {
|
|
4569
4389
|
if (!_pluginChain) {
|
|
4570
|
-
var extensions = (
|
|
4390
|
+
var extensions = (_extensions || []).slice();
|
|
4571
4391
|
if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {
|
|
4572
4392
|
extensions[_DYN_PUSH ](_telemetryInitializerPlugin);
|
|
4573
4393
|
}
|
|
@@ -4635,10 +4455,46 @@
|
|
|
4635
4455
|
}
|
|
4636
4456
|
}
|
|
4637
4457
|
function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {
|
|
4638
|
-
|
|
4639
|
-
|
|
4458
|
+
var waiting = 1;
|
|
4459
|
+
var doneIterating = false;
|
|
4460
|
+
var cbTimer = null;
|
|
4461
|
+
cbTimeout = cbTimeout || 5000;
|
|
4462
|
+
function doCallback() {
|
|
4463
|
+
waiting--;
|
|
4464
|
+
if (doneIterating && waiting === 0) {
|
|
4465
|
+
cbTimer && cbTimer[_DYN_CANCEL ]();
|
|
4466
|
+
cbTimer = null;
|
|
4467
|
+
callBack && callBack(doneIterating);
|
|
4468
|
+
callBack = null;
|
|
4469
|
+
}
|
|
4470
|
+
}
|
|
4471
|
+
if (_channels && _channels[_DYN_LENGTH ] > 0) {
|
|
4472
|
+
var flushCtx = _createTelCtx()[_DYN_CREATE_NEW ](_channels);
|
|
4473
|
+
flushCtx.iterate(function (plugin) {
|
|
4474
|
+
if (plugin.flush) {
|
|
4475
|
+
waiting++;
|
|
4476
|
+
var handled_1 = false;
|
|
4477
|
+
if (!plugin.flush(isAsync, function () {
|
|
4478
|
+
handled_1 = true;
|
|
4479
|
+
doCallback();
|
|
4480
|
+
}, sendReason)) {
|
|
4481
|
+
if (!handled_1) {
|
|
4482
|
+
if (isAsync && cbTimer == null) {
|
|
4483
|
+
cbTimer = scheduleTimeout(function () {
|
|
4484
|
+
cbTimer = null;
|
|
4485
|
+
doCallback();
|
|
4486
|
+
}, cbTimeout);
|
|
4487
|
+
}
|
|
4488
|
+
else {
|
|
4489
|
+
doCallback();
|
|
4490
|
+
}
|
|
4491
|
+
}
|
|
4492
|
+
}
|
|
4493
|
+
}
|
|
4494
|
+
});
|
|
4640
4495
|
}
|
|
4641
|
-
|
|
4496
|
+
doneIterating = true;
|
|
4497
|
+
doCallback();
|
|
4642
4498
|
return true;
|
|
4643
4499
|
}
|
|
4644
4500
|
function _initDebugListener() {
|