@microsoft/applicationinsights-core-js 3.0.1-nightly3.2304-41 → 3.0.1-nightly3.2304-44

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.
Files changed (97) hide show
  1. package/browser/es5/applicationinsights-core-js.cjs.js +596 -129
  2. package/browser/es5/applicationinsights-core-js.cjs.js.map +1 -1
  3. package/browser/es5/applicationinsights-core-js.cjs.min.js +2 -2
  4. package/browser/es5/applicationinsights-core-js.cjs.min.js.map +1 -1
  5. package/browser/es5/applicationinsights-core-js.gbl.js +596 -129
  6. package/browser/es5/applicationinsights-core-js.gbl.js.map +1 -1
  7. package/browser/es5/applicationinsights-core-js.gbl.min.js +2 -2
  8. package/browser/es5/applicationinsights-core-js.gbl.min.js.map +1 -1
  9. package/browser/es5/applicationinsights-core-js.integrity.json +25 -25
  10. package/browser/es5/applicationinsights-core-js.js +596 -129
  11. package/browser/es5/applicationinsights-core-js.js.map +1 -1
  12. package/browser/es5/applicationinsights-core-js.min.js +2 -2
  13. package/browser/es5/applicationinsights-core-js.min.js.map +1 -1
  14. package/dist/es5/applicationinsights-core-js.js +596 -129
  15. package/dist/es5/applicationinsights-core-js.js.map +1 -1
  16. package/dist/es5/applicationinsights-core-js.min.js +2 -2
  17. package/dist/es5/applicationinsights-core-js.min.js.map +1 -1
  18. package/dist-es5/Config/ConfigDefaultHelpers.js +1 -1
  19. package/dist-es5/Config/ConfigDefaults.js +1 -1
  20. package/dist-es5/Config/DynamicConfig.js +2 -2
  21. package/dist-es5/Config/DynamicConfig.js.map +1 -1
  22. package/dist-es5/Config/DynamicProperty.js +1 -1
  23. package/dist-es5/Config/DynamicState.js +1 -1
  24. package/dist-es5/Config/DynamicSupport.js +1 -1
  25. package/dist-es5/Config/IConfigDefaults.js +1 -1
  26. package/dist-es5/Config/IDynamicConfigHandler.js +1 -1
  27. package/dist-es5/Config/IDynamicPropertyHandler.js +1 -1
  28. package/dist-es5/Config/IDynamicWatcher.js +1 -1
  29. package/dist-es5/Config/_IDynamicConfigHandlerState.js +1 -1
  30. package/dist-es5/JavaScriptSDK/AggregationError.js +1 -1
  31. package/dist-es5/JavaScriptSDK/AppInsightsCore.js +52 -22
  32. package/dist-es5/JavaScriptSDK/AppInsightsCore.js.map +1 -1
  33. package/dist-es5/JavaScriptSDK/AsyncUtils.js +49 -0
  34. package/dist-es5/JavaScriptSDK/AsyncUtils.js.map +1 -0
  35. package/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js +1 -1
  36. package/dist-es5/JavaScriptSDK/Constants.js +1 -1
  37. package/dist-es5/JavaScriptSDK/CookieMgr.js +101 -96
  38. package/dist-es5/JavaScriptSDK/CookieMgr.js.map +1 -1
  39. package/dist-es5/JavaScriptSDK/CoreUtils.js +1 -1
  40. package/dist-es5/JavaScriptSDK/DataCacheHelper.js +2 -2
  41. package/dist-es5/JavaScriptSDK/DataCacheHelper.js.map +1 -1
  42. package/dist-es5/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  43. package/dist-es5/JavaScriptSDK/DiagnosticLogger.js +11 -7
  44. package/dist-es5/JavaScriptSDK/DiagnosticLogger.js.map +1 -1
  45. package/dist-es5/JavaScriptSDK/EnvUtils.js +1 -1
  46. package/dist-es5/JavaScriptSDK/EventHelpers.js +1 -1
  47. package/dist-es5/JavaScriptSDK/HelperFuncs.js +1 -1
  48. package/dist-es5/JavaScriptSDK/InstrumentHooks.js +1 -1
  49. package/dist-es5/JavaScriptSDK/InternalConstants.js +1 -1
  50. package/dist-es5/JavaScriptSDK/NotificationManager.js +48 -12
  51. package/dist-es5/JavaScriptSDK/NotificationManager.js.map +1 -1
  52. package/dist-es5/JavaScriptSDK/PerfManager.js +1 -1
  53. package/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js +3 -3
  54. package/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
  55. package/dist-es5/JavaScriptSDK/RandomHelper.js +1 -1
  56. package/dist-es5/JavaScriptSDK/TelemetryHelpers.js +1 -1
  57. package/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
  58. package/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
  59. package/dist-es5/JavaScriptSDK/UnloadHookContainer.js +1 -1
  60. package/dist-es5/JavaScriptSDK/W3cTraceParent.js +1 -1
  61. package/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
  62. package/dist-es5/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  63. package/dist-es5/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  64. package/dist-es5/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  65. package/dist-es5/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
  66. package/dist-es5/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
  67. package/dist-es5/JavaScriptSDK.Interfaces/IAppInsightsCore.js +3 -1
  68. package/dist-es5/JavaScriptSDK.Interfaces/IAppInsightsCore.js.map +1 -1
  69. package/dist-es5/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  70. package/dist-es5/JavaScriptSDK.Interfaces/IChannelControlsHost.js +1 -1
  71. package/dist-es5/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  72. package/dist-es5/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  73. package/dist-es5/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  74. package/dist-es5/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  75. package/dist-es5/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
  76. package/dist-es5/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  77. package/dist-es5/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  78. package/dist-es5/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  79. package/dist-es5/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  80. package/dist-es5/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  81. package/dist-es5/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  82. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  83. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  84. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  85. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  86. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
  87. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
  88. package/dist-es5/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
  89. package/dist-es5/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
  90. package/dist-es5/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
  91. package/dist-es5/__DynamicConstants.js +5 -5
  92. package/dist-es5/__DynamicConstants.js.map +1 -1
  93. package/dist-es5/applicationinsights-core-js.js +2 -1
  94. package/dist-es5/applicationinsights-core-js.js.map +1 -1
  95. package/package.json +3 -2
  96. package/types/applicationinsights-core-js.d.ts +112 -11
  97. package/types/applicationinsights-core-js.namespaced.d.ts +112 -11
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Core, 3.0.1-nightly3.2304-41
2
+ * Application Insights JavaScript SDK - Core, 3.0.1-nightly3.2304-44
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -36,7 +36,7 @@
36
36
  var ArrCls = Array;
37
37
  var ArrProto = ArrCls[PROTOTYPE];
38
38
 
39
- function _safeGet(cb, defValue) {
39
+ function safeGet(cb, defValue) {
40
40
  var result = defValue;
41
41
  try {
42
42
  result = cb();
@@ -96,11 +96,14 @@
96
96
  var isNumber = _createIs(NUMBER);
97
97
  var isBoolean = _createIs(BOOLEAN);
98
98
  var isError = _createObjIs("Error");
99
+ function isPromiseLike(value) {
100
+ return !!value && isFunction(value.then);
101
+ }
99
102
  function isNotTruthy(value) {
100
- return !value || !_safeGet(function () { return (value && (0 + value)); }, value);
103
+ return !value || !safeGet(function () { return (value && (0 + value)); }, value);
101
104
  }
102
105
  function isTruthy(value) {
103
- return !(!value || _safeGet(function () { return !(value && (0 + value)); }, !value));
106
+ return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));
104
107
  }
105
108
 
106
109
  var objGetOwnPropertyDescriptor = ObjClass$1.getOwnPropertyDescriptor;
@@ -253,6 +256,11 @@
253
256
  throwTypeError("'" + asString(funcName) + "' not defined for " + dumpObj(thisArg));
254
257
  };
255
258
  }
259
+ function _unwrapProp(propName) {
260
+ return function (thisArg) {
261
+ return thisArg[propName];
262
+ };
263
+ }
256
264
 
257
265
  var mathMax = MathCls.max;
258
266
 
@@ -400,8 +408,8 @@
400
408
  return lazyValue;
401
409
  }
402
410
 
403
- function _lazySafeGet(cb, defValue) {
404
- return getLazy(function () { return _safeGet(cb, defValue); });
411
+ function safeGetLazy(cb, defValue) {
412
+ return getLazy(function () { return safeGet(cb, defValue); });
405
413
  }
406
414
 
407
415
  var WINDOW = "window";
@@ -410,11 +418,12 @@
410
418
  var _cachedDocument;
411
419
  var _cachedNavigator;
412
420
  var _cachedHistory;
413
- function _lazySafeGetInst(name) {
414
- return _lazySafeGet(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);
421
+ var _isNode;
422
+ function lazySafeGetInst(name) {
423
+ return safeGetLazy(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);
415
424
  }
416
425
  function getGlobal(useCached) {
417
- (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = _lazySafeGet(_getGlobalValue, null));
426
+ (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = safeGetLazy(_getGlobalValue, null));
418
427
  return _cachedGlobal.v;
419
428
  }
420
429
  function getInst(name, useCached) {
@@ -431,43 +440,50 @@
431
440
  return !!getDocument();
432
441
  }
433
442
  function getDocument() {
434
- (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = _lazySafeGetInst("document"));
443
+ (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = lazySafeGetInst("document"));
435
444
  return _cachedDocument.v;
436
445
  }
437
446
  function hasWindow() {
438
447
  return !!getWindow();
439
448
  }
440
449
  function getWindow() {
441
- (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = _lazySafeGetInst(WINDOW));
450
+ (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = lazySafeGetInst(WINDOW));
442
451
  return _cachedWindow.v;
443
452
  }
444
453
  function hasNavigator() {
445
454
  return !!getNavigator();
446
455
  }
447
456
  function getNavigator() {
448
- (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = _lazySafeGetInst("navigator"));
457
+ (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = lazySafeGetInst("navigator"));
449
458
  return _cachedNavigator.v;
450
459
  }
451
460
  function hasHistory() {
452
461
  return !!getHistory();
453
462
  }
454
463
  function getHistory() {
455
- (!_cachedHistory || (_globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = _lazySafeGetInst("history"));
464
+ (!_cachedHistory || (_globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = lazySafeGetInst("history"));
456
465
  return _cachedHistory.v;
457
466
  }
467
+ function isNode() {
468
+ !_isNode && (_isNode = safeGetLazy(function () { return !!(process && (process.versions || {}).node); }, false));
469
+ return _isNode.v;
470
+ }
458
471
 
459
472
  var _symbol;
460
473
  var _symbolFor;
461
474
  var _symbolKeyFor;
462
475
  function _getSymbolValue(name) {
463
- return _lazySafeGet(function () {
476
+ return safeGetLazy(function () {
464
477
  return (_symbol.v ? _symbol[name] : UNDEF_VALUE);
465
478
  }, UNDEF_VALUE);
466
479
  }
467
480
  var isSymbol = _createIs("symbol");
481
+ function hasSymbol() {
482
+ return !!getSymbol();
483
+ }
468
484
  function getSymbol() {
469
485
  var resetCache = !_symbol || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_symbol.b);
470
- resetCache && (_symbol = _lazySafeGetInst(SYMBOL));
486
+ resetCache && (_symbol = lazySafeGetInst(SYMBOL));
471
487
  (!_symbolFor || resetCache) && (_symbolFor = _getSymbolValue("for"));
472
488
  (!_symbolKeyFor || resetCache) && (_symbolKeyFor = _getSymbolValue("keyFor"));
473
489
  return _symbol.v;
@@ -795,9 +811,11 @@
795
811
  return _doExtend(objDeepCopy(target) || {}, arrSlice(arguments));
796
812
  }
797
813
 
814
+ var getLength = _unwrapProp(LENGTH);
815
+
798
816
  var _perf;
799
817
  function getPerformance() {
800
- (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = _lazySafeGetInst("performance"));
818
+ (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = lazySafeGetInst("performance"));
801
819
  return _perf.v;
802
820
  }
803
821
  function perfNow() {
@@ -967,6 +985,7 @@
967
985
  var _DYN_REMOVE_NOTIFICATION_2 = "removeNotificationListener";
968
986
  var _DYN_ENABLED = "enabled";
969
987
  var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
988
+ var _DYN_UNLOAD = "unload";
970
989
  var _DYN_ON_COMPLETE = "onComplete";
971
990
  var _DYN_VERSION = "version";
972
991
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
@@ -987,7 +1006,6 @@
987
1006
  var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
988
1007
  var _DYN_TYPE = "type";
989
1008
  var _DYN_HANDLER = "handler";
990
- var _DYN_LISTENERS = "listeners";
991
1009
  var _DYN_IS_CHILD_EVT = "isChildEvt";
992
1010
  var _DYN_GET_CTX = "getCtx";
993
1011
  var _DYN_SET_CTX = "setCtx";
@@ -1298,6 +1316,360 @@
1298
1316
  }
1299
1317
  dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
1300
1318
 
1319
+ function doAwaitResponse(value, cb) {
1320
+ return doAwait(value, function (value) {
1321
+ cb && cb({
1322
+ value: value,
1323
+ rejected: false
1324
+ });
1325
+ }, function (reason) {
1326
+ cb && cb({
1327
+ rejected: true,
1328
+ reason: reason
1329
+ });
1330
+ });
1331
+ }
1332
+ function doAwait(value, resolveFn, rejectFn, finallyFn) {
1333
+ var result = value;
1334
+ if (isPromiseLike(value)) {
1335
+ if (resolveFn || rejectFn) {
1336
+ result = value.then(resolveFn, rejectFn);
1337
+ }
1338
+ }
1339
+ else {
1340
+ resolveFn && resolveFn(value);
1341
+ }
1342
+ if (finallyFn) {
1343
+ result = doFinally(result, finallyFn);
1344
+ }
1345
+ return result;
1346
+ }
1347
+ function doFinally(value, finallyFn) {
1348
+ var result = value;
1349
+ if (finallyFn) {
1350
+ if (isPromiseLike(value)) {
1351
+ if (value.finally) {
1352
+ result = value.finally(finallyFn);
1353
+ }
1354
+ else {
1355
+ result = value.then(function (value) {
1356
+ finallyFn();
1357
+ return value;
1358
+ }, function (reason) {
1359
+ finallyFn();
1360
+ throw reason;
1361
+ });
1362
+ }
1363
+ }
1364
+ else {
1365
+ finallyFn();
1366
+ }
1367
+ }
1368
+ return result;
1369
+ }
1370
+
1371
+ var _theLogger = null;
1372
+ function _debugLog(id, message) {
1373
+ if (_theLogger) {
1374
+ _theLogger(id, message);
1375
+ }
1376
+ }
1377
+
1378
+ var STRING_STATES = [
1379
+ "pending", "resolving", "resolved", "rejected"
1380
+ ];
1381
+
1382
+ var DISPATCH_EVENT = "dispatchEvent";
1383
+ var _hasInitEvent;
1384
+ function emitEvent(target, evtName, populateEvent, useNewEvent) {
1385
+ var doc = getDocument();
1386
+ !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1387
+ var evt;
1388
+ if (doc && doc.createEvent) {
1389
+ evt = doc.createEvent("Event");
1390
+ }
1391
+ return (!!evt && evt.initEvent);
1392
+ }, null));
1393
+ var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1394
+ populateEvent && populateEvent(theEvt);
1395
+ if (_hasInitEvent.v) {
1396
+ theEvt.initEvent(evtName, false, true);
1397
+ }
1398
+ if (theEvt && target[DISPATCH_EVENT]) {
1399
+ target[DISPATCH_EVENT](theEvt);
1400
+ }
1401
+ else {
1402
+ var handler = target["on" + evtName];
1403
+ if (handler) {
1404
+ handler(theEvt);
1405
+ }
1406
+ else {
1407
+ var theConsole = getInst("console");
1408
+ theConsole && (theConsole["error"] || theConsole["log"])(evtName, dumpObj(theEvt));
1409
+ }
1410
+ }
1411
+ }
1412
+
1413
+ var STR_PROMISE = "Promise";
1414
+
1415
+ var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1416
+ var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1417
+ var _unhandledRejectionTimeout = 10;
1418
+ var _hasPromiseRejectionEvent;
1419
+ function dumpFnObj(value) {
1420
+ if (isFunction(value)) {
1421
+ return value.toString();
1422
+ }
1423
+ return dumpObj(value);
1424
+ }
1425
+ function _createPromise(newPromise, processor, executor) {
1426
+ var additionalArgs = arrSlice(arguments, 3);
1427
+ var _state = 0 ;
1428
+ var _hasResolved = false;
1429
+ var _settledValue;
1430
+ var _queue = [];
1431
+ var _handled = false;
1432
+ var _unHandledRejectionHandler = null;
1433
+ var _thePromise;
1434
+ !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1435
+ var _then = function (onResolved, onRejected) {
1436
+ try {
1437
+ _handled = true;
1438
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1439
+ _unHandledRejectionHandler = null;
1440
+ _debugLog(_toString(), "then(" + dumpFnObj(onResolved) + ", " + dumpFnObj(onResolved) + ")");
1441
+ var thenPromise = newPromise(function (resolve, reject) {
1442
+ _queue.push(function () {
1443
+ try {
1444
+ _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue));
1445
+ var handler = _state === 2 ? onResolved : onRejected;
1446
+ var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);
1447
+ _debugLog(_toString(), "Handling Result " + dumpFnObj(value));
1448
+ if (isPromiseLike(value)) {
1449
+ value.then(resolve, reject);
1450
+ }
1451
+ else if (handler) {
1452
+ resolve(value);
1453
+ }
1454
+ else if (_state === 3 ) {
1455
+ reject(value);
1456
+ }
1457
+ else {
1458
+ resolve(value);
1459
+ }
1460
+ }
1461
+ catch (e) {
1462
+ reject(e);
1463
+ }
1464
+ });
1465
+ _debugLog(_toString(), "Added to Queue " + _queue.length);
1466
+ if (_hasResolved) {
1467
+ _processQueue();
1468
+ }
1469
+ }, additionalArgs);
1470
+ _debugLog(_toString(), "Created -> " + thenPromise.toString());
1471
+ return thenPromise;
1472
+ }
1473
+ finally {
1474
+ }
1475
+ };
1476
+ var _catch = function (onRejected) {
1477
+ return _then(undefined, onRejected);
1478
+ };
1479
+ var _finally = function (onFinally) {
1480
+ var thenFinally = onFinally;
1481
+ var catchFinally = onFinally;
1482
+ if (isFunction(onFinally)) {
1483
+ thenFinally = function (value) {
1484
+ onFinally && onFinally();
1485
+ return value;
1486
+ };
1487
+ catchFinally = function (reason) {
1488
+ onFinally && onFinally();
1489
+ throw reason;
1490
+ };
1491
+ }
1492
+ return _then(thenFinally, catchFinally);
1493
+ };
1494
+ var _strState = function () {
1495
+ return STRING_STATES[_state];
1496
+ };
1497
+ var _processQueue = function () {
1498
+ if (_queue.length > 0) {
1499
+ var pending = _queue.slice();
1500
+ _queue = [];
1501
+ _debugLog(_toString(), "Processing queue " + pending.length);
1502
+ _handled = true;
1503
+ processor(pending);
1504
+ _debugLog(_toString(), "Processing done");
1505
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1506
+ _unHandledRejectionHandler = null;
1507
+ }
1508
+ else {
1509
+ _debugLog(_toString(), "Empty Processing queue ");
1510
+ }
1511
+ };
1512
+ var _createSettleIfFn = function (newState, allowState) {
1513
+ return function (theValue) {
1514
+ if (_state === allowState) {
1515
+ if (newState === 2 && isPromiseLike(theValue)) {
1516
+ _state = 1 ;
1517
+ _debugLog(_toString(), "Resolving");
1518
+ theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));
1519
+ return;
1520
+ }
1521
+ _state = newState;
1522
+ _hasResolved = true;
1523
+ _settledValue = theValue;
1524
+ _debugLog(_toString(), _strState());
1525
+ _processQueue();
1526
+ if (!_handled && newState === 3 && !_unHandledRejectionHandler) {
1527
+ _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);
1528
+ }
1529
+ }
1530
+ else {
1531
+ _debugLog(_toString(), "Already " + _strState());
1532
+ }
1533
+ };
1534
+ };
1535
+ var _notifyUnhandledRejection = function () {
1536
+ if (!_handled) {
1537
+ if (isNode()) {
1538
+ _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION);
1539
+ process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1540
+ }
1541
+ else {
1542
+ var gbl = getWindow() || getGlobal();
1543
+ _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION);
1544
+ emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {
1545
+ objDefine(theEvt, "promise", { g: function () { return _thePromise; } });
1546
+ theEvt.reason = _settledValue;
1547
+ return theEvt;
1548
+ }, !!_hasPromiseRejectionEvent.v);
1549
+ }
1550
+ }
1551
+ };
1552
+ _thePromise = {
1553
+ then: _then,
1554
+ "catch": _catch,
1555
+ finally: _finally
1556
+ };
1557
+ objDefineProp(_thePromise, "state", {
1558
+ get: _strState
1559
+ });
1560
+ if (hasSymbol()) {
1561
+ _thePromise[getKnownSymbol(11 )] = "IPromise";
1562
+ }
1563
+ var _toString = function () {
1564
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1565
+ };
1566
+ _thePromise.toString = _toString;
1567
+ (function _initialize() {
1568
+ if (!isFunction(executor)) {
1569
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpFnObj(executor));
1570
+ }
1571
+ var _rejectFn = _createSettleIfFn(3 , 0 );
1572
+ try {
1573
+ _debugLog(_toString(), "Executing");
1574
+ executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);
1575
+ }
1576
+ catch (e) {
1577
+ _rejectFn(e);
1578
+ }
1579
+ })();
1580
+ _debugLog(_toString(), "Returning");
1581
+ return _thePromise;
1582
+ }
1583
+ function _createAllPromise(newPromise) {
1584
+ return function (input) {
1585
+ var additionalArgs = arrSlice(arguments, 1);
1586
+ return newPromise(function (resolve, reject) {
1587
+ try {
1588
+ var values_1 = [];
1589
+ var pending_1 = 1;
1590
+ arrForEach(input, function (item, idx) {
1591
+ if (item) {
1592
+ pending_1++;
1593
+ doAwait(item, function (value) {
1594
+ values_1[idx] = value;
1595
+ if (--pending_1 === 0) {
1596
+ resolve(values_1);
1597
+ }
1598
+ }, reject);
1599
+ }
1600
+ });
1601
+ pending_1--;
1602
+ if (pending_1 === 0) {
1603
+ resolve(values_1);
1604
+ }
1605
+ }
1606
+ catch (e) {
1607
+ reject(e);
1608
+ }
1609
+ }, additionalArgs);
1610
+ };
1611
+ }
1612
+
1613
+ var _processPendingItems = function (pending) {
1614
+ arrForEach(pending, function (fn) {
1615
+ try {
1616
+ fn();
1617
+ }
1618
+ catch (e) {
1619
+ }
1620
+ });
1621
+ };
1622
+ function timeoutItemProcessor(timeout) {
1623
+ var callbackTimeout = isNumber(timeout) ? timeout : 0;
1624
+ return function (pending) {
1625
+ scheduleTimeout(function () {
1626
+ _processPendingItems(pending);
1627
+ }, callbackTimeout);
1628
+ };
1629
+ }
1630
+
1631
+ function createAsyncPromise(executor, timeout) {
1632
+ return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1633
+ }
1634
+
1635
+ var _isPromiseSupported;
1636
+ function createNativePromise(executor, timeout) {
1637
+ !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1638
+ var PrmCls = _isPromiseSupported.v;
1639
+ if (!PrmCls) {
1640
+ return createAsyncPromise(executor);
1641
+ }
1642
+ if (!isFunction(executor)) {
1643
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpObj(executor));
1644
+ }
1645
+ var _state = 0 ;
1646
+ function _strState() {
1647
+ return STRING_STATES[_state];
1648
+ }
1649
+ var thePromise = new PrmCls(function (resolve, reject) {
1650
+ function _resolve(value) {
1651
+ _state = 2 ;
1652
+ resolve(value);
1653
+ }
1654
+ function _reject(reason) {
1655
+ _state = 3 ;
1656
+ reject(reason);
1657
+ }
1658
+ executor(_resolve, _reject);
1659
+ });
1660
+ objDefineProp(thePromise, "state", {
1661
+ get: _strState
1662
+ });
1663
+ return thePromise;
1664
+ }
1665
+
1666
+ var _promiseCreator;
1667
+ function createPromise(executor, timeout) {
1668
+ !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1669
+ return _promiseCreator.v.call(this, executor, timeout);
1670
+ }
1671
+ var createAllPromise = _createAllPromise(createPromise);
1672
+
1301
1673
  var UNDEFINED_VALUE = undefined;
1302
1674
  var STR_EMPTY = "";
1303
1675
  var STR_CHANNELS = "channels";
@@ -1785,7 +2157,7 @@
1785
2157
  return result;
1786
2158
  }
1787
2159
 
1788
- var version = "3.0.1-nightly3.2304-41";
2160
+ var version = "3.0.1-nightly3.2304-44";
1789
2161
  var instanceName = "." + newId(6);
1790
2162
  var _dataUid = 0;
1791
2163
  function _canAcceptData(target) {
@@ -2400,7 +2772,30 @@
2400
2772
  return handler[_DYN_WATCH ](configHandler);
2401
2773
  }
2402
2774
  _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));
2403
- createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
2775
+ return createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
2776
+ }
2777
+
2778
+ function runTargetUnload(target, isAsync) {
2779
+ if (target && target[_DYN_UNLOAD ]) {
2780
+ return target[_DYN_UNLOAD ](isAsync);
2781
+ }
2782
+ }
2783
+ function doUnloadAll(targets, isAsync, done) {
2784
+ var result;
2785
+ if (!done) {
2786
+ result = createPromise(function (resolved) {
2787
+ done = resolved;
2788
+ });
2789
+ }
2790
+ if (targets && getLength(targets) > 0) {
2791
+ doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {
2792
+ doUnloadAll(arrSlice(targets, 1), isAsync, done);
2793
+ });
2794
+ }
2795
+ else {
2796
+ done();
2797
+ }
2798
+ return result;
2404
2799
  }
2405
2800
 
2406
2801
  var ChannelControllerPriority = 500;
@@ -2551,8 +2946,9 @@
2551
2946
  var _loggingLevelTelemetry;
2552
2947
  var _maxInternalMessageLimit;
2553
2948
  var _enableDebug;
2949
+ var _unloadHandler;
2554
2950
  dynamicProto(DiagnosticLogger, this, function (_self) {
2555
- _setDefaultsFromConfig(config || {});
2951
+ _unloadHandler = _setDefaultsFromConfig(config || {});
2556
2952
  _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
2557
2953
  _self[_DYN_THROW_INTERNAL ] = function (severity, msgId, msg, properties, isUserAct) {
2558
2954
  if (isUserAct === void 0) { isUserAct = false; }
@@ -2595,6 +2991,10 @@
2595
2991
  _messageLogged = {};
2596
2992
  };
2597
2993
  _self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
2994
+ _self[_DYN_UNLOAD ] = function (isAsync) {
2995
+ _unloadHandler && _unloadHandler.rm();
2996
+ _unloadHandler = null;
2997
+ };
2598
2998
  function _logInternalMessage(severity, message) {
2599
2999
  if (_areInternalMessagesThrottled()) {
2600
3000
  return;
@@ -2627,8 +3027,7 @@
2627
3027
  }
2628
3028
  }
2629
3029
  function _setDefaultsFromConfig(config) {
2630
- var handler = createDynamicConfig(config, defaultValues$2, _self);
2631
- handler[_DYN_WATCH ](function (details) {
3030
+ return onConfigChange(createDynamicConfig(config, defaultValues$2, _self).cfg, function (details) {
2632
3031
  var config = details.cfg;
2633
3032
  _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 ];
2634
3033
  _loggingLevelTelemetry = config.loggingLevelTelemetry;
@@ -2756,15 +3155,17 @@
2756
3155
  return cookieMgr;
2757
3156
  }
2758
3157
  function createCookieMgr(rootConfig, logger) {
3158
+ var _a;
2759
3159
  var cookieMgrConfig;
2760
3160
  var _path;
2761
3161
  var _domain;
3162
+ var unloadHandler;
2762
3163
  var _enabled;
2763
3164
  var _getCookieFn;
2764
3165
  var _setCookieFn;
2765
3166
  var _delCookieFn;
2766
3167
  rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
2767
- onConfigChange(rootConfig, function (details) {
3168
+ unloadHandler = onConfigChange(rootConfig, function (details) {
2768
3169
  details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
2769
3170
  cookieMgrConfig = details.ref(details.cfg, "cookieCfg");
2770
3171
  _path = cookieMgrConfig[STR_PATH ] || "/";
@@ -2774,92 +3175,97 @@
2774
3175
  _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
2775
3176
  _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;
2776
3177
  }, logger);
2777
- var cookieMgr = {
2778
- isEnabled: function () {
2779
- var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);
2780
- var gblManager = _globalCookieConfig[strConfigCookieMgr];
2781
- if (enabled && gblManager && cookieMgr !== gblManager) {
2782
- enabled = _isMgrEnabled(gblManager);
2783
- }
2784
- return enabled;
2785
- },
2786
- setEnabled: function (value) {
2787
- _enabled = value !== false;
2788
- cookieMgrConfig[_DYN_ENABLED ] = value;
2789
- },
2790
- set: function (name, value, maxAgeSec, domain, path) {
2791
- var result = false;
2792
- if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
2793
- var values = {};
2794
- var theValue = strTrim(value || STR_EMPTY);
2795
- var idx = strIndexOf(theValue, ";");
2796
- if (idx !== -1) {
2797
- theValue = strTrim(strLeft(value, idx));
2798
- values = _extractParts(strSubstring(value, idx + 1));
2799
- }
2800
- setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
2801
- if (!isNullOrUndefined(maxAgeSec)) {
2802
- var _isIE = isIE();
2803
- if (isUndefined(values[strExpires])) {
2804
- var nowMs = utcNow();
2805
- var expireMs = nowMs + (maxAgeSec * 1000);
2806
- if (expireMs > 0) {
2807
- var expiry = new Date();
2808
- expiry.setTime(expireMs);
2809
- setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3178
+ var cookieMgr = (_a = {
3179
+ isEnabled: function () {
3180
+ var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);
3181
+ var gblManager = _globalCookieConfig[strConfigCookieMgr];
3182
+ if (enabled && gblManager && cookieMgr !== gblManager) {
3183
+ enabled = _isMgrEnabled(gblManager);
3184
+ }
3185
+ return enabled;
3186
+ },
3187
+ setEnabled: function (value) {
3188
+ _enabled = value !== false;
3189
+ cookieMgrConfig[_DYN_ENABLED ] = value;
3190
+ },
3191
+ set: function (name, value, maxAgeSec, domain, path) {
3192
+ var result = false;
3193
+ if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
3194
+ var values = {};
3195
+ var theValue = strTrim(value || STR_EMPTY);
3196
+ var idx = strIndexOf(theValue, ";");
3197
+ if (idx !== -1) {
3198
+ theValue = strTrim(strLeft(value, idx));
3199
+ values = _extractParts(strSubstring(value, idx + 1));
3200
+ }
3201
+ setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
3202
+ if (!isNullOrUndefined(maxAgeSec)) {
3203
+ var _isIE = isIE();
3204
+ if (isUndefined(values[strExpires])) {
3205
+ var nowMs = utcNow();
3206
+ var expireMs = nowMs + (maxAgeSec * 1000);
3207
+ if (expireMs > 0) {
3208
+ var expiry = new Date();
3209
+ expiry.setTime(expireMs);
3210
+ setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3211
+ }
3212
+ }
3213
+ if (!_isIE) {
3214
+ setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
2810
3215
  }
2811
3216
  }
2812
- if (!_isIE) {
2813
- setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
3217
+ var location_1 = getLocation();
3218
+ if (location_1 && location_1.protocol === "https:") {
3219
+ setValue(values, "secure", null, null, isUndefined);
3220
+ if (_allowUaSameSite === null) {
3221
+ _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
3222
+ }
3223
+ if (_allowUaSameSite) {
3224
+ setValue(values, "SameSite", "None", null, isUndefined);
3225
+ }
2814
3226
  }
3227
+ setValue(values, STR_PATH, path || _path, null, isUndefined);
3228
+ _setCookieFn(name, _formatCookieValue(theValue, values));
3229
+ result = true;
2815
3230
  }
2816
- var location_1 = getLocation();
2817
- if (location_1 && location_1.protocol === "https:") {
2818
- setValue(values, "secure", null, null, isUndefined);
2819
- if (_allowUaSameSite === null) {
2820
- _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
2821
- }
2822
- if (_allowUaSameSite) {
2823
- setValue(values, "SameSite", "None", null, isUndefined);
3231
+ return result;
3232
+ },
3233
+ get: function (name) {
3234
+ var value = STR_EMPTY;
3235
+ if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
3236
+ value = _getCookieFn(name);
3237
+ }
3238
+ return value;
3239
+ },
3240
+ del: function (name, path) {
3241
+ var result = false;
3242
+ if (_isMgrEnabled(cookieMgr)) {
3243
+ result = cookieMgr.purge(name, path);
3244
+ }
3245
+ return result;
3246
+ },
3247
+ purge: function (name, path) {
3248
+ var _a;
3249
+ var result = false;
3250
+ if (areCookiesSupported(logger)) {
3251
+ var values = (_a = {},
3252
+ _a[STR_PATH] = path ? path : "/",
3253
+ _a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
3254
+ _a);
3255
+ if (!isIE()) {
3256
+ values["max-age"] = "0";
2824
3257
  }
3258
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
3259
+ result = true;
2825
3260
  }
2826
- setValue(values, STR_PATH, path || _path, null, isUndefined);
2827
- _setCookieFn(name, _formatCookieValue(theValue, values));
2828
- result = true;
3261
+ return result;
2829
3262
  }
2830
- return result;
2831
3263
  },
2832
- get: function (name) {
2833
- var value = STR_EMPTY;
2834
- if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
2835
- value = _getCookieFn(name);
2836
- }
2837
- return value;
3264
+ _a[_DYN_UNLOAD ] = function (isAsync) {
3265
+ unloadHandler && unloadHandler.rm();
3266
+ unloadHandler = null;
2838
3267
  },
2839
- del: function (name, path) {
2840
- var result = false;
2841
- if (_isMgrEnabled(cookieMgr)) {
2842
- result = cookieMgr.purge(name, path);
2843
- }
2844
- return result;
2845
- },
2846
- purge: function (name, path) {
2847
- var _a;
2848
- var result = false;
2849
- if (areCookiesSupported(logger)) {
2850
- var values = (_a = {},
2851
- _a[STR_PATH] = path ? path : "/",
2852
- _a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
2853
- _a);
2854
- if (!isIE()) {
2855
- values["max-age"] = "0";
2856
- }
2857
- _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
2858
- result = true;
2859
- }
2860
- return result;
2861
- }
2862
- };
3268
+ _a);
2863
3269
  cookieMgr[strConfigCookieMgr] = cookieMgr;
2864
3270
  return cookieMgr;
2865
3271
  }
@@ -2976,40 +3382,45 @@
2976
3382
  function NotificationManager(config) {
2977
3383
  this.listeners = [];
2978
3384
  var perfEvtsSendAll;
3385
+ var unloadHandler;
3386
+ var _listeners = [];
2979
3387
  var cfgHandler = createDynamicConfig(config, defaultValues$1);
2980
- cfgHandler[_DYN_WATCH ](function (details) {
3388
+ unloadHandler = cfgHandler[_DYN_WATCH ](function (details) {
2981
3389
  perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;
2982
3390
  });
2983
3391
  dynamicProto(NotificationManager, this, function (_self) {
3392
+ objDefine(_self, "listeners", {
3393
+ g: function () { return _listeners; }
3394
+ });
2984
3395
  _self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
2985
- _self.listeners[_DYN_PUSH ](listener);
3396
+ _listeners[_DYN_PUSH ](listener);
2986
3397
  };
2987
3398
  _self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
2988
- var index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
3399
+ var index = arrIndexOf(_listeners, listener);
2989
3400
  while (index > -1) {
2990
- _self.listeners[_DYN_SPLICE ](index, 1);
2991
- index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
3401
+ _listeners[_DYN_SPLICE ](index, 1);
3402
+ index = arrIndexOf(_listeners, listener);
2992
3403
  }
2993
3404
  };
2994
3405
  _self[STR_EVENTS_SENT ] = function (events) {
2995
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SENT, true, function (listener) {
3406
+ _runListeners(_listeners, STR_EVENTS_SENT, true, function (listener) {
2996
3407
  listener[STR_EVENTS_SENT ](events);
2997
3408
  });
2998
3409
  };
2999
3410
  _self[STR_EVENTS_DISCARDED ] = function (events, reason) {
3000
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_DISCARDED, true, function (listener) {
3411
+ _runListeners(_listeners, STR_EVENTS_DISCARDED, true, function (listener) {
3001
3412
  listener[STR_EVENTS_DISCARDED ](events, reason);
3002
3413
  });
3003
3414
  };
3004
3415
  _self[STR_EVENTS_SEND_REQUEST ] = function (sendReason, isAsync) {
3005
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
3416
+ _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
3006
3417
  listener[STR_EVENTS_SEND_REQUEST ](sendReason, isAsync);
3007
3418
  });
3008
3419
  };
3009
3420
  _self[STR_PERF_EVENT ] = function (perfEvent) {
3010
3421
  if (perfEvent) {
3011
3422
  if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
3012
- _runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
3423
+ _runListeners(_listeners, STR_PERF_EVENT, false, function (listener) {
3013
3424
  if (perfEvent[_DYN_IS_ASYNC ]) {
3014
3425
  scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
3015
3426
  }
@@ -3020,6 +3431,34 @@
3020
3431
  }
3021
3432
  }
3022
3433
  };
3434
+ _self[_DYN_UNLOAD ] = function (isAsync) {
3435
+ var _finishUnload = function () {
3436
+ unloadHandler && unloadHandler.rm();
3437
+ unloadHandler = null;
3438
+ _listeners = [];
3439
+ };
3440
+ var waiting;
3441
+ _runListeners(_listeners, "unload", false, function (listener) {
3442
+ var asyncUnload = listener[_DYN_UNLOAD ](isAsync);
3443
+ if (asyncUnload) {
3444
+ if (!waiting) {
3445
+ waiting = [];
3446
+ }
3447
+ waiting[_DYN_PUSH ](asyncUnload);
3448
+ }
3449
+ });
3450
+ if (waiting) {
3451
+ return createPromise(function (resolve) {
3452
+ return doAwaitResponse(createAllPromise(waiting), function () {
3453
+ _finishUnload();
3454
+ resolve();
3455
+ });
3456
+ });
3457
+ }
3458
+ else {
3459
+ _finishUnload();
3460
+ }
3461
+ };
3023
3462
  });
3024
3463
  }
3025
3464
  NotificationManager.__ieDyn=1;
@@ -3586,7 +4025,7 @@
3586
4025
  var context = internalContext.ctx;
3587
4026
  function _processNext(unloadState) {
3588
4027
  var nextPlugin = internalContext._next();
3589
- nextPlugin && nextPlugin.unload(context, unloadState);
4028
+ nextPlugin && nextPlugin[_DYN_UNLOAD ](context, unloadState);
3590
4029
  return !nextPlugin;
3591
4030
  }
3592
4031
  function _createNew(plugins, startAt) {
@@ -4161,6 +4600,7 @@
4161
4600
  function AppInsightsCore() {
4162
4601
  var _configHandler;
4163
4602
  var _isInitialized;
4603
+ var _logger;
4164
4604
  var _eventQueue;
4165
4605
  var _notificationManager;
4166
4606
  var _perfManager;
@@ -4214,8 +4654,7 @@
4214
4654
  _notificationManager = notificationManager;
4215
4655
  _initDebugListener();
4216
4656
  _initPerfManager();
4217
- _self[_DYN_LOGGER ] = logger || new DiagnosticLogger(config);
4218
- _configHandler[_DYN_LOGGER ] = _self[_DYN_LOGGER ];
4657
+ _self[_DYN_LOGGER ] = logger;
4219
4658
  var cfgExtensions = config[STR_EXTENSIONS ];
4220
4659
  _configExtensions = [];
4221
4660
  _configExtensions[_DYN_PUSH ].apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), cfgExtensions));
@@ -4227,10 +4666,10 @@
4227
4666
  if (_channels[_DYN_LENGTH ] > 1) {
4228
4667
  var teeController = _self[_DYN_GET_PLUGIN ]("TeeChannelController");
4229
4668
  if (!teeController || !teeController.plugin) {
4230
- _throwInternal(_self[_DYN_LOGGER ], 1 , 28 , "TeeChannel required");
4669
+ _throwInternal(_logger, 1 , 28 , "TeeChannel required");
4231
4670
  }
4232
4671
  }
4233
- _registerDelayedCfgListener(config, _cfgListeners, _self[_DYN_LOGGER ]);
4672
+ _registerDelayedCfgListener(config, _cfgListeners, _logger);
4234
4673
  _cfgListeners = null;
4235
4674
  _isInitialized = true;
4236
4675
  _self.releaseQueue();
@@ -4269,10 +4708,8 @@
4269
4708
  _self[_DYN_GET_PROCESS_TEL_CONT0 ] = _createTelCtx;
4270
4709
  _self[_DYN_GET_NOTIFY_MGR ] = function () {
4271
4710
  if (!_notificationManager) {
4272
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
4273
- _notificationManager = new NotificationManager(details.cfg);
4274
- _self[strNotificationManager] = _notificationManager;
4275
- }));
4711
+ _notificationManager = new NotificationManager(_configHandler.cfg);
4712
+ _self[strNotificationManager] = _notificationManager;
4276
4713
  }
4277
4714
  return _notificationManager;
4278
4715
  };
@@ -4286,14 +4723,15 @@
4286
4723
  };
4287
4724
  _self.getCookieMgr = function () {
4288
4725
  if (!_cookieManager) {
4289
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
4290
- _cookieManager = createCookieMgr(details.cfg, _self[_DYN_LOGGER ]);
4291
- }));
4726
+ _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER ]);
4292
4727
  }
4293
4728
  return _cookieManager;
4294
4729
  };
4295
4730
  _self.setCookieMgr = function (cookieMgr) {
4296
- _cookieManager = cookieMgr;
4731
+ if (_cookieManager !== cookieMgr) {
4732
+ runTargetUnload(_cookieManager, false);
4733
+ _cookieManager = cookieMgr;
4734
+ }
4297
4735
  };
4298
4736
  _self[STR_GET_PERF_MGR ] = function () {
4299
4737
  if (!_perfManager && !_cfgPerfManager) {
@@ -4331,7 +4769,7 @@
4331
4769
  };
4332
4770
  function _startLogPoller(alwaysStart) {
4333
4771
  if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED ]) && !_forceStopInternalLogPoller) {
4334
- var shouldStart = alwaysStart || (_self.logger && _self.logger.queue[_DYN_LENGTH ] > 0);
4772
+ var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH ] > 0);
4335
4773
  if (shouldStart) {
4336
4774
  if (!_internalLogPollerListening) {
4337
4775
  _internalLogPollerListening = true;
@@ -4361,7 +4799,7 @@
4361
4799
  _flushInternalLogs();
4362
4800
  };
4363
4801
  proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, ["addTelemetryInitializer"]);
4364
- _self.unload = function (isAsync, unloadComplete, cbTimeout) {
4802
+ _self[_DYN_UNLOAD ] = function (isAsync, unloadComplete, cbTimeout) {
4365
4803
  var _a;
4366
4804
  if (isAsync === void 0) { isAsync = true; }
4367
4805
  if (!_isInitialized) {
@@ -4376,11 +4814,19 @@
4376
4814
  _a[_DYN_IS_ASYNC ] = isAsync,
4377
4815
  _a.flushComplete = false,
4378
4816
  _a);
4817
+ var result;
4818
+ if (isAsync && !unloadComplete) {
4819
+ result = createPromise(function (resolve) {
4820
+ unloadComplete = resolve;
4821
+ });
4822
+ }
4379
4823
  var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);
4380
4824
  processUnloadCtx[_DYN_ON_COMPLETE ](function () {
4381
4825
  _hookContainer.run(_self[_DYN_LOGGER ]);
4382
- _initDefaults();
4383
- unloadComplete && unloadComplete(unloadState);
4826
+ doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {
4827
+ _initDefaults();
4828
+ unloadComplete && unloadComplete(unloadState);
4829
+ });
4384
4830
  }, _self);
4385
4831
  function _doUnload(flushComplete) {
4386
4832
  unloadState.flushComplete = flushComplete;
@@ -4391,6 +4837,7 @@
4391
4837
  }
4392
4838
  _flushInternalLogs();
4393
4839
  if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout)) ;
4840
+ return result;
4394
4841
  };
4395
4842
  _self[_DYN_GET_PLUGIN ] = _getPlugin;
4396
4843
  _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
@@ -4552,6 +4999,22 @@
4552
4999
  return _pluginVersionString || STR_EMPTY;
4553
5000
  }
4554
5001
  });
5002
+ objDefine(_self, "logger", {
5003
+ g: function () {
5004
+ if (!_logger) {
5005
+ _logger = new DiagnosticLogger(_configHandler.cfg);
5006
+ _configHandler[_DYN_LOGGER ] = _logger;
5007
+ }
5008
+ return _logger;
5009
+ },
5010
+ s: function (newLogger) {
5011
+ _configHandler[_DYN_LOGGER ] = newLogger;
5012
+ if (_logger !== newLogger) {
5013
+ runTargetUnload(_logger, false);
5014
+ _logger = newLogger;
5015
+ }
5016
+ }
5017
+ });
4555
5018
  _self[_DYN_LOGGER ] = new DiagnosticLogger(_configHandler.cfg);
4556
5019
  _extensions = [];
4557
5020
  var cfgExtensions = _self.config[STR_EXTENSIONS ] || [];
@@ -4559,9 +5022,11 @@
4559
5022
  arrAppend(cfgExtensions, _extensions);
4560
5023
  _telemetryInitializerPlugin = new TelemetryInitializerPlugin();
4561
5024
  _eventQueue = [];
5025
+ runTargetUnload(_notificationManager, false);
4562
5026
  _notificationManager = null;
4563
5027
  _perfManager = null;
4564
5028
  _cfgPerfManager = null;
5029
+ runTargetUnload(_cookieManager, false);
4565
5030
  _cookieManager = null;
4566
5031
  _pluginChain = null;
4567
5032
  _configExtensions = [];
@@ -4713,9 +5178,9 @@
4713
5178
  }
4714
5179
  }
4715
5180
  function _flushInternalLogs() {
4716
- if (_self[_DYN_LOGGER ] && _self[_DYN_LOGGER ].queue) {
4717
- var queue = _self[_DYN_LOGGER ].queue.slice(0);
4718
- _self.logger.queue[_DYN_LENGTH ] = 0;
5181
+ if (_logger && _logger.queue) {
5182
+ var queue = _logger.queue.slice(0);
5183
+ _logger.queue[_DYN_LENGTH ] = 0;
4719
5184
  arrForEach(queue, function (logMessage) {
4720
5185
  var _a;
4721
5186
  var item = (_a = {},
@@ -5377,6 +5842,7 @@
5377
5842
  exports.deepFreeze = objDeepFreeze;
5378
5843
  exports.detachEvent = detachEvent;
5379
5844
  exports.doPerf = doPerf;
5845
+ exports.doUnloadAll = doUnloadAll;
5380
5846
  exports.dumpObj = dumpObj;
5381
5847
  exports.eventOff = eventOff;
5382
5848
  exports.eventOn = eventOn;
@@ -5465,6 +5931,7 @@
5465
5931
  exports.removePageHideEventListener = removePageHideEventListener;
5466
5932
  exports.removePageShowEventListener = removePageShowEventListener;
5467
5933
  exports.removePageUnloadEventListener = removePageUnloadEventListener;
5934
+ exports.runTargetUnload = runTargetUnload;
5468
5935
  exports.safeGetCookieMgr = safeGetCookieMgr;
5469
5936
  exports.safeGetLogger = safeGetLogger;
5470
5937
  exports.setEnableEnvMocks = setEnableEnvMocks;