@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
  'use strict';
@@ -32,7 +32,7 @@ var MathCls = Math;
32
32
  var ArrCls = Array;
33
33
  var ArrProto = ArrCls[PROTOTYPE];
34
34
 
35
- function _safeGet(cb, defValue) {
35
+ function safeGet(cb, defValue) {
36
36
  var result = defValue;
37
37
  try {
38
38
  result = cb();
@@ -92,11 +92,14 @@ var isDate = _createObjIs("Date");
92
92
  var isNumber = _createIs(NUMBER);
93
93
  var isBoolean = _createIs(BOOLEAN);
94
94
  var isError = _createObjIs("Error");
95
+ function isPromiseLike(value) {
96
+ return !!value && isFunction(value.then);
97
+ }
95
98
  function isNotTruthy(value) {
96
- return !value || !_safeGet(function () { return (value && (0 + value)); }, value);
99
+ return !value || !safeGet(function () { return (value && (0 + value)); }, value);
97
100
  }
98
101
  function isTruthy(value) {
99
- return !(!value || _safeGet(function () { return !(value && (0 + value)); }, !value));
102
+ return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));
100
103
  }
101
104
 
102
105
  var objGetOwnPropertyDescriptor = ObjClass$1.getOwnPropertyDescriptor;
@@ -249,6 +252,11 @@ function _unwrapFunction(funcName, target, polyFunc) {
249
252
  throwTypeError("'" + asString(funcName) + "' not defined for " + dumpObj(thisArg));
250
253
  };
251
254
  }
255
+ function _unwrapProp(propName) {
256
+ return function (thisArg) {
257
+ return thisArg[propName];
258
+ };
259
+ }
252
260
 
253
261
  var mathMax = MathCls.max;
254
262
 
@@ -396,8 +404,8 @@ function getLazy(cb) {
396
404
  return lazyValue;
397
405
  }
398
406
 
399
- function _lazySafeGet(cb, defValue) {
400
- return getLazy(function () { return _safeGet(cb, defValue); });
407
+ function safeGetLazy(cb, defValue) {
408
+ return getLazy(function () { return safeGet(cb, defValue); });
401
409
  }
402
410
 
403
411
  var WINDOW = "window";
@@ -406,11 +414,12 @@ var _cachedWindow;
406
414
  var _cachedDocument;
407
415
  var _cachedNavigator;
408
416
  var _cachedHistory;
409
- function _lazySafeGetInst(name) {
410
- return _lazySafeGet(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);
417
+ var _isNode;
418
+ function lazySafeGetInst(name) {
419
+ return safeGetLazy(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);
411
420
  }
412
421
  function getGlobal(useCached) {
413
- (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = _lazySafeGet(_getGlobalValue, null));
422
+ (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = safeGetLazy(_getGlobalValue, null));
414
423
  return _cachedGlobal.v;
415
424
  }
416
425
  function getInst(name, useCached) {
@@ -427,43 +436,50 @@ function hasDocument() {
427
436
  return !!getDocument();
428
437
  }
429
438
  function getDocument() {
430
- (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = _lazySafeGetInst("document"));
439
+ (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = lazySafeGetInst("document"));
431
440
  return _cachedDocument.v;
432
441
  }
433
442
  function hasWindow() {
434
443
  return !!getWindow();
435
444
  }
436
445
  function getWindow() {
437
- (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = _lazySafeGetInst(WINDOW));
446
+ (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = lazySafeGetInst(WINDOW));
438
447
  return _cachedWindow.v;
439
448
  }
440
449
  function hasNavigator() {
441
450
  return !!getNavigator();
442
451
  }
443
452
  function getNavigator() {
444
- (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = _lazySafeGetInst("navigator"));
453
+ (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = lazySafeGetInst("navigator"));
445
454
  return _cachedNavigator.v;
446
455
  }
447
456
  function hasHistory() {
448
457
  return !!getHistory();
449
458
  }
450
459
  function getHistory() {
451
- (!_cachedHistory || (_globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = _lazySafeGetInst("history"));
460
+ (!_cachedHistory || (_globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = lazySafeGetInst("history"));
452
461
  return _cachedHistory.v;
453
462
  }
463
+ function isNode() {
464
+ !_isNode && (_isNode = safeGetLazy(function () { return !!(process && (process.versions || {}).node); }, false));
465
+ return _isNode.v;
466
+ }
454
467
 
455
468
  var _symbol;
456
469
  var _symbolFor;
457
470
  var _symbolKeyFor;
458
471
  function _getSymbolValue(name) {
459
- return _lazySafeGet(function () {
472
+ return safeGetLazy(function () {
460
473
  return (_symbol.v ? _symbol[name] : UNDEF_VALUE);
461
474
  }, UNDEF_VALUE);
462
475
  }
463
476
  var isSymbol = _createIs("symbol");
477
+ function hasSymbol() {
478
+ return !!getSymbol();
479
+ }
464
480
  function getSymbol() {
465
481
  var resetCache = !_symbol || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_symbol.b);
466
- resetCache && (_symbol = _lazySafeGetInst(SYMBOL));
482
+ resetCache && (_symbol = lazySafeGetInst(SYMBOL));
467
483
  (!_symbolFor || resetCache) && (_symbolFor = _getSymbolValue("for"));
468
484
  (!_symbolKeyFor || resetCache) && (_symbolKeyFor = _getSymbolValue("keyFor"));
469
485
  return _symbol.v;
@@ -791,9 +807,11 @@ function deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {
791
807
  return _doExtend(objDeepCopy(target) || {}, arrSlice(arguments));
792
808
  }
793
809
 
810
+ var getLength = _unwrapProp(LENGTH);
811
+
794
812
  var _perf;
795
813
  function getPerformance() {
796
- (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = _lazySafeGetInst("performance"));
814
+ (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = lazySafeGetInst("performance"));
797
815
  return _perf.v;
798
816
  }
799
817
  function perfNow() {
@@ -963,6 +981,7 @@ var _DYN_ADD_NOTIFICATION_LIS1 = "addNotificationListener";
963
981
  var _DYN_REMOVE_NOTIFICATION_2 = "removeNotificationListener";
964
982
  var _DYN_ENABLED = "enabled";
965
983
  var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
984
+ var _DYN_UNLOAD = "unload";
966
985
  var _DYN_ON_COMPLETE = "onComplete";
967
986
  var _DYN_VERSION = "version";
968
987
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
@@ -983,7 +1002,6 @@ var _DYN_REPLACE = "replace";
983
1002
  var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
984
1003
  var _DYN_TYPE = "type";
985
1004
  var _DYN_HANDLER = "handler";
986
- var _DYN_LISTENERS = "listeners";
987
1005
  var _DYN_IS_CHILD_EVT = "isChildEvt";
988
1006
  var _DYN_GET_CTX = "getCtx";
989
1007
  var _DYN_SET_CTX = "setCtx";
@@ -1294,6 +1312,360 @@ function dynamicProto(theClass, target, delegateFunc, options) {
1294
1312
  }
1295
1313
  dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
1296
1314
 
1315
+ function doAwaitResponse(value, cb) {
1316
+ return doAwait(value, function (value) {
1317
+ cb && cb({
1318
+ value: value,
1319
+ rejected: false
1320
+ });
1321
+ }, function (reason) {
1322
+ cb && cb({
1323
+ rejected: true,
1324
+ reason: reason
1325
+ });
1326
+ });
1327
+ }
1328
+ function doAwait(value, resolveFn, rejectFn, finallyFn) {
1329
+ var result = value;
1330
+ if (isPromiseLike(value)) {
1331
+ if (resolveFn || rejectFn) {
1332
+ result = value.then(resolveFn, rejectFn);
1333
+ }
1334
+ }
1335
+ else {
1336
+ resolveFn && resolveFn(value);
1337
+ }
1338
+ if (finallyFn) {
1339
+ result = doFinally(result, finallyFn);
1340
+ }
1341
+ return result;
1342
+ }
1343
+ function doFinally(value, finallyFn) {
1344
+ var result = value;
1345
+ if (finallyFn) {
1346
+ if (isPromiseLike(value)) {
1347
+ if (value.finally) {
1348
+ result = value.finally(finallyFn);
1349
+ }
1350
+ else {
1351
+ result = value.then(function (value) {
1352
+ finallyFn();
1353
+ return value;
1354
+ }, function (reason) {
1355
+ finallyFn();
1356
+ throw reason;
1357
+ });
1358
+ }
1359
+ }
1360
+ else {
1361
+ finallyFn();
1362
+ }
1363
+ }
1364
+ return result;
1365
+ }
1366
+
1367
+ var _theLogger = null;
1368
+ function _debugLog(id, message) {
1369
+ if (_theLogger) {
1370
+ _theLogger(id, message);
1371
+ }
1372
+ }
1373
+
1374
+ var STRING_STATES = [
1375
+ "pending", "resolving", "resolved", "rejected"
1376
+ ];
1377
+
1378
+ var DISPATCH_EVENT = "dispatchEvent";
1379
+ var _hasInitEvent;
1380
+ function emitEvent(target, evtName, populateEvent, useNewEvent) {
1381
+ var doc = getDocument();
1382
+ !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1383
+ var evt;
1384
+ if (doc && doc.createEvent) {
1385
+ evt = doc.createEvent("Event");
1386
+ }
1387
+ return (!!evt && evt.initEvent);
1388
+ }, null));
1389
+ var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1390
+ populateEvent && populateEvent(theEvt);
1391
+ if (_hasInitEvent.v) {
1392
+ theEvt.initEvent(evtName, false, true);
1393
+ }
1394
+ if (theEvt && target[DISPATCH_EVENT]) {
1395
+ target[DISPATCH_EVENT](theEvt);
1396
+ }
1397
+ else {
1398
+ var handler = target["on" + evtName];
1399
+ if (handler) {
1400
+ handler(theEvt);
1401
+ }
1402
+ else {
1403
+ var theConsole = getInst("console");
1404
+ theConsole && (theConsole["error"] || theConsole["log"])(evtName, dumpObj(theEvt));
1405
+ }
1406
+ }
1407
+ }
1408
+
1409
+ var STR_PROMISE = "Promise";
1410
+
1411
+ var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1412
+ var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1413
+ var _unhandledRejectionTimeout = 10;
1414
+ var _hasPromiseRejectionEvent;
1415
+ function dumpFnObj(value) {
1416
+ if (isFunction(value)) {
1417
+ return value.toString();
1418
+ }
1419
+ return dumpObj(value);
1420
+ }
1421
+ function _createPromise(newPromise, processor, executor) {
1422
+ var additionalArgs = arrSlice(arguments, 3);
1423
+ var _state = 0 ;
1424
+ var _hasResolved = false;
1425
+ var _settledValue;
1426
+ var _queue = [];
1427
+ var _handled = false;
1428
+ var _unHandledRejectionHandler = null;
1429
+ var _thePromise;
1430
+ !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1431
+ var _then = function (onResolved, onRejected) {
1432
+ try {
1433
+ _handled = true;
1434
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1435
+ _unHandledRejectionHandler = null;
1436
+ _debugLog(_toString(), "then(" + dumpFnObj(onResolved) + ", " + dumpFnObj(onResolved) + ")");
1437
+ var thenPromise = newPromise(function (resolve, reject) {
1438
+ _queue.push(function () {
1439
+ try {
1440
+ _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue));
1441
+ var handler = _state === 2 ? onResolved : onRejected;
1442
+ var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);
1443
+ _debugLog(_toString(), "Handling Result " + dumpFnObj(value));
1444
+ if (isPromiseLike(value)) {
1445
+ value.then(resolve, reject);
1446
+ }
1447
+ else if (handler) {
1448
+ resolve(value);
1449
+ }
1450
+ else if (_state === 3 ) {
1451
+ reject(value);
1452
+ }
1453
+ else {
1454
+ resolve(value);
1455
+ }
1456
+ }
1457
+ catch (e) {
1458
+ reject(e);
1459
+ }
1460
+ });
1461
+ _debugLog(_toString(), "Added to Queue " + _queue.length);
1462
+ if (_hasResolved) {
1463
+ _processQueue();
1464
+ }
1465
+ }, additionalArgs);
1466
+ _debugLog(_toString(), "Created -> " + thenPromise.toString());
1467
+ return thenPromise;
1468
+ }
1469
+ finally {
1470
+ }
1471
+ };
1472
+ var _catch = function (onRejected) {
1473
+ return _then(undefined, onRejected);
1474
+ };
1475
+ var _finally = function (onFinally) {
1476
+ var thenFinally = onFinally;
1477
+ var catchFinally = onFinally;
1478
+ if (isFunction(onFinally)) {
1479
+ thenFinally = function (value) {
1480
+ onFinally && onFinally();
1481
+ return value;
1482
+ };
1483
+ catchFinally = function (reason) {
1484
+ onFinally && onFinally();
1485
+ throw reason;
1486
+ };
1487
+ }
1488
+ return _then(thenFinally, catchFinally);
1489
+ };
1490
+ var _strState = function () {
1491
+ return STRING_STATES[_state];
1492
+ };
1493
+ var _processQueue = function () {
1494
+ if (_queue.length > 0) {
1495
+ var pending = _queue.slice();
1496
+ _queue = [];
1497
+ _debugLog(_toString(), "Processing queue " + pending.length);
1498
+ _handled = true;
1499
+ processor(pending);
1500
+ _debugLog(_toString(), "Processing done");
1501
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1502
+ _unHandledRejectionHandler = null;
1503
+ }
1504
+ else {
1505
+ _debugLog(_toString(), "Empty Processing queue ");
1506
+ }
1507
+ };
1508
+ var _createSettleIfFn = function (newState, allowState) {
1509
+ return function (theValue) {
1510
+ if (_state === allowState) {
1511
+ if (newState === 2 && isPromiseLike(theValue)) {
1512
+ _state = 1 ;
1513
+ _debugLog(_toString(), "Resolving");
1514
+ theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));
1515
+ return;
1516
+ }
1517
+ _state = newState;
1518
+ _hasResolved = true;
1519
+ _settledValue = theValue;
1520
+ _debugLog(_toString(), _strState());
1521
+ _processQueue();
1522
+ if (!_handled && newState === 3 && !_unHandledRejectionHandler) {
1523
+ _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);
1524
+ }
1525
+ }
1526
+ else {
1527
+ _debugLog(_toString(), "Already " + _strState());
1528
+ }
1529
+ };
1530
+ };
1531
+ var _notifyUnhandledRejection = function () {
1532
+ if (!_handled) {
1533
+ if (isNode()) {
1534
+ _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION);
1535
+ process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1536
+ }
1537
+ else {
1538
+ var gbl = getWindow() || getGlobal();
1539
+ _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION);
1540
+ emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {
1541
+ objDefine(theEvt, "promise", { g: function () { return _thePromise; } });
1542
+ theEvt.reason = _settledValue;
1543
+ return theEvt;
1544
+ }, !!_hasPromiseRejectionEvent.v);
1545
+ }
1546
+ }
1547
+ };
1548
+ _thePromise = {
1549
+ then: _then,
1550
+ "catch": _catch,
1551
+ finally: _finally
1552
+ };
1553
+ objDefineProp(_thePromise, "state", {
1554
+ get: _strState
1555
+ });
1556
+ if (hasSymbol()) {
1557
+ _thePromise[getKnownSymbol(11 )] = "IPromise";
1558
+ }
1559
+ var _toString = function () {
1560
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1561
+ };
1562
+ _thePromise.toString = _toString;
1563
+ (function _initialize() {
1564
+ if (!isFunction(executor)) {
1565
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpFnObj(executor));
1566
+ }
1567
+ var _rejectFn = _createSettleIfFn(3 , 0 );
1568
+ try {
1569
+ _debugLog(_toString(), "Executing");
1570
+ executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);
1571
+ }
1572
+ catch (e) {
1573
+ _rejectFn(e);
1574
+ }
1575
+ })();
1576
+ _debugLog(_toString(), "Returning");
1577
+ return _thePromise;
1578
+ }
1579
+ function _createAllPromise(newPromise) {
1580
+ return function (input) {
1581
+ var additionalArgs = arrSlice(arguments, 1);
1582
+ return newPromise(function (resolve, reject) {
1583
+ try {
1584
+ var values_1 = [];
1585
+ var pending_1 = 1;
1586
+ arrForEach(input, function (item, idx) {
1587
+ if (item) {
1588
+ pending_1++;
1589
+ doAwait(item, function (value) {
1590
+ values_1[idx] = value;
1591
+ if (--pending_1 === 0) {
1592
+ resolve(values_1);
1593
+ }
1594
+ }, reject);
1595
+ }
1596
+ });
1597
+ pending_1--;
1598
+ if (pending_1 === 0) {
1599
+ resolve(values_1);
1600
+ }
1601
+ }
1602
+ catch (e) {
1603
+ reject(e);
1604
+ }
1605
+ }, additionalArgs);
1606
+ };
1607
+ }
1608
+
1609
+ var _processPendingItems = function (pending) {
1610
+ arrForEach(pending, function (fn) {
1611
+ try {
1612
+ fn();
1613
+ }
1614
+ catch (e) {
1615
+ }
1616
+ });
1617
+ };
1618
+ function timeoutItemProcessor(timeout) {
1619
+ var callbackTimeout = isNumber(timeout) ? timeout : 0;
1620
+ return function (pending) {
1621
+ scheduleTimeout(function () {
1622
+ _processPendingItems(pending);
1623
+ }, callbackTimeout);
1624
+ };
1625
+ }
1626
+
1627
+ function createAsyncPromise(executor, timeout) {
1628
+ return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1629
+ }
1630
+
1631
+ var _isPromiseSupported;
1632
+ function createNativePromise(executor, timeout) {
1633
+ !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1634
+ var PrmCls = _isPromiseSupported.v;
1635
+ if (!PrmCls) {
1636
+ return createAsyncPromise(executor);
1637
+ }
1638
+ if (!isFunction(executor)) {
1639
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpObj(executor));
1640
+ }
1641
+ var _state = 0 ;
1642
+ function _strState() {
1643
+ return STRING_STATES[_state];
1644
+ }
1645
+ var thePromise = new PrmCls(function (resolve, reject) {
1646
+ function _resolve(value) {
1647
+ _state = 2 ;
1648
+ resolve(value);
1649
+ }
1650
+ function _reject(reason) {
1651
+ _state = 3 ;
1652
+ reject(reason);
1653
+ }
1654
+ executor(_resolve, _reject);
1655
+ });
1656
+ objDefineProp(thePromise, "state", {
1657
+ get: _strState
1658
+ });
1659
+ return thePromise;
1660
+ }
1661
+
1662
+ var _promiseCreator;
1663
+ function createPromise(executor, timeout) {
1664
+ !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1665
+ return _promiseCreator.v.call(this, executor, timeout);
1666
+ }
1667
+ var createAllPromise = _createAllPromise(createPromise);
1668
+
1297
1669
  var UNDEFINED_VALUE = undefined;
1298
1670
  var STR_EMPTY = "";
1299
1671
  var STR_CHANNELS = "channels";
@@ -1781,7 +2153,7 @@ function newId(maxLength) {
1781
2153
  return result;
1782
2154
  }
1783
2155
 
1784
- var version = "3.0.1-nightly3.2304-41";
2156
+ var version = "3.0.1-nightly3.2304-44";
1785
2157
  var instanceName = "." + newId(6);
1786
2158
  var _dataUid = 0;
1787
2159
  function _canAcceptData(target) {
@@ -2396,7 +2768,30 @@ function onConfigChange(config, configHandler, logger) {
2396
2768
  return handler[_DYN_WATCH ](configHandler);
2397
2769
  }
2398
2770
  _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));
2399
- createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
2771
+ return createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
2772
+ }
2773
+
2774
+ function runTargetUnload(target, isAsync) {
2775
+ if (target && target[_DYN_UNLOAD ]) {
2776
+ return target[_DYN_UNLOAD ](isAsync);
2777
+ }
2778
+ }
2779
+ function doUnloadAll(targets, isAsync, done) {
2780
+ var result;
2781
+ if (!done) {
2782
+ result = createPromise(function (resolved) {
2783
+ done = resolved;
2784
+ });
2785
+ }
2786
+ if (targets && getLength(targets) > 0) {
2787
+ doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {
2788
+ doUnloadAll(arrSlice(targets, 1), isAsync, done);
2789
+ });
2790
+ }
2791
+ else {
2792
+ done();
2793
+ }
2794
+ return result;
2400
2795
  }
2401
2796
 
2402
2797
  var ChannelControllerPriority = 500;
@@ -2547,8 +2942,9 @@ var DiagnosticLogger = /** @class */ (function () {
2547
2942
  var _loggingLevelTelemetry;
2548
2943
  var _maxInternalMessageLimit;
2549
2944
  var _enableDebug;
2945
+ var _unloadHandler;
2550
2946
  dynamicProto(DiagnosticLogger, this, function (_self) {
2551
- _setDefaultsFromConfig(config || {});
2947
+ _unloadHandler = _setDefaultsFromConfig(config || {});
2552
2948
  _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
2553
2949
  _self[_DYN_THROW_INTERNAL ] = function (severity, msgId, msg, properties, isUserAct) {
2554
2950
  if (isUserAct === void 0) { isUserAct = false; }
@@ -2591,6 +2987,10 @@ var DiagnosticLogger = /** @class */ (function () {
2591
2987
  _messageLogged = {};
2592
2988
  };
2593
2989
  _self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
2990
+ _self[_DYN_UNLOAD ] = function (isAsync) {
2991
+ _unloadHandler && _unloadHandler.rm();
2992
+ _unloadHandler = null;
2993
+ };
2594
2994
  function _logInternalMessage(severity, message) {
2595
2995
  if (_areInternalMessagesThrottled()) {
2596
2996
  return;
@@ -2623,8 +3023,7 @@ var DiagnosticLogger = /** @class */ (function () {
2623
3023
  }
2624
3024
  }
2625
3025
  function _setDefaultsFromConfig(config) {
2626
- var handler = createDynamicConfig(config, defaultValues$2, _self);
2627
- handler[_DYN_WATCH ](function (details) {
3026
+ return onConfigChange(createDynamicConfig(config, defaultValues$2, _self).cfg, function (details) {
2628
3027
  var config = details.cfg;
2629
3028
  _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 ];
2630
3029
  _loggingLevelTelemetry = config.loggingLevelTelemetry;
@@ -2752,15 +3151,17 @@ function safeGetCookieMgr(core, config) {
2752
3151
  return cookieMgr;
2753
3152
  }
2754
3153
  function createCookieMgr(rootConfig, logger) {
3154
+ var _a;
2755
3155
  var cookieMgrConfig;
2756
3156
  var _path;
2757
3157
  var _domain;
3158
+ var unloadHandler;
2758
3159
  var _enabled;
2759
3160
  var _getCookieFn;
2760
3161
  var _setCookieFn;
2761
3162
  var _delCookieFn;
2762
3163
  rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
2763
- onConfigChange(rootConfig, function (details) {
3164
+ unloadHandler = onConfigChange(rootConfig, function (details) {
2764
3165
  details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
2765
3166
  cookieMgrConfig = details.ref(details.cfg, "cookieCfg");
2766
3167
  _path = cookieMgrConfig[STR_PATH ] || "/";
@@ -2770,92 +3171,97 @@ function createCookieMgr(rootConfig, logger) {
2770
3171
  _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
2771
3172
  _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;
2772
3173
  }, logger);
2773
- var cookieMgr = {
2774
- isEnabled: function () {
2775
- var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);
2776
- var gblManager = _globalCookieConfig[strConfigCookieMgr];
2777
- if (enabled && gblManager && cookieMgr !== gblManager) {
2778
- enabled = _isMgrEnabled(gblManager);
2779
- }
2780
- return enabled;
2781
- },
2782
- setEnabled: function (value) {
2783
- _enabled = value !== false;
2784
- cookieMgrConfig[_DYN_ENABLED ] = value;
2785
- },
2786
- set: function (name, value, maxAgeSec, domain, path) {
2787
- var result = false;
2788
- if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
2789
- var values = {};
2790
- var theValue = strTrim(value || STR_EMPTY);
2791
- var idx = strIndexOf(theValue, ";");
2792
- if (idx !== -1) {
2793
- theValue = strTrim(strLeft(value, idx));
2794
- values = _extractParts(strSubstring(value, idx + 1));
2795
- }
2796
- setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
2797
- if (!isNullOrUndefined(maxAgeSec)) {
2798
- var _isIE = isIE();
2799
- if (isUndefined(values[strExpires])) {
2800
- var nowMs = utcNow();
2801
- var expireMs = nowMs + (maxAgeSec * 1000);
2802
- if (expireMs > 0) {
2803
- var expiry = new Date();
2804
- expiry.setTime(expireMs);
2805
- setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3174
+ var cookieMgr = (_a = {
3175
+ isEnabled: function () {
3176
+ var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);
3177
+ var gblManager = _globalCookieConfig[strConfigCookieMgr];
3178
+ if (enabled && gblManager && cookieMgr !== gblManager) {
3179
+ enabled = _isMgrEnabled(gblManager);
3180
+ }
3181
+ return enabled;
3182
+ },
3183
+ setEnabled: function (value) {
3184
+ _enabled = value !== false;
3185
+ cookieMgrConfig[_DYN_ENABLED ] = value;
3186
+ },
3187
+ set: function (name, value, maxAgeSec, domain, path) {
3188
+ var result = false;
3189
+ if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {
3190
+ var values = {};
3191
+ var theValue = strTrim(value || STR_EMPTY);
3192
+ var idx = strIndexOf(theValue, ";");
3193
+ if (idx !== -1) {
3194
+ theValue = strTrim(strLeft(value, idx));
3195
+ values = _extractParts(strSubstring(value, idx + 1));
3196
+ }
3197
+ setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
3198
+ if (!isNullOrUndefined(maxAgeSec)) {
3199
+ var _isIE = isIE();
3200
+ if (isUndefined(values[strExpires])) {
3201
+ var nowMs = utcNow();
3202
+ var expireMs = nowMs + (maxAgeSec * 1000);
3203
+ if (expireMs > 0) {
3204
+ var expiry = new Date();
3205
+ expiry.setTime(expireMs);
3206
+ setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);
3207
+ }
3208
+ }
3209
+ if (!_isIE) {
3210
+ setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
2806
3211
  }
2807
3212
  }
2808
- if (!_isIE) {
2809
- setValue(values, "max-age", STR_EMPTY + maxAgeSec, null, isUndefined);
3213
+ var location_1 = getLocation();
3214
+ if (location_1 && location_1.protocol === "https:") {
3215
+ setValue(values, "secure", null, null, isUndefined);
3216
+ if (_allowUaSameSite === null) {
3217
+ _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
3218
+ }
3219
+ if (_allowUaSameSite) {
3220
+ setValue(values, "SameSite", "None", null, isUndefined);
3221
+ }
2810
3222
  }
3223
+ setValue(values, STR_PATH, path || _path, null, isUndefined);
3224
+ _setCookieFn(name, _formatCookieValue(theValue, values));
3225
+ result = true;
2811
3226
  }
2812
- var location_1 = getLocation();
2813
- if (location_1 && location_1.protocol === "https:") {
2814
- setValue(values, "secure", null, null, isUndefined);
2815
- if (_allowUaSameSite === null) {
2816
- _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT ]);
2817
- }
2818
- if (_allowUaSameSite) {
2819
- setValue(values, "SameSite", "None", null, isUndefined);
3227
+ return result;
3228
+ },
3229
+ get: function (name) {
3230
+ var value = STR_EMPTY;
3231
+ if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
3232
+ value = _getCookieFn(name);
3233
+ }
3234
+ return value;
3235
+ },
3236
+ del: function (name, path) {
3237
+ var result = false;
3238
+ if (_isMgrEnabled(cookieMgr)) {
3239
+ result = cookieMgr.purge(name, path);
3240
+ }
3241
+ return result;
3242
+ },
3243
+ purge: function (name, path) {
3244
+ var _a;
3245
+ var result = false;
3246
+ if (areCookiesSupported(logger)) {
3247
+ var values = (_a = {},
3248
+ _a[STR_PATH] = path ? path : "/",
3249
+ _a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
3250
+ _a);
3251
+ if (!isIE()) {
3252
+ values["max-age"] = "0";
2820
3253
  }
3254
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
3255
+ result = true;
2821
3256
  }
2822
- setValue(values, STR_PATH, path || _path, null, isUndefined);
2823
- _setCookieFn(name, _formatCookieValue(theValue, values));
2824
- result = true;
3257
+ return result;
2825
3258
  }
2826
- return result;
2827
3259
  },
2828
- get: function (name) {
2829
- var value = STR_EMPTY;
2830
- if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
2831
- value = _getCookieFn(name);
2832
- }
2833
- return value;
3260
+ _a[_DYN_UNLOAD ] = function (isAsync) {
3261
+ unloadHandler && unloadHandler.rm();
3262
+ unloadHandler = null;
2834
3263
  },
2835
- del: function (name, path) {
2836
- var result = false;
2837
- if (_isMgrEnabled(cookieMgr)) {
2838
- result = cookieMgr.purge(name, path);
2839
- }
2840
- return result;
2841
- },
2842
- purge: function (name, path) {
2843
- var _a;
2844
- var result = false;
2845
- if (areCookiesSupported(logger)) {
2846
- var values = (_a = {},
2847
- _a[STR_PATH] = path ? path : "/",
2848
- _a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
2849
- _a);
2850
- if (!isIE()) {
2851
- values["max-age"] = "0";
2852
- }
2853
- _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
2854
- result = true;
2855
- }
2856
- return result;
2857
- }
2858
- };
3264
+ _a);
2859
3265
  cookieMgr[strConfigCookieMgr] = cookieMgr;
2860
3266
  return cookieMgr;
2861
3267
  }
@@ -2972,40 +3378,45 @@ var NotificationManager = /** @class */ (function () {
2972
3378
  function NotificationManager(config) {
2973
3379
  this.listeners = [];
2974
3380
  var perfEvtsSendAll;
3381
+ var unloadHandler;
3382
+ var _listeners = [];
2975
3383
  var cfgHandler = createDynamicConfig(config, defaultValues$1);
2976
- cfgHandler[_DYN_WATCH ](function (details) {
3384
+ unloadHandler = cfgHandler[_DYN_WATCH ](function (details) {
2977
3385
  perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;
2978
3386
  });
2979
3387
  dynamicProto(NotificationManager, this, function (_self) {
3388
+ objDefine(_self, "listeners", {
3389
+ g: function () { return _listeners; }
3390
+ });
2980
3391
  _self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
2981
- _self.listeners[_DYN_PUSH ](listener);
3392
+ _listeners[_DYN_PUSH ](listener);
2982
3393
  };
2983
3394
  _self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
2984
- var index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
3395
+ var index = arrIndexOf(_listeners, listener);
2985
3396
  while (index > -1) {
2986
- _self.listeners[_DYN_SPLICE ](index, 1);
2987
- index = arrIndexOf(_self[_DYN_LISTENERS ], listener);
3397
+ _listeners[_DYN_SPLICE ](index, 1);
3398
+ index = arrIndexOf(_listeners, listener);
2988
3399
  }
2989
3400
  };
2990
3401
  _self[STR_EVENTS_SENT ] = function (events) {
2991
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SENT, true, function (listener) {
3402
+ _runListeners(_listeners, STR_EVENTS_SENT, true, function (listener) {
2992
3403
  listener[STR_EVENTS_SENT ](events);
2993
3404
  });
2994
3405
  };
2995
3406
  _self[STR_EVENTS_DISCARDED ] = function (events, reason) {
2996
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_DISCARDED, true, function (listener) {
3407
+ _runListeners(_listeners, STR_EVENTS_DISCARDED, true, function (listener) {
2997
3408
  listener[STR_EVENTS_DISCARDED ](events, reason);
2998
3409
  });
2999
3410
  };
3000
3411
  _self[STR_EVENTS_SEND_REQUEST ] = function (sendReason, isAsync) {
3001
- _runListeners(_self[_DYN_LISTENERS ], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
3412
+ _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
3002
3413
  listener[STR_EVENTS_SEND_REQUEST ](sendReason, isAsync);
3003
3414
  });
3004
3415
  };
3005
3416
  _self[STR_PERF_EVENT ] = function (perfEvent) {
3006
3417
  if (perfEvent) {
3007
3418
  if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
3008
- _runListeners(_self[_DYN_LISTENERS ], STR_PERF_EVENT, false, function (listener) {
3419
+ _runListeners(_listeners, STR_PERF_EVENT, false, function (listener) {
3009
3420
  if (perfEvent[_DYN_IS_ASYNC ]) {
3010
3421
  scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
3011
3422
  }
@@ -3016,6 +3427,34 @@ var NotificationManager = /** @class */ (function () {
3016
3427
  }
3017
3428
  }
3018
3429
  };
3430
+ _self[_DYN_UNLOAD ] = function (isAsync) {
3431
+ var _finishUnload = function () {
3432
+ unloadHandler && unloadHandler.rm();
3433
+ unloadHandler = null;
3434
+ _listeners = [];
3435
+ };
3436
+ var waiting;
3437
+ _runListeners(_listeners, "unload", false, function (listener) {
3438
+ var asyncUnload = listener[_DYN_UNLOAD ](isAsync);
3439
+ if (asyncUnload) {
3440
+ if (!waiting) {
3441
+ waiting = [];
3442
+ }
3443
+ waiting[_DYN_PUSH ](asyncUnload);
3444
+ }
3445
+ });
3446
+ if (waiting) {
3447
+ return createPromise(function (resolve) {
3448
+ return doAwaitResponse(createAllPromise(waiting), function () {
3449
+ _finishUnload();
3450
+ resolve();
3451
+ });
3452
+ });
3453
+ }
3454
+ else {
3455
+ _finishUnload();
3456
+ }
3457
+ };
3019
3458
  });
3020
3459
  }
3021
3460
  NotificationManager.__ieDyn=1;
@@ -3582,7 +4021,7 @@ function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
3582
4021
  var context = internalContext.ctx;
3583
4022
  function _processNext(unloadState) {
3584
4023
  var nextPlugin = internalContext._next();
3585
- nextPlugin && nextPlugin.unload(context, unloadState);
4024
+ nextPlugin && nextPlugin[_DYN_UNLOAD ](context, unloadState);
3586
4025
  return !nextPlugin;
3587
4026
  }
3588
4027
  function _createNew(plugins, startAt) {
@@ -4157,6 +4596,7 @@ var AppInsightsCore = /** @class */ (function () {
4157
4596
  function AppInsightsCore() {
4158
4597
  var _configHandler;
4159
4598
  var _isInitialized;
4599
+ var _logger;
4160
4600
  var _eventQueue;
4161
4601
  var _notificationManager;
4162
4602
  var _perfManager;
@@ -4210,8 +4650,7 @@ var AppInsightsCore = /** @class */ (function () {
4210
4650
  _notificationManager = notificationManager;
4211
4651
  _initDebugListener();
4212
4652
  _initPerfManager();
4213
- _self[_DYN_LOGGER ] = logger || new DiagnosticLogger(config);
4214
- _configHandler[_DYN_LOGGER ] = _self[_DYN_LOGGER ];
4653
+ _self[_DYN_LOGGER ] = logger;
4215
4654
  var cfgExtensions = config[STR_EXTENSIONS ];
4216
4655
  _configExtensions = [];
4217
4656
  _configExtensions[_DYN_PUSH ].apply(_configExtensions, __spreadArrayFn(__spreadArrayFn([], extensions, false), cfgExtensions));
@@ -4223,10 +4662,10 @@ var AppInsightsCore = /** @class */ (function () {
4223
4662
  if (_channels[_DYN_LENGTH ] > 1) {
4224
4663
  var teeController = _self[_DYN_GET_PLUGIN ]("TeeChannelController");
4225
4664
  if (!teeController || !teeController.plugin) {
4226
- _throwInternal(_self[_DYN_LOGGER ], 1 , 28 , "TeeChannel required");
4665
+ _throwInternal(_logger, 1 , 28 , "TeeChannel required");
4227
4666
  }
4228
4667
  }
4229
- _registerDelayedCfgListener(config, _cfgListeners, _self[_DYN_LOGGER ]);
4668
+ _registerDelayedCfgListener(config, _cfgListeners, _logger);
4230
4669
  _cfgListeners = null;
4231
4670
  _isInitialized = true;
4232
4671
  _self.releaseQueue();
@@ -4265,10 +4704,8 @@ var AppInsightsCore = /** @class */ (function () {
4265
4704
  _self[_DYN_GET_PROCESS_TEL_CONT0 ] = _createTelCtx;
4266
4705
  _self[_DYN_GET_NOTIFY_MGR ] = function () {
4267
4706
  if (!_notificationManager) {
4268
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
4269
- _notificationManager = new NotificationManager(details.cfg);
4270
- _self[strNotificationManager] = _notificationManager;
4271
- }));
4707
+ _notificationManager = new NotificationManager(_configHandler.cfg);
4708
+ _self[strNotificationManager] = _notificationManager;
4272
4709
  }
4273
4710
  return _notificationManager;
4274
4711
  };
@@ -4282,14 +4719,15 @@ var AppInsightsCore = /** @class */ (function () {
4282
4719
  };
4283
4720
  _self.getCookieMgr = function () {
4284
4721
  if (!_cookieManager) {
4285
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
4286
- _cookieManager = createCookieMgr(details.cfg, _self[_DYN_LOGGER ]);
4287
- }));
4722
+ _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER ]);
4288
4723
  }
4289
4724
  return _cookieManager;
4290
4725
  };
4291
4726
  _self.setCookieMgr = function (cookieMgr) {
4292
- _cookieManager = cookieMgr;
4727
+ if (_cookieManager !== cookieMgr) {
4728
+ runTargetUnload(_cookieManager, false);
4729
+ _cookieManager = cookieMgr;
4730
+ }
4293
4731
  };
4294
4732
  _self[STR_GET_PERF_MGR ] = function () {
4295
4733
  if (!_perfManager && !_cfgPerfManager) {
@@ -4327,7 +4765,7 @@ var AppInsightsCore = /** @class */ (function () {
4327
4765
  };
4328
4766
  function _startLogPoller(alwaysStart) {
4329
4767
  if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED ]) && !_forceStopInternalLogPoller) {
4330
- var shouldStart = alwaysStart || (_self.logger && _self.logger.queue[_DYN_LENGTH ] > 0);
4768
+ var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH ] > 0);
4331
4769
  if (shouldStart) {
4332
4770
  if (!_internalLogPollerListening) {
4333
4771
  _internalLogPollerListening = true;
@@ -4357,7 +4795,7 @@ var AppInsightsCore = /** @class */ (function () {
4357
4795
  _flushInternalLogs();
4358
4796
  };
4359
4797
  proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, ["addTelemetryInitializer"]);
4360
- _self.unload = function (isAsync, unloadComplete, cbTimeout) {
4798
+ _self[_DYN_UNLOAD ] = function (isAsync, unloadComplete, cbTimeout) {
4361
4799
  var _a;
4362
4800
  if (isAsync === void 0) { isAsync = true; }
4363
4801
  if (!_isInitialized) {
@@ -4372,11 +4810,19 @@ var AppInsightsCore = /** @class */ (function () {
4372
4810
  _a[_DYN_IS_ASYNC ] = isAsync,
4373
4811
  _a.flushComplete = false,
4374
4812
  _a);
4813
+ var result;
4814
+ if (isAsync && !unloadComplete) {
4815
+ result = createPromise(function (resolve) {
4816
+ unloadComplete = resolve;
4817
+ });
4818
+ }
4375
4819
  var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);
4376
4820
  processUnloadCtx[_DYN_ON_COMPLETE ](function () {
4377
4821
  _hookContainer.run(_self[_DYN_LOGGER ]);
4378
- _initDefaults();
4379
- unloadComplete && unloadComplete(unloadState);
4822
+ doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {
4823
+ _initDefaults();
4824
+ unloadComplete && unloadComplete(unloadState);
4825
+ });
4380
4826
  }, _self);
4381
4827
  function _doUnload(flushComplete) {
4382
4828
  unloadState.flushComplete = flushComplete;
@@ -4387,6 +4833,7 @@ var AppInsightsCore = /** @class */ (function () {
4387
4833
  }
4388
4834
  _flushInternalLogs();
4389
4835
  if (!_flushChannels(isAsync, _doUnload, 6 , cbTimeout)) ;
4836
+ return result;
4390
4837
  };
4391
4838
  _self[_DYN_GET_PLUGIN ] = _getPlugin;
4392
4839
  _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
@@ -4548,6 +4995,22 @@ var AppInsightsCore = /** @class */ (function () {
4548
4995
  return _pluginVersionString || STR_EMPTY;
4549
4996
  }
4550
4997
  });
4998
+ objDefine(_self, "logger", {
4999
+ g: function () {
5000
+ if (!_logger) {
5001
+ _logger = new DiagnosticLogger(_configHandler.cfg);
5002
+ _configHandler[_DYN_LOGGER ] = _logger;
5003
+ }
5004
+ return _logger;
5005
+ },
5006
+ s: function (newLogger) {
5007
+ _configHandler[_DYN_LOGGER ] = newLogger;
5008
+ if (_logger !== newLogger) {
5009
+ runTargetUnload(_logger, false);
5010
+ _logger = newLogger;
5011
+ }
5012
+ }
5013
+ });
4551
5014
  _self[_DYN_LOGGER ] = new DiagnosticLogger(_configHandler.cfg);
4552
5015
  _extensions = [];
4553
5016
  var cfgExtensions = _self.config[STR_EXTENSIONS ] || [];
@@ -4555,9 +5018,11 @@ var AppInsightsCore = /** @class */ (function () {
4555
5018
  arrAppend(cfgExtensions, _extensions);
4556
5019
  _telemetryInitializerPlugin = new TelemetryInitializerPlugin();
4557
5020
  _eventQueue = [];
5021
+ runTargetUnload(_notificationManager, false);
4558
5022
  _notificationManager = null;
4559
5023
  _perfManager = null;
4560
5024
  _cfgPerfManager = null;
5025
+ runTargetUnload(_cookieManager, false);
4561
5026
  _cookieManager = null;
4562
5027
  _pluginChain = null;
4563
5028
  _configExtensions = [];
@@ -4709,9 +5174,9 @@ var AppInsightsCore = /** @class */ (function () {
4709
5174
  }
4710
5175
  }
4711
5176
  function _flushInternalLogs() {
4712
- if (_self[_DYN_LOGGER ] && _self[_DYN_LOGGER ].queue) {
4713
- var queue = _self[_DYN_LOGGER ].queue.slice(0);
4714
- _self.logger.queue[_DYN_LENGTH ] = 0;
5177
+ if (_logger && _logger.queue) {
5178
+ var queue = _logger.queue.slice(0);
5179
+ _logger.queue[_DYN_LENGTH ] = 0;
4715
5180
  arrForEach(queue, function (logMessage) {
4716
5181
  var _a;
4717
5182
  var item = (_a = {},
@@ -5373,6 +5838,7 @@ exports.dateNow = utcNow;
5373
5838
  exports.deepFreeze = objDeepFreeze;
5374
5839
  exports.detachEvent = detachEvent;
5375
5840
  exports.doPerf = doPerf;
5841
+ exports.doUnloadAll = doUnloadAll;
5376
5842
  exports.dumpObj = dumpObj;
5377
5843
  exports.eventOff = eventOff;
5378
5844
  exports.eventOn = eventOn;
@@ -5461,6 +5927,7 @@ exports.removeEventListeners = removeEventListeners;
5461
5927
  exports.removePageHideEventListener = removePageHideEventListener;
5462
5928
  exports.removePageShowEventListener = removePageShowEventListener;
5463
5929
  exports.removePageUnloadEventListener = removePageUnloadEventListener;
5930
+ exports.runTargetUnload = runTargetUnload;
5464
5931
  exports.safeGetCookieMgr = safeGetCookieMgr;
5465
5932
  exports.safeGetLogger = safeGetLogger;
5466
5933
  exports.setEnableEnvMocks = setEnableEnvMocks;