@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
package/browser/ai.2.js CHANGED
@@ -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
  (function (global, factory) {
@@ -813,7 +813,7 @@
813
813
  objForEachKey(values, function (field, value) {
814
814
  enumClass[field] = value;
815
815
  if (!isUndefined(enumClass[value])) {
816
- throwError("Value: [" + value + "] already exists for " + field);
816
+ throwError("[" + value + "] exists for " + field);
817
817
  }
818
818
  enumClass[value] = field;
819
819
  });
@@ -1642,8 +1642,11 @@
1642
1642
  return createTelemetryProxyChain([startAt], config, core);
1643
1643
  }
1644
1644
  function _createInternalContext(telemetryChain, config, core, startAt) {
1645
- var _nextProxy = startAt ? _getNextProxyStart(telemetryChain, config, core, startAt) : telemetryChain;
1645
+ var _nextProxy = null;
1646
1646
  var _onComplete = [];
1647
+ if (startAt !== null) {
1648
+ _nextProxy = startAt ? _getNextProxyStart(telemetryChain, config, core, startAt) : telemetryChain;
1649
+ }
1647
1650
  var context = {
1648
1651
  _next: _moveNext,
1649
1652
  ctx: {
@@ -2359,6 +2362,30 @@
2359
2362
  return channelQueue;
2360
2363
  }
2361
2364
 
2365
+ function createUnloadHandlerContainer() {
2366
+ var handlers = [];
2367
+ function _addHandler(handler) {
2368
+ if (handler) {
2369
+ handlers.push(handler);
2370
+ }
2371
+ }
2372
+ function _runHandlers(unloadCtx, unloadState) {
2373
+ arrForEach(handlers, function (handler) {
2374
+ try {
2375
+ handler(unloadCtx, unloadState);
2376
+ }
2377
+ catch (e) {
2378
+ unloadCtx.diagLog().throwInternal(2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2379
+ }
2380
+ });
2381
+ handlers = [];
2382
+ }
2383
+ return {
2384
+ add: _addHandler,
2385
+ run: _runHandlers
2386
+ };
2387
+ }
2388
+
2362
2389
  var strGetPlugin = "getPlugin";
2363
2390
  var BaseTelemetryPlugin = /** @class */ (function () {
2364
2391
  function BaseTelemetryPlugin() {
@@ -2366,6 +2393,7 @@
2366
2393
  var _isinitialized;
2367
2394
  var _rootCtx;
2368
2395
  var _nextPlugin;
2396
+ var _unloadHandlerContainer;
2369
2397
  var _hooks;
2370
2398
  _initDefaults();
2371
2399
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
@@ -2387,6 +2415,7 @@
2387
2415
  function _unloadCallback() {
2388
2416
  if (!unloadDone) {
2389
2417
  unloadDone = true;
2418
+ _unloadHandlerContainer.run(theUnloadCtx, unloadState);
2390
2419
  arrForEach(_hooks, function (fn) {
2391
2420
  fn.rm();
2392
2421
  });
@@ -2415,6 +2444,7 @@
2415
2444
  }
2416
2445
  }
2417
2446
  };
2447
+ proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
2418
2448
  });
2419
2449
  _self.diagLog = function (itemCtx) {
2420
2450
  return _getTelCtx(itemCtx).diagLog();
@@ -2471,6 +2501,7 @@
2471
2501
  _rootCtx = null;
2472
2502
  _nextPlugin = null;
2473
2503
  _hooks = [];
2504
+ _unloadHandlerContainer = createUnloadHandlerContainer();
2474
2505
  }
2475
2506
  }
2476
2507
  return BaseTelemetryPlugin;
@@ -2540,6 +2571,8 @@
2540
2571
 
2541
2572
  var strValidationError = "Plugins must provide initialize method";
2542
2573
  var strNotificationManager = "_notificationManager";
2574
+ var strSdkUnloadingError = "SDK is still unloading...";
2575
+ var strSdkNotInitialized = "SDK is not initialized";
2543
2576
  function _createPerfManager(core, notificationMgr) {
2544
2577
  return new PerfManager(notificationMgr);
2545
2578
  }
@@ -2569,6 +2602,16 @@
2569
2602
  core: coreExtensions
2570
2603
  };
2571
2604
  }
2605
+ function _isPluginPresent(thePlugin, plugins) {
2606
+ var exists = false;
2607
+ arrForEach(plugins, function (plugin) {
2608
+ if (plugin === thePlugin) {
2609
+ exists = true;
2610
+ return -1;
2611
+ }
2612
+ });
2613
+ return exists;
2614
+ }
2572
2615
  function _createDummyNotificationManager() {
2573
2616
  var _a;
2574
2617
  return objCreateFn((_a = {},
@@ -2593,15 +2636,20 @@
2593
2636
  var _channelControl;
2594
2637
  var _channelConfig;
2595
2638
  var _channelQueue;
2639
+ var _isUnloading;
2596
2640
  var _telemetryInitializerPlugin;
2597
2641
  var _internalLogsEventName;
2598
2642
  var _evtNamespace;
2643
+ var _unloadHandlers;
2599
2644
  var _debugListener;
2600
2645
  var _internalLogPoller = 0;
2601
2646
  dynamicProto(BaseCore, this, function (_self) {
2602
2647
  _initDefaults();
2603
2648
  _self.isInitialized = function () { return _isInitialized; };
2604
2649
  _self.initialize = function (config, extensions, logger, notificationManager) {
2650
+ if (_isUnloading) {
2651
+ throwError(strSdkUnloadingError);
2652
+ }
2605
2653
  if (_self.isInitialized()) {
2606
2654
  throwError("Core should not be initialized more than once");
2607
2655
  }
@@ -2614,8 +2662,7 @@
2614
2662
  _initDebugListener(config);
2615
2663
  _initPerfManager(config);
2616
2664
  config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;
2617
- var extConfig = getSetValue(config, strExtensionConfig);
2618
- extConfig.NotificationManager = notificationManager;
2665
+ _initExtConfig(config);
2619
2666
  if (logger) {
2620
2667
  _self.logger = logger;
2621
2668
  }
@@ -2640,7 +2687,7 @@
2640
2687
  setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);
2641
2688
  setValue(telemetryItem, "time", toISOString(new Date()), null, isNotTruthy);
2642
2689
  setValue(telemetryItem, "ver", "4.0", null, isNullOrUndefined);
2643
- if (_self.isInitialized()) {
2690
+ if (!_isUnloading && _self.isInitialized()) {
2644
2691
  _createTelCtx().processNext(telemetryItem);
2645
2692
  }
2646
2693
  else {
@@ -2655,14 +2702,14 @@
2655
2702
  }
2656
2703
  return _notificationManager;
2657
2704
  };
2658
- _self.addNotificationListener = function (listener) {
2705
+ _self[strAddNotificationListener] = function (listener) {
2659
2706
  if (_notificationManager) {
2660
- _notificationManager.addNotificationListener(listener);
2707
+ _notificationManager[strAddNotificationListener](listener);
2661
2708
  }
2662
2709
  };
2663
- _self.removeNotificationListener = function (listener) {
2710
+ _self[strRemoveNotificationListener] = function (listener) {
2664
2711
  if (_notificationManager) {
2665
- _notificationManager.removeNotificationListener(listener);
2712
+ _notificationManager[strRemoveNotificationListener](listener);
2666
2713
  }
2667
2714
  };
2668
2715
  _self.getCookieMgr = function () {
@@ -2719,10 +2766,80 @@
2719
2766
  }
2720
2767
  };
2721
2768
  proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, ["addTelemetryInitializer"]);
2769
+ _self.unload = function (isAsync, unloadComplete, cbTimeout) {
2770
+ if (isAsync === void 0) { isAsync = true; }
2771
+ if (!_isInitialized) {
2772
+ throwError(strSdkNotInitialized);
2773
+ }
2774
+ if (_isUnloading) {
2775
+ throwError(strSdkUnloadingError);
2776
+ }
2777
+ var unloadState = {
2778
+ reason: 50 ,
2779
+ isAsync: isAsync,
2780
+ flushComplete: false
2781
+ };
2782
+ var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self.config, _self);
2783
+ processUnloadCtx.onComplete(function () {
2784
+ _initDefaults();
2785
+ unloadComplete && unloadComplete(unloadState);
2786
+ }, _self);
2787
+ function _doUnload(flushComplete) {
2788
+ unloadState.flushComplete = flushComplete;
2789
+ _isUnloading = true;
2790
+ _unloadHandlers.run(processUnloadCtx, unloadState);
2791
+ _self.stopPollingInternalLogs();
2792
+ processUnloadCtx.processNext(unloadState);
2793
+ }
2794
+ if (_channelControl) {
2795
+ _channelControl.flush(isAsync, _doUnload, 6 , cbTimeout);
2796
+ }
2797
+ else {
2798
+ _doUnload(true);
2799
+ }
2800
+ };
2722
2801
  _self.getPlugin = _getPlugin;
2802
+ _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {
2803
+ if (isAsync === void 0) { isAsync = true; }
2804
+ if (!plugin) {
2805
+ addCb && addCb(false);
2806
+ _logOrThrowError(strValidationError);
2807
+ return;
2808
+ }
2809
+ var existingPlugin = _getPlugin(plugin.identifier);
2810
+ if (existingPlugin && !replaceExisting) {
2811
+ addCb && addCb(false);
2812
+ _logOrThrowError("Plugin [" + plugin.identifier + "] is already loaded!");
2813
+ return;
2814
+ }
2815
+ function _addPlugin(removed) {
2816
+ _configExtensions.push(plugin);
2817
+ _initPluginChain(_self.config);
2818
+ addCb && addCb(true);
2819
+ }
2820
+ if (existingPlugin) {
2821
+ var removedPlugins = [existingPlugin.plugin];
2822
+ var unloadState = {
2823
+ reason: 2 ,
2824
+ isAsync: isAsync
2825
+ };
2826
+ _removePlugins(removedPlugins, unloadState, function (removed) {
2827
+ if (!removed) {
2828
+ addCb && addCb(false);
2829
+ }
2830
+ else {
2831
+ _addPlugin();
2832
+ }
2833
+ });
2834
+ }
2835
+ else {
2836
+ _addPlugin();
2837
+ }
2838
+ };
2723
2839
  _self.evtNamespace = function () {
2724
2840
  return _evtNamespace;
2725
2841
  };
2842
+ proxyFunctionAs(_self, "addUnloadCb", function () { return _unloadHandlers; }, "add");
2726
2843
  function _initDefaults() {
2727
2844
  _isInitialized = false;
2728
2845
  _self.logger = new DiagnosticLogger({ loggingLevelConsole: 1 });
@@ -2740,8 +2857,10 @@
2740
2857
  _channelControl = null;
2741
2858
  _channelConfig = null;
2742
2859
  _channelQueue = null;
2860
+ _isUnloading = false;
2743
2861
  _internalLogsEventName = null;
2744
2862
  _evtNamespace = createUniqueNamespace("AIBaseCore", true);
2863
+ _unloadHandlers = createUnloadHandlerContainer();
2745
2864
  }
2746
2865
  function _createTelCtx() {
2747
2866
  return createProcessTelemetryContext(_getPluginChain(), _self.config, _self);
@@ -2794,6 +2913,20 @@
2794
2913
  isEnabled: function () {
2795
2914
  var pluginState = _getPluginState(thePlugin);
2796
2915
  return !pluginState[strTeardown] && !pluginState[strDisabled];
2916
+ },
2917
+ remove: function (isAsync, removeCb) {
2918
+ if (isAsync === void 0) { isAsync = true; }
2919
+ var pluginsToRemove = [thePlugin];
2920
+ var unloadState = {
2921
+ reason: 1 ,
2922
+ isAsync: isAsync
2923
+ };
2924
+ _removePlugins(pluginsToRemove, unloadState, function (removed) {
2925
+ if (removed) {
2926
+ _initPluginChain(_self.config);
2927
+ }
2928
+ removeCb && removeCb(removed);
2929
+ });
2797
2930
  }
2798
2931
  };
2799
2932
  }
@@ -2809,6 +2942,46 @@
2809
2942
  }
2810
2943
  return _pluginChain;
2811
2944
  }
2945
+ function _removePlugins(thePlugins, unloadState, removeComplete) {
2946
+ if (thePlugins && thePlugins.length > 0) {
2947
+ var unloadChain = createTelemetryProxyChain(thePlugins, _self.config, _self);
2948
+ var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self.config, _self);
2949
+ unloadCtx.onComplete(function () {
2950
+ var removed = false;
2951
+ var newConfigExtensions = [];
2952
+ arrForEach(_configExtensions, function (plugin, idx) {
2953
+ if (!_isPluginPresent(plugin, thePlugins)) {
2954
+ newConfigExtensions.push(plugin);
2955
+ }
2956
+ else {
2957
+ removed = true;
2958
+ }
2959
+ });
2960
+ _configExtensions = newConfigExtensions;
2961
+ var newChannelConfig = [];
2962
+ if (_channelConfig) {
2963
+ arrForEach(_channelConfig, function (queue, idx) {
2964
+ var newQueue = [];
2965
+ arrForEach(queue, function (channel) {
2966
+ if (!_isPluginPresent(channel, thePlugins)) {
2967
+ newQueue.push(channel);
2968
+ }
2969
+ else {
2970
+ removed = true;
2971
+ }
2972
+ });
2973
+ newChannelConfig.push(newQueue);
2974
+ });
2975
+ _channelConfig = newChannelConfig;
2976
+ }
2977
+ removeComplete && removeComplete(removed);
2978
+ });
2979
+ unloadCtx.processNext(unloadState);
2980
+ }
2981
+ else {
2982
+ removeComplete(false);
2983
+ }
2984
+ }
2812
2985
  function _flushInternalLogs() {
2813
2986
  var queue = _self.logger ? _self.logger.queue : [];
2814
2987
  if (queue) {
@@ -2843,6 +3016,19 @@
2843
3016
  setValue(_self.config, "createPerfMgr", _createPerfManager);
2844
3017
  }
2845
3018
  }
3019
+ function _initExtConfig(config) {
3020
+ var extConfig = getSetValue(config, strExtensionConfig);
3021
+ extConfig.NotificationManager = _notificationManager;
3022
+ }
3023
+ function _logOrThrowError(message) {
3024
+ var logger = _self.logger;
3025
+ if (logger) {
3026
+ logger.throwInternal(2 , 73 , message);
3027
+ }
3028
+ else {
3029
+ throwError(message);
3030
+ }
3031
+ }
2846
3032
  });
2847
3033
  }
2848
3034
  return BaseCore;
@@ -5976,7 +6162,7 @@
5976
6162
  config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);
5977
6163
  return config;
5978
6164
  };
5979
- ApplicationInsights.Version = "2.8.0-beta.2203-02";
6165
+ ApplicationInsights.Version = "2.8.0-beta.2203-03";
5980
6166
  return ApplicationInsights;
5981
6167
  }(BaseTelemetryPlugin));
5982
6168
  var Timing = /** @class */ (function () {
@@ -6283,7 +6469,7 @@
6283
6469
  }
6284
6470
  }
6285
6471
  var EnvelopeCreator = {
6286
- Version: "2.8.0-beta.2203-02"
6472
+ Version: "2.8.0-beta.2203-03"
6287
6473
  };
6288
6474
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
6289
6475
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7552,7 +7738,7 @@
7552
7738
  return Device;
7553
7739
  }());
7554
7740
 
7555
- var Version = "2.8.0-beta.2203-02";
7741
+ var Version = "2.8.0-beta.2203-03";
7556
7742
  var Internal = /** @class */ (function () {
7557
7743
  function Internal(config) {
7558
7744
  this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + "_" : "") + "javascript:" + Version;