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