@microsoft/applicationinsights-core-js 3.0.0-beta.2211-03 → 3.0.0-beta.2212-03
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 +1156 -1345
- 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 +1156 -1345
- 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 -63
- 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 +5 -8
- package/dist-esm/JavaScriptSDK/TelemetryHelpers.js.map +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 +2 -2
- package/src/JavaScriptSDK/AppInsightsCore.ts +98 -66
- package/src/JavaScriptSDK/Constants.ts +4 -0
- package/src/JavaScriptSDK/TelemetryHelpers.ts +5 -6
- 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.
|
|
2
|
+
* Application Insights JavaScript SDK - Core, 3.0.0-beta.2212-03
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -225,114 +225,39 @@
|
|
|
225
225
|
return registry.k[key];
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
this.constructor = d;
|
|
245
|
-
}
|
|
246
|
-
__[PROTOTYPE] = b[PROTOTYPE];
|
|
247
|
-
__[PROTOTYPE].name = name;
|
|
248
|
-
d[PROTOTYPE] = new __();
|
|
249
|
-
return d;
|
|
250
|
-
}
|
|
251
|
-
function createCustomError(name, constructCb) {
|
|
252
|
-
var baseClass = Error;
|
|
253
|
-
var customError = _createCustomError(name, function () {
|
|
254
|
-
var _this = this;
|
|
255
|
-
_this = baseClass.apply(_this, arguments) || _this;
|
|
256
|
-
constructCb && constructCb(_this, arguments);
|
|
257
|
-
return _this;
|
|
258
|
-
}, baseClass);
|
|
259
|
-
return customError;
|
|
260
|
-
}
|
|
261
|
-
var _unsupportedError;
|
|
262
|
-
function throwUnsupported(message) {
|
|
263
|
-
if (!_unsupportedError) {
|
|
264
|
-
_unsupportedError = createCustomError("UnsupportedError");
|
|
265
|
-
}
|
|
266
|
-
throw new _unsupportedError(message);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
function dumpObj(object, format) {
|
|
270
|
-
var objectTypeDump = objToString(object);
|
|
271
|
-
var propertyValueDump = "";
|
|
272
|
-
if (objectTypeDump === "[object Error]") {
|
|
273
|
-
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
try {
|
|
277
|
-
if (format) {
|
|
278
|
-
if (isNumber(format)) {
|
|
279
|
-
propertyValueDump = JSON.stringify(object, null, format);
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
propertyValueDump = JSON.stringify(object, null, 4);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
propertyValueDump = JSON.stringify(object);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
catch (e) {
|
|
290
|
-
propertyValueDump = objToString(object) + " - " + dumpObj(e, format);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
return objectTypeDump + ": " + propertyValueDump;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
var _objDefineProperty$1 = ObjClass$1["defineProperty"];
|
|
297
|
-
function objDefineProp(target, key, descriptor) {
|
|
298
|
-
if (_objDefineProperty$1) {
|
|
299
|
-
_objDefineProperty$1(target, key, descriptor);
|
|
300
|
-
return target;
|
|
301
|
-
}
|
|
302
|
-
throwUnsupported("Unable to define property [" + objToString(key) + "] on " + dumpObj(target));
|
|
228
|
+
var propMap = {
|
|
229
|
+
e: "enumerable",
|
|
230
|
+
c: "configurable",
|
|
231
|
+
v: VALUE,
|
|
232
|
+
w: "writable",
|
|
233
|
+
g: "get",
|
|
234
|
+
s: "set"
|
|
235
|
+
};
|
|
236
|
+
function _createProp(value) {
|
|
237
|
+
var prop = {};
|
|
238
|
+
prop[propMap["c"]] = true;
|
|
239
|
+
prop[propMap["e"]] = true;
|
|
240
|
+
objForEachKey(value, function (key, value) {
|
|
241
|
+
prop[propMap[key]] = isUndefined(value) ? prop[propMap[key]] : value;
|
|
242
|
+
});
|
|
243
|
+
return prop;
|
|
303
244
|
}
|
|
304
|
-
|
|
245
|
+
var objDefineProp = ObjClass$1.defineProperty;
|
|
246
|
+
function objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {
|
|
305
247
|
var desc = {
|
|
306
|
-
|
|
307
|
-
|
|
248
|
+
e: enumerable,
|
|
249
|
+
c: configurable
|
|
308
250
|
};
|
|
309
|
-
if (
|
|
310
|
-
desc.
|
|
251
|
+
if (getProp) {
|
|
252
|
+
desc.g = getProp;
|
|
311
253
|
}
|
|
312
|
-
|
|
313
|
-
desc
|
|
254
|
+
if (setProp) {
|
|
255
|
+
desc.s = setProp;
|
|
314
256
|
}
|
|
315
|
-
return objDefineProp(target,
|
|
257
|
+
return objDefineProp(target, prop, _createProp(desc));
|
|
316
258
|
}
|
|
317
|
-
function
|
|
318
|
-
|
|
319
|
-
try {
|
|
320
|
-
var descriptor = {
|
|
321
|
-
enumerable: true,
|
|
322
|
-
configurable: isUndefined(configurable) ? true : configurable
|
|
323
|
-
};
|
|
324
|
-
if (getProp) {
|
|
325
|
-
descriptor.get = getProp;
|
|
326
|
-
}
|
|
327
|
-
if (setProp) {
|
|
328
|
-
descriptor.set = setProp;
|
|
329
|
-
}
|
|
330
|
-
return objDefineProp(target, prop, descriptor);
|
|
331
|
-
}
|
|
332
|
-
catch (e) {
|
|
333
|
-
throwUnsupported("Unable to define accessors for [" + objToString(prop) + "] on " + dumpObj(target));
|
|
334
|
-
}
|
|
335
|
-
}
|
|
259
|
+
function objDefine(target, key, propDesc) {
|
|
260
|
+
return objDefineProp(target, key, _createProp(propDesc));
|
|
336
261
|
}
|
|
337
262
|
|
|
338
263
|
var _globalLazyTestHooks;
|
|
@@ -344,24 +269,21 @@
|
|
|
344
269
|
var lazyValue = {};
|
|
345
270
|
_fetchLazyTestHooks && _fetchLazyTestHooks();
|
|
346
271
|
lazyValue.b = _globalLazyTestHooks.lzy;
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
});
|
|
356
|
-
if (lazyValue.b) {
|
|
357
|
-
delete lazyValue.b;
|
|
272
|
+
objDefine(lazyValue, "v", {
|
|
273
|
+
g: function () {
|
|
274
|
+
var result = cb();
|
|
275
|
+
if (!_globalLazyTestHooks.lzy) {
|
|
276
|
+
objDefine(lazyValue, "v", { v: result });
|
|
277
|
+
if (lazyValue.b) {
|
|
278
|
+
delete lazyValue.b;
|
|
279
|
+
}
|
|
358
280
|
}
|
|
281
|
+
if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {
|
|
282
|
+
lazyValue.b = _globalLazyTestHooks.lzy;
|
|
283
|
+
}
|
|
284
|
+
return result;
|
|
359
285
|
}
|
|
360
|
-
|
|
361
|
-
lazyValue.b = _globalLazyTestHooks.lzy;
|
|
362
|
-
}
|
|
363
|
-
return result;
|
|
364
|
-
}, true);
|
|
286
|
+
});
|
|
365
287
|
return lazyValue;
|
|
366
288
|
}
|
|
367
289
|
|
|
@@ -477,6 +399,33 @@
|
|
|
477
399
|
}
|
|
478
400
|
}
|
|
479
401
|
|
|
402
|
+
function dumpObj(object, format) {
|
|
403
|
+
var objectTypeDump = objToString(object);
|
|
404
|
+
var propertyValueDump = "";
|
|
405
|
+
if (objectTypeDump === "[object Error]") {
|
|
406
|
+
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
try {
|
|
410
|
+
if (format) {
|
|
411
|
+
if (isNumber(format)) {
|
|
412
|
+
propertyValueDump = JSON.stringify(object, null, format);
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
propertyValueDump = JSON.stringify(object, null, 4);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
propertyValueDump = JSON.stringify(object);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
catch (e) {
|
|
423
|
+
propertyValueDump = objToString(object) + " - " + dumpObj(e, format);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return objectTypeDump + ": " + propertyValueDump;
|
|
427
|
+
}
|
|
428
|
+
|
|
480
429
|
function _unwrapFunction(funcName) {
|
|
481
430
|
return function (thisArg) {
|
|
482
431
|
var args = [];
|
|
@@ -496,6 +445,40 @@
|
|
|
496
445
|
|
|
497
446
|
var arrReduce = _unwrapFunction("reduce");
|
|
498
447
|
|
|
448
|
+
function objSetPrototypeOf(obj, proto) {
|
|
449
|
+
var fn = ObjClass$1["setPrototypeOf"] ||
|
|
450
|
+
({ __proto__: [] } instanceof Array && function (d, b) {
|
|
451
|
+
d.__proto__ = b;
|
|
452
|
+
}) ||
|
|
453
|
+
function (d, b) {
|
|
454
|
+
objForEachKey(b, function (key, value) {
|
|
455
|
+
d[key] = value;
|
|
456
|
+
});
|
|
457
|
+
};
|
|
458
|
+
return fn(obj, proto);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
function _createCustomError(name, d, b) {
|
|
462
|
+
objSetPrototypeOf(d, b);
|
|
463
|
+
function __() {
|
|
464
|
+
this.constructor = d;
|
|
465
|
+
}
|
|
466
|
+
__[PROTOTYPE] = b[PROTOTYPE];
|
|
467
|
+
__[PROTOTYPE].name = name;
|
|
468
|
+
d[PROTOTYPE] = new __();
|
|
469
|
+
return d;
|
|
470
|
+
}
|
|
471
|
+
function createCustomError(name, constructCb) {
|
|
472
|
+
var baseClass = Error;
|
|
473
|
+
var customError = _createCustomError(name, function () {
|
|
474
|
+
var _this = this;
|
|
475
|
+
_this = baseClass.apply(_this, arguments) || _this;
|
|
476
|
+
constructCb && constructCb(_this, arguments);
|
|
477
|
+
return _this;
|
|
478
|
+
}, baseClass);
|
|
479
|
+
return customError;
|
|
480
|
+
}
|
|
481
|
+
|
|
499
482
|
function utcNow() {
|
|
500
483
|
return (Date.now || polyUtcNow)();
|
|
501
484
|
}
|
|
@@ -585,11 +568,14 @@
|
|
|
585
568
|
};
|
|
586
569
|
if (!details.isPrim) {
|
|
587
570
|
return _getSetVisited(visitMap, value, newPath, function (newEntry) {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
571
|
+
objDefine(details, "result", {
|
|
572
|
+
g: function () {
|
|
573
|
+
return newEntry.v;
|
|
574
|
+
},
|
|
575
|
+
s: function (newValue) {
|
|
576
|
+
newEntry.v = newValue;
|
|
577
|
+
}
|
|
578
|
+
});
|
|
593
579
|
var idx = 0;
|
|
594
580
|
var handler = userHandler;
|
|
595
581
|
while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler)).call(ctx, details)) {
|
|
@@ -825,6 +811,7 @@
|
|
|
825
811
|
var _DYN_INITIALIZE = "initialize";
|
|
826
812
|
var _DYN_IDENTIFIER = "identifier";
|
|
827
813
|
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
814
|
+
var _DYN_GET_PLUGIN = "getPlugin";
|
|
828
815
|
var _DYN_POLL_INTERNAL_LOGS = "pollInternalLogs";
|
|
829
816
|
var _DYN_NAME = "name";
|
|
830
817
|
var _DYN_TIME = "time";
|
|
@@ -836,10 +823,9 @@
|
|
|
836
823
|
var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
|
|
837
824
|
var _DYN_ON_COMPLETE = "onComplete";
|
|
838
825
|
var _DYN_CALL = "call";
|
|
839
|
-
var _DYN_GET_PLUGIN = "getPlugin";
|
|
840
|
-
var _DYN_FLUSH = "flush";
|
|
841
826
|
var _DYN_VERSION = "version";
|
|
842
827
|
var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
|
|
828
|
+
var _DYN_CREATE_NEW = "createNew";
|
|
843
829
|
var _DYN_TEARDOWN = "teardown";
|
|
844
830
|
var _DYN_MESSAGE_ID = "messageId";
|
|
845
831
|
var _DYN_MESSAGE = "message";
|
|
@@ -849,8 +835,6 @@
|
|
|
849
835
|
var _DYN_UPDATE = "update";
|
|
850
836
|
var _DYN_GET_NEXT = "getNext";
|
|
851
837
|
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
852
|
-
var _DYN_CREATE_NEW = "createNew";
|
|
853
|
-
var _DYN_CONFIG = "config";
|
|
854
838
|
var _DYN_USER_AGENT = "userAgent";
|
|
855
839
|
var _DYN_SPLIT = "split";
|
|
856
840
|
var _DYN_NODE_TYPE = "nodeType";
|
|
@@ -1727,7 +1711,7 @@
|
|
|
1727
1711
|
}
|
|
1728
1712
|
|
|
1729
1713
|
var _objDefineProperty = ObjDefineProperty;
|
|
1730
|
-
var version = "3.0.0-beta.
|
|
1714
|
+
var version = "3.0.0-beta.2212-03";
|
|
1731
1715
|
var instanceName = "." + newId(6);
|
|
1732
1716
|
var _dataUid = 0;
|
|
1733
1717
|
function _createAccessor(target, prop, value) {
|
|
@@ -2221,6 +2205,8 @@
|
|
|
2221
2205
|
createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
|
|
2222
2206
|
}
|
|
2223
2207
|
|
|
2208
|
+
var ChannelControllerPriority = 500;
|
|
2209
|
+
|
|
2224
2210
|
var listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];
|
|
2225
2211
|
var _aiNamespace = null;
|
|
2226
2212
|
var _debugListener;
|
|
@@ -2437,1308 +2423,1111 @@
|
|
|
2437
2423
|
_getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE ](severity, message);
|
|
2438
2424
|
}
|
|
2439
2425
|
|
|
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
|
-
};
|
|
2426
|
+
var _a$2, _b;
|
|
2427
|
+
var strToGMTString = "toGMTString";
|
|
2428
|
+
var strToUTCString = "toUTCString";
|
|
2429
|
+
var strCookie = "cookie";
|
|
2430
|
+
var strExpires = "expires";
|
|
2431
|
+
var strIsCookieUseDisabled = "isCookieUseDisabled";
|
|
2432
|
+
var strDisableCookiesUsage = "disableCookiesUsage";
|
|
2433
|
+
var strConfigCookieMgr = "_ckMgr";
|
|
2434
|
+
var _supportsCookies = null;
|
|
2435
|
+
var _allowUaSameSite = null;
|
|
2436
|
+
var _parsedCookieValue = null;
|
|
2437
|
+
var _doc = getDocument();
|
|
2438
|
+
var _cookieCache = {};
|
|
2439
|
+
var _globalCookieConfig = {};
|
|
2440
|
+
var defaultConfig$1 = objDeepFreeze((_a$2 = {},
|
|
2441
|
+
_a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
|
|
2442
|
+
_a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
|
|
2443
|
+
_a$2.enabled = UNDEFINED_VALUE,
|
|
2444
|
+
_a$2));
|
|
2445
|
+
var rootDefaultConfig = (_b = {
|
|
2446
|
+
cookieCfg: {},
|
|
2447
|
+
cookieDomain: UNDEFINED_VALUE,
|
|
2448
|
+
cookiePath: UNDEFINED_VALUE
|
|
2449
|
+
},
|
|
2450
|
+
_b[strDisableCookiesUsage] = UNDEFINED_VALUE,
|
|
2451
|
+
_b);
|
|
2452
|
+
function _gblCookieMgr(config, logger) {
|
|
2453
|
+
var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
|
|
2454
|
+
if (!inst) {
|
|
2455
|
+
inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);
|
|
2456
|
+
_globalCookieConfig[strConfigCookieMgr] = inst;
|
|
2502
2457
|
}
|
|
2503
|
-
|
|
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
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
return func();
|
|
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);
|
|
2458
|
+
return inst;
|
|
2590
2459
|
}
|
|
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];
|
|
2460
|
+
function _isMgrEnabled(cookieMgr) {
|
|
2461
|
+
if (cookieMgr) {
|
|
2462
|
+
return cookieMgr.isEnabled();
|
|
2605
2463
|
}
|
|
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);
|
|
2464
|
+
return true;
|
|
2608
2465
|
}
|
|
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);
|
|
2466
|
+
function _isIgnoredCookie(cookieMgrCfg, name) {
|
|
2467
|
+
if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {
|
|
2468
|
+
return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;
|
|
2619
2469
|
}
|
|
2620
2470
|
return false;
|
|
2621
2471
|
}
|
|
2622
|
-
function
|
|
2623
|
-
if (
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
}
|
|
2628
|
-
function _formatFlags(value) {
|
|
2629
|
-
if (isNaN(value) || value < 0 || value > 255) {
|
|
2630
|
-
value = 0x01;
|
|
2631
|
-
}
|
|
2632
|
-
var result = value.toString(16);
|
|
2633
|
-
while (result[_DYN_LENGTH ] < 2) {
|
|
2634
|
-
result = "0" + result;
|
|
2635
|
-
}
|
|
2636
|
-
return result;
|
|
2637
|
-
}
|
|
2638
|
-
function createTraceParent(traceId, spanId, flags, version) {
|
|
2639
|
-
var _a;
|
|
2640
|
-
return _a = {},
|
|
2641
|
-
_a[_DYN_VERSION ] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
|
|
2642
|
-
_a[_DYN_TRACE_ID ] = isValidTraceId(traceId) ? traceId : generateW3CId(),
|
|
2643
|
-
_a[_DYN_SPAN_ID ] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
|
|
2644
|
-
_a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,
|
|
2645
|
-
_a;
|
|
2646
|
-
}
|
|
2647
|
-
function parseTraceParent(value) {
|
|
2648
|
-
var _a;
|
|
2649
|
-
if (!value) {
|
|
2650
|
-
return null;
|
|
2651
|
-
}
|
|
2652
|
-
if (isArray(value)) {
|
|
2653
|
-
value = value[0] || "";
|
|
2654
|
-
}
|
|
2655
|
-
if (!value || !isString(value) || value[_DYN_LENGTH ] > 8192) {
|
|
2656
|
-
return null;
|
|
2657
|
-
}
|
|
2658
|
-
var match = TRACE_PARENT_REGEX.exec(strTrim(value));
|
|
2659
|
-
if (!match ||
|
|
2660
|
-
match[1] === INVALID_VERSION ||
|
|
2661
|
-
match[2] === INVALID_TRACE_ID ||
|
|
2662
|
-
match[3] === INVALID_SPAN_ID) {
|
|
2663
|
-
return null;
|
|
2664
|
-
}
|
|
2665
|
-
return _a = {},
|
|
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;
|
|
2671
|
-
}
|
|
2672
|
-
function isValidTraceId(value) {
|
|
2673
|
-
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
2674
|
-
}
|
|
2675
|
-
function isValidSpanId(value) {
|
|
2676
|
-
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
2677
|
-
}
|
|
2678
|
-
function isValidTraceParent(value) {
|
|
2679
|
-
if (!value ||
|
|
2680
|
-
!_isValid(value[_DYN_VERSION ], 2, INVALID_VERSION) ||
|
|
2681
|
-
!_isValid(value[_DYN_TRACE_ID ], 32, INVALID_TRACE_ID) ||
|
|
2682
|
-
!_isValid(value[_DYN_SPAN_ID ], 16, INVALID_SPAN_ID) ||
|
|
2683
|
-
!_isValid(_formatFlags(value[_DYN_TRACE_FLAGS ]), 2)) {
|
|
2684
|
-
return false;
|
|
2472
|
+
function _isBlockedCookie(cookieMgrCfg, name) {
|
|
2473
|
+
if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {
|
|
2474
|
+
if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {
|
|
2475
|
+
return true;
|
|
2476
|
+
}
|
|
2685
2477
|
}
|
|
2686
|
-
return
|
|
2478
|
+
return _isIgnoredCookie(cookieMgrCfg, name);
|
|
2687
2479
|
}
|
|
2688
|
-
function
|
|
2689
|
-
|
|
2690
|
-
|
|
2480
|
+
function safeGetCookieMgr(core, config) {
|
|
2481
|
+
var cookieMgr;
|
|
2482
|
+
if (core) {
|
|
2483
|
+
cookieMgr = core.getCookieMgr();
|
|
2691
2484
|
}
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
var flags = _formatFlags(value[_DYN_TRACE_FLAGS ]);
|
|
2697
|
-
if (!_isValid(flags, 2)) {
|
|
2698
|
-
flags = "01";
|
|
2485
|
+
else if (config) {
|
|
2486
|
+
var cookieCfg = config.cookieCfg;
|
|
2487
|
+
if (cookieCfg && cookieCfg[strConfigCookieMgr]) {
|
|
2488
|
+
cookieMgr = cookieCfg[strConfigCookieMgr];
|
|
2699
2489
|
}
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
version = DEFAULT_VERSION;
|
|
2490
|
+
else {
|
|
2491
|
+
cookieMgr = createCookieMgr(config);
|
|
2703
2492
|
}
|
|
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());
|
|
2705
2493
|
}
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
function findW3cTraceParent() {
|
|
2709
|
-
var name = "traceparent";
|
|
2710
|
-
var traceParent = parseTraceParent(findMetaTag(name));
|
|
2711
|
-
if (!traceParent) {
|
|
2712
|
-
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
2494
|
+
if (!cookieMgr) {
|
|
2495
|
+
cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER ]);
|
|
2713
2496
|
}
|
|
2714
|
-
return
|
|
2715
|
-
}
|
|
2716
|
-
|
|
2717
|
-
var pluginStateData = createElmNodeData("plugin");
|
|
2718
|
-
function _getPluginState(plugin) {
|
|
2719
|
-
return pluginStateData.get(plugin, "state", {}, true);
|
|
2497
|
+
return cookieMgr;
|
|
2720
2498
|
}
|
|
2721
|
-
function
|
|
2722
|
-
var
|
|
2723
|
-
var
|
|
2724
|
-
var
|
|
2725
|
-
var
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
isInitialized = pluginState[_DYN_IS_INITIALIZED ];
|
|
2499
|
+
function createCookieMgr(rootConfig, logger) {
|
|
2500
|
+
var cookieMgrConfig;
|
|
2501
|
+
var _path;
|
|
2502
|
+
var _domain;
|
|
2503
|
+
var _enabled;
|
|
2504
|
+
var _getCookieFn;
|
|
2505
|
+
var _setCookieFn;
|
|
2506
|
+
var _delCookieFn;
|
|
2507
|
+
rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
|
|
2508
|
+
onConfigChange(rootConfig, function (details) {
|
|
2509
|
+
details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
|
|
2510
|
+
cookieMgrConfig = details[_DYN_SET_DF ](details.cfg.cookieCfg, defaultConfig$1);
|
|
2511
|
+
var isEnabled = cookieMgrConfig.enabled;
|
|
2512
|
+
if (isNullOrUndefined(isEnabled)) {
|
|
2513
|
+
var cookieEnabled = void 0;
|
|
2514
|
+
if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {
|
|
2515
|
+
cookieEnabled = !rootConfig[strIsCookieUseDisabled];
|
|
2739
2516
|
}
|
|
2740
|
-
if (!
|
|
2741
|
-
|
|
2517
|
+
if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
|
|
2518
|
+
cookieEnabled = !rootConfig[strDisableCookiesUsage];
|
|
2742
2519
|
}
|
|
2743
|
-
|
|
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;
|
|
2520
|
+
isEnabled = cookieEnabled;
|
|
2753
2521
|
}
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
result = -1;
|
|
2522
|
+
_path = cookieMgrConfig[STR_PATH ] || "/";
|
|
2523
|
+
_domain = cookieMgrConfig[STR_DOMAIN ];
|
|
2524
|
+
_enabled = isEnabled !== false;
|
|
2525
|
+
_getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;
|
|
2526
|
+
_setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
|
|
2527
|
+
_delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;
|
|
2528
|
+
}, logger);
|
|
2529
|
+
var cookieMgr = {
|
|
2530
|
+
isEnabled: function () {
|
|
2531
|
+
var enabled = _enabled && areCookiesSupported(logger);
|
|
2532
|
+
var gblManager = _globalCookieConfig[strConfigCookieMgr];
|
|
2533
|
+
if (enabled && gblManager && cookieMgr !== gblManager) {
|
|
2534
|
+
enabled = _isMgrEnabled(gblManager);
|
|
2768
2535
|
}
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2536
|
+
return enabled;
|
|
2537
|
+
},
|
|
2538
|
+
setEnabled: function (value) {
|
|
2539
|
+
_enabled = value !== false;
|
|
2540
|
+
},
|
|
2541
|
+
set: function (name, value, maxAgeSec, domain, path) {
|
|
2542
|
+
var result = false;
|
|
2543
|
+
if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
|
|
2544
|
+
var values = {};
|
|
2545
|
+
var theValue = strTrim(value || STR_EMPTY);
|
|
2546
|
+
var idx = strIndexOf(theValue, ";");
|
|
2547
|
+
if (idx !== -1) {
|
|
2548
|
+
theValue = strTrim(strLeft(value, idx));
|
|
2549
|
+
values = _extractParts(strSubstring(value, idx + 1));
|
|
2550
|
+
}
|
|
2551
|
+
setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
|
|
2552
|
+
if (!isNullOrUndefined(maxAgeSec)) {
|
|
2553
|
+
var _isIE = isIE();
|
|
2554
|
+
if (isUndefined(values[strExpires])) {
|
|
2555
|
+
var nowMs = utcNow();
|
|
2556
|
+
var expireMs = nowMs + (maxAgeSec * 1000);
|
|
2557
|
+
if (expireMs > 0) {
|
|
2558
|
+
var expiry = new Date();
|
|
2559
|
+
expiry.setTime(expireMs);
|
|
2560
|
+
setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
|
|
2561
|
+
}
|
|
2562
|
+
}
|
|
2563
|
+
if (!_isIE) {
|
|
2564
|
+
setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
|
|
2786
2565
|
}
|
|
2787
2566
|
}
|
|
2567
|
+
var location_1 = getLocation();
|
|
2568
|
+
if (location_1 && location_1.protocol === "https:") {
|
|
2569
|
+
setValue(values, "secure", null, null, isUndefined);
|
|
2570
|
+
if (_allowUaSameSite === null) {
|
|
2571
|
+
_allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
|
|
2572
|
+
}
|
|
2573
|
+
if (_allowUaSameSite) {
|
|
2574
|
+
setValue(values, "SameSite", "None", null, isUndefined);
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
setValue(values, STR_PATH, path || _path, null, isUndefined);
|
|
2578
|
+
_setCookieFn(name, _formatCookieValue(theValue, values));
|
|
2579
|
+
result = true;
|
|
2788
2580
|
}
|
|
2789
|
-
|
|
2790
|
-
}
|
|
2791
|
-
return _doUnload();
|
|
2792
|
-
}
|
|
2793
|
-
function createDistributedTraceContext(parentCtx) {
|
|
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 ];
|
|
2581
|
+
return result;
|
|
2805
2582
|
},
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
if (
|
|
2809
|
-
|
|
2583
|
+
get: function (name) {
|
|
2584
|
+
var value = STR_EMPTY;
|
|
2585
|
+
if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
|
|
2586
|
+
value = _getCookieFn(name);
|
|
2810
2587
|
}
|
|
2588
|
+
return value;
|
|
2811
2589
|
},
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
parentCtx && parentCtx.setSpanId(newValue);
|
|
2817
|
-
if (isValidSpanId(newValue)) {
|
|
2818
|
-
trace[_DYN_SPAN_ID ] = newValue;
|
|
2590
|
+
del: function (name, path) {
|
|
2591
|
+
var result = false;
|
|
2592
|
+
if (_isMgrEnabled(cookieMgr)) {
|
|
2593
|
+
result = cookieMgr.purge(name, path);
|
|
2819
2594
|
}
|
|
2595
|
+
return result;
|
|
2820
2596
|
},
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2597
|
+
purge: function (name, path) {
|
|
2598
|
+
var _a;
|
|
2599
|
+
var result = false;
|
|
2600
|
+
if (areCookiesSupported(logger)) {
|
|
2601
|
+
var values = (_a = {},
|
|
2602
|
+
_a[STR_PATH] = path ? path : "/",
|
|
2603
|
+
_a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
|
|
2604
|
+
_a);
|
|
2605
|
+
if (!isIE()) {
|
|
2606
|
+
values["max-age"] = "0";
|
|
2607
|
+
}
|
|
2608
|
+
_delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
|
|
2609
|
+
result = true;
|
|
2610
|
+
}
|
|
2611
|
+
return result;
|
|
2827
2612
|
}
|
|
2828
2613
|
};
|
|
2614
|
+
cookieMgr[strConfigCookieMgr] = cookieMgr;
|
|
2615
|
+
return cookieMgr;
|
|
2829
2616
|
}
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2617
|
+
function areCookiesSupported(logger) {
|
|
2618
|
+
if (_supportsCookies === null) {
|
|
2619
|
+
_supportsCookies = false;
|
|
2620
|
+
try {
|
|
2621
|
+
var doc = _doc || {};
|
|
2622
|
+
_supportsCookies = doc[strCookie] !== undefined;
|
|
2623
|
+
}
|
|
2624
|
+
catch (e) {
|
|
2625
|
+
_throwInternal(logger, 2 , 68 , "Cannot access document.cookie - " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2839
2626
|
}
|
|
2840
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
2841
2627
|
}
|
|
2842
|
-
return
|
|
2628
|
+
return _supportsCookies;
|
|
2843
2629
|
}
|
|
2844
|
-
function
|
|
2845
|
-
var
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2630
|
+
function _extractParts(theValue) {
|
|
2631
|
+
var values = {};
|
|
2632
|
+
if (theValue && theValue[_DYN_LENGTH ]) {
|
|
2633
|
+
var parts = strTrim(theValue)[_DYN_SPLIT ](";");
|
|
2634
|
+
arrForEach(parts, function (thePart) {
|
|
2635
|
+
thePart = strTrim(thePart || STR_EMPTY);
|
|
2636
|
+
if (thePart) {
|
|
2637
|
+
var idx = strIndexOf(thePart, "=");
|
|
2638
|
+
if (idx === -1) {
|
|
2639
|
+
values[thePart] = null;
|
|
2640
|
+
}
|
|
2641
|
+
else {
|
|
2642
|
+
values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
});
|
|
2849
2646
|
}
|
|
2850
|
-
|
|
2851
|
-
|
|
2647
|
+
return values;
|
|
2648
|
+
}
|
|
2649
|
+
function _formatDate(theDate, func) {
|
|
2650
|
+
if (isFunction(theDate[func])) {
|
|
2651
|
+
return theDate[func]();
|
|
2852
2652
|
}
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
},
|
|
2870
|
-
getNext: function () {
|
|
2871
|
-
return _nextProxy;
|
|
2872
|
-
},
|
|
2873
|
-
setNext: function (nextPlugin) {
|
|
2874
|
-
_nextProxy = nextPlugin;
|
|
2875
|
-
},
|
|
2876
|
-
iterate: _iterateChain,
|
|
2877
|
-
onComplete: _addOnComplete
|
|
2653
|
+
return null;
|
|
2654
|
+
}
|
|
2655
|
+
function _formatCookieValue(value, values) {
|
|
2656
|
+
var cookieValue = value || STR_EMPTY;
|
|
2657
|
+
objForEachKey(values, function (name, theValue) {
|
|
2658
|
+
cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
|
|
2659
|
+
});
|
|
2660
|
+
return cookieValue;
|
|
2661
|
+
}
|
|
2662
|
+
function _getCookieValue(name) {
|
|
2663
|
+
var cookieValue = STR_EMPTY;
|
|
2664
|
+
if (_doc) {
|
|
2665
|
+
var theCookie = _doc[strCookie] || STR_EMPTY;
|
|
2666
|
+
if (_parsedCookieValue !== theCookie) {
|
|
2667
|
+
_cookieCache = _extractParts(theCookie);
|
|
2668
|
+
_parsedCookieValue = theCookie;
|
|
2878
2669
|
}
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2670
|
+
cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);
|
|
2671
|
+
}
|
|
2672
|
+
return cookieValue;
|
|
2673
|
+
}
|
|
2674
|
+
function _setCookieValue(name, cookieValue) {
|
|
2675
|
+
if (_doc) {
|
|
2676
|
+
_doc[strCookie] = name + "=" + cookieValue;
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2679
|
+
function uaDisallowsSameSiteNone(userAgent) {
|
|
2680
|
+
if (!isString(userAgent)) {
|
|
2681
|
+
return false;
|
|
2682
|
+
}
|
|
2683
|
+
if (strContains(userAgent, "CPU iPhone OS 12") || strContains(userAgent, "iPad; CPU OS 12")) {
|
|
2684
|
+
return true;
|
|
2685
|
+
}
|
|
2686
|
+
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strContains(userAgent, "Version/") && strContains(userAgent, "Safari")) {
|
|
2687
|
+
return true;
|
|
2688
|
+
}
|
|
2689
|
+
if (strContains(userAgent, "Macintosh; Intel Mac OS X 10_14") && strEndsWith(userAgent, "AppleWebKit/605.1.15 (KHTML, like Gecko)")) {
|
|
2690
|
+
return true;
|
|
2691
|
+
}
|
|
2692
|
+
if (strContains(userAgent, "Chrome/5") || strContains(userAgent, "Chrome/6")) {
|
|
2693
|
+
return true;
|
|
2694
|
+
}
|
|
2695
|
+
if (strContains(userAgent, "UnrealEngine") && !strContains(userAgent, "Chrome")) {
|
|
2696
|
+
return true;
|
|
2697
|
+
}
|
|
2698
|
+
if (strContains(userAgent, "UCBrowser/12") || strContains(userAgent, "UCBrowser/11")) {
|
|
2699
|
+
return true;
|
|
2700
|
+
}
|
|
2701
|
+
return false;
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2704
|
+
var defaultValues$1 = {
|
|
2705
|
+
perfEvtsSendAll: false
|
|
2706
|
+
};
|
|
2707
|
+
function _runListeners(listeners, name, isAsync, callback) {
|
|
2708
|
+
arrForEach(listeners, function (listener) {
|
|
2709
|
+
if (listener && listener[name]) {
|
|
2710
|
+
if (isAsync) {
|
|
2711
|
+
scheduleTimeout(function () { return callback(listener); }, 0);
|
|
2712
|
+
}
|
|
2713
|
+
else {
|
|
2714
|
+
try {
|
|
2715
|
+
callback(listener);
|
|
2716
|
+
}
|
|
2717
|
+
catch (e) {
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2884
2720
|
}
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2721
|
+
});
|
|
2722
|
+
}
|
|
2723
|
+
var NotificationManager = /** @class */ (function () {
|
|
2724
|
+
function NotificationManager(config) {
|
|
2725
|
+
this.listeners = [];
|
|
2726
|
+
var perfEvtsSendAll;
|
|
2727
|
+
var cfgHandler = createDynamicConfig(config, defaultValues$1);
|
|
2728
|
+
cfgHandler[_DYN_WATCH ](function (details) {
|
|
2729
|
+
perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;
|
|
2730
|
+
});
|
|
2731
|
+
dynamicProto(NotificationManager, this, function (_self) {
|
|
2732
|
+
_self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
|
|
2733
|
+
_self.listeners[_DYN_PUSH ](listener);
|
|
2734
|
+
};
|
|
2735
|
+
_self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
|
|
2736
|
+
var index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
|
|
2737
|
+
while (index > -1) {
|
|
2738
|
+
_self.listeners[_DYN_SPLICE ](index, 1);
|
|
2739
|
+
index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
|
|
2740
|
+
}
|
|
2741
|
+
};
|
|
2742
|
+
_self[STR_EVENTS_SENT ] = function (events) {
|
|
2743
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SENT, true, function (listener) {
|
|
2744
|
+
listener[STR_EVENTS_SENT ](events);
|
|
2745
|
+
});
|
|
2746
|
+
};
|
|
2747
|
+
_self[STR_EVENTS_DISCARDED ] = function (events, reason) {
|
|
2748
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_DISCARDED, true, function (listener) {
|
|
2749
|
+
listener[STR_EVENTS_DISCARDED ](events, reason);
|
|
2750
|
+
});
|
|
2751
|
+
};
|
|
2752
|
+
_self[STR_EVENTS_SEND_REQUEST ] = function (sendReason, isAsync) {
|
|
2753
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
|
|
2754
|
+
listener[STR_EVENTS_SEND_REQUEST ](sendReason, isAsync);
|
|
2755
|
+
});
|
|
2756
|
+
};
|
|
2757
|
+
_self[STR_PERF_EVENT ] = function (perfEvent) {
|
|
2758
|
+
if (perfEvent) {
|
|
2759
|
+
if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
|
|
2760
|
+
_runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
|
|
2761
|
+
if (perfEvent[_DYN_IS_ASYNC ]) {
|
|
2762
|
+
scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
|
|
2763
|
+
}
|
|
2764
|
+
else {
|
|
2765
|
+
listener[STR_PERF_EVENT ](perfEvent);
|
|
2766
|
+
}
|
|
2767
|
+
});
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
};
|
|
2771
|
+
});
|
|
2772
|
+
}
|
|
2773
|
+
NotificationManager.__ieDyn=1;
|
|
2774
|
+
return NotificationManager;
|
|
2775
|
+
}());
|
|
2776
|
+
|
|
2777
|
+
var strExecutionContextKey = "ctx";
|
|
2778
|
+
var strParentContextKey = "ParentContextKey";
|
|
2779
|
+
var strChildrenContextKey = "ChildrenContextKey";
|
|
2780
|
+
var _defaultPerfManager = null;
|
|
2781
|
+
var PerfEvent = /** @class */ (function () {
|
|
2782
|
+
function PerfEvent(name, payloadDetails, isAsync) {
|
|
2783
|
+
var _self = this;
|
|
2784
|
+
_self.start = utcNow();
|
|
2785
|
+
_self[_DYN_NAME ] = name;
|
|
2786
|
+
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
2787
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
2788
|
+
if (isFunction(payloadDetails)) {
|
|
2789
|
+
var theDetails_1;
|
|
2790
|
+
objDefineAccessors(_self, "payload", function () {
|
|
2791
|
+
if (!theDetails_1 && isFunction(payloadDetails)) {
|
|
2792
|
+
theDetails_1 = payloadDetails();
|
|
2793
|
+
payloadDetails = null;
|
|
2794
|
+
}
|
|
2795
|
+
return theDetails_1;
|
|
2890
2796
|
});
|
|
2891
2797
|
}
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
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 = [];
|
|
2798
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
2799
|
+
if (key) {
|
|
2800
|
+
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
2801
|
+
return _self[key];
|
|
2802
|
+
}
|
|
2803
|
+
return (_self[strExecutionContextKey] || {})[key];
|
|
2908
2804
|
}
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2805
|
+
return null;
|
|
2806
|
+
};
|
|
2807
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2808
|
+
if (key) {
|
|
2809
|
+
if (key === PerfEvent[strParentContextKey]) {
|
|
2810
|
+
if (!_self[key]) {
|
|
2811
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
2812
|
+
}
|
|
2813
|
+
_self[key] = value;
|
|
2814
|
+
}
|
|
2815
|
+
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
2816
|
+
_self[key] = value;
|
|
2817
|
+
}
|
|
2818
|
+
else {
|
|
2819
|
+
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2820
|
+
ctx[key] = value;
|
|
2821
|
+
}
|
|
2919
2822
|
}
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2823
|
+
};
|
|
2824
|
+
_self[_DYN_COMPLETE ] = function () {
|
|
2825
|
+
var childTime = 0;
|
|
2826
|
+
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2827
|
+
if (isArray(childEvts)) {
|
|
2828
|
+
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
2829
|
+
var childEvt = childEvts[lp];
|
|
2830
|
+
if (childEvt) {
|
|
2831
|
+
childTime += childEvt[_DYN_TIME ];
|
|
2832
|
+
}
|
|
2926
2833
|
}
|
|
2927
|
-
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
2928
|
-
idCfg = extCfg[identifier];
|
|
2929
2834
|
}
|
|
2930
|
-
|
|
2931
|
-
|
|
2835
|
+
_self[_DYN_TIME ] = utcNow() - _self.start;
|
|
2836
|
+
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
2837
|
+
_self[_DYN_COMPLETE ] = function () { };
|
|
2838
|
+
};
|
|
2932
2839
|
}
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2840
|
+
PerfEvent.ParentContextKey = "parent";
|
|
2841
|
+
PerfEvent.ChildrenContextKey = "childEvts";
|
|
2842
|
+
return PerfEvent;
|
|
2843
|
+
}());
|
|
2844
|
+
var PerfManager = /** @class */ (function () {
|
|
2845
|
+
function PerfManager(manager) {
|
|
2846
|
+
this.ctx = {};
|
|
2847
|
+
dynamicProto(PerfManager, this, function (_self) {
|
|
2848
|
+
_self.create = function (src, payloadDetails, isAsync) {
|
|
2849
|
+
return new PerfEvent(src, payloadDetails, isAsync);
|
|
2850
|
+
};
|
|
2851
|
+
_self.fire = function (perfEvent) {
|
|
2852
|
+
if (perfEvent) {
|
|
2853
|
+
perfEvent[_DYN_COMPLETE ]();
|
|
2854
|
+
if (manager && isFunction(manager[STR_PERF_EVENT ])) {
|
|
2855
|
+
manager[STR_PERF_EVENT ](perfEvent);
|
|
2941
2856
|
}
|
|
2942
2857
|
}
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2858
|
+
};
|
|
2859
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
2860
|
+
if (key) {
|
|
2861
|
+
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
2862
|
+
ctx[key] = value;
|
|
2863
|
+
}
|
|
2864
|
+
};
|
|
2865
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
2866
|
+
return (_self[strExecutionContextKey] || {})[key];
|
|
2867
|
+
};
|
|
2868
|
+
});
|
|
2947
2869
|
}
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
theValue = rootConfig[field];
|
|
2870
|
+
PerfManager.__ieDyn=1;
|
|
2871
|
+
return PerfManager;
|
|
2872
|
+
}());
|
|
2873
|
+
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
2874
|
+
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
2875
|
+
if (mgrSource) {
|
|
2876
|
+
var perfMgr = mgrSource;
|
|
2877
|
+
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
2878
|
+
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
2958
2879
|
}
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2880
|
+
if (perfMgr) {
|
|
2881
|
+
var perfEvt = void 0;
|
|
2882
|
+
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
2883
|
+
try {
|
|
2884
|
+
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
2885
|
+
if (perfEvt) {
|
|
2886
|
+
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
2887
|
+
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
2888
|
+
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
2889
|
+
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2890
|
+
if (!children) {
|
|
2891
|
+
children = [];
|
|
2892
|
+
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
2893
|
+
}
|
|
2894
|
+
children[_DYN_PUSH ](perfEvt);
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
2898
|
+
return func(perfEvt);
|
|
2899
|
+
}
|
|
2900
|
+
}
|
|
2901
|
+
catch (ex) {
|
|
2902
|
+
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
2903
|
+
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
2904
|
+
}
|
|
2905
|
+
}
|
|
2906
|
+
finally {
|
|
2907
|
+
if (perfEvt) {
|
|
2908
|
+
perfMgr.fire(perfEvt);
|
|
2909
|
+
}
|
|
2910
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
2967
2911
|
}
|
|
2968
2912
|
}
|
|
2969
2913
|
}
|
|
2970
|
-
return
|
|
2914
|
+
return func();
|
|
2971
2915
|
}
|
|
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;
|
|
2916
|
+
function setGblPerfMgr(perfManager) {
|
|
2917
|
+
_defaultPerfManager = perfManager;
|
|
2993
2918
|
}
|
|
2994
|
-
function
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
2919
|
+
function getGblPerfMgr() {
|
|
2920
|
+
return _defaultPerfManager;
|
|
2921
|
+
}
|
|
2922
|
+
|
|
2923
|
+
var Undefined = strShimUndefined;
|
|
2924
|
+
function newGuid() {
|
|
2925
|
+
var uuid = generateW3CId();
|
|
2926
|
+
return strSubstring(uuid, 0, 8) + "-" + strSubstring(uuid, 8, 12) + "-" + strSubstring(uuid, 12, 16) + "-" + strSubstring(uuid, 16, 20) + "-" + strSubstring(uuid, 20);
|
|
2927
|
+
}
|
|
2928
|
+
function generateW3CId() {
|
|
2929
|
+
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2930
|
+
var oct = STR_EMPTY, tmp;
|
|
2931
|
+
for (var a = 0; a < 4; a++) {
|
|
2932
|
+
tmp = random32();
|
|
2933
|
+
oct +=
|
|
2934
|
+
hexValues[tmp & 0xF] +
|
|
2935
|
+
hexValues[tmp >> 4 & 0xF] +
|
|
2936
|
+
hexValues[tmp >> 8 & 0xF] +
|
|
2937
|
+
hexValues[tmp >> 12 & 0xF] +
|
|
2938
|
+
hexValues[tmp >> 16 & 0xF] +
|
|
2939
|
+
hexValues[tmp >> 20 & 0xF] +
|
|
2940
|
+
hexValues[tmp >> 24 & 0xF] +
|
|
2941
|
+
hexValues[tmp >> 28 & 0xF];
|
|
3009
2942
|
}
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
return context;
|
|
2943
|
+
var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
|
|
2944
|
+
return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
|
|
3013
2945
|
}
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
2946
|
+
|
|
2947
|
+
var TRACE_PARENT_REGEX = /^([\da-f]{2})-([\da-f]{32})-([\da-f]{16})-([\da-f]{2})(-[^\s]{1,64})?$/i;
|
|
2948
|
+
var DEFAULT_VERSION = "00";
|
|
2949
|
+
var INVALID_VERSION = "ff";
|
|
2950
|
+
var INVALID_TRACE_ID = "00000000000000000000000000000000";
|
|
2951
|
+
var INVALID_SPAN_ID = "0000000000000000";
|
|
2952
|
+
var SAMPLED_FLAG = 0x01;
|
|
2953
|
+
function _isValid(value, len, invalidValue) {
|
|
2954
|
+
if (value && value[_DYN_LENGTH ] === len && value !== invalidValue) {
|
|
2955
|
+
return !!value.match(/^[\da-f]*$/i);
|
|
3024
2956
|
}
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
2957
|
+
return false;
|
|
2958
|
+
}
|
|
2959
|
+
function _formatValue(value, len, defValue) {
|
|
2960
|
+
if (_isValid(value, len)) {
|
|
2961
|
+
return value;
|
|
3031
2962
|
}
|
|
3032
|
-
|
|
3033
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3034
|
-
return context;
|
|
2963
|
+
return defValue;
|
|
3035
2964
|
}
|
|
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
|
-
});
|
|
2965
|
+
function _formatFlags(value) {
|
|
2966
|
+
if (isNaN(value) || value < 0 || value > 255) {
|
|
2967
|
+
value = 0x01;
|
|
3056
2968
|
}
|
|
3057
|
-
|
|
3058
|
-
|
|
2969
|
+
var result = value.toString(16);
|
|
2970
|
+
while (result[_DYN_LENGTH ] < 2) {
|
|
2971
|
+
result = "0" + result;
|
|
3059
2972
|
}
|
|
3060
|
-
return
|
|
2973
|
+
return result;
|
|
3061
2974
|
}
|
|
3062
|
-
function
|
|
3063
|
-
var
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
2975
|
+
function createTraceParent(traceId, spanId, flags, version) {
|
|
2976
|
+
var _a;
|
|
2977
|
+
return _a = {},
|
|
2978
|
+
_a[_DYN_VERSION ] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
|
|
2979
|
+
_a[_DYN_TRACE_ID ] = isValidTraceId(traceId) ? traceId : generateW3CId(),
|
|
2980
|
+
_a[_DYN_SPAN_ID ] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
|
|
2981
|
+
_a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,
|
|
2982
|
+
_a;
|
|
2983
|
+
}
|
|
2984
|
+
function parseTraceParent(value) {
|
|
2985
|
+
var _a;
|
|
2986
|
+
if (!value) {
|
|
2987
|
+
return null;
|
|
3069
2988
|
}
|
|
3070
|
-
|
|
3071
|
-
|
|
2989
|
+
if (isArray(value)) {
|
|
2990
|
+
value = value[0] || "";
|
|
3072
2991
|
}
|
|
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;
|
|
2992
|
+
if (!value || !isString(value) || value[_DYN_LENGTH ] > 8192) {
|
|
2993
|
+
return null;
|
|
3097
2994
|
}
|
|
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;
|
|
2995
|
+
var match = TRACE_PARENT_REGEX.exec(strTrim(value));
|
|
2996
|
+
if (!match ||
|
|
2997
|
+
match[1] === INVALID_VERSION ||
|
|
2998
|
+
match[2] === INVALID_TRACE_ID ||
|
|
2999
|
+
match[3] === INVALID_SPAN_ID) {
|
|
3000
|
+
return null;
|
|
3128
3001
|
}
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3002
|
+
return _a = {},
|
|
3003
|
+
_a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3004
|
+
_a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3005
|
+
_a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
|
|
3006
|
+
_a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
|
|
3007
|
+
_a;
|
|
3008
|
+
}
|
|
3009
|
+
function isValidTraceId(value) {
|
|
3010
|
+
return _isValid(value, 32, INVALID_TRACE_ID);
|
|
3011
|
+
}
|
|
3012
|
+
function isValidSpanId(value) {
|
|
3013
|
+
return _isValid(value, 16, INVALID_SPAN_ID);
|
|
3014
|
+
}
|
|
3015
|
+
function isValidTraceParent(value) {
|
|
3016
|
+
if (!value ||
|
|
3017
|
+
!_isValid(value[_DYN_VERSION ], 2, INVALID_VERSION) ||
|
|
3018
|
+
!_isValid(value[_DYN_TRACE_ID ], 32, INVALID_TRACE_ID) ||
|
|
3019
|
+
!_isValid(value[_DYN_SPAN_ID ], 16, INVALID_SPAN_ID) ||
|
|
3020
|
+
!_isValid(_formatFlags(value[_DYN_TRACE_FLAGS ]), 2)) {
|
|
3021
|
+
return false;
|
|
3148
3022
|
}
|
|
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
|
-
}
|
|
3023
|
+
return true;
|
|
3024
|
+
}
|
|
3025
|
+
function isSampledFlag(value) {
|
|
3026
|
+
if (isValidTraceParent(value)) {
|
|
3027
|
+
return (value[_DYN_TRACE_FLAGS ] & SAMPLED_FLAG) === SAMPLED_FLAG;
|
|
3169
3028
|
}
|
|
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;
|
|
3029
|
+
return false;
|
|
3030
|
+
}
|
|
3031
|
+
function formatTraceParent(value) {
|
|
3032
|
+
if (value) {
|
|
3033
|
+
var flags = _formatFlags(value[_DYN_TRACE_FLAGS ]);
|
|
3034
|
+
if (!_isValid(flags, 2)) {
|
|
3035
|
+
flags = "01";
|
|
3183
3036
|
}
|
|
3184
|
-
|
|
3185
|
-
|
|
3037
|
+
var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
|
|
3038
|
+
if (version !== "00" && version !== "ff") {
|
|
3039
|
+
version = DEFAULT_VERSION;
|
|
3186
3040
|
}
|
|
3041
|
+
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
3042
|
}
|
|
3188
|
-
return
|
|
3043
|
+
return "";
|
|
3189
3044
|
}
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3045
|
+
function findW3cTraceParent() {
|
|
3046
|
+
var name = "traceparent";
|
|
3047
|
+
var traceParent = parseTraceParent(findMetaTag(name));
|
|
3048
|
+
if (!traceParent) {
|
|
3049
|
+
traceParent = parseTraceParent(findNamedServerTiming(name));
|
|
3195
3050
|
}
|
|
3196
|
-
return
|
|
3197
|
-
}
|
|
3051
|
+
return traceParent;
|
|
3052
|
+
}
|
|
3198
3053
|
|
|
3199
|
-
var
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3054
|
+
var pluginStateData = createElmNodeData("plugin");
|
|
3055
|
+
function _getPluginState(plugin) {
|
|
3056
|
+
return pluginStateData.get(plugin, "state", {}, true);
|
|
3057
|
+
}
|
|
3058
|
+
function initializePlugins(processContext, extensions) {
|
|
3059
|
+
var initPlugins = [];
|
|
3060
|
+
var lastPlugin = null;
|
|
3061
|
+
var proxy = processContext[_DYN_GET_NEXT ]();
|
|
3062
|
+
var pluginState;
|
|
3063
|
+
while (proxy) {
|
|
3064
|
+
var thePlugin = proxy[_DYN_GET_PLUGIN ]();
|
|
3065
|
+
if (thePlugin) {
|
|
3066
|
+
if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN ] && thePlugin[STR_PROCESS_TELEMETRY ]) {
|
|
3067
|
+
lastPlugin[_DYN_SET_NEXT_PLUGIN ](thePlugin);
|
|
3068
|
+
}
|
|
3069
|
+
pluginState = _getPluginState(thePlugin);
|
|
3070
|
+
var isInitialized = !!pluginState[_DYN_IS_INITIALIZED ];
|
|
3071
|
+
if (thePlugin[_DYN_IS_INITIALIZED ]) {
|
|
3072
|
+
isInitialized = thePlugin[_DYN_IS_INITIALIZED ]();
|
|
3209
3073
|
}
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3074
|
+
if (!isInitialized) {
|
|
3075
|
+
initPlugins[_DYN_PUSH ](thePlugin);
|
|
3076
|
+
}
|
|
3077
|
+
lastPlugin = thePlugin;
|
|
3078
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3079
|
+
}
|
|
3215
3080
|
}
|
|
3081
|
+
arrForEach(initPlugins, function (thePlugin) {
|
|
3082
|
+
var core = processContext[STR_CORE ]();
|
|
3083
|
+
thePlugin[_DYN_INITIALIZE ](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT ]());
|
|
3084
|
+
pluginState = _getPluginState(thePlugin);
|
|
3085
|
+
if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {
|
|
3086
|
+
pluginState[STR_CORE] = core;
|
|
3087
|
+
}
|
|
3088
|
+
pluginState[_DYN_IS_INITIALIZED ] = true;
|
|
3089
|
+
delete pluginState[_DYN_TEARDOWN ];
|
|
3090
|
+
});
|
|
3216
3091
|
}
|
|
3217
|
-
function
|
|
3218
|
-
function
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
if (
|
|
3226
|
-
|
|
3227
|
-
onComplete = null;
|
|
3092
|
+
function sortPlugins(plugins) {
|
|
3093
|
+
return plugins.sort(function (extA, extB) {
|
|
3094
|
+
var result = 0;
|
|
3095
|
+
if (extB) {
|
|
3096
|
+
var bHasProcess = extB[STR_PROCESS_TELEMETRY];
|
|
3097
|
+
if (extA[STR_PROCESS_TELEMETRY]) {
|
|
3098
|
+
result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;
|
|
3099
|
+
}
|
|
3100
|
+
else if (bHasProcess) {
|
|
3101
|
+
result = -1;
|
|
3228
3102
|
}
|
|
3229
3103
|
}
|
|
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
|
-
});
|
|
3104
|
+
else {
|
|
3105
|
+
result = extA ? 1 : -1;
|
|
3242
3106
|
}
|
|
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;
|
|
3107
|
+
return result;
|
|
3108
|
+
});
|
|
3109
|
+
}
|
|
3110
|
+
function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {
|
|
3111
|
+
var idx = 0;
|
|
3112
|
+
function _doUnload() {
|
|
3113
|
+
while (idx < components[_DYN_LENGTH ]) {
|
|
3114
|
+
var component = components[idx++];
|
|
3115
|
+
if (component) {
|
|
3116
|
+
var func = component._doUnload || component[_DYN__DO_TEARDOWN ];
|
|
3117
|
+
if (isFunction(func)) {
|
|
3118
|
+
if (func[_DYN_CALL ](component, unloadCtx, unloadState, _doUnload) === true) {
|
|
3119
|
+
return true;
|
|
3282
3120
|
}
|
|
3283
3121
|
}
|
|
3284
|
-
}
|
|
3122
|
+
}
|
|
3285
3123
|
}
|
|
3286
|
-
return thePlugin;
|
|
3287
3124
|
}
|
|
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
|
-
});
|
|
3125
|
+
return _doUnload();
|
|
3126
|
+
}
|
|
3127
|
+
function createDistributedTraceContext(parentCtx) {
|
|
3128
|
+
var trace = {};
|
|
3129
|
+
return {
|
|
3130
|
+
getName: function () {
|
|
3131
|
+
return trace[_DYN_NAME ];
|
|
3299
3132
|
},
|
|
3300
|
-
|
|
3301
|
-
|
|
3133
|
+
setName: function (newValue) {
|
|
3134
|
+
parentCtx && parentCtx.setName(newValue);
|
|
3135
|
+
trace[_DYN_NAME ] = newValue;
|
|
3302
3136
|
},
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
chainCtx[_DYN_PROCESS_NEXT ](item);
|
|
3306
|
-
}, function () {
|
|
3307
|
-
itemCtx[_DYN_PROCESS_NEXT ](item);
|
|
3308
|
-
});
|
|
3137
|
+
getTraceId: function () {
|
|
3138
|
+
return trace[_DYN_TRACE_ID ];
|
|
3309
3139
|
},
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
});
|
|
3316
|
-
}, null);
|
|
3140
|
+
setTraceId: function (newValue) {
|
|
3141
|
+
parentCtx && parentCtx.setTraceId(newValue);
|
|
3142
|
+
if (isValidTraceId(newValue)) {
|
|
3143
|
+
trace[_DYN_TRACE_ID ] = newValue;
|
|
3144
|
+
}
|
|
3317
3145
|
},
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
chainCtx.iterate(function (plugin) {
|
|
3321
|
-
plugin.resume && plugin.resume();
|
|
3322
|
-
});
|
|
3323
|
-
}, null);
|
|
3146
|
+
getSpanId: function () {
|
|
3147
|
+
return trace[_DYN_SPAN_ID ];
|
|
3324
3148
|
},
|
|
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;
|
|
3149
|
+
setSpanId: function (newValue) {
|
|
3150
|
+
parentCtx && parentCtx.setSpanId(newValue);
|
|
3151
|
+
if (isValidSpanId(newValue)) {
|
|
3152
|
+
trace[_DYN_SPAN_ID ] = newValue;
|
|
3153
|
+
}
|
|
3369
3154
|
},
|
|
3370
|
-
|
|
3371
|
-
|
|
3155
|
+
getTraceFlags: function () {
|
|
3156
|
+
return trace[_DYN_TRACE_FLAGS ];
|
|
3157
|
+
},
|
|
3158
|
+
setTraceFlags: function (newTraceFlags) {
|
|
3159
|
+
parentCtx && parentCtx.setTraceFlags(newTraceFlags);
|
|
3160
|
+
trace[_DYN_TRACE_FLAGS ] = newTraceFlags;
|
|
3372
3161
|
}
|
|
3373
3162
|
};
|
|
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
3163
|
}
|
|
3392
3164
|
|
|
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;
|
|
3165
|
+
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
3166
|
+
var strHasRunFlags = "_hasRun";
|
|
3167
|
+
var strGetTelCtx = "_getTelCtx";
|
|
3168
|
+
var _chainId = 0;
|
|
3169
|
+
function _getNextProxyStart(proxy, core, startAt) {
|
|
3170
|
+
while (proxy) {
|
|
3171
|
+
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
3172
|
+
return proxy;
|
|
3443
3173
|
}
|
|
3174
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
3444
3175
|
}
|
|
3445
|
-
return
|
|
3176
|
+
return createTelemetryProxyChain([startAt], core.config || {}, core);
|
|
3446
3177
|
}
|
|
3447
|
-
function
|
|
3448
|
-
var
|
|
3449
|
-
|
|
3450
|
-
|
|
3178
|
+
function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
|
|
3179
|
+
var _nextProxy = null;
|
|
3180
|
+
var _onComplete = [];
|
|
3181
|
+
if (!dynamicHandler) {
|
|
3182
|
+
dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER ]);
|
|
3451
3183
|
}
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3184
|
+
if (startAt !== null) {
|
|
3185
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
3186
|
+
}
|
|
3187
|
+
var context = {
|
|
3188
|
+
_next: _moveNext,
|
|
3189
|
+
ctx: {
|
|
3190
|
+
core: function () {
|
|
3191
|
+
return core;
|
|
3192
|
+
},
|
|
3193
|
+
diagLog: function () {
|
|
3194
|
+
return safeGetLogger(core, dynamicHandler.cfg);
|
|
3195
|
+
},
|
|
3196
|
+
getCfg: function () {
|
|
3197
|
+
return dynamicHandler.cfg;
|
|
3198
|
+
},
|
|
3199
|
+
getExtCfg: _resolveExtCfg,
|
|
3200
|
+
getConfig: _getConfig,
|
|
3201
|
+
hasNext: function () {
|
|
3202
|
+
return !!_nextProxy;
|
|
3203
|
+
},
|
|
3204
|
+
getNext: function () {
|
|
3205
|
+
return _nextProxy;
|
|
3206
|
+
},
|
|
3207
|
+
setNext: function (nextPlugin) {
|
|
3208
|
+
_nextProxy = nextPlugin;
|
|
3209
|
+
},
|
|
3210
|
+
iterate: _iterateChain,
|
|
3211
|
+
onComplete: _addOnComplete
|
|
3456
3212
|
}
|
|
3457
|
-
|
|
3458
|
-
|
|
3213
|
+
};
|
|
3214
|
+
function _addOnComplete(onComplete, that) {
|
|
3215
|
+
var args = [];
|
|
3216
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
3217
|
+
args[_i - 2] = arguments[_i];
|
|
3459
3218
|
}
|
|
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;
|
|
3219
|
+
if (onComplete) {
|
|
3220
|
+
_onComplete[_DYN_PUSH ]({
|
|
3221
|
+
func: onComplete,
|
|
3222
|
+
self: !isUndefined(that) ? that : context.ctx,
|
|
3223
|
+
args: args
|
|
3224
|
+
});
|
|
3488
3225
|
}
|
|
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 ]);
|
|
3226
|
+
}
|
|
3227
|
+
function _moveNext() {
|
|
3228
|
+
var nextProxy = _nextProxy;
|
|
3229
|
+
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
3230
|
+
if (!nextProxy) {
|
|
3231
|
+
var onComplete = _onComplete;
|
|
3232
|
+
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
3233
|
+
arrForEach(onComplete, function (completeDetails) {
|
|
3234
|
+
try {
|
|
3235
|
+
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
3539
3236
|
}
|
|
3540
|
-
|
|
3541
|
-
|
|
3237
|
+
catch (e) {
|
|
3238
|
+
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
3542
3239
|
}
|
|
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);
|
|
3240
|
+
});
|
|
3241
|
+
_onComplete = [];
|
|
3554
3242
|
}
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3243
|
+
}
|
|
3244
|
+
return nextProxy;
|
|
3245
|
+
}
|
|
3246
|
+
function _getExtCfg(identifier, createIfMissing) {
|
|
3247
|
+
var idCfg = null;
|
|
3248
|
+
var cfg = dynamicHandler.cfg;
|
|
3249
|
+
if (cfg && identifier) {
|
|
3250
|
+
var extCfg = cfg[STR_EXTENSION_CONFIG ];
|
|
3251
|
+
if (!extCfg && createIfMissing) {
|
|
3252
|
+
extCfg = {};
|
|
3561
3253
|
}
|
|
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";
|
|
3254
|
+
dynamicHandler.set(cfg, STR_EXTENSION_CONFIG, extCfg);
|
|
3255
|
+
extCfg = cfg[STR_EXTENSION_CONFIG ];
|
|
3256
|
+
if (extCfg) {
|
|
3257
|
+
idCfg = extCfg[identifier];
|
|
3258
|
+
if (!idCfg && createIfMissing) {
|
|
3259
|
+
idCfg = {};
|
|
3574
3260
|
}
|
|
3575
|
-
|
|
3576
|
-
|
|
3261
|
+
dynamicHandler.set(extCfg, identifier, idCfg);
|
|
3262
|
+
idCfg = extCfg[identifier];
|
|
3577
3263
|
}
|
|
3578
|
-
return result;
|
|
3579
3264
|
}
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3265
|
+
return idCfg;
|
|
3266
|
+
}
|
|
3267
|
+
function _resolveExtCfg(identifier, defaultValues) {
|
|
3268
|
+
var newConfig = _getExtCfg(identifier, true);
|
|
3269
|
+
if (defaultValues) {
|
|
3270
|
+
objForEachKey(defaultValues, function (field, defaultValue) {
|
|
3271
|
+
if (isNullOrUndefined(newConfig[field])) {
|
|
3272
|
+
var cfgValue = dynamicHandler.cfg[field];
|
|
3273
|
+
if (cfgValue || !isNullOrUndefined(cfgValue)) {
|
|
3274
|
+
newConfig[field] = cfgValue;
|
|
3275
|
+
}
|
|
3276
|
+
}
|
|
3277
|
+
_applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);
|
|
3278
|
+
});
|
|
3590
3279
|
}
|
|
3591
|
-
|
|
3592
|
-
|
|
3280
|
+
return dynamicHandler[_DYN_SET_DF ](newConfig, defaultValues);
|
|
3281
|
+
}
|
|
3282
|
+
function _getConfig(identifier, field, defaultValue) {
|
|
3283
|
+
if (defaultValue === void 0) { defaultValue = false; }
|
|
3284
|
+
var theValue;
|
|
3285
|
+
var extConfig = _getExtCfg(identifier, false);
|
|
3286
|
+
var rootConfig = dynamicHandler.cfg;
|
|
3287
|
+
if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {
|
|
3288
|
+
theValue = extConfig[field];
|
|
3593
3289
|
}
|
|
3290
|
+
else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {
|
|
3291
|
+
theValue = rootConfig[field];
|
|
3292
|
+
}
|
|
3293
|
+
return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;
|
|
3594
3294
|
}
|
|
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
|
-
}
|
|
3295
|
+
function _iterateChain(cb) {
|
|
3296
|
+
var nextPlugin;
|
|
3297
|
+
while (!!(nextPlugin = context._next())) {
|
|
3298
|
+
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
3299
|
+
if (plugin) {
|
|
3300
|
+
cb(plugin);
|
|
3611
3301
|
}
|
|
3612
|
-
}
|
|
3302
|
+
}
|
|
3613
3303
|
}
|
|
3614
|
-
return
|
|
3304
|
+
return context;
|
|
3615
3305
|
}
|
|
3616
|
-
function
|
|
3617
|
-
|
|
3618
|
-
|
|
3306
|
+
function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {
|
|
3307
|
+
var config = createDynamicConfig(cfg);
|
|
3308
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3309
|
+
var context = internalContext.ctx;
|
|
3310
|
+
function _processNext(env) {
|
|
3311
|
+
var nextPlugin = internalContext._next();
|
|
3312
|
+
if (nextPlugin) {
|
|
3313
|
+
nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
3314
|
+
}
|
|
3315
|
+
return !nextPlugin;
|
|
3619
3316
|
}
|
|
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;
|
|
3317
|
+
function _createNew(plugins, startAt) {
|
|
3318
|
+
if (plugins === void 0) { plugins = null; }
|
|
3319
|
+
if (isArray(plugins)) {
|
|
3320
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3636
3321
|
}
|
|
3637
|
-
|
|
3322
|
+
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
|
|
3638
3323
|
}
|
|
3639
|
-
|
|
3324
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3325
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3326
|
+
return context;
|
|
3640
3327
|
}
|
|
3641
|
-
function
|
|
3642
|
-
|
|
3643
|
-
|
|
3328
|
+
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
3329
|
+
var config = createDynamicConfig(core.config);
|
|
3330
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3331
|
+
var context = internalContext.ctx;
|
|
3332
|
+
function _processNext(unloadState) {
|
|
3333
|
+
var nextPlugin = internalContext._next();
|
|
3334
|
+
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
3335
|
+
return !nextPlugin;
|
|
3336
|
+
}
|
|
3337
|
+
function _createNew(plugins, startAt) {
|
|
3338
|
+
if (plugins === void 0) { plugins = null; }
|
|
3339
|
+
if (isArray(plugins)) {
|
|
3340
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3341
|
+
}
|
|
3342
|
+
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3644
3343
|
}
|
|
3344
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3345
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3346
|
+
return context;
|
|
3645
3347
|
}
|
|
3646
|
-
function
|
|
3647
|
-
|
|
3648
|
-
|
|
3348
|
+
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
3349
|
+
var config = createDynamicConfig(core.config);
|
|
3350
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
3351
|
+
var context = internalContext.ctx;
|
|
3352
|
+
function _processNext(updateState) {
|
|
3353
|
+
return context.iterate(function (plugin) {
|
|
3354
|
+
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
3355
|
+
plugin[_DYN_UPDATE ](context, updateState);
|
|
3356
|
+
}
|
|
3357
|
+
});
|
|
3649
3358
|
}
|
|
3650
|
-
|
|
3651
|
-
|
|
3359
|
+
function _createNew(plugins, startAt) {
|
|
3360
|
+
if (plugins === void 0) { plugins = null; }
|
|
3361
|
+
if (isArray(plugins)) {
|
|
3362
|
+
plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
|
|
3363
|
+
}
|
|
3364
|
+
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
3652
3365
|
}
|
|
3653
|
-
|
|
3654
|
-
|
|
3366
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
3367
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
3368
|
+
return context;
|
|
3369
|
+
}
|
|
3370
|
+
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
3371
|
+
var firstProxy = null;
|
|
3372
|
+
var add = startAt ? false : true;
|
|
3373
|
+
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
3374
|
+
var lastProxy_1 = null;
|
|
3375
|
+
arrForEach(plugins, function (thePlugin) {
|
|
3376
|
+
if (!add && startAt === thePlugin) {
|
|
3377
|
+
add = true;
|
|
3378
|
+
}
|
|
3379
|
+
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
3380
|
+
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
3381
|
+
if (!firstProxy) {
|
|
3382
|
+
firstProxy = newProxy;
|
|
3383
|
+
}
|
|
3384
|
+
if (lastProxy_1) {
|
|
3385
|
+
lastProxy_1._setNext(newProxy);
|
|
3386
|
+
}
|
|
3387
|
+
lastProxy_1 = newProxy;
|
|
3388
|
+
}
|
|
3389
|
+
});
|
|
3655
3390
|
}
|
|
3656
|
-
if (
|
|
3657
|
-
return
|
|
3391
|
+
if (startAt && !firstProxy) {
|
|
3392
|
+
return createTelemetryProxyChain([startAt], config, core);
|
|
3658
3393
|
}
|
|
3659
|
-
|
|
3660
|
-
|
|
3394
|
+
return firstProxy;
|
|
3395
|
+
}
|
|
3396
|
+
function createTelemetryPluginProxy(plugin, config, core) {
|
|
3397
|
+
var nextProxy = null;
|
|
3398
|
+
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
3399
|
+
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
3400
|
+
var chainId;
|
|
3401
|
+
if (plugin) {
|
|
3402
|
+
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
3661
3403
|
}
|
|
3662
|
-
|
|
3663
|
-
|
|
3404
|
+
else {
|
|
3405
|
+
chainId = "Unknown-0-" + _chainId++;
|
|
3664
3406
|
}
|
|
3665
|
-
|
|
3666
|
-
|
|
3407
|
+
var proxyChain = {
|
|
3408
|
+
getPlugin: function () {
|
|
3409
|
+
return plugin;
|
|
3410
|
+
},
|
|
3411
|
+
getNext: function () {
|
|
3412
|
+
return nextProxy;
|
|
3413
|
+
},
|
|
3414
|
+
processTelemetry: _processTelemetry,
|
|
3415
|
+
unload: _unloadPlugin,
|
|
3416
|
+
update: _updatePlugin,
|
|
3417
|
+
_id: chainId,
|
|
3418
|
+
_setNext: function (nextPlugin) {
|
|
3419
|
+
nextProxy = nextPlugin;
|
|
3420
|
+
}
|
|
3421
|
+
};
|
|
3422
|
+
function _getTelCtx() {
|
|
3423
|
+
var itemCtx;
|
|
3424
|
+
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
3425
|
+
itemCtx = plugin[strGetTelCtx]();
|
|
3426
|
+
}
|
|
3427
|
+
if (!itemCtx) {
|
|
3428
|
+
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
3429
|
+
}
|
|
3430
|
+
return itemCtx;
|
|
3667
3431
|
}
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
if (
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
}
|
|
3680
|
-
else {
|
|
3432
|
+
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
3433
|
+
var hasRun = false;
|
|
3434
|
+
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
3435
|
+
var hasRunContext = itemCtx[strHasRunFlags];
|
|
3436
|
+
if (!hasRunContext) {
|
|
3437
|
+
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
3438
|
+
}
|
|
3439
|
+
itemCtx.setNext(nextProxy);
|
|
3440
|
+
if (plugin) {
|
|
3441
|
+
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
3442
|
+
hasRunContext[chainId] = true;
|
|
3681
3443
|
try {
|
|
3682
|
-
|
|
3444
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3445
|
+
if (nextId) {
|
|
3446
|
+
hasRunContext[nextId] = false;
|
|
3447
|
+
}
|
|
3448
|
+
hasRun = processPluginFn(itemCtx);
|
|
3683
3449
|
}
|
|
3684
|
-
catch (
|
|
3450
|
+
catch (error) {
|
|
3451
|
+
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
3452
|
+
if (hasNextRun) {
|
|
3453
|
+
hasRun = true;
|
|
3454
|
+
}
|
|
3455
|
+
if (!nextProxy || !hasNextRun) {
|
|
3456
|
+
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
3457
|
+
}
|
|
3685
3458
|
}
|
|
3459
|
+
}, details, isAsync);
|
|
3460
|
+
}
|
|
3461
|
+
return hasRun;
|
|
3462
|
+
}
|
|
3463
|
+
function _processTelemetry(env, itemCtx) {
|
|
3464
|
+
itemCtx = itemCtx || _getTelCtx();
|
|
3465
|
+
function _callProcessTelemetry(itemCtx) {
|
|
3466
|
+
if (!plugin || !hasProcessTelemetry) {
|
|
3467
|
+
return false;
|
|
3468
|
+
}
|
|
3469
|
+
var pluginState = _getPluginState(plugin);
|
|
3470
|
+
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
3471
|
+
return false;
|
|
3686
3472
|
}
|
|
3473
|
+
if (hasSetNext) {
|
|
3474
|
+
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
3475
|
+
}
|
|
3476
|
+
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
3477
|
+
return true;
|
|
3687
3478
|
}
|
|
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);
|
|
3479
|
+
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
3480
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
3481
|
+
}
|
|
3482
|
+
}
|
|
3483
|
+
function _unloadPlugin(unloadCtx, unloadState) {
|
|
3484
|
+
function _callTeardown() {
|
|
3485
|
+
var hasRun = false;
|
|
3486
|
+
if (plugin) {
|
|
3487
|
+
var pluginState = _getPluginState(plugin);
|
|
3488
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3489
|
+
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3490
|
+
pluginState[STR_CORE ] = null;
|
|
3491
|
+
pluginState[_DYN_TEARDOWN ] = true;
|
|
3492
|
+
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
3493
|
+
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
3494
|
+
hasRun = true;
|
|
3495
|
+
}
|
|
3707
3496
|
}
|
|
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
|
-
});
|
|
3497
|
+
}
|
|
3498
|
+
return hasRun;
|
|
3499
|
+
}
|
|
3500
|
+
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
3501
|
+
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
3502
|
+
}
|
|
3503
|
+
}
|
|
3504
|
+
function _updatePlugin(updateCtx, updateState) {
|
|
3505
|
+
function _callUpdate() {
|
|
3506
|
+
var hasRun = false;
|
|
3507
|
+
if (plugin) {
|
|
3508
|
+
var pluginState = _getPluginState(plugin);
|
|
3509
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
3510
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
3511
|
+
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
3512
|
+
hasRun = true;
|
|
3735
3513
|
}
|
|
3736
3514
|
}
|
|
3737
|
-
}
|
|
3738
|
-
|
|
3515
|
+
}
|
|
3516
|
+
return hasRun;
|
|
3517
|
+
}
|
|
3518
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
3519
|
+
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
3520
|
+
}
|
|
3739
3521
|
}
|
|
3740
|
-
|
|
3741
|
-
|
|
3522
|
+
return objFreeze(proxyChain);
|
|
3523
|
+
}
|
|
3524
|
+
var ProcessTelemetryContext = /** @class */ (function () {
|
|
3525
|
+
function ProcessTelemetryContext(pluginChain, config, core, startAt) {
|
|
3526
|
+
var _self = this;
|
|
3527
|
+
var context = createProcessTelemetryContext(pluginChain, config, core, startAt);
|
|
3528
|
+
proxyFunctions(_self, context, objKeys(context));
|
|
3529
|
+
}
|
|
3530
|
+
return ProcessTelemetryContext;
|
|
3742
3531
|
}());
|
|
3743
3532
|
|
|
3744
3533
|
function createUnloadHandlerContainer() {
|
|
@@ -4002,6 +3791,7 @@
|
|
|
4002
3791
|
function _validateExtensions(logger, channelPriority, allExtensions) {
|
|
4003
3792
|
var _a;
|
|
4004
3793
|
var coreExtensions = [];
|
|
3794
|
+
var channels = [];
|
|
4005
3795
|
var extPriorities = {};
|
|
4006
3796
|
arrForEach(allExtensions, function (ext) {
|
|
4007
3797
|
if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE ])) {
|
|
@@ -4020,11 +3810,13 @@
|
|
|
4020
3810
|
if (!extPriority || extPriority < channelPriority) {
|
|
4021
3811
|
coreExtensions[_DYN_PUSH ](ext);
|
|
4022
3812
|
}
|
|
3813
|
+
else {
|
|
3814
|
+
channels[_DYN_PUSH ](ext);
|
|
3815
|
+
}
|
|
4023
3816
|
});
|
|
4024
|
-
return _a = {
|
|
4025
|
-
all: allExtensions
|
|
4026
|
-
},
|
|
3817
|
+
return _a = {},
|
|
4027
3818
|
_a[STR_CORE ] = coreExtensions,
|
|
3819
|
+
_a[STR_CHANNELS ] = channels,
|
|
4028
3820
|
_a;
|
|
4029
3821
|
}
|
|
4030
3822
|
function _isPluginPresent(thePlugin, plugins) {
|
|
@@ -4102,10 +3894,8 @@
|
|
|
4102
3894
|
var _cookieManager;
|
|
4103
3895
|
var _pluginChain;
|
|
4104
3896
|
var _configExtensions;
|
|
4105
|
-
var _coreExtensions;
|
|
4106
|
-
var _channelControl;
|
|
4107
3897
|
var _channelConfig;
|
|
4108
|
-
var
|
|
3898
|
+
var _channels;
|
|
4109
3899
|
var _isUnloading;
|
|
4110
3900
|
var _telemetryInitializerPlugin;
|
|
4111
3901
|
var _internalLogsEventName;
|
|
@@ -4152,20 +3942,26 @@
|
|
|
4152
3942
|
_configExtensions[_DYN_PUSH ].apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), cfgExtensions));
|
|
4153
3943
|
_channelConfig = config[STR_CHANNELS ];
|
|
4154
3944
|
_initPluginChain(null);
|
|
4155
|
-
if (!
|
|
3945
|
+
if (!_channels || _channels[_DYN_LENGTH ] === 0) {
|
|
4156
3946
|
throwError("No " + STR_CHANNELS + " available");
|
|
4157
3947
|
}
|
|
3948
|
+
if (_channels[_DYN_LENGTH ] > 1) {
|
|
3949
|
+
var teeController = _self[_DYN_GET_PLUGIN ]("TeeChannelController");
|
|
3950
|
+
if (!teeController || !teeController.plugin) {
|
|
3951
|
+
_throwInternal(_self[_DYN_LOGGER ], 1 , 28 , "TeeChannel required");
|
|
3952
|
+
}
|
|
3953
|
+
}
|
|
4158
3954
|
_registerDelayedCfgListener(config, _cfgListeners, _self[_DYN_LOGGER ]);
|
|
4159
3955
|
_cfgListeners = null;
|
|
4160
3956
|
_isInitialized = true;
|
|
4161
3957
|
_self.releaseQueue();
|
|
4162
3958
|
_self[_DYN_POLL_INTERNAL_LOGS ]();
|
|
4163
3959
|
};
|
|
4164
|
-
_self.
|
|
3960
|
+
_self.getChannels = function () {
|
|
4165
3961
|
var controls = [];
|
|
4166
|
-
if (
|
|
4167
|
-
arrForEach(
|
|
4168
|
-
controls[_DYN_PUSH ](
|
|
3962
|
+
if (_channels) {
|
|
3963
|
+
arrForEach(_channels, function (channel) {
|
|
3964
|
+
controls[_DYN_PUSH ](channel);
|
|
4169
3965
|
});
|
|
4170
3966
|
}
|
|
4171
3967
|
return objFreeze(controls);
|
|
@@ -4316,9 +4112,7 @@
|
|
|
4316
4112
|
_self[_DYN_STOP_POLLING_INTERNA3 ]();
|
|
4317
4113
|
processUnloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
4318
4114
|
}
|
|
4319
|
-
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout))
|
|
4320
|
-
_doUnload(false);
|
|
4321
|
-
}
|
|
4115
|
+
if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout)) ;
|
|
4322
4116
|
};
|
|
4323
4117
|
_self[_DYN_GET_PLUGIN ] = _getPlugin;
|
|
4324
4118
|
_self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
|
|
@@ -4399,7 +4193,7 @@
|
|
|
4399
4193
|
_self.evtNamespace = function () {
|
|
4400
4194
|
return _evtNamespace;
|
|
4401
4195
|
};
|
|
4402
|
-
_self
|
|
4196
|
+
_self.flush = _flushChannels;
|
|
4403
4197
|
_self.getTraceCtx = function (createNew) {
|
|
4404
4198
|
if (!_traceCtx) {
|
|
4405
4199
|
_traceCtx = createDistributedTraceContext();
|
|
@@ -4496,11 +4290,9 @@
|
|
|
4496
4290
|
_cfgPerfManager = null;
|
|
4497
4291
|
_cookieManager = null;
|
|
4498
4292
|
_pluginChain = null;
|
|
4499
|
-
_coreExtensions = null;
|
|
4500
4293
|
_configExtensions = [];
|
|
4501
|
-
_channelControl = null;
|
|
4502
4294
|
_channelConfig = null;
|
|
4503
|
-
|
|
4295
|
+
_channels = null;
|
|
4504
4296
|
_isUnloading = false;
|
|
4505
4297
|
_internalLogsEventName = null;
|
|
4506
4298
|
_evtNamespace = createUniqueNamespace("AIBaseCore", true);
|
|
@@ -4517,32 +4309,18 @@
|
|
|
4517
4309
|
}
|
|
4518
4310
|
function _initPluginChain(updateState) {
|
|
4519
4311
|
var theExtensions = _validateExtensions(_self[_DYN_LOGGER ], ChannelControllerPriority, _configExtensions);
|
|
4520
|
-
_coreExtensions = theExtensions[STR_CORE ];
|
|
4521
4312
|
_pluginChain = null;
|
|
4522
4313
|
_pluginVersionString = null;
|
|
4523
4314
|
_pluginVersionStringArr = null;
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
_coreExtensions[_DYN_SPLICE ](idx, 1);
|
|
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();
|
|
4315
|
+
_channels = (_channelConfig || [])[0] || [];
|
|
4316
|
+
_channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS ]));
|
|
4317
|
+
var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE ]), _channels);
|
|
4318
|
+
_extensions = objFreeze(allExtensions);
|
|
4319
|
+
var rootCtx = _createTelCtx();
|
|
4320
|
+
if (_channels && _channels[_DYN_LENGTH ] > 0) {
|
|
4321
|
+
initializePlugins(rootCtx[_DYN_CREATE_NEW ](_channels), allExtensions);
|
|
4322
|
+
}
|
|
4323
|
+
initializePlugins(rootCtx, allExtensions);
|
|
4546
4324
|
if (updateState) {
|
|
4547
4325
|
_doUpdate(updateState);
|
|
4548
4326
|
}
|
|
@@ -4551,14 +4329,11 @@
|
|
|
4551
4329
|
var theExt = null;
|
|
4552
4330
|
var thePlugin = null;
|
|
4553
4331
|
arrForEach(_extensions, function (ext) {
|
|
4554
|
-
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !==
|
|
4332
|
+
if (ext[_DYN_IDENTIFIER ] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {
|
|
4555
4333
|
thePlugin = ext;
|
|
4556
4334
|
return -1;
|
|
4557
4335
|
}
|
|
4558
4336
|
});
|
|
4559
|
-
if (!thePlugin && _channelControl) {
|
|
4560
|
-
thePlugin = _channelControl.getChannel(pluginIdentifier);
|
|
4561
|
-
}
|
|
4562
4337
|
if (thePlugin) {
|
|
4563
4338
|
theExt = {
|
|
4564
4339
|
plugin: thePlugin,
|
|
@@ -4594,7 +4369,7 @@
|
|
|
4594
4369
|
}
|
|
4595
4370
|
function _getPluginChain() {
|
|
4596
4371
|
if (!_pluginChain) {
|
|
4597
|
-
var extensions = (
|
|
4372
|
+
var extensions = (_extensions || []).slice();
|
|
4598
4373
|
if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {
|
|
4599
4374
|
extensions[_DYN_PUSH ](_telemetryInitializerPlugin);
|
|
4600
4375
|
}
|
|
@@ -4662,10 +4437,46 @@
|
|
|
4662
4437
|
}
|
|
4663
4438
|
}
|
|
4664
4439
|
function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {
|
|
4665
|
-
|
|
4666
|
-
|
|
4440
|
+
var waiting = 1;
|
|
4441
|
+
var doneIterating = false;
|
|
4442
|
+
var cbTimer = null;
|
|
4443
|
+
cbTimeout = cbTimeout || 5000;
|
|
4444
|
+
function doCallback() {
|
|
4445
|
+
waiting--;
|
|
4446
|
+
if (doneIterating && waiting === 0) {
|
|
4447
|
+
cbTimer && cbTimer[_DYN_CANCEL ]();
|
|
4448
|
+
cbTimer = null;
|
|
4449
|
+
callBack && callBack(doneIterating);
|
|
4450
|
+
callBack = null;
|
|
4451
|
+
}
|
|
4452
|
+
}
|
|
4453
|
+
if (_channels && _channels[_DYN_LENGTH ] > 0) {
|
|
4454
|
+
var flushCtx = _createTelCtx()[_DYN_CREATE_NEW ](_channels);
|
|
4455
|
+
flushCtx.iterate(function (plugin) {
|
|
4456
|
+
if (plugin.flush) {
|
|
4457
|
+
waiting++;
|
|
4458
|
+
var handled_1 = false;
|
|
4459
|
+
if (!plugin.flush(isAsync, function () {
|
|
4460
|
+
handled_1 = true;
|
|
4461
|
+
doCallback();
|
|
4462
|
+
}, sendReason)) {
|
|
4463
|
+
if (!handled_1) {
|
|
4464
|
+
if (isAsync && cbTimer == null) {
|
|
4465
|
+
cbTimer = scheduleTimeout(function () {
|
|
4466
|
+
cbTimer = null;
|
|
4467
|
+
doCallback();
|
|
4468
|
+
}, cbTimeout);
|
|
4469
|
+
}
|
|
4470
|
+
else {
|
|
4471
|
+
doCallback();
|
|
4472
|
+
}
|
|
4473
|
+
}
|
|
4474
|
+
}
|
|
4475
|
+
}
|
|
4476
|
+
});
|
|
4667
4477
|
}
|
|
4668
|
-
|
|
4478
|
+
doneIterating = true;
|
|
4479
|
+
doCallback();
|
|
4669
4480
|
return true;
|
|
4670
4481
|
}
|
|
4671
4482
|
function _initDebugListener() {
|