@microsoft/applicationinsights-core-js 3.0.0-beta.2301-14 → 3.0.0-beta.2301-17

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 (103) hide show
  1. package/browser/applicationinsights-core-js.integrity.json +9 -9
  2. package/browser/applicationinsights-core-js.js +109 -68
  3. package/browser/applicationinsights-core-js.js.map +1 -1
  4. package/browser/applicationinsights-core-js.min.js +2 -2
  5. package/browser/applicationinsights-core-js.min.js.map +1 -1
  6. package/dist/applicationinsights-core-js.api.json +358 -27
  7. package/dist/applicationinsights-core-js.api.md +18 -5
  8. package/dist/applicationinsights-core-js.d.ts +53 -6
  9. package/dist/applicationinsights-core-js.js +109 -68
  10. package/dist/applicationinsights-core-js.js.map +1 -1
  11. package/dist/applicationinsights-core-js.min.js +2 -2
  12. package/dist/applicationinsights-core-js.min.js.map +1 -1
  13. package/dist/applicationinsights-core-js.rollup.d.ts +53 -6
  14. package/dist-esm/Config/ConfigDefaults.js +1 -1
  15. package/dist-esm/Config/DynamicConfig.js +11 -1
  16. package/dist-esm/Config/DynamicConfig.js.map +1 -1
  17. package/dist-esm/Config/DynamicProperty.js +48 -21
  18. package/dist-esm/Config/DynamicProperty.js.map +1 -1
  19. package/dist-esm/Config/DynamicState.js +18 -12
  20. package/dist-esm/Config/DynamicState.js.map +1 -1
  21. package/dist-esm/Config/DynamicSupport.js +1 -1
  22. package/dist-esm/Config/IConfigDefaults.js +1 -1
  23. package/dist-esm/Config/IDynamicConfigHandler.js +1 -1
  24. package/dist-esm/Config/IDynamicPropertyHandler.js +1 -1
  25. package/dist-esm/Config/IDynamicWatcher.js +1 -1
  26. package/dist-esm/Config/_IDynamicConfigHandlerState.js +1 -1
  27. package/dist-esm/JavaScriptSDK/AggregationError.js +1 -1
  28. package/dist-esm/JavaScriptSDK/AppInsightsCore.js +15 -20
  29. package/dist-esm/JavaScriptSDK/AppInsightsCore.js.map +1 -1
  30. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +10 -24
  31. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js.map +1 -1
  32. package/dist-esm/JavaScriptSDK/Constants.js +1 -1
  33. package/dist-esm/JavaScriptSDK/CookieMgr.js +1 -1
  34. package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -1
  35. package/dist-esm/JavaScriptSDK/DataCacheHelper.js +2 -2
  36. package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -1
  37. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  38. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
  39. package/dist-esm/JavaScriptSDK/EnvUtils.js +1 -1
  40. package/dist-esm/JavaScriptSDK/EventHelpers.js +1 -1
  41. package/dist-esm/JavaScriptSDK/HelperFuncs.js +3 -3
  42. package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
  43. package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
  44. package/dist-esm/JavaScriptSDK/InternalConstants.js +1 -1
  45. package/dist-esm/JavaScriptSDK/NotificationManager.js +1 -1
  46. package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
  47. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +11 -9
  48. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
  49. package/dist-esm/JavaScriptSDK/RandomHelper.js +1 -1
  50. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +3 -3
  51. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js.map +1 -1
  52. package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
  53. package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
  54. package/dist-esm/JavaScriptSDK/UnloadHookContainer.js +40 -0
  55. package/dist-esm/JavaScriptSDK/UnloadHookContainer.js.map +1 -0
  56. package/dist-esm/JavaScriptSDK/W3cTraceParent.js +1 -1
  57. package/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
  58. package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  59. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  60. package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  61. package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
  62. package/dist-esm/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
  63. package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  64. package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  65. package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  66. package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  67. package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  68. package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  69. package/dist-esm/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
  70. package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  71. package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  72. package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  73. package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  74. package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  75. package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  76. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  77. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  78. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  79. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  80. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
  81. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
  82. package/dist-esm/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
  83. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
  84. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
  85. package/dist-esm/__DynamicConstants.js +1 -2
  86. package/dist-esm/__DynamicConstants.js.map +1 -1
  87. package/dist-esm/applicationinsights-core-js.js +2 -1
  88. package/dist-esm/applicationinsights-core-js.js.map +1 -1
  89. package/package.json +1 -1
  90. package/src/JavaScriptSDK/AppInsightsCore.ts +16 -20
  91. package/src/JavaScriptSDK/BaseTelemetryPlugin.ts +16 -26
  92. package/src/JavaScriptSDK/ProcessTelemetryContext.ts +10 -7
  93. package/src/JavaScriptSDK/UnloadHandlerContainer.ts +1 -1
  94. package/src/JavaScriptSDK/UnloadHookContainer.ts +52 -0
  95. package/types/Config/DynamicProperty.d.ts +1 -1
  96. package/types/Config/IDynamicConfigHandler.d.ts +14 -0
  97. package/types/Config/IDynamicWatcher.d.ts +14 -0
  98. package/types/Config/_IDynamicConfigHandlerState.d.ts +1 -0
  99. package/types/JavaScriptSDK/BaseTelemetryPlugin.d.ts +8 -1
  100. package/types/JavaScriptSDK/UnloadHandlerContainer.d.ts +1 -4
  101. package/types/JavaScriptSDK/UnloadHookContainer.d.ts +16 -0
  102. package/types/__DynamicConstants.d.ts +0 -1
  103. package/types/applicationinsights-core-js.d.ts +1 -0
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-core-js",
3
- "version": "3.0.0-beta.2301-14",
3
+ "version": "3.0.0-beta.2301-17",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-core-js.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-Bfu+23u4J/5wkKe5AFFzqQmJZnDQorbmisF0Bc26jXs= sha384-hfL4qQzK3Ie45nXizVCC9sHdba5Y66kYZitlCxt2ReO+uahZyMXRygejAZIMKbqe sha512-yzZSzNdCvNgacrssBsRORQnZjBAxxjytvfK25CdLkXnQrlLGPmjzFrdbfOq6HSmi8PSvViUqqgvfaxiORg+0tQ==",
8
+ "integrity": "sha256-upauq9BpUv/x9RrE2G2FWX1YAlLtgKkaBRhUb3xYaJk= sha384-nNfNv3eujdFXcAXFkkmz0172oHExO3WErNNPElRE6NtC/91yDiBdtl+tMmnWjzCj sha512-/ceEOa59tz7eWZhLeQ5GmhbsZER7Hl6MCm+JIfvHKKA+g1OWcNJhL0Sw6CC3GCf3gVJtZyusWu4Y4hpb4JE+bw==",
9
9
  "hashes": {
10
- "sha256": "Bfu+23u4J/5wkKe5AFFzqQmJZnDQorbmisF0Bc26jXs=",
11
- "sha384": "hfL4qQzK3Ie45nXizVCC9sHdba5Y66kYZitlCxt2ReO+uahZyMXRygejAZIMKbqe",
12
- "sha512": "yzZSzNdCvNgacrssBsRORQnZjBAxxjytvfK25CdLkXnQrlLGPmjzFrdbfOq6HSmi8PSvViUqqgvfaxiORg+0tQ=="
10
+ "sha256": "upauq9BpUv/x9RrE2G2FWX1YAlLtgKkaBRhUb3xYaJk=",
11
+ "sha384": "nNfNv3eujdFXcAXFkkmz0172oHExO3WErNNPElRE6NtC/91yDiBdtl+tMmnWjzCj",
12
+ "sha512": "/ceEOa59tz7eWZhLeQ5GmhbsZER7Hl6MCm+JIfvHKKA+g1OWcNJhL0Sw6CC3GCf3gVJtZyusWu4Y4hpb4JE+bw=="
13
13
  }
14
14
  },
15
15
  "@min.js": {
16
16
  "file": "applicationinsights-core-js.min.js",
17
17
  "type": "text/javascript; charset=utf-8",
18
- "integrity": "sha256-992aLXWd5uhnnLpi20XrHmvDSbVrtHPc1lrhiAIMa/k= sha384-w55h1Bpc07nuXgI87FiiMayYiBGoQRSFzYIRUP5wgXfyvN1dmU5KbCksdtzeN9Lb sha512-R8egnufA51qHuTOkx7+TWBDf3WH6PlmmQCgTKVL8nLIz6BL8mD2cvyQYYEgtwCrSURZZvfGMCd9Lc0jF/hUD+g==",
18
+ "integrity": "sha256-j0LN4qKauRpxguAI7+7yrLWLDJUfH84x5AksdhsEZj4= sha384-2humy/qFi3/WFmQML/u0AcJsu3uP1JN0fRquI6F/2YE23LwQGUHkTiFGoEhAFv2i sha512-0s59+7rF8AyejbzFQcpjecvqOaglMGYj3hHgLNoZ6buJZlsbQZ3/2yXBRrky5YUwqfJXWJ3A9x0nYtjvs2T1uw==",
19
19
  "hashes": {
20
- "sha256": "992aLXWd5uhnnLpi20XrHmvDSbVrtHPc1lrhiAIMa/k=",
21
- "sha384": "w55h1Bpc07nuXgI87FiiMayYiBGoQRSFzYIRUP5wgXfyvN1dmU5KbCksdtzeN9Lb",
22
- "sha512": "R8egnufA51qHuTOkx7+TWBDf3WH6PlmmQCgTKVL8nLIz6BL8mD2cvyQYYEgtwCrSURZZvfGMCd9Lc0jF/hUD+g=="
20
+ "sha256": "j0LN4qKauRpxguAI7+7yrLWLDJUfH84x5AksdhsEZj4=",
21
+ "sha384": "2humy/qFi3/WFmQML/u0AcJsu3uP1JN0fRquI6F/2YE23LwQGUHkTiFGoEhAFv2i",
22
+ "sha512": "0s59+7rF8AyejbzFQcpjecvqOaglMGYj3hHgLNoZ6buJZlsbQZ3/2yXBRrky5YUwqfJXWJ3A9x0nYtjvs2T1uw=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2301-14
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2301-17
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -822,7 +822,6 @@
822
822
  var _DYN_REMOVE_NOTIFICATION_2 = "removeNotificationListener";
823
823
  var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
824
824
  var _DYN_ON_COMPLETE = "onComplete";
825
- var _DYN_CALL = "call";
826
825
  var _DYN_VERSION = "version";
827
826
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
828
827
  var _DYN_CREATE_NEW = "createNew";
@@ -1247,7 +1246,7 @@
1247
1246
  var strToString = "toString";
1248
1247
  var strGetPrototypeOf = "getPrototypeOf";
1249
1248
  var _fnToString = ObjClass[strToString];
1250
- _fnToString[_DYN_CALL ](ObjClass);
1249
+ _fnToString.call(ObjClass);
1251
1250
  var rCamelCase = /-([a-z])/g;
1252
1251
  var rNormalizeInvalid = /([^\w\d_$])/g;
1253
1252
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
@@ -1711,7 +1710,7 @@
1711
1710
  }
1712
1711
 
1713
1712
  var _objDefineProperty = ObjDefineProperty;
1714
- var version = "3.0.0-beta.2301-14";
1713
+ var version = "3.0.0-beta.2301-17";
1715
1714
  var instanceName = "." + newId(6);
1716
1715
  var _dataUid = 0;
1717
1716
  function _createAccessor(target, prop, value) {
@@ -1907,6 +1906,10 @@
1907
1906
  });
1908
1907
  }
1909
1908
  }
1909
+ function _getOwnPropGetter(target, name) {
1910
+ var propDesc = objGetOwnPropertyDescriptor(target, name);
1911
+ return propDesc && propDesc.get;
1912
+ }
1910
1913
  function _makeDynamicProperty(state, theConfig, name, value) {
1911
1914
  var detail = {
1912
1915
  n: name,
@@ -1947,22 +1950,32 @@
1947
1950
  };
1948
1951
  function _setProperty(newValue) {
1949
1952
  if (value !== newValue) {
1950
- if (!!_setProperty[state.ro] && state.upd) {
1951
- throwInvalidAccess("[" + name + "] is sealed from " + dumpObj(theConfig));
1953
+ if (!!_getProperty[state.ro] && !state.upd) {
1954
+ throwInvalidAccess("[" + name + "] is read-only:" + dumpObj(theConfig));
1952
1955
  }
1953
- if (value && value[CFG_HANDLER_LINK]) {
1954
- if (isPlainObject(value) || isArray(value)) {
1956
+ var isReferenced = _getProperty[state.rf];
1957
+ if (isPlainObject(value) || isArray(value)) {
1958
+ if (isReferenced) {
1959
+ objForEachKey(value, function (key) {
1960
+ value[key] = newValue[key];
1961
+ });
1962
+ objForEachKey(newValue, function (key, theValue) {
1963
+ _setDynamicProperty(state, value, key, theValue);
1964
+ });
1965
+ newValue = value;
1966
+ }
1967
+ else if (value && value[CFG_HANDLER_LINK]) {
1955
1968
  objForEachKey(value, function (key) {
1956
- var propDesc = objGetOwnPropertyDescriptor(value, key);
1957
- if (propDesc && propDesc.get) {
1958
- var valueState = propDesc.get[state.prop];
1969
+ var getter = _getOwnPropGetter(value, key);
1970
+ if (getter) {
1971
+ var valueState = getter[state.prop];
1959
1972
  valueState && valueState.chng();
1960
1973
  }
1961
1974
  });
1962
1975
  }
1963
1976
  }
1964
1977
  checkDynamic = false;
1965
- if (isPlainObject(newValue) || isArray(newValue)) {
1978
+ if (!isReferenced && (isPlainObject(newValue) || isArray(newValue))) {
1966
1979
  _makeDynamicObject(state, newValue);
1967
1980
  }
1968
1981
  value = newValue;
@@ -1970,20 +1983,27 @@
1970
1983
  }
1971
1984
  }
1972
1985
  objDefineAccessors(theConfig, detail.n, _getProperty, _setProperty, true);
1986
+ return _getProperty();
1973
1987
  }
1974
- function _setDynamicProperty(state, target, name, value) {
1988
+ function _setDynamicProperty(state, target, name, value, inPlace, rdOnly) {
1975
1989
  if (target) {
1976
- var isDynamic = false;
1977
- var propDesc = objGetOwnPropertyDescriptor(target, name);
1978
- if (propDesc && propDesc.get) {
1979
- isDynamic = !!propDesc.get[state.prop];
1980
- }
1990
+ var getter = _getOwnPropGetter(target, name);
1991
+ var isDynamic = getter && !!getter[state.prop];
1981
1992
  if (!isDynamic) {
1982
- _makeDynamicProperty(state, target, name, value);
1993
+ value = _makeDynamicProperty(state, target, name, value);
1994
+ if (inPlace || rdOnly) {
1995
+ getter = _getOwnPropGetter(target, name);
1996
+ }
1983
1997
  }
1984
1998
  else {
1985
1999
  target[name] = value;
1986
2000
  }
2001
+ if (inPlace) {
2002
+ getter[state.rf] = inPlace;
2003
+ }
2004
+ if (rdOnly) {
2005
+ getter[state.ro] = rdOnly;
2006
+ }
1987
2007
  }
1988
2008
  return value;
1989
2009
  }
@@ -2008,8 +2028,10 @@
2008
2028
  var symPrefix = "[[ai_";
2009
2029
  var symPostfix = "]]";
2010
2030
  function _createState(cfgHandler) {
2031
+ var _a;
2011
2032
  var dynamicPropertySymbol = newSymbol(symPrefix + "get" + cfgHandler.uid + symPostfix);
2012
2033
  var dynamicPropertyReadOnly = newSymbol(symPrefix + "ro" + cfgHandler.uid + symPostfix);
2034
+ var dynamicPropertyReferenced = newSymbol(symPrefix + "rf" + cfgHandler.uid + symPostfix);
2013
2035
  var dynamicPropertyDetail = newSymbol(symPrefix + "dtl" + cfgHandler.uid + symPostfix);
2014
2036
  var _waitingHandlers = null;
2015
2037
  var _watcherTimer = null;
@@ -2027,7 +2049,9 @@
2027
2049
  callback({
2028
2050
  cfg: cfgHandler.cfg,
2029
2051
  set: cfgHandler.set.bind(cfgHandler),
2030
- setDf: cfgHandler[_DYN_SET_DF ].bind(cfgHandler)
2052
+ setDf: cfgHandler[_DYN_SET_DF ].bind(cfgHandler),
2053
+ ref: cfgHandler.ref.bind(cfgHandler),
2054
+ rdOnly: cfgHandler.rdOnly.bind(cfgHandler)
2031
2055
  });
2032
2056
  }
2033
2057
  catch (e) {
@@ -2106,15 +2130,17 @@
2106
2130
  }
2107
2131
  }
2108
2132
  }
2109
- theState = {
2110
- prop: dynamicPropertySymbol,
2111
- ro: dynamicPropertyReadOnly,
2112
- hdlr: cfgHandler,
2113
- add: _addWatcher,
2114
- notify: _notifyWatchers,
2115
- use: _useHandler,
2116
- trk: _trackHandler
2117
- };
2133
+ theState = (_a = {
2134
+ prop: dynamicPropertySymbol,
2135
+ ro: dynamicPropertyReadOnly,
2136
+ rf: dynamicPropertyReferenced,
2137
+ hdlr: cfgHandler,
2138
+ add: _addWatcher
2139
+ },
2140
+ _a[_DYN_NOTIFY ] = _notifyWatchers,
2141
+ _a.use = _useHandler,
2142
+ _a.trk = _trackHandler,
2143
+ _a);
2118
2144
  return theState;
2119
2145
  }
2120
2146
 
@@ -2151,6 +2177,12 @@
2151
2177
  function _block(configHandler) {
2152
2178
  theState.use(null, configHandler);
2153
2179
  }
2180
+ function _ref(target, name) {
2181
+ return _setDynamicProperty(theState, target, name, target[name], true);
2182
+ }
2183
+ function _rdOnly(target, name) {
2184
+ return _setDynamicProperty(theState, target, name, target[name], false, true);
2185
+ }
2154
2186
  function _applyDefaults(theConfig, defaultValues) {
2155
2187
  if (defaultValues) {
2156
2188
  objForEachKey(defaultValues, function (name, value) {
@@ -2168,6 +2200,8 @@
2168
2200
  _a.set = _setValue,
2169
2201
  _a[_DYN_SET_DF ] = _applyDefaults,
2170
2202
  _a[_DYN_WATCH ] = _watch,
2203
+ _a.ref = _ref,
2204
+ _a.rdOnly = _rdOnly,
2171
2205
  _a._block = _block,
2172
2206
  _a);
2173
2207
  objDefineProp(cfgHandler, "uid", (_b = {},
@@ -3115,7 +3149,7 @@
3115
3149
  if (component) {
3116
3150
  var func = component._doUnload || component[_DYN__DO_TEARDOWN ];
3117
3151
  if (isFunction(func)) {
3118
- if (func[_DYN_CALL ](component, unloadCtx, unloadState, _doUnload) === true) {
3152
+ if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {
3119
3153
  return true;
3120
3154
  }
3121
3155
  }
@@ -3232,7 +3266,7 @@
3232
3266
  if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
3233
3267
  arrForEach(onComplete, function (completeDetails) {
3234
3268
  try {
3235
- completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
3269
+ completeDetails.func.call(completeDetails.self, completeDetails.args);
3236
3270
  }
3237
3271
  catch (e) {
3238
3272
  _throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
@@ -3251,15 +3285,15 @@
3251
3285
  if (!extCfg && createIfMissing) {
3252
3286
  extCfg = {};
3253
3287
  }
3254
- dynamicHandler.set(cfg, STR_EXTENSION_CONFIG, extCfg);
3255
- extCfg = cfg[STR_EXTENSION_CONFIG ];
3288
+ cfg[STR_EXTENSION_CONFIG] = extCfg;
3289
+ extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);
3256
3290
  if (extCfg) {
3257
3291
  idCfg = extCfg[identifier];
3258
3292
  if (!idCfg && createIfMissing) {
3259
3293
  idCfg = {};
3260
3294
  }
3261
- dynamicHandler.set(extCfg, identifier, idCfg);
3262
- idCfg = extCfg[identifier];
3295
+ extCfg[identifier] = idCfg;
3296
+ idCfg = dynamicHandler.ref(extCfg, identifier);
3263
3297
  }
3264
3298
  }
3265
3299
  return idCfg;
@@ -3554,10 +3588,35 @@
3554
3588
  };
3555
3589
  }
3556
3590
 
3591
+ function createUnloadHookContainer() {
3592
+ var _hooks = [];
3593
+ function _doUnload(logger) {
3594
+ var oldHooks = _hooks;
3595
+ _hooks = [];
3596
+ arrForEach(oldHooks, function (fn) {
3597
+ try {
3598
+ (fn.rm || fn.remove).call(fn);
3599
+ }
3600
+ catch (e) {
3601
+ _throwInternal(logger, 2 , 73 , "Unloading:" + dumpObj(e));
3602
+ }
3603
+ });
3604
+ }
3605
+ function _addHook(hooks) {
3606
+ if (hooks) {
3607
+ arrAppend(_hooks, hooks);
3608
+ }
3609
+ }
3610
+ return {
3611
+ run: _doUnload,
3612
+ add: _addHook
3613
+ };
3614
+ }
3615
+
3557
3616
  var _a$1;
3558
3617
  var strGetPlugin = "getPlugin";
3559
3618
  var defaultValues = (_a$1 = {},
3560
- _a$1[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: [] },
3619
+ _a$1[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },
3561
3620
  _a$1);
3562
3621
  var BaseTelemetryPlugin = /** @class */ (function () {
3563
3622
  function BaseTelemetryPlugin() {
@@ -3566,7 +3625,7 @@
3566
3625
  var _rootCtx;
3567
3626
  var _nextPlugin;
3568
3627
  var _unloadHandlerContainer;
3569
- var _hooks;
3628
+ var _hookContainer;
3570
3629
  _initDefaults();
3571
3630
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
3572
3631
  _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
@@ -3591,16 +3650,7 @@
3591
3650
  if (!unloadDone) {
3592
3651
  unloadDone = true;
3593
3652
  _unloadHandlerContainer.run(theUnloadCtx, unloadState);
3594
- var oldHooks = _hooks;
3595
- _hooks = [];
3596
- arrForEach(oldHooks, function (fn) {
3597
- try {
3598
- (fn.rm || fn.remove)[_DYN_CALL ](fn);
3599
- }
3600
- catch (e) {
3601
- _throwInternal(theUnloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unloading:" + dumpObj(e));
3602
- }
3603
- });
3653
+ _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG ]());
3604
3654
  if (result === true) {
3605
3655
  theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
3606
3656
  }
@@ -3640,12 +3690,9 @@
3640
3690
  }
3641
3691
  return result;
3642
3692
  };
3643
- _self._addHook = function (hooks) {
3644
- if (hooks) {
3645
- arrAppend(_hooks, hooks);
3646
- }
3647
- };
3648
3693
  proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
3694
+ proxyFunctionAs(_self, "_addHook", function () { return _hookContainer; }, "add");
3695
+ objDefine(_self, "_unloadHooks", { g: function () { return _hookContainer; } });
3649
3696
  });
3650
3697
  _self[_DYN_DIAG_LOG ] = function (itemCtx) {
3651
3698
  return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
@@ -3699,7 +3746,7 @@
3699
3746
  _self[STR_CORE ] = null;
3700
3747
  _rootCtx = null;
3701
3748
  _nextPlugin = null;
3702
- _hooks = [];
3749
+ _hookContainer = createUnloadHookContainer();
3703
3750
  _unloadHandlerContainer = createUnloadHandlerContainer();
3704
3751
  }
3705
3752
  }
@@ -3901,7 +3948,7 @@
3901
3948
  var _internalLogsEventName;
3902
3949
  var _evtNamespace;
3903
3950
  var _unloadHandlers;
3904
- var _hooks;
3951
+ var _hookContainer;
3905
3952
  var _debugListener;
3906
3953
  var _traceCtx;
3907
3954
  var _instrumentationKey;
@@ -3928,6 +3975,10 @@
3928
3975
  config = _configHandler.cfg;
3929
3976
  _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
3930
3977
  _instrumentationKey = details.cfg.instrumentationKey;
3978
+ var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);
3979
+ objForEachKey(extCfg, function (key) {
3980
+ details.ref(extCfg, key);
3981
+ });
3931
3982
  if (isNullOrUndefined(_instrumentationKey)) {
3932
3983
  throwError("Please provide instrumentation key");
3933
3984
  }
@@ -4092,16 +4143,7 @@
4092
4143
  _a);
4093
4144
  var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);
4094
4145
  processUnloadCtx[_DYN_ON_COMPLETE ](function () {
4095
- var oldHooks = _hooks;
4096
- _hooks = [];
4097
- arrForEach(oldHooks, function (fn) {
4098
- try {
4099
- (fn.rm || fn.remove)[_DYN_CALL ](fn);
4100
- }
4101
- catch (e) {
4102
- _throwInternal(_self[_DYN_LOGGER ], 2 , 73 , "Unloading:" + dumpObj(e));
4103
- }
4104
- });
4146
+ _hookContainer.run(_self[_DYN_LOGGER ]);
4105
4147
  _initDefaults();
4106
4148
  unloadComplete && unloadComplete(unloadState);
4107
4149
  }, _self);
@@ -4299,7 +4341,7 @@
4299
4341
  _unloadHandlers = createUnloadHandlerContainer();
4300
4342
  _traceCtx = null;
4301
4343
  _instrumentationKey = null;
4302
- _hooks = [];
4344
+ _hookContainer = createUnloadHookContainer();
4303
4345
  _cfgListeners = [];
4304
4346
  _pluginVersionString = null;
4305
4347
  _pluginVersionStringArr = null;
@@ -4526,9 +4568,7 @@
4526
4568
  }
4527
4569
  }
4528
4570
  function _addUnloadHook(hooks) {
4529
- if (hooks) {
4530
- arrAppend(_hooks, hooks);
4531
- }
4571
+ _hookContainer.add(hooks);
4532
4572
  }
4533
4573
  });
4534
4574
  }
@@ -5071,6 +5111,7 @@
5071
5111
  exports.createTraceParent = createTraceParent;
5072
5112
  exports.createUniqueNamespace = createUniqueNamespace;
5073
5113
  exports.createUnloadHandlerContainer = createUnloadHandlerContainer;
5114
+ exports.createUnloadHookContainer = createUnloadHookContainer;
5074
5115
  exports.createValueMap = createValueMap;
5075
5116
  exports.dateNow = utcNow;
5076
5117
  exports.deepFreeze = objDeepFreeze;