@microsoft/applicationinsights-web 2.8.0-beta.2203-02 → 2.8.0-beta.2203-03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/browser/{ai.2.8.0-beta.2203-02.cjs.js → ai.2.8.0-beta.2203-03.cjs.js} +200 -14
  2. package/browser/ai.2.8.0-beta.2203-03.cjs.js.map +1 -0
  3. package/browser/ai.2.8.0-beta.2203-03.cjs.min.js +6 -0
  4. package/browser/ai.2.8.0-beta.2203-03.cjs.min.js.map +1 -0
  5. package/browser/{ai.2.8.0-beta.2203-02.gbl.js → ai.2.8.0-beta.2203-03.gbl.js} +200 -14
  6. package/browser/ai.2.8.0-beta.2203-03.gbl.js.map +1 -0
  7. package/browser/ai.2.8.0-beta.2203-03.gbl.min.js +6 -0
  8. package/browser/ai.2.8.0-beta.2203-03.gbl.min.js.map +1 -0
  9. package/browser/ai.2.8.0-beta.2203-03.integrity.json +66 -0
  10. package/browser/{ai.2.8.0-beta.2203-02.js → ai.2.8.0-beta.2203-03.js} +200 -14
  11. package/browser/ai.2.8.0-beta.2203-03.js.map +1 -0
  12. package/browser/ai.2.8.0-beta.2203-03.min.js +6 -0
  13. package/browser/ai.2.8.0-beta.2203-03.min.js.map +1 -0
  14. package/browser/ai.2.cjs.js +199 -13
  15. package/browser/ai.2.cjs.js.map +1 -1
  16. package/browser/ai.2.cjs.min.js +2 -2
  17. package/browser/ai.2.cjs.min.js.map +1 -1
  18. package/browser/ai.2.gbl.js +199 -13
  19. package/browser/ai.2.gbl.js.map +1 -1
  20. package/browser/ai.2.gbl.min.js +2 -2
  21. package/browser/ai.2.gbl.min.js.map +1 -1
  22. package/browser/ai.2.js +199 -13
  23. package/browser/ai.2.js.map +1 -1
  24. package/browser/ai.2.min.js +2 -2
  25. package/browser/ai.2.min.js.map +1 -1
  26. package/dist/applicationinsights-web.api.json +505 -0
  27. package/dist/applicationinsights-web.api.md +9 -0
  28. package/dist/applicationinsights-web.d.ts +62 -2
  29. package/dist/applicationinsights-web.js +199 -13
  30. package/dist/applicationinsights-web.js.map +1 -1
  31. package/dist/applicationinsights-web.min.js +2 -2
  32. package/dist/applicationinsights-web.min.js.map +1 -1
  33. package/dist/applicationinsights-web.rollup.d.ts +62 -2
  34. package/dist-esm/ApplicationInsightsContainer.js +1 -1
  35. package/dist-esm/ApplicationInsightsDeprecated.js +1 -1
  36. package/dist-esm/Init.js +1 -1
  37. package/dist-esm/Initialization.js +1 -1
  38. package/dist-esm/applicationinsights-web.js +1 -1
  39. package/package.json +7 -7
  40. package/browser/ai.2.8.0-beta.2203-02.cjs.js.map +0 -1
  41. package/browser/ai.2.8.0-beta.2203-02.cjs.min.js +0 -6
  42. package/browser/ai.2.8.0-beta.2203-02.cjs.min.js.map +0 -1
  43. package/browser/ai.2.8.0-beta.2203-02.gbl.js.map +0 -1
  44. package/browser/ai.2.8.0-beta.2203-02.gbl.min.js +0 -6
  45. package/browser/ai.2.8.0-beta.2203-02.gbl.min.js.map +0 -1
  46. package/browser/ai.2.8.0-beta.2203-02.integrity.json +0 -66
  47. package/browser/ai.2.8.0-beta.2203-02.js.map +0 -1
  48. package/browser/ai.2.8.0-beta.2203-02.min.js +0 -6
  49. package/browser/ai.2.8.0-beta.2203-02.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-02
2
+ * Application Insights JavaScript SDK - Web, 2.8.0-beta.2203-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -811,7 +811,7 @@ function createEnumStyle(values) {
811
811
  objForEachKey(values, function (field, value) {
812
812
  enumClass[field] = value;
813
813
  if (!isUndefined(enumClass[value])) {
814
- throwError("Value: [" + value + "] already exists for " + field);
814
+ throwError("[" + value + "] exists for " + field);
815
815
  }
816
816
  enumClass[value] = field;
817
817
  });
@@ -1640,8 +1640,11 @@ function _getNextProxyStart(proxy, config, core, startAt) {
1640
1640
  return createTelemetryProxyChain([startAt], config, core);
1641
1641
  }
1642
1642
  function _createInternalContext(telemetryChain, config, core, startAt) {
1643
- var _nextProxy = startAt ? _getNextProxyStart(telemetryChain, config, core, startAt) : telemetryChain;
1643
+ var _nextProxy = null;
1644
1644
  var _onComplete = [];
1645
+ if (startAt !== null) {
1646
+ _nextProxy = startAt ? _getNextProxyStart(telemetryChain, config, core, startAt) : telemetryChain;
1647
+ }
1645
1648
  var context = {
1646
1649
  _next: _moveNext,
1647
1650
  ctx: {
@@ -2357,6 +2360,30 @@ function createChannelQueues(channels, extensions, config, core) {
2357
2360
  return channelQueue;
2358
2361
  }
2359
2362
 
2363
+ function createUnloadHandlerContainer() {
2364
+ var handlers = [];
2365
+ function _addHandler(handler) {
2366
+ if (handler) {
2367
+ handlers.push(handler);
2368
+ }
2369
+ }
2370
+ function _runHandlers(unloadCtx, unloadState) {
2371
+ arrForEach(handlers, function (handler) {
2372
+ try {
2373
+ handler(unloadCtx, unloadState);
2374
+ }
2375
+ catch (e) {
2376
+ unloadCtx.diagLog().throwInternal(2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2377
+ }
2378
+ });
2379
+ handlers = [];
2380
+ }
2381
+ return {
2382
+ add: _addHandler,
2383
+ run: _runHandlers
2384
+ };
2385
+ }
2386
+
2360
2387
  var strGetPlugin = "getPlugin";
2361
2388
  var BaseTelemetryPlugin = /** @class */ (function () {
2362
2389
  function BaseTelemetryPlugin() {
@@ -2364,6 +2391,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
2364
2391
  var _isinitialized;
2365
2392
  var _rootCtx;
2366
2393
  var _nextPlugin;
2394
+ var _unloadHandlerContainer;
2367
2395
  var _hooks;
2368
2396
  _initDefaults();
2369
2397
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
@@ -2385,6 +2413,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
2385
2413
  function _unloadCallback() {
2386
2414
  if (!unloadDone) {
2387
2415
  unloadDone = true;
2416
+ _unloadHandlerContainer.run(theUnloadCtx, unloadState);
2388
2417
  arrForEach(_hooks, function (fn) {
2389
2418
  fn.rm();
2390
2419
  });
@@ -2413,6 +2442,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
2413
2442
  }
2414
2443
  }
2415
2444
  };
2445
+ proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
2416
2446
  });
2417
2447
  _self.diagLog = function (itemCtx) {
2418
2448
  return _getTelCtx(itemCtx).diagLog();
@@ -2469,6 +2499,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
2469
2499
  _rootCtx = null;
2470
2500
  _nextPlugin = null;
2471
2501
  _hooks = [];
2502
+ _unloadHandlerContainer = createUnloadHandlerContainer();
2472
2503
  }
2473
2504
  }
2474
2505
  return BaseTelemetryPlugin;
@@ -2538,6 +2569,8 @@ var TelemetryInitializerPlugin = /** @class */ (function (_super) {
2538
2569
 
2539
2570
  var strValidationError = "Plugins must provide initialize method";
2540
2571
  var strNotificationManager = "_notificationManager";
2572
+ var strSdkUnloadingError = "SDK is still unloading...";
2573
+ var strSdkNotInitialized = "SDK is not initialized";
2541
2574
  function _createPerfManager(core, notificationMgr) {
2542
2575
  return new PerfManager(notificationMgr);
2543
2576
  }
@@ -2567,6 +2600,16 @@ function _validateExtensions(logger, channelPriority, allExtensions) {
2567
2600
  core: coreExtensions
2568
2601
  };
2569
2602
  }
2603
+ function _isPluginPresent(thePlugin, plugins) {
2604
+ var exists = false;
2605
+ arrForEach(plugins, function (plugin) {
2606
+ if (plugin === thePlugin) {
2607
+ exists = true;
2608
+ return -1;
2609
+ }
2610
+ });
2611
+ return exists;
2612
+ }
2570
2613
  function _createDummyNotificationManager() {
2571
2614
  var _a;
2572
2615
  return objCreateFn((_a = {},
@@ -2591,15 +2634,20 @@ var BaseCore = /** @class */ (function () {
2591
2634
  var _channelControl;
2592
2635
  var _channelConfig;
2593
2636
  var _channelQueue;
2637
+ var _isUnloading;
2594
2638
  var _telemetryInitializerPlugin;
2595
2639
  var _internalLogsEventName;
2596
2640
  var _evtNamespace;
2641
+ var _unloadHandlers;
2597
2642
  var _debugListener;
2598
2643
  var _internalLogPoller = 0;
2599
2644
  dynamicProto(BaseCore, this, function (_self) {
2600
2645
  _initDefaults();
2601
2646
  _self.isInitialized = function () { return _isInitialized; };
2602
2647
  _self.initialize = function (config, extensions, logger, notificationManager) {
2648
+ if (_isUnloading) {
2649
+ throwError(strSdkUnloadingError);
2650
+ }
2603
2651
  if (_self.isInitialized()) {
2604
2652
  throwError("Core should not be initialized more than once");
2605
2653
  }
@@ -2612,8 +2660,7 @@ var BaseCore = /** @class */ (function () {
2612
2660
  _initDebugListener(config);
2613
2661
  _initPerfManager(config);
2614
2662
  config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;
2615
- var extConfig = getSetValue(config, strExtensionConfig);
2616
- extConfig.NotificationManager = notificationManager;
2663
+ _initExtConfig(config);
2617
2664
  if (logger) {
2618
2665
  _self.logger = logger;
2619
2666
  }
@@ -2638,7 +2685,7 @@ var BaseCore = /** @class */ (function () {
2638
2685
  setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);
2639
2686
  setValue(telemetryItem, "time", toISOString(new Date()), null, isNotTruthy);
2640
2687
  setValue(telemetryItem, "ver", "4.0", null, isNullOrUndefined);
2641
- if (_self.isInitialized()) {
2688
+ if (!_isUnloading && _self.isInitialized()) {
2642
2689
  _createTelCtx().processNext(telemetryItem);
2643
2690
  }
2644
2691
  else {
@@ -2653,14 +2700,14 @@ var BaseCore = /** @class */ (function () {
2653
2700
  }
2654
2701
  return _notificationManager;
2655
2702
  };
2656
- _self.addNotificationListener = function (listener) {
2703
+ _self[strAddNotificationListener] = function (listener) {
2657
2704
  if (_notificationManager) {
2658
- _notificationManager.addNotificationListener(listener);
2705
+ _notificationManager[strAddNotificationListener](listener);
2659
2706
  }
2660
2707
  };
2661
- _self.removeNotificationListener = function (listener) {
2708
+ _self[strRemoveNotificationListener] = function (listener) {
2662
2709
  if (_notificationManager) {
2663
- _notificationManager.removeNotificationListener(listener);
2710
+ _notificationManager[strRemoveNotificationListener](listener);
2664
2711
  }
2665
2712
  };
2666
2713
  _self.getCookieMgr = function () {
@@ -2717,10 +2764,80 @@ var BaseCore = /** @class */ (function () {
2717
2764
  }
2718
2765
  };
2719
2766
  proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, ["addTelemetryInitializer"]);
2767
+ _self.unload = function (isAsync, unloadComplete, cbTimeout) {
2768
+ if (isAsync === void 0) { isAsync = true; }
2769
+ if (!_isInitialized) {
2770
+ throwError(strSdkNotInitialized);
2771
+ }
2772
+ if (_isUnloading) {
2773
+ throwError(strSdkUnloadingError);
2774
+ }
2775
+ var unloadState = {
2776
+ reason: 50 ,
2777
+ isAsync: isAsync,
2778
+ flushComplete: false
2779
+ };
2780
+ var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self.config, _self);
2781
+ processUnloadCtx.onComplete(function () {
2782
+ _initDefaults();
2783
+ unloadComplete && unloadComplete(unloadState);
2784
+ }, _self);
2785
+ function _doUnload(flushComplete) {
2786
+ unloadState.flushComplete = flushComplete;
2787
+ _isUnloading = true;
2788
+ _unloadHandlers.run(processUnloadCtx, unloadState);
2789
+ _self.stopPollingInternalLogs();
2790
+ processUnloadCtx.processNext(unloadState);
2791
+ }
2792
+ if (_channelControl) {
2793
+ _channelControl.flush(isAsync, _doUnload, 6 , cbTimeout);
2794
+ }
2795
+ else {
2796
+ _doUnload(true);
2797
+ }
2798
+ };
2720
2799
  _self.getPlugin = _getPlugin;
2800
+ _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
2801
+ if (isAsync === void 0) { isAsync = true; }
2802
+ if (!plugin) {
2803
+ addCb && addCb(false);
2804
+ _logOrThrowError(strValidationError);
2805
+ return;
2806
+ }
2807
+ var existingPlugin = _getPlugin(plugin.identifier);
2808
+ if (existingPlugin && !replaceExisting) {
2809
+ addCb && addCb(false);
2810
+ _logOrThrowError("Plugin [" + plugin.identifier + "] is already loaded!");
2811
+ return;
2812
+ }
2813
+ function _addPlugin(removed) {
2814
+ _configExtensions.push(plugin);
2815
+ _initPluginChain(_self.config);
2816
+ addCb && addCb(true);
2817
+ }
2818
+ if (existingPlugin) {
2819
+ var removedPlugins = [existingPlugin.plugin];
2820
+ var unloadState = {
2821
+ reason: 2 ,
2822
+ isAsync: isAsync
2823
+ };
2824
+ _removePlugins(removedPlugins, unloadState, function (removed) {
2825
+ if (!removed) {
2826
+ addCb && addCb(false);
2827
+ }
2828
+ else {
2829
+ _addPlugin();
2830
+ }
2831
+ });
2832
+ }
2833
+ else {
2834
+ _addPlugin();
2835
+ }
2836
+ };
2721
2837
  _self.evtNamespace = function () {
2722
2838
  return _evtNamespace;
2723
2839
  };
2840
+ proxyFunctionAs(_self, "addUnloadCb", function () { return _unloadHandlers; }, "add");
2724
2841
  function _initDefaults() {
2725
2842
  _isInitialized = false;
2726
2843
  _self.logger = new DiagnosticLogger({ loggingLevelConsole: 1 });
@@ -2738,8 +2855,10 @@ var BaseCore = /** @class */ (function () {
2738
2855
  _channelControl = null;
2739
2856
  _channelConfig = null;
2740
2857
  _channelQueue = null;
2858
+ _isUnloading = false;
2741
2859
  _internalLogsEventName = null;
2742
2860
  _evtNamespace = createUniqueNamespace("AIBaseCore", true);
2861
+ _unloadHandlers = createUnloadHandlerContainer();
2743
2862
  }
2744
2863
  function _createTelCtx() {
2745
2864
  return createProcessTelemetryContext(_getPluginChain(), _self.config, _self);
@@ -2792,6 +2911,20 @@ var BaseCore = /** @class */ (function () {
2792
2911
  isEnabled: function () {
2793
2912
  var pluginState = _getPluginState(thePlugin);
2794
2913
  return !pluginState[strTeardown] && !pluginState[strDisabled];
2914
+ },
2915
+ remove: function (isAsync, removeCb) {
2916
+ if (isAsync === void 0) { isAsync = true; }
2917
+ var pluginsToRemove = [thePlugin];
2918
+ var unloadState = {
2919
+ reason: 1 ,
2920
+ isAsync: isAsync
2921
+ };
2922
+ _removePlugins(pluginsToRemove, unloadState, function (removed) {
2923
+ if (removed) {
2924
+ _initPluginChain(_self.config);
2925
+ }
2926
+ removeCb && removeCb(removed);
2927
+ });
2795
2928
  }
2796
2929
  };
2797
2930
  }
@@ -2807,6 +2940,46 @@ var BaseCore = /** @class */ (function () {
2807
2940
  }
2808
2941
  return _pluginChain;
2809
2942
  }
2943
+ function _removePlugins(thePlugins, unloadState, removeComplete) {
2944
+ if (thePlugins && thePlugins.length > 0) {
2945
+ var unloadChain = createTelemetryProxyChain(thePlugins, _self.config, _self);
2946
+ var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self.config, _self);
2947
+ unloadCtx.onComplete(function () {
2948
+ var removed = false;
2949
+ var newConfigExtensions = [];
2950
+ arrForEach(_configExtensions, function (plugin, idx) {
2951
+ if (!_isPluginPresent(plugin, thePlugins)) {
2952
+ newConfigExtensions.push(plugin);
2953
+ }
2954
+ else {
2955
+ removed = true;
2956
+ }
2957
+ });
2958
+ _configExtensions = newConfigExtensions;
2959
+ var newChannelConfig = [];
2960
+ if (_channelConfig) {
2961
+ arrForEach(_channelConfig, function (queue, idx) {
2962
+ var newQueue = [];
2963
+ arrForEach(queue, function (channel) {
2964
+ if (!_isPluginPresent(channel, thePlugins)) {
2965
+ newQueue.push(channel);
2966
+ }
2967
+ else {
2968
+ removed = true;
2969
+ }
2970
+ });
2971
+ newChannelConfig.push(newQueue);
2972
+ });
2973
+ _channelConfig = newChannelConfig;
2974
+ }
2975
+ removeComplete && removeComplete(removed);
2976
+ });
2977
+ unloadCtx.processNext(unloadState);
2978
+ }
2979
+ else {
2980
+ removeComplete(false);
2981
+ }
2982
+ }
2810
2983
  function _flushInternalLogs() {
2811
2984
  var queue = _self.logger ? _self.logger.queue : [];
2812
2985
  if (queue) {
@@ -2841,6 +3014,19 @@ var BaseCore = /** @class */ (function () {
2841
3014
  setValue(_self.config, "createPerfMgr", _createPerfManager);
2842
3015
  }
2843
3016
  }
3017
+ function _initExtConfig(config) {
3018
+ var extConfig = getSetValue(config, strExtensionConfig);
3019
+ extConfig.NotificationManager = _notificationManager;
3020
+ }
3021
+ function _logOrThrowError(message) {
3022
+ var logger = _self.logger;
3023
+ if (logger) {
3024
+ logger.throwInternal(2 , 73 , message);
3025
+ }
3026
+ else {
3027
+ throwError(message);
3028
+ }
3029
+ }
2844
3030
  });
2845
3031
  }
2846
3032
  return BaseCore;
@@ -5974,7 +6160,7 @@ var ApplicationInsights = /** @class */ (function (_super) {
5974
6160
  config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
5975
6161
  return config;
5976
6162
  };
5977
- ApplicationInsights.Version = "2.8.0-beta.2203-02";
6163
+ ApplicationInsights.Version = "2.8.0-beta.2203-03";
5978
6164
  return ApplicationInsights;
5979
6165
  }(BaseTelemetryPlugin));
5980
6166
  var Timing = /** @class */ (function () {
@@ -6281,7 +6467,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
6281
6467
  }
6282
6468
  }
6283
6469
  var EnvelopeCreator = {
6284
- Version: "2.8.0-beta.2203-02"
6470
+ Version: "2.8.0-beta.2203-03"
6285
6471
  };
6286
6472
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6287
6473
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7550,7 +7736,7 @@ var Device = /** @class */ (function () {
7550
7736
  return Device;
7551
7737
  }());
7552
7738
 
7553
- var Version = "2.8.0-beta.2203-02";
7739
+ var Version = "2.8.0-beta.2203-03";
7554
7740
  var Internal = /** @class */ (function () {
7555
7741
  function Internal(config) {
7556
7742
  this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;
@@ -9273,4 +9459,4 @@ catch (e) {
9273
9459
 
9274
9460
  exports.ApplicationInsights = Initialization;
9275
9461
  exports.Telemetry = Telemetry;
9276
- //# sourceMappingURL=ai.2.8.0-beta.2203-02.cjs.js.map
9462
+ //# sourceMappingURL=ai.2.8.0-beta.2203-03.cjs.js.map