@microsoft/applicationinsights-core-js 3.0.0-beta.2211-03 → 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 +1055 -1226
- 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 +85 -85
- package/dist/applicationinsights-core-js.api.md +8 -8
- package/dist/applicationinsights-core-js.d.ts +7 -7
- package/dist/applicationinsights-core-js.js +1055 -1226
- 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 +7 -7
- 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 +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 +93 -61
- 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 +15 -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 +99 -64
- package/src/JavaScriptSDK/Constants.ts +4 -0
- package/src/JavaScriptSDK.Interfaces/IAppInsightsCore.ts +2 -2
- 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 +1 -1
- 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 +1 -1
- package/types/JavaScriptSDK.Interfaces/IChannelControls.d.ts +4 -4
- package/types/JavaScriptSDK.Interfaces/IInstrumentHooks.d.ts +1 -1
- package/types/__DynamicConstants.d.ts +2 -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) {
|
|
@@ -825,6 +825,7 @@
|
|
|
825
825
|
var _DYN_INITIALIZE = "initialize";
|
|
826
826
|
var _DYN_IDENTIFIER = "identifier";
|
|
827
827
|
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
828
|
+
var _DYN_GET_PLUGIN = "getPlugin";
|
|
828
829
|
var _DYN_POLL_INTERNAL_LOGS = "pollInternalLogs";
|
|
829
830
|
var _DYN_NAME = "name";
|
|
830
831
|
var _DYN_TIME = "time";
|
|
@@ -836,10 +837,9 @@
|
|
|
836
837
|
var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
|
|
837
838
|
var _DYN_ON_COMPLETE = "onComplete";
|
|
838
839
|
var _DYN_CALL = "call";
|
|
839
|
-
var _DYN_GET_PLUGIN = "getPlugin";
|
|
840
|
-
var _DYN_FLUSH = "flush";
|
|
841
840
|
var _DYN_VERSION = "version";
|
|
842
841
|
var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
|
|
842
|
+
var _DYN_CREATE_NEW = "createNew";
|
|
843
843
|
var _DYN_TEARDOWN = "teardown";
|
|
844
844
|
var _DYN_MESSAGE_ID = "messageId";
|
|
845
845
|
var _DYN_MESSAGE = "message";
|
|
@@ -849,8 +849,6 @@
|
|
|
849
849
|
var _DYN_UPDATE = "update";
|
|
850
850
|
var _DYN_GET_NEXT = "getNext";
|
|
851
851
|
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
852
|
-
var _DYN_CREATE_NEW = "createNew";
|
|
853
|
-
var _DYN_CONFIG = "config";
|
|
854
852
|
var _DYN_USER_AGENT = "userAgent";
|
|
855
853
|
var _DYN_SPLIT = "split";
|
|
856
854
|
var _DYN_NODE_TYPE = "nodeType";
|
|
@@ -1727,7 +1725,7 @@
|
|
|
1727
1725
|
}
|
|
1728
1726
|
|
|
1729
1727
|
var _objDefineProperty = ObjDefineProperty;
|
|
1730
|
-
var version = "3.0.0-beta.2211-
|
|
1728
|
+
var version = "3.0.0-beta.2211-04";
|
|
1731
1729
|
var instanceName = "." + newId(6);
|
|
1732
1730
|
var _dataUid = 0;
|
|
1733
1731
|
function _createAccessor(target, prop, value) {
|
|
@@ -2221,6 +2219,8 @@
|
|
|
2221
2219
|
createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
|
|
2222
2220
|
}
|
|
2223
2221
|
|
|
2222
|
+
var ChannelControllerPriority = 500;
|
|
2223
|
+
|
|
2224
2224
|
var listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];
|
|
2225
2225
|
var _aiNamespace = null;
|
|
2226
2226
|
var _debugListener;
|
|
@@ -2437,1308 +2437,1114 @@
|
|
|
2437
2437
|
_getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE ](severity, message);
|
|
2438
2438
|
}
|
|
2439
2439
|
|
|
2440
|
-
var
|
|
2441
|
-
var
|
|
2442
|
-
var
|
|
2443
|
-
var
|
|
2444
|
-
var
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
}
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
if (key) {
|
|
2472
|
-
if (key === PerfEvent[strParentContextKey]) {
|
|
2473
|
-
if (!_self[key]) {
|
|
2474
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
2475
|
-
}
|
|
2476
|
-
_self[key] = value;
|
|
2477
|
-
}
|
|
2478
|
-
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
2479
|
-
_self[key] = value;
|
|
2480
|
-
}
|
|
2481
|
-
else {
|
|
2482
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2483
|
-
ctx[key] = value;
|
|
2484
|
-
}
|
|
2485
|
-
}
|
|
2486
|
-
};
|
|
2487
|
-
_self[_DYN_COMPLETE ] = function () {
|
|
2488
|
-
var childTime = 0;
|
|
2489
|
-
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2490
|
-
if (isArray(childEvts)) {
|
|
2491
|
-
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
2492
|
-
var childEvt = childEvts[lp];
|
|
2493
|
-
if (childEvt) {
|
|
2494
|
-
childTime += childEvt[_DYN_TIME ];
|
|
2495
|
-
}
|
|
2496
|
-
}
|
|
2497
|
-
}
|
|
2498
|
-
_self[_DYN_TIME ] = utcNow() - _self.start;
|
|
2499
|
-
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
2500
|
-
_self[_DYN_COMPLETE ] = function () { };
|
|
2501
|
-
};
|
|
2502
|
-
}
|
|
2503
|
-
PerfEvent.ParentContextKey = "parent";
|
|
2504
|
-
PerfEvent.ChildrenContextKey = "childEvts";
|
|
2505
|
-
return PerfEvent;
|
|
2506
|
-
}());
|
|
2507
|
-
var PerfManager = /** @class */ (function () {
|
|
2508
|
-
function PerfManager(manager) {
|
|
2509
|
-
this.ctx = {};
|
|
2510
|
-
dynamicProto(PerfManager, this, function (_self) {
|
|
2511
|
-
_self.create = function (src, payloadDetails, isAsync) {
|
|
2512
|
-
return new PerfEvent(src, payloadDetails, isAsync);
|
|
2513
|
-
};
|
|
2514
|
-
_self.fire = function (perfEvent) {
|
|
2515
|
-
if (perfEvent) {
|
|
2516
|
-
perfEvent[_DYN_COMPLETE ]();
|
|
2517
|
-
if (manager && isFunction(manager[STR_PERF_EVENT ])) {
|
|
2518
|
-
manager[STR_PERF_EVENT ](perfEvent);
|
|
2519
|
-
}
|
|
2520
|
-
}
|
|
2521
|
-
};
|
|
2522
|
-
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2523
|
-
if (key) {
|
|
2524
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2525
|
-
ctx[key] = value;
|
|
2526
|
-
}
|
|
2527
|
-
};
|
|
2528
|
-
_self[_DYN_GET_CTX ] = function (key) {
|
|
2529
|
-
return (_self[strExecutionContextKey] || {})[key];
|
|
2530
|
-
};
|
|
2531
|
-
});
|
|
2532
|
-
}
|
|
2533
|
-
PerfManager.__ieDyn=1;
|
|
2534
|
-
return PerfManager;
|
|
2535
|
-
}());
|
|
2536
|
-
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
2537
|
-
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
2538
|
-
if (mgrSource) {
|
|
2539
|
-
var perfMgr = mgrSource;
|
|
2540
|
-
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
2541
|
-
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
2542
|
-
}
|
|
2543
|
-
if (perfMgr) {
|
|
2544
|
-
var perfEvt = void 0;
|
|
2545
|
-
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
2546
|
-
try {
|
|
2547
|
-
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
2548
|
-
if (perfEvt) {
|
|
2549
|
-
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
2550
|
-
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
2551
|
-
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
2552
|
-
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2553
|
-
if (!children) {
|
|
2554
|
-
children = [];
|
|
2555
|
-
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
2556
|
-
}
|
|
2557
|
-
children[_DYN_PUSH ](perfEvt);
|
|
2558
|
-
}
|
|
2559
|
-
}
|
|
2560
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
2561
|
-
return func(perfEvt);
|
|
2562
|
-
}
|
|
2563
|
-
}
|
|
2564
|
-
catch (ex) {
|
|
2565
|
-
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
2566
|
-
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
2567
|
-
}
|
|
2568
|
-
}
|
|
2569
|
-
finally {
|
|
2570
|
-
if (perfEvt) {
|
|
2571
|
-
perfMgr.fire(perfEvt);
|
|
2572
|
-
}
|
|
2573
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
2574
|
-
}
|
|
2575
|
-
}
|
|
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;
|
|
2576
2471
|
}
|
|
2577
|
-
return
|
|
2578
|
-
}
|
|
2579
|
-
function setGblPerfMgr(perfManager) {
|
|
2580
|
-
_defaultPerfManager = perfManager;
|
|
2581
|
-
}
|
|
2582
|
-
function getGblPerfMgr() {
|
|
2583
|
-
return _defaultPerfManager;
|
|
2584
|
-
}
|
|
2585
|
-
|
|
2586
|
-
var Undefined = strShimUndefined;
|
|
2587
|
-
function newGuid() {
|
|
2588
|
-
var uuid = generateW3CId();
|
|
2589
|
-
return strSubstring(uuid, 0, 8) + "-" + strSubstring(uuid, 8, 12) + "-" + strSubstring(uuid, 12, 16) + "-" + strSubstring(uuid, 16, 20) + "-" + strSubstring(uuid, 20);
|
|
2472
|
+
return inst;
|
|
2590
2473
|
}
|
|
2591
|
-
function
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
for (var a = 0; a < 4; a++) {
|
|
2595
|
-
tmp = random32();
|
|
2596
|
-
oct +=
|
|
2597
|
-
hexValues[tmp & 0xF] +
|
|
2598
|
-
hexValues[tmp >> 4 & 0xF] +
|
|
2599
|
-
hexValues[tmp >> 8 & 0xF] +
|
|
2600
|
-
hexValues[tmp >> 12 & 0xF] +
|
|
2601
|
-
hexValues[tmp >> 16 & 0xF] +
|
|
2602
|
-
hexValues[tmp >> 20 & 0xF] +
|
|
2603
|
-
hexValues[tmp >> 24 & 0xF] +
|
|
2604
|
-
hexValues[tmp >> 28 & 0xF];
|
|
2474
|
+
function _isMgrEnabled(cookieMgr) {
|
|
2475
|
+
if (cookieMgr) {
|
|
2476
|
+
return cookieMgr.isEnabled();
|
|
2605
2477
|
}
|
|
2606
|
-
|
|
2607
|
-
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;
|
|
2608
2479
|
}
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
var INVALID_VERSION = "ff";
|
|
2613
|
-
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2614
|
-
var INVALID_SPAN_ID = "0000000000000000";
|
|
2615
|
-
var SAMPLED_FLAG = 0x01;
|
|
2616
|
-
function _isValid(value, len, invalidValue) {
|
|
2617
|
-
if (value && value[_DYN_LENGTH ] === len && value !== invalidValue) {
|
|
2618
|
-
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;
|
|
2619
2483
|
}
|
|
2620
2484
|
return false;
|
|
2621
2485
|
}
|
|
2622
|
-
function
|
|
2623
|
-
if (
|
|
2624
|
-
|
|
2486
|
+
function _isBlockedCookie(cookieMgrCfg, name) {
|
|
2487
|
+
if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {
|
|
2488
|
+
if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {
|
|
2489
|
+
return true;
|
|
2490
|
+
}
|
|
2625
2491
|
}
|
|
2626
|
-
return
|
|
2492
|
+
return _isIgnoredCookie(cookieMgrCfg, name);
|
|
2627
2493
|
}
|
|
2628
|
-
function
|
|
2629
|
-
|
|
2630
|
-
|
|
2494
|
+
function safeGetCookieMgr(core, config) {
|
|
2495
|
+
var cookieMgr;
|
|
2496
|
+
if (core) {
|
|
2497
|
+
cookieMgr = core.getCookieMgr();
|
|
2631
2498
|
}
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2499
|
+
else if (config) {
|
|
2500
|
+
var cookieCfg = config.cookieCfg;
|
|
2501
|
+
if (cookieCfg && cookieCfg[strConfigCookieMgr]) {
|
|
2502
|
+
cookieMgr = cookieCfg[strConfigCookieMgr];
|
|
2503
|
+
}
|
|
2504
|
+
else {
|
|
2505
|
+
cookieMgr = createCookieMgr(config);
|
|
2506
|
+
}
|
|
2635
2507
|
}
|
|
2636
|
-
|
|
2508
|
+
if (!cookieMgr) {
|
|
2509
|
+
cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER ]);
|
|
2510
|
+
}
|
|
2511
|
+
return cookieMgr;
|
|
2637
2512
|
}
|
|
2638
|
-
function
|
|
2639
|
-
var
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
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];
|
|
2530
|
+
}
|
|
2531
|
+
if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
|
|
2532
|
+
cookieEnabled = !rootConfig[strDisableCookiesUsage];
|
|
2533
|
+
}
|
|
2534
|
+
isEnabled = cookieEnabled;
|
|
2535
|
+
}
|
|
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);
|
|
2549
|
+
}
|
|
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);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
setValue(values, STR_PATH, path || _path, null, isUndefined);
|
|
2592
|
+
_setCookieFn(name, _formatCookieValue(theValue, values));
|
|
2593
|
+
result = true;
|
|
2594
|
+
}
|
|
2595
|
+
return result;
|
|
2596
|
+
},
|
|
2597
|
+
get: function (name) {
|
|
2598
|
+
var value = STR_EMPTY;
|
|
2599
|
+
if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
|
|
2600
|
+
value = _getCookieFn(name);
|
|
2601
|
+
}
|
|
2602
|
+
return value;
|
|
2603
|
+
},
|
|
2604
|
+
del: function (name, path) {
|
|
2605
|
+
var result = false;
|
|
2606
|
+
if (_isMgrEnabled(cookieMgr)) {
|
|
2607
|
+
result = cookieMgr.purge(name, path);
|
|
2608
|
+
}
|
|
2609
|
+
return result;
|
|
2610
|
+
},
|
|
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;
|
|
2626
|
+
}
|
|
2627
|
+
};
|
|
2628
|
+
cookieMgr[strConfigCookieMgr] = cookieMgr;
|
|
2629
|
+
return cookieMgr;
|
|
2646
2630
|
}
|
|
2647
|
-
function
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
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) });
|
|
2640
|
+
}
|
|
2657
2641
|
}
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2642
|
+
return _supportsCookies;
|
|
2643
|
+
}
|
|
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
|
+
});
|
|
2664
2660
|
}
|
|
2665
|
-
return
|
|
2666
|
-
_a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2667
|
-
_a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2668
|
-
_a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
2669
|
-
_a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
|
|
2670
|
-
_a;
|
|
2661
|
+
return values;
|
|
2671
2662
|
}
|
|
2672
|
-
function
|
|
2673
|
-
|
|
2663
|
+
function _formatDate(theDate, func) {
|
|
2664
|
+
if (isFunction(theDate[func])) {
|
|
2665
|
+
return theDate[func]();
|
|
2666
|
+
}
|
|
2667
|
+
return null;
|
|
2674
2668
|
}
|
|
2675
|
-
function
|
|
2676
|
-
|
|
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;
|
|
2677
2675
|
}
|
|
2678
|
-
function
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
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;
|
|
2683
|
+
}
|
|
2684
|
+
cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
|
|
2685
2685
|
}
|
|
2686
|
-
return
|
|
2686
|
+
return cookieValue;
|
|
2687
2687
|
}
|
|
2688
|
-
function
|
|
2689
|
-
if (
|
|
2690
|
-
|
|
2688
|
+
function _setCookieValue(name, cookieValue) {
|
|
2689
|
+
if (_doc) {
|
|
2690
|
+
_doc[strCookie] = name + "=" + cookieValue;
|
|
2691
2691
|
}
|
|
2692
|
-
return false;
|
|
2693
2692
|
}
|
|
2694
|
-
function
|
|
2695
|
-
if (
|
|
2696
|
-
|
|
2697
|
-
if (!_isValid(flags, 2)) {
|
|
2698
|
-
flags = "01";
|
|
2699
|
-
}
|
|
2700
|
-
var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
|
|
2701
|
-
if (version !== "00" && version !== "ff") {
|
|
2702
|
-
version = DEFAULT_VERSION;
|
|
2703
|
-
}
|
|
2704
|
-
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());
|
|
2693
|
+
function uaDisallowsSameSiteNone(userAgent) {
|
|
2694
|
+
if (!isString(userAgent)) {
|
|
2695
|
+
return false;
|
|
2705
2696
|
}
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
function findW3cTraceParent() {
|
|
2709
|
-
var name = "traceparent";
|
|
2710
|
-
var traceParent = parseTraceParent(findMetaTag(name));
|
|
2711
|
-
if (!traceParent) {
|
|
2712
|
-
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
2697
|
+
if (strContains(userAgent, "CPU iPhone OS 12") || strContains(userAgent, "iPad; CPU OS 12")) {
|
|
2698
|
+
return true;
|
|
2713
2699
|
}
|
|
2714
|
-
|
|
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;
|
|
2715
2716
|
}
|
|
2716
2717
|
|
|
2717
|
-
var
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
var pluginState;
|
|
2726
|
-
while (proxy) {
|
|
2727
|
-
var thePlugin = proxy[_DYN_GET_PLUGIN ]();
|
|
2728
|
-
if (thePlugin) {
|
|
2729
|
-
if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN ] && thePlugin[STR_PROCESS_TELEMETRY ]) {
|
|
2730
|
-
lastPlugin[_DYN_SET_NEXT_PLUGIN ](thePlugin);
|
|
2731
|
-
}
|
|
2732
|
-
var isInitialized = false;
|
|
2733
|
-
if (isFunction(thePlugin[_DYN_IS_INITIALIZED ])) {
|
|
2734
|
-
isInitialized = thePlugin[_DYN_IS_INITIALIZED ]();
|
|
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);
|
|
2735
2726
|
}
|
|
2736
2727
|
else {
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2728
|
+
try {
|
|
2729
|
+
callback(listener);
|
|
2730
|
+
}
|
|
2731
|
+
catch (e) {
|
|
2732
|
+
}
|
|
2742
2733
|
}
|
|
2743
|
-
lastPlugin = thePlugin;
|
|
2744
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
2745
|
-
}
|
|
2746
|
-
}
|
|
2747
|
-
arrForEach(initPlugins, function (thePlugin) {
|
|
2748
|
-
var core = processContext[STR_CORE ]();
|
|
2749
|
-
thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
|
|
2750
|
-
pluginState = _getPluginState(thePlugin);
|
|
2751
|
-
if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
|
|
2752
|
-
pluginState[STR_CORE] = core;
|
|
2753
2734
|
}
|
|
2754
|
-
pluginState[_DYN_IS_INITIALIZED ] = true;
|
|
2755
|
-
delete pluginState[_DYN_TEARDOWN ];
|
|
2756
2735
|
});
|
|
2757
2736
|
}
|
|
2758
|
-
function
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
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
|
+
});
|
|
2786
2782
|
}
|
|
2787
2783
|
}
|
|
2788
|
-
}
|
|
2789
|
-
}
|
|
2784
|
+
};
|
|
2785
|
+
});
|
|
2790
2786
|
}
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
var trace = {};
|
|
2795
|
-
return {
|
|
2796
|
-
getName: function () {
|
|
2797
|
-
return trace[_DYN_NAME ];
|
|
2798
|
-
},
|
|
2799
|
-
setName: function (newValue) {
|
|
2800
|
-
parentCtx && parentCtx.setName(newValue);
|
|
2801
|
-
trace[_DYN_NAME ] = newValue;
|
|
2802
|
-
},
|
|
2803
|
-
getTraceId: function () {
|
|
2804
|
-
return trace[_DYN_TRACE_ID ];
|
|
2805
|
-
},
|
|
2806
|
-
setTraceId: function (newValue) {
|
|
2807
|
-
parentCtx && parentCtx.setTraceId(newValue);
|
|
2808
|
-
if (isValidTraceId(newValue)) {
|
|
2809
|
-
trace[_DYN_TRACE_ID ] = newValue;
|
|
2810
|
-
}
|
|
2811
|
-
},
|
|
2812
|
-
getSpanId: function () {
|
|
2813
|
-
return trace[_DYN_SPAN_ID ];
|
|
2814
|
-
},
|
|
2815
|
-
setSpanId: function (newValue) {
|
|
2816
|
-
parentCtx && parentCtx.setSpanId(newValue);
|
|
2817
|
-
if (isValidSpanId(newValue)) {
|
|
2818
|
-
trace[_DYN_SPAN_ID ] = newValue;
|
|
2819
|
-
}
|
|
2820
|
-
},
|
|
2821
|
-
getTraceFlags: function () {
|
|
2822
|
-
return trace[_DYN_TRACE_FLAGS ];
|
|
2823
|
-
},
|
|
2824
|
-
setTraceFlags: function (newTraceFlags) {
|
|
2825
|
-
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
2826
|
-
trace[_DYN_TRACE_FLAGS ] = newTraceFlags;
|
|
2827
|
-
}
|
|
2828
|
-
};
|
|
2829
|
-
}
|
|
2787
|
+
NotificationManager.__ieDyn=1;
|
|
2788
|
+
return NotificationManager;
|
|
2789
|
+
}());
|
|
2830
2790
|
|
|
2831
|
-
var
|
|
2832
|
-
var
|
|
2833
|
-
var
|
|
2834
|
-
var
|
|
2835
|
-
function
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
2852
|
-
}
|
|
2853
|
-
var context = {
|
|
2854
|
-
_next: _moveNext,
|
|
2855
|
-
ctx: {
|
|
2856
|
-
core: function () {
|
|
2857
|
-
return core;
|
|
2858
|
-
},
|
|
2859
|
-
diagLog: function () {
|
|
2860
|
-
return safeGetLogger(core, dynamicHandler.cfg);
|
|
2861
|
-
},
|
|
2862
|
-
getCfg: function () {
|
|
2863
|
-
return dynamicHandler.cfg;
|
|
2864
|
-
},
|
|
2865
|
-
getExtCfg: _resolveExtCfg,
|
|
2866
|
-
getConfig: _getConfig,
|
|
2867
|
-
hasNext: function () {
|
|
2868
|
-
return !!_nextProxy;
|
|
2869
|
-
},
|
|
2870
|
-
getNext: function () {
|
|
2871
|
-
return _nextProxy;
|
|
2872
|
-
},
|
|
2873
|
-
setNext: function (nextPlugin) {
|
|
2874
|
-
_nextProxy = nextPlugin;
|
|
2875
|
-
},
|
|
2876
|
-
iterate: _iterateChain,
|
|
2877
|
-
onComplete: _addOnComplete
|
|
2878
|
-
}
|
|
2879
|
-
};
|
|
2880
|
-
function _addOnComplete(onComplete, that) {
|
|
2881
|
-
var args = [];
|
|
2882
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
2883
|
-
args[_i - 2] = arguments[_i];
|
|
2884
|
-
}
|
|
2885
|
-
if (onComplete) {
|
|
2886
|
-
_onComplete[_DYN_PUSH ]({
|
|
2887
|
-
func: onComplete,
|
|
2888
|
-
self: !isUndefined(that) ? that : context.ctx,
|
|
2889
|
-
args: args
|
|
2890
|
-
});
|
|
2891
|
-
}
|
|
2892
|
-
}
|
|
2893
|
-
function _moveNext() {
|
|
2894
|
-
var nextProxy = _nextProxy;
|
|
2895
|
-
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
2896
|
-
if (!nextProxy) {
|
|
2897
|
-
var onComplete = _onComplete;
|
|
2898
|
-
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
2899
|
-
arrForEach(onComplete, function (completeDetails) {
|
|
2900
|
-
try {
|
|
2901
|
-
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
2902
|
-
}
|
|
2903
|
-
catch (e) {
|
|
2904
|
-
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
2905
|
-
}
|
|
2906
|
-
});
|
|
2907
|
-
_onComplete = [];
|
|
2908
|
-
}
|
|
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;
|
|
2810
|
+
});
|
|
2909
2811
|
}
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
var extCfg = cfg[STR_EXTENSION_CONFIG ];
|
|
2917
|
-
if (!extCfg && createIfMissing) {
|
|
2918
|
-
extCfg = {};
|
|
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];
|
|
2919
2818
|
}
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
if (
|
|
2925
|
-
|
|
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;
|
|
2926
2835
|
}
|
|
2927
|
-
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
2928
|
-
idCfg = extCfg[identifier];
|
|
2929
2836
|
}
|
|
2930
|
-
}
|
|
2931
|
-
|
|
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
|
+
}
|
|
2847
|
+
}
|
|
2848
|
+
}
|
|
2849
|
+
_self[_DYN_TIME ] = utcNow() - _self.start;
|
|
2850
|
+
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
2851
|
+
_self[_DYN_COMPLETE ] = function () { };
|
|
2852
|
+
};
|
|
2932
2853
|
}
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
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);
|
|
2941
2870
|
}
|
|
2942
2871
|
}
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
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
|
+
});
|
|
2947
2883
|
}
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
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]();
|
|
2958
2893
|
}
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
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);
|
|
2967
2925
|
}
|
|
2968
2926
|
}
|
|
2969
2927
|
}
|
|
2970
|
-
return
|
|
2928
|
+
return func();
|
|
2971
2929
|
}
|
|
2972
|
-
function
|
|
2973
|
-
|
|
2974
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
2975
|
-
var context = internalContext.ctx;
|
|
2976
|
-
function _processNext(env) {
|
|
2977
|
-
var nextPlugin = internalContext._next();
|
|
2978
|
-
if (nextPlugin) {
|
|
2979
|
-
nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
2980
|
-
}
|
|
2981
|
-
return !nextPlugin;
|
|
2982
|
-
}
|
|
2983
|
-
function _createNew(plugins, startAt) {
|
|
2984
|
-
if (plugins === void 0) { plugins = null; }
|
|
2985
|
-
if (isArray(plugins)) {
|
|
2986
|
-
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
2987
|
-
}
|
|
2988
|
-
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
|
|
2989
|
-
}
|
|
2990
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
2991
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
2992
|
-
return context;
|
|
2930
|
+
function setGblPerfMgr(perfManager) {
|
|
2931
|
+
_defaultPerfManager = perfManager;
|
|
2993
2932
|
}
|
|
2994
|
-
function
|
|
2995
|
-
|
|
2996
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
2997
|
-
var context = internalContext.ctx;
|
|
2998
|
-
function _processNext(unloadState) {
|
|
2999
|
-
var nextPlugin = internalContext._next();
|
|
3000
|
-
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
3001
|
-
return !nextPlugin;
|
|
3002
|
-
}
|
|
3003
|
-
function _createNew(plugins, startAt) {
|
|
3004
|
-
if (plugins === void 0) { plugins = null; }
|
|
3005
|
-
if (isArray(plugins)) {
|
|
3006
|
-
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3007
|
-
}
|
|
3008
|
-
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3009
|
-
}
|
|
3010
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3011
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3012
|
-
return context;
|
|
2933
|
+
function getGblPerfMgr() {
|
|
2934
|
+
return _defaultPerfManager;
|
|
3013
2935
|
}
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
var
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
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];
|
|
3024
2956
|
}
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
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);
|
|
3031
2970
|
}
|
|
3032
|
-
|
|
3033
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3034
|
-
return context;
|
|
2971
|
+
return false;
|
|
3035
2972
|
}
|
|
3036
|
-
function
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
3040
|
-
var lastProxy_1 = null;
|
|
3041
|
-
arrForEach(plugins, function (thePlugin) {
|
|
3042
|
-
if (!add && startAt === thePlugin) {
|
|
3043
|
-
add = true;
|
|
3044
|
-
}
|
|
3045
|
-
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
3046
|
-
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
3047
|
-
if (!firstProxy) {
|
|
3048
|
-
firstProxy = newProxy;
|
|
3049
|
-
}
|
|
3050
|
-
if (lastProxy_1) {
|
|
3051
|
-
lastProxy_1._setNext(newProxy);
|
|
3052
|
-
}
|
|
3053
|
-
lastProxy_1 = newProxy;
|
|
3054
|
-
}
|
|
3055
|
-
});
|
|
2973
|
+
function _formatValue(value, len, defValue) {
|
|
2974
|
+
if (_isValid(value, len)) {
|
|
2975
|
+
return value;
|
|
3056
2976
|
}
|
|
3057
|
-
|
|
3058
|
-
|
|
2977
|
+
return defValue;
|
|
2978
|
+
}
|
|
2979
|
+
function _formatFlags(value) {
|
|
2980
|
+
if (isNaN(value) || value < 0 || value > 255) {
|
|
2981
|
+
value = 0x01;
|
|
3059
2982
|
}
|
|
3060
|
-
|
|
2983
|
+
var result = value.toString(16);
|
|
2984
|
+
while (result[_DYN_LENGTH ] < 2) {
|
|
2985
|
+
result = "0" + result;
|
|
2986
|
+
}
|
|
2987
|
+
return result;
|
|
3061
2988
|
}
|
|
3062
|
-
function
|
|
3063
|
-
var
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
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;
|
|
3069
3002
|
}
|
|
3070
|
-
|
|
3071
|
-
|
|
3003
|
+
if (isArray(value)) {
|
|
3004
|
+
value = value[0] || "";
|
|
3072
3005
|
}
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
return plugin;
|
|
3076
|
-
},
|
|
3077
|
-
getNext: function () {
|
|
3078
|
-
return nextProxy;
|
|
3079
|
-
},
|
|
3080
|
-
processTelemetry: _processTelemetry,
|
|
3081
|
-
unload: _unloadPlugin,
|
|
3082
|
-
update: _updatePlugin,
|
|
3083
|
-
_id: chainId,
|
|
3084
|
-
_setNext: function (nextPlugin) {
|
|
3085
|
-
nextProxy = nextPlugin;
|
|
3086
|
-
}
|
|
3087
|
-
};
|
|
3088
|
-
function _getTelCtx() {
|
|
3089
|
-
var itemCtx;
|
|
3090
|
-
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
3091
|
-
itemCtx = plugin[strGetTelCtx]();
|
|
3092
|
-
}
|
|
3093
|
-
if (!itemCtx) {
|
|
3094
|
-
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
3095
|
-
}
|
|
3096
|
-
return itemCtx;
|
|
3006
|
+
if (!value || !isString(value) || value[_DYN_LENGTH ] > 8192) {
|
|
3007
|
+
return null;
|
|
3097
3008
|
}
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
}
|
|
3105
|
-
itemCtx.setNext(nextProxy);
|
|
3106
|
-
if (plugin) {
|
|
3107
|
-
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
3108
|
-
hasRunContext[chainId] = true;
|
|
3109
|
-
try {
|
|
3110
|
-
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3111
|
-
if (nextId) {
|
|
3112
|
-
hasRunContext[nextId] = false;
|
|
3113
|
-
}
|
|
3114
|
-
hasRun = processPluginFn(itemCtx);
|
|
3115
|
-
}
|
|
3116
|
-
catch (error) {
|
|
3117
|
-
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
3118
|
-
if (hasNextRun) {
|
|
3119
|
-
hasRun = true;
|
|
3120
|
-
}
|
|
3121
|
-
if (!nextProxy || !hasNextRun) {
|
|
3122
|
-
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
3123
|
-
}
|
|
3124
|
-
}
|
|
3125
|
-
}, details, isAsync);
|
|
3126
|
-
}
|
|
3127
|
-
return hasRun;
|
|
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;
|
|
3128
3015
|
}
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
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;
|
|
3022
|
+
}
|
|
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;
|
|
3148
3036
|
}
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3155
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3156
|
-
pluginState[STR_CORE ] = null;
|
|
3157
|
-
pluginState[_DYN_TEARDOWN ] = true;
|
|
3158
|
-
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
3159
|
-
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
3160
|
-
hasRun = true;
|
|
3161
|
-
}
|
|
3162
|
-
}
|
|
3163
|
-
}
|
|
3164
|
-
return hasRun;
|
|
3165
|
-
}
|
|
3166
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
3167
|
-
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
3168
|
-
}
|
|
3037
|
+
return true;
|
|
3038
|
+
}
|
|
3039
|
+
function isSampledFlag(value) {
|
|
3040
|
+
if (isValidTraceParent(value)) {
|
|
3041
|
+
return (value[_DYN_TRACE_FLAGS ] & SAMPLED_FLAG) === SAMPLED_FLAG;
|
|
3169
3042
|
}
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
3178
|
-
hasRun = true;
|
|
3179
|
-
}
|
|
3180
|
-
}
|
|
3181
|
-
}
|
|
3182
|
-
return hasRun;
|
|
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";
|
|
3183
3050
|
}
|
|
3184
|
-
|
|
3185
|
-
|
|
3051
|
+
var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
|
|
3052
|
+
if (version !== "00" && version !== "ff") {
|
|
3053
|
+
version = DEFAULT_VERSION;
|
|
3186
3054
|
}
|
|
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());
|
|
3187
3056
|
}
|
|
3188
|
-
return
|
|
3057
|
+
return "";
|
|
3189
3058
|
}
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3059
|
+
function findW3cTraceParent() {
|
|
3060
|
+
var name = "traceparent";
|
|
3061
|
+
var traceParent = parseTraceParent(findMetaTag(name));
|
|
3062
|
+
if (!traceParent) {
|
|
3063
|
+
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
3195
3064
|
}
|
|
3196
|
-
return
|
|
3197
|
-
}
|
|
3065
|
+
return traceParent;
|
|
3066
|
+
}
|
|
3198
3067
|
|
|
3199
|
-
var
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
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);
|
|
3082
|
+
}
|
|
3083
|
+
var isInitialized = false;
|
|
3084
|
+
if (isFunction(thePlugin[_DYN_IS_INITIALIZED ])) {
|
|
3085
|
+
isInitialized = thePlugin[_DYN_IS_INITIALIZED ]();
|
|
3086
|
+
}
|
|
3087
|
+
else {
|
|
3088
|
+
pluginState = _getPluginState(thePlugin);
|
|
3089
|
+
isInitialized = pluginState[_DYN_IS_INITIALIZED ];
|
|
3209
3090
|
}
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3091
|
+
if (!isInitialized) {
|
|
3092
|
+
initPlugins[_DYN_PUSH ](thePlugin);
|
|
3093
|
+
}
|
|
3094
|
+
lastPlugin = thePlugin;
|
|
3095
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3096
|
+
}
|
|
3215
3097
|
}
|
|
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;
|
|
3104
|
+
}
|
|
3105
|
+
pluginState[_DYN_IS_INITIALIZED ] = true;
|
|
3106
|
+
delete pluginState[_DYN_TEARDOWN ];
|
|
3107
|
+
});
|
|
3216
3108
|
}
|
|
3217
|
-
function
|
|
3218
|
-
function
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
if (
|
|
3226
|
-
|
|
3227
|
-
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;
|
|
3228
3119
|
}
|
|
3229
3120
|
}
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3233
|
-
var channelChain = channels.chain;
|
|
3234
|
-
var chainCtx = itemCtx[_DYN_CREATE_NEW ](channelChain);
|
|
3235
|
-
chainCtx[_DYN_ON_COMPLETE ](_runChainOnComplete);
|
|
3236
|
-
processFn(chainCtx);
|
|
3237
|
-
}
|
|
3238
|
-
else {
|
|
3239
|
-
waiting--;
|
|
3240
|
-
}
|
|
3241
|
-
});
|
|
3121
|
+
else {
|
|
3122
|
+
result = extA ? 1 : -1;
|
|
3242
3123
|
}
|
|
3243
|
-
|
|
3244
|
-
}
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
function _doTeardown(unloadCtx, unloadState) {
|
|
3257
|
-
var theUnloadState = unloadState || {
|
|
3258
|
-
reason: 0 ,
|
|
3259
|
-
isAsync: false
|
|
3260
|
-
};
|
|
3261
|
-
_processChannelQueue(channelQueue, unloadCtx, function (chainCtx) {
|
|
3262
|
-
chainCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
3263
|
-
}, function () {
|
|
3264
|
-
unloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
3265
|
-
isInitialized = false;
|
|
3266
|
-
});
|
|
3267
|
-
return true;
|
|
3268
|
-
}
|
|
3269
|
-
function _getChannel(pluginIdentifier) {
|
|
3270
|
-
var thePlugin = null;
|
|
3271
|
-
if (channelQueue && channelQueue[_DYN_LENGTH ] > 0) {
|
|
3272
|
-
arrForEach(channelQueue, function (channels) {
|
|
3273
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3274
|
-
arrForEach(channels.queue, function (ext) {
|
|
3275
|
-
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier) {
|
|
3276
|
-
thePlugin = ext;
|
|
3277
|
-
return -1;
|
|
3278
|
-
}
|
|
3279
|
-
});
|
|
3280
|
-
if (thePlugin) {
|
|
3281
|
-
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;
|
|
3282
3137
|
}
|
|
3283
3138
|
}
|
|
3284
|
-
}
|
|
3139
|
+
}
|
|
3285
3140
|
}
|
|
3286
|
-
return thePlugin;
|
|
3287
3141
|
}
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
if (channels && channels.queue[_DYN_LENGTH ] > 0) {
|
|
3296
|
-
initializePlugins(createProcessTelemetryContext(channels.chain, config, core), extensions);
|
|
3297
|
-
}
|
|
3298
|
-
});
|
|
3142
|
+
return _doUnload();
|
|
3143
|
+
}
|
|
3144
|
+
function createDistributedTraceContext(parentCtx) {
|
|
3145
|
+
var trace = {};
|
|
3146
|
+
return {
|
|
3147
|
+
getName: function () {
|
|
3148
|
+
return trace[_DYN_NAME ];
|
|
3299
3149
|
},
|
|
3300
|
-
|
|
3301
|
-
|
|
3150
|
+
setName: function (newValue) {
|
|
3151
|
+
parentCtx && parentCtx.setName(newValue);
|
|
3152
|
+
trace[_DYN_NAME ] = newValue;
|
|
3302
3153
|
},
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
chainCtx[_DYN_PROCESS_NEXT ](item);
|
|
3306
|
-
}, function () {
|
|
3307
|
-
itemCtx[_DYN_PROCESS_NEXT ](item);
|
|
3308
|
-
});
|
|
3154
|
+
getTraceId: function () {
|
|
3155
|
+
return trace[_DYN_TRACE_ID ];
|
|
3309
3156
|
},
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
});
|
|
3316
|
-
}, null);
|
|
3157
|
+
setTraceId: function (newValue) {
|
|
3158
|
+
parentCtx && parentCtx.setTraceId(newValue);
|
|
3159
|
+
if (isValidTraceId(newValue)) {
|
|
3160
|
+
trace[_DYN_TRACE_ID ] = newValue;
|
|
3161
|
+
}
|
|
3317
3162
|
},
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
chainCtx.iterate(function (plugin) {
|
|
3321
|
-
plugin.resume && plugin.resume();
|
|
3322
|
-
});
|
|
3323
|
-
}, null);
|
|
3163
|
+
getSpanId: function () {
|
|
3164
|
+
return trace[_DYN_SPAN_ID ];
|
|
3324
3165
|
},
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
var cbTimer = null;
|
|
3331
|
-
cbTimeout = cbTimeout || 5000;
|
|
3332
|
-
function doCallback() {
|
|
3333
|
-
waiting--;
|
|
3334
|
-
if (doneIterating && waiting === 0) {
|
|
3335
|
-
cbTimer && cbTimer[_DYN_CANCEL ]();
|
|
3336
|
-
cbTimer = null;
|
|
3337
|
-
callBack && callBack(doneIterating);
|
|
3338
|
-
callBack = null;
|
|
3339
|
-
}
|
|
3340
|
-
}
|
|
3341
|
-
_processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {
|
|
3342
|
-
chainCtx.iterate(function (plugin) {
|
|
3343
|
-
if (plugin[_DYN_FLUSH ]) {
|
|
3344
|
-
waiting++;
|
|
3345
|
-
var handled_1 = false;
|
|
3346
|
-
if (!plugin[_DYN_FLUSH ](isAsync, function () {
|
|
3347
|
-
handled_1 = true;
|
|
3348
|
-
doCallback();
|
|
3349
|
-
}, sendReason)) {
|
|
3350
|
-
if (!handled_1) {
|
|
3351
|
-
if (isAsync && cbTimer == null) {
|
|
3352
|
-
cbTimer = scheduleTimeout(function () {
|
|
3353
|
-
cbTimer = null;
|
|
3354
|
-
doCallback();
|
|
3355
|
-
}, cbTimeout);
|
|
3356
|
-
}
|
|
3357
|
-
else {
|
|
3358
|
-
doCallback();
|
|
3359
|
-
}
|
|
3360
|
-
}
|
|
3361
|
-
}
|
|
3362
|
-
}
|
|
3363
|
-
});
|
|
3364
|
-
}, function () {
|
|
3365
|
-
doneIterating = true;
|
|
3366
|
-
doCallback();
|
|
3367
|
-
});
|
|
3368
|
-
return true;
|
|
3166
|
+
setSpanId: function (newValue) {
|
|
3167
|
+
parentCtx && parentCtx.setSpanId(newValue);
|
|
3168
|
+
if (isValidSpanId(newValue)) {
|
|
3169
|
+
trace[_DYN_SPAN_ID ] = newValue;
|
|
3170
|
+
}
|
|
3369
3171
|
},
|
|
3370
|
-
|
|
3371
|
-
|
|
3172
|
+
getTraceFlags: function () {
|
|
3173
|
+
return trace[_DYN_TRACE_FLAGS ];
|
|
3174
|
+
},
|
|
3175
|
+
setTraceFlags: function (newTraceFlags) {
|
|
3176
|
+
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
3177
|
+
trace[_DYN_TRACE_FLAGS ] = newTraceFlags;
|
|
3372
3178
|
}
|
|
3373
3179
|
};
|
|
3374
|
-
return channelController;
|
|
3375
|
-
}
|
|
3376
|
-
function createChannelQueues(channels, extensions, core) {
|
|
3377
|
-
var channelQueue = [];
|
|
3378
|
-
if (channels) {
|
|
3379
|
-
arrForEach(channels, function (queue) { return _addChannelQueue(channelQueue, queue, core); });
|
|
3380
|
-
}
|
|
3381
|
-
if (extensions) {
|
|
3382
|
-
var extensionQueue_1 = [];
|
|
3383
|
-
arrForEach(extensions, function (plugin) {
|
|
3384
|
-
if (plugin[STR_PRIORITY ] > ChannelControllerPriority) {
|
|
3385
|
-
extensionQueue_1[_DYN_PUSH ](plugin);
|
|
3386
|
-
}
|
|
3387
|
-
});
|
|
3388
|
-
_addChannelQueue(channelQueue, extensionQueue_1, core);
|
|
3389
|
-
}
|
|
3390
|
-
return channelQueue;
|
|
3391
3180
|
}
|
|
3392
3181
|
|
|
3393
|
-
var
|
|
3394
|
-
var
|
|
3395
|
-
var
|
|
3396
|
-
var
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
var _supportsCookies = null;
|
|
3402
|
-
var _allowUaSameSite = null;
|
|
3403
|
-
var _parsedCookieValue = null;
|
|
3404
|
-
var _doc = getDocument();
|
|
3405
|
-
var _cookieCache = {};
|
|
3406
|
-
var _globalCookieConfig = {};
|
|
3407
|
-
var defaultConfig$1 = objDeepFreeze((_a$2 = {},
|
|
3408
|
-
_a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
|
|
3409
|
-
_a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
|
|
3410
|
-
_a$2.enabled = UNDEFINED_VALUE,
|
|
3411
|
-
_a$2));
|
|
3412
|
-
var rootDefaultConfig = (_b = {
|
|
3413
|
-
cookieCfg: {},
|
|
3414
|
-
cookieDomain: UNDEFINED_VALUE,
|
|
3415
|
-
cookiePath: UNDEFINED_VALUE
|
|
3416
|
-
},
|
|
3417
|
-
_b[strDisableCookiesUsage] = UNDEFINED_VALUE,
|
|
3418
|
-
_b);
|
|
3419
|
-
function _gblCookieMgr(config, logger) {
|
|
3420
|
-
var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
|
|
3421
|
-
if (!inst) {
|
|
3422
|
-
inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);
|
|
3423
|
-
_globalCookieConfig[strConfigCookieMgr] = inst;
|
|
3424
|
-
}
|
|
3425
|
-
return inst;
|
|
3426
|
-
}
|
|
3427
|
-
function _isMgrEnabled(cookieMgr) {
|
|
3428
|
-
if (cookieMgr) {
|
|
3429
|
-
return cookieMgr.isEnabled();
|
|
3430
|
-
}
|
|
3431
|
-
return true;
|
|
3432
|
-
}
|
|
3433
|
-
function _isIgnoredCookie(cookieMgrCfg, name) {
|
|
3434
|
-
if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {
|
|
3435
|
-
return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;
|
|
3436
|
-
}
|
|
3437
|
-
return false;
|
|
3438
|
-
}
|
|
3439
|
-
function _isBlockedCookie(cookieMgrCfg, name) {
|
|
3440
|
-
if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {
|
|
3441
|
-
if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {
|
|
3442
|
-
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;
|
|
3443
3190
|
}
|
|
3191
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3444
3192
|
}
|
|
3445
|
-
return
|
|
3193
|
+
return createTelemetryProxyChain([startAt], core.config || {}, core);
|
|
3446
3194
|
}
|
|
3447
|
-
function
|
|
3448
|
-
var
|
|
3449
|
-
|
|
3450
|
-
|
|
3195
|
+
function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
|
|
3196
|
+
var _nextProxy = null;
|
|
3197
|
+
var _onComplete = [];
|
|
3198
|
+
if (!dynamicHandler) {
|
|
3199
|
+
dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER ]);
|
|
3451
3200
|
}
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3201
|
+
if (startAt !== null) {
|
|
3202
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
3203
|
+
}
|
|
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
|
|
3456
3229
|
}
|
|
3457
|
-
|
|
3458
|
-
|
|
3230
|
+
};
|
|
3231
|
+
function _addOnComplete(onComplete, that) {
|
|
3232
|
+
var args = [];
|
|
3233
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
3234
|
+
args[_i - 2] = arguments[_i];
|
|
3459
3235
|
}
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
function createCookieMgr(rootConfig, logger) {
|
|
3467
|
-
var cookieMgrConfig;
|
|
3468
|
-
var _path;
|
|
3469
|
-
var _domain;
|
|
3470
|
-
var _enabled;
|
|
3471
|
-
var _getCookieFn;
|
|
3472
|
-
var _setCookieFn;
|
|
3473
|
-
var _delCookieFn;
|
|
3474
|
-
rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
|
|
3475
|
-
onConfigChange(rootConfig, function (details) {
|
|
3476
|
-
details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
|
|
3477
|
-
cookieMgrConfig = details[_DYN_SET_DF ](details.cfg.cookieCfg, defaultConfig$1);
|
|
3478
|
-
var isEnabled = cookieMgrConfig.enabled;
|
|
3479
|
-
if (isNullOrUndefined(isEnabled)) {
|
|
3480
|
-
var cookieEnabled = void 0;
|
|
3481
|
-
if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {
|
|
3482
|
-
cookieEnabled = !rootConfig[strIsCookieUseDisabled];
|
|
3483
|
-
}
|
|
3484
|
-
if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
|
|
3485
|
-
cookieEnabled = !rootConfig[strDisableCookiesUsage];
|
|
3486
|
-
}
|
|
3487
|
-
isEnabled = cookieEnabled;
|
|
3236
|
+
if (onComplete) {
|
|
3237
|
+
_onComplete[_DYN_PUSH ]({
|
|
3238
|
+
func: onComplete,
|
|
3239
|
+
self: !isUndefined(that) ? that : context.ctx,
|
|
3240
|
+
args: args
|
|
3241
|
+
});
|
|
3488
3242
|
}
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
var gblManager = _globalCookieConfig[strConfigCookieMgr];
|
|
3500
|
-
if (enabled && gblManager && cookieMgr !== gblManager) {
|
|
3501
|
-
enabled = _isMgrEnabled(gblManager);
|
|
3502
|
-
}
|
|
3503
|
-
return enabled;
|
|
3504
|
-
},
|
|
3505
|
-
setEnabled: function (value) {
|
|
3506
|
-
_enabled = value !== false;
|
|
3507
|
-
},
|
|
3508
|
-
set: function (name, value, maxAgeSec, domain, path) {
|
|
3509
|
-
var result = false;
|
|
3510
|
-
if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
|
|
3511
|
-
var values = {};
|
|
3512
|
-
var theValue = strTrim(value || STR_EMPTY);
|
|
3513
|
-
var idx = strIndexOf(theValue, ";");
|
|
3514
|
-
if (idx !== -1) {
|
|
3515
|
-
theValue = strTrim(strLeft(value, idx));
|
|
3516
|
-
values = _extractParts(strSubstring(value, idx + 1));
|
|
3517
|
-
}
|
|
3518
|
-
setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
|
|
3519
|
-
if (!isNullOrUndefined(maxAgeSec)) {
|
|
3520
|
-
var _isIE = isIE();
|
|
3521
|
-
if (isUndefined(values[strExpires])) {
|
|
3522
|
-
var nowMs = utcNow();
|
|
3523
|
-
var expireMs = nowMs + (maxAgeSec * 1000);
|
|
3524
|
-
if (expireMs > 0) {
|
|
3525
|
-
var expiry = new Date();
|
|
3526
|
-
expiry.setTime(expireMs);
|
|
3527
|
-
setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
|
|
3528
|
-
}
|
|
3529
|
-
}
|
|
3530
|
-
if (!_isIE) {
|
|
3531
|
-
setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
|
|
3532
|
-
}
|
|
3533
|
-
}
|
|
3534
|
-
var location_1 = getLocation();
|
|
3535
|
-
if (location_1 && location_1.protocol === "https:") {
|
|
3536
|
-
setValue(values, "secure", null, null, isUndefined);
|
|
3537
|
-
if (_allowUaSameSite === null) {
|
|
3538
|
-
_allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
|
|
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);
|
|
3539
3253
|
}
|
|
3540
|
-
|
|
3541
|
-
|
|
3254
|
+
catch (e) {
|
|
3255
|
+
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
3542
3256
|
}
|
|
3543
|
-
}
|
|
3544
|
-
|
|
3545
|
-
_setCookieFn(name, _formatCookieValue(theValue, values));
|
|
3546
|
-
result = true;
|
|
3547
|
-
}
|
|
3548
|
-
return result;
|
|
3549
|
-
},
|
|
3550
|
-
get: function (name) {
|
|
3551
|
-
var value = STR_EMPTY;
|
|
3552
|
-
if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
|
|
3553
|
-
value = _getCookieFn(name);
|
|
3257
|
+
});
|
|
3258
|
+
_onComplete = [];
|
|
3554
3259
|
}
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
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 = {};
|
|
3561
3270
|
}
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
var values = (_a = {},
|
|
3569
|
-
_a[STR_PATH] = path ? path : "/",
|
|
3570
|
-
_a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
|
|
3571
|
-
_a);
|
|
3572
|
-
if (!isIE()) {
|
|
3573
|
-
values["max-age"] = "0";
|
|
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 = {};
|
|
3574
3277
|
}
|
|
3575
|
-
|
|
3576
|
-
|
|
3278
|
+
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
3279
|
+
idCfg = extCfg[identifier];
|
|
3577
3280
|
}
|
|
3578
|
-
return result;
|
|
3579
3281
|
}
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
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
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
_applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);
|
|
3295
|
+
});
|
|
3590
3296
|
}
|
|
3591
|
-
|
|
3592
|
-
|
|
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];
|
|
3593
3306
|
}
|
|
3307
|
+
else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {
|
|
3308
|
+
theValue = rootConfig[field];
|
|
3309
|
+
}
|
|
3310
|
+
return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;
|
|
3594
3311
|
}
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
arrForEach(parts, function (thePart) {
|
|
3602
|
-
thePart = strTrim(thePart || STR_EMPTY);
|
|
3603
|
-
if (thePart) {
|
|
3604
|
-
var idx = strIndexOf(thePart, "=");
|
|
3605
|
-
if (idx === -1) {
|
|
3606
|
-
values[thePart] = null;
|
|
3607
|
-
}
|
|
3608
|
-
else {
|
|
3609
|
-
values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));
|
|
3610
|
-
}
|
|
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);
|
|
3611
3318
|
}
|
|
3612
|
-
}
|
|
3319
|
+
}
|
|
3613
3320
|
}
|
|
3614
|
-
return
|
|
3321
|
+
return context;
|
|
3615
3322
|
}
|
|
3616
|
-
function
|
|
3617
|
-
|
|
3618
|
-
|
|
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);
|
|
3331
|
+
}
|
|
3332
|
+
return !nextPlugin;
|
|
3619
3333
|
}
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
objForEachKey(values, function (name, theValue) {
|
|
3625
|
-
cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
|
|
3626
|
-
});
|
|
3627
|
-
return cookieValue;
|
|
3628
|
-
}
|
|
3629
|
-
function _getCookieValue(name) {
|
|
3630
|
-
var cookieValue = STR_EMPTY;
|
|
3631
|
-
if (_doc) {
|
|
3632
|
-
var theCookie = _doc[strCookie] || STR_EMPTY;
|
|
3633
|
-
if (_parsedCookieValue !== theCookie) {
|
|
3634
|
-
_cookieCache = _extractParts(theCookie);
|
|
3635
|
-
_parsedCookieValue = theCookie;
|
|
3334
|
+
function _createNew(plugins, startAt) {
|
|
3335
|
+
if (plugins === void 0) { plugins = null; }
|
|
3336
|
+
if (isArray(plugins)) {
|
|
3337
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3636
3338
|
}
|
|
3637
|
-
|
|
3339
|
+
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
|
|
3638
3340
|
}
|
|
3639
|
-
|
|
3341
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3342
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3343
|
+
return context;
|
|
3640
3344
|
}
|
|
3641
|
-
function
|
|
3642
|
-
|
|
3643
|
-
|
|
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);
|
|
3644
3360
|
}
|
|
3361
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3362
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3363
|
+
return context;
|
|
3645
3364
|
}
|
|
3646
|
-
function
|
|
3647
|
-
|
|
3648
|
-
|
|
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);
|
|
3373
|
+
}
|
|
3374
|
+
});
|
|
3649
3375
|
}
|
|
3650
|
-
|
|
3651
|
-
|
|
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);
|
|
3652
3382
|
}
|
|
3653
|
-
|
|
3654
|
-
|
|
3383
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3384
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3385
|
+
return context;
|
|
3386
|
+
}
|
|
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
|
+
});
|
|
3655
3407
|
}
|
|
3656
|
-
if (
|
|
3657
|
-
return
|
|
3408
|
+
if (startAt && !firstProxy) {
|
|
3409
|
+
return createTelemetryProxyChain([startAt], config, core);
|
|
3658
3410
|
}
|
|
3659
|
-
|
|
3660
|
-
|
|
3411
|
+
return firstProxy;
|
|
3412
|
+
}
|
|
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++;
|
|
3661
3420
|
}
|
|
3662
|
-
|
|
3663
|
-
|
|
3421
|
+
else {
|
|
3422
|
+
chainId = "Unknown-0-" + _chainId++;
|
|
3664
3423
|
}
|
|
3665
|
-
|
|
3666
|
-
|
|
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;
|
|
3667
3448
|
}
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
if (
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
}
|
|
3680
|
-
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;
|
|
3681
3460
|
try {
|
|
3682
|
-
|
|
3461
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3462
|
+
if (nextId) {
|
|
3463
|
+
hasRunContext[nextId] = false;
|
|
3464
|
+
}
|
|
3465
|
+
hasRun = processPluginFn(itemCtx);
|
|
3683
3466
|
}
|
|
3684
|
-
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
|
+
}
|
|
3685
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;
|
|
3686
3489
|
}
|
|
3490
|
+
if (hasSetNext) {
|
|
3491
|
+
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
3492
|
+
}
|
|
3493
|
+
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
3494
|
+
return true;
|
|
3687
3495
|
}
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
_self.listeners[_DYN_SPLICE ](index, 1);
|
|
3706
|
-
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
|
+
}
|
|
3707
3513
|
}
|
|
3708
|
-
}
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
_self[STR_PERF_EVENT ] = function (perfEvent) {
|
|
3725
|
-
if (perfEvent) {
|
|
3726
|
-
if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
|
|
3727
|
-
_runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
|
|
3728
|
-
if (perfEvent[_DYN_IS_ASYNC ]) {
|
|
3729
|
-
scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
|
|
3730
|
-
}
|
|
3731
|
-
else {
|
|
3732
|
-
listener[STR_PERF_EVENT ](perfEvent);
|
|
3733
|
-
}
|
|
3734
|
-
});
|
|
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;
|
|
3735
3530
|
}
|
|
3736
3531
|
}
|
|
3737
|
-
}
|
|
3738
|
-
|
|
3532
|
+
}
|
|
3533
|
+
return hasRun;
|
|
3534
|
+
}
|
|
3535
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
3536
|
+
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
3537
|
+
}
|
|
3739
3538
|
}
|
|
3740
|
-
|
|
3741
|
-
|
|
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;
|
|
3742
3548
|
}());
|
|
3743
3549
|
|
|
3744
3550
|
function createUnloadHandlerContainer() {
|
|
@@ -4002,6 +3808,7 @@
|
|
|
4002
3808
|
function _validateExtensions(logger, channelPriority, allExtensions) {
|
|
4003
3809
|
var _a;
|
|
4004
3810
|
var coreExtensions = [];
|
|
3811
|
+
var channels = [];
|
|
4005
3812
|
var extPriorities = {};
|
|
4006
3813
|
arrForEach(allExtensions, function (ext) {
|
|
4007
3814
|
if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
|
|
@@ -4020,11 +3827,13 @@
|
|
|
4020
3827
|
if (!extPriority || extPriority < channelPriority) {
|
|
4021
3828
|
coreExtensions[_DYN_PUSH ](ext);
|
|
4022
3829
|
}
|
|
3830
|
+
else {
|
|
3831
|
+
channels[_DYN_PUSH ](ext);
|
|
3832
|
+
}
|
|
4023
3833
|
});
|
|
4024
|
-
return _a = {
|
|
4025
|
-
all: allExtensions
|
|
4026
|
-
},
|
|
3834
|
+
return _a = {},
|
|
4027
3835
|
_a[STR_CORE ] = coreExtensions,
|
|
3836
|
+
_a[STR_CHANNELS ] = channels,
|
|
4028
3837
|
_a;
|
|
4029
3838
|
}
|
|
4030
3839
|
function _isPluginPresent(thePlugin, plugins) {
|
|
@@ -4102,10 +3911,8 @@
|
|
|
4102
3911
|
var _cookieManager;
|
|
4103
3912
|
var _pluginChain;
|
|
4104
3913
|
var _configExtensions;
|
|
4105
|
-
var _coreExtensions;
|
|
4106
|
-
var _channelControl;
|
|
4107
3914
|
var _channelConfig;
|
|
4108
|
-
var
|
|
3915
|
+
var _channels;
|
|
4109
3916
|
var _isUnloading;
|
|
4110
3917
|
var _telemetryInitializerPlugin;
|
|
4111
3918
|
var _internalLogsEventName;
|
|
@@ -4152,20 +3959,26 @@
|
|
|
4152
3959
|
_configExtensions[_DYN_PUSH ].apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), cfgExtensions));
|
|
4153
3960
|
_channelConfig = config[STR_CHANNELS ];
|
|
4154
3961
|
_initPluginChain(null);
|
|
4155
|
-
if (!
|
|
3962
|
+
if (!_channels || _channels[_DYN_LENGTH ] === 0) {
|
|
4156
3963
|
throwError("No " + STR_CHANNELS + " available");
|
|
4157
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
|
+
}
|
|
4158
3971
|
_registerDelayedCfgListener(config, _cfgListeners, _self[_DYN_LOGGER ]);
|
|
4159
3972
|
_cfgListeners = null;
|
|
4160
3973
|
_isInitialized = true;
|
|
4161
3974
|
_self.releaseQueue();
|
|
4162
3975
|
_self[_DYN_POLL_INTERNAL_LOGS ]();
|
|
4163
3976
|
};
|
|
4164
|
-
_self.
|
|
3977
|
+
_self.getChannels = function () {
|
|
4165
3978
|
var controls = [];
|
|
4166
|
-
if (
|
|
4167
|
-
arrForEach(
|
|
4168
|
-
controls[_DYN_PUSH ](
|
|
3979
|
+
if (_channels) {
|
|
3980
|
+
arrForEach(_channels, function (channel) {
|
|
3981
|
+
controls[_DYN_PUSH ](channel);
|
|
4169
3982
|
});
|
|
4170
3983
|
}
|
|
4171
3984
|
return objFreeze(controls);
|
|
@@ -4316,9 +4129,7 @@
|
|
|
4316
4129
|
_self[_DYN_STOP_POLLING_INTERNA3 ]();
|
|
4317
4130
|
processUnloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
4318
4131
|
}
|
|
4319
|
-
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout))
|
|
4320
|
-
_doUnload(false);
|
|
4321
|
-
}
|
|
4132
|
+
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout)) ;
|
|
4322
4133
|
};
|
|
4323
4134
|
_self[_DYN_GET_PLUGIN ] = _getPlugin;
|
|
4324
4135
|
_self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
|
|
@@ -4399,7 +4210,7 @@
|
|
|
4399
4210
|
_self.evtNamespace = function () {
|
|
4400
4211
|
return _evtNamespace;
|
|
4401
4212
|
};
|
|
4402
|
-
_self
|
|
4213
|
+
_self.flush = _flushChannels;
|
|
4403
4214
|
_self.getTraceCtx = function (createNew) {
|
|
4404
4215
|
if (!_traceCtx) {
|
|
4405
4216
|
_traceCtx = createDistributedTraceContext();
|
|
@@ -4496,11 +4307,9 @@
|
|
|
4496
4307
|
_cfgPerfManager = null;
|
|
4497
4308
|
_cookieManager = null;
|
|
4498
4309
|
_pluginChain = null;
|
|
4499
|
-
_coreExtensions = null;
|
|
4500
4310
|
_configExtensions = [];
|
|
4501
|
-
_channelControl = null;
|
|
4502
4311
|
_channelConfig = null;
|
|
4503
|
-
|
|
4312
|
+
_channels = null;
|
|
4504
4313
|
_isUnloading = false;
|
|
4505
4314
|
_internalLogsEventName = null;
|
|
4506
4315
|
_evtNamespace = createUniqueNamespace("AIBaseCore", true);
|
|
@@ -4517,32 +4326,19 @@
|
|
|
4517
4326
|
}
|
|
4518
4327
|
function _initPluginChain(updateState) {
|
|
4519
4328
|
var theExtensions = _validateExtensions(_self[_DYN_LOGGER ], ChannelControllerPriority, _configExtensions);
|
|
4520
|
-
_coreExtensions = theExtensions[STR_CORE ];
|
|
4521
4329
|
_pluginChain = null;
|
|
4522
4330
|
_pluginVersionString = null;
|
|
4523
4331
|
_pluginVersionStringArr = null;
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
}
|
|
4535
|
-
_channelControl._setQueue(_channelQueue);
|
|
4536
|
-
}
|
|
4537
|
-
else {
|
|
4538
|
-
_channelControl = createChannelControllerPlugin(_channelQueue, _self);
|
|
4539
|
-
}
|
|
4540
|
-
allExtensions[_DYN_PUSH ](_channelControl);
|
|
4541
|
-
_coreExtensions[_DYN_PUSH ](_channelControl);
|
|
4542
|
-
_extensions = sortPlugins(allExtensions);
|
|
4543
|
-
_channelControl[_DYN_INITIALIZE ](_configHandler.cfg, _self, allExtensions);
|
|
4544
|
-
initializePlugins(_createTelCtx(), allExtensions);
|
|
4545
|
-
_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);
|
|
4546
4342
|
if (updateState) {
|
|
4547
4343
|
_doUpdate(updateState);
|
|
4548
4344
|
}
|
|
@@ -4551,14 +4347,11 @@
|
|
|
4551
4347
|
var theExt = null;
|
|
4552
4348
|
var thePlugin = null;
|
|
4553
4349
|
arrForEach(_extensions, function (ext) {
|
|
4554
|
-
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !==
|
|
4350
|
+
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {
|
|
4555
4351
|
thePlugin = ext;
|
|
4556
4352
|
return -1;
|
|
4557
4353
|
}
|
|
4558
4354
|
});
|
|
4559
|
-
if (!thePlugin && _channelControl) {
|
|
4560
|
-
thePlugin = _channelControl.getChannel(pluginIdentifier);
|
|
4561
|
-
}
|
|
4562
4355
|
if (thePlugin) {
|
|
4563
4356
|
theExt = {
|
|
4564
4357
|
plugin: thePlugin,
|
|
@@ -4594,7 +4387,7 @@
|
|
|
4594
4387
|
}
|
|
4595
4388
|
function _getPluginChain() {
|
|
4596
4389
|
if (!_pluginChain) {
|
|
4597
|
-
var extensions = (
|
|
4390
|
+
var extensions = (_extensions || []).slice();
|
|
4598
4391
|
if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {
|
|
4599
4392
|
extensions[_DYN_PUSH ](_telemetryInitializerPlugin);
|
|
4600
4393
|
}
|
|
@@ -4662,10 +4455,46 @@
|
|
|
4662
4455
|
}
|
|
4663
4456
|
}
|
|
4664
4457
|
function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {
|
|
4665
|
-
|
|
4666
|
-
|
|
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
|
+
});
|
|
4667
4495
|
}
|
|
4668
|
-
|
|
4496
|
+
doneIterating = true;
|
|
4497
|
+
doCallback();
|
|
4669
4498
|
return true;
|
|
4670
4499
|
}
|
|
4671
4500
|
function _initDebugListener() {
|