@microsoft/applicationinsights-core-js 3.0.0-beta.2210-16 → 3.0.0-beta.2210-18

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 (117) hide show
  1. package/browser/applicationinsights-core-js.integrity.json +9 -9
  2. package/browser/applicationinsights-core-js.js +131 -117
  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 +0 -89
  7. package/dist/applicationinsights-core-js.api.md +6 -6
  8. package/dist/applicationinsights-core-js.d.ts +7 -17
  9. package/dist/applicationinsights-core-js.js +131 -117
  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 +7 -17
  14. package/dist-esm/Config/ConfigDefaults.js +2 -3
  15. package/dist-esm/Config/ConfigDefaults.js.map +1 -1
  16. package/dist-esm/Config/DynamicConfig.js +2 -3
  17. package/dist-esm/Config/DynamicConfig.js.map +1 -1
  18. package/dist-esm/Config/DynamicProperty.js +31 -18
  19. package/dist-esm/Config/DynamicProperty.js.map +1 -1
  20. package/dist-esm/Config/DynamicState.js +58 -47
  21. package/dist-esm/Config/DynamicState.js.map +1 -1
  22. package/dist-esm/Config/DynamicSupport.js +2 -3
  23. package/dist-esm/Config/DynamicSupport.js.map +1 -1
  24. package/dist-esm/Config/IConfigDefaults.js +1 -1
  25. package/dist-esm/Config/IDynamicConfigHandler.js +1 -1
  26. package/dist-esm/Config/IDynamicPropertyHandler.js +1 -1
  27. package/dist-esm/Config/IDynamicWatcher.js +1 -1
  28. package/dist-esm/Config/_IDynamicConfigHandlerState.js +1 -1
  29. package/dist-esm/JavaScriptSDK/AggregationError.js +1 -1
  30. package/dist-esm/JavaScriptSDK/AppInsightsCore.js +3 -3
  31. package/dist-esm/JavaScriptSDK/AppInsightsCore.js.map +1 -1
  32. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +1 -1
  33. package/dist-esm/JavaScriptSDK/ChannelController.js +5 -7
  34. package/dist-esm/JavaScriptSDK/ChannelController.js.map +1 -1
  35. package/dist-esm/JavaScriptSDK/CookieMgr.js +12 -12
  36. package/dist-esm/JavaScriptSDK/CookieMgr.js.map +1 -1
  37. package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -14
  38. package/dist-esm/JavaScriptSDK/CoreUtils.js.map +1 -1
  39. package/dist-esm/JavaScriptSDK/DataCacheHelper.js +2 -2
  40. package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -1
  41. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +3 -2
  42. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js.map +1 -1
  43. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
  44. package/dist-esm/JavaScriptSDK/EnvUtils.js +4 -12
  45. package/dist-esm/JavaScriptSDK/EnvUtils.js.map +1 -1
  46. package/dist-esm/JavaScriptSDK/EventHelpers.js +2 -3
  47. package/dist-esm/JavaScriptSDK/EventHelpers.js.map +1 -1
  48. package/dist-esm/JavaScriptSDK/HelperFuncs.js +3 -41
  49. package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
  50. package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
  51. package/dist-esm/JavaScriptSDK/InternalConstants.js +1 -1
  52. package/dist-esm/JavaScriptSDK/NotificationManager.js +4 -4
  53. package/dist-esm/JavaScriptSDK/NotificationManager.js.map +1 -1
  54. package/dist-esm/JavaScriptSDK/PerfManager.js +4 -5
  55. package/dist-esm/JavaScriptSDK/PerfManager.js.map +1 -1
  56. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +4 -4
  57. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js.map +1 -1
  58. package/dist-esm/JavaScriptSDK/RandomHelper.js +3 -3
  59. package/dist-esm/JavaScriptSDK/RandomHelper.js.map +1 -1
  60. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +1 -1
  61. package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
  62. package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
  63. package/dist-esm/JavaScriptSDK/W3cTraceParent.js +3 -3
  64. package/dist-esm/JavaScriptSDK/W3cTraceParent.js.map +1 -1
  65. package/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
  66. package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  67. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  68. package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  69. package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
  70. package/dist-esm/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
  71. package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  72. package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  73. package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  74. package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  75. package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  76. package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  77. package/dist-esm/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
  78. package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  79. package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  80. package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  81. package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  82. package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  83. package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  84. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  85. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  86. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  87. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  88. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
  89. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
  90. package/dist-esm/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
  91. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
  92. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
  93. package/dist-esm/__DynamicConstants.js +4 -6
  94. package/dist-esm/__DynamicConstants.js.map +1 -1
  95. package/dist-esm/applicationinsights-core-js.js +5 -5
  96. package/dist-esm/applicationinsights-core-js.js.map +1 -1
  97. package/package.json +1 -1
  98. package/src/JavaScriptSDK/AppInsightsCore.ts +3 -3
  99. package/src/JavaScriptSDK/ChannelController.ts +5 -7
  100. package/src/JavaScriptSDK/CookieMgr.ts +11 -11
  101. package/src/JavaScriptSDK/CoreUtils.ts +0 -15
  102. package/src/JavaScriptSDK/DbgExtensionUtils.ts +2 -1
  103. package/src/JavaScriptSDK/EnvUtils.ts +2 -11
  104. package/src/JavaScriptSDK/EventHelpers.ts +1 -2
  105. package/src/JavaScriptSDK/HelperFuncs.ts +3 -47
  106. package/src/JavaScriptSDK/NotificationManager.ts +3 -3
  107. package/src/JavaScriptSDK/PerfManager.ts +3 -4
  108. package/src/JavaScriptSDK/ProcessTelemetryContext.ts +6 -4
  109. package/src/JavaScriptSDK/RandomHelper.ts +2 -2
  110. package/src/JavaScriptSDK/W3cTraceParent.ts +2 -2
  111. package/types/Config/IDynamicWatcher.d.ts +5 -1
  112. package/types/Config/_IDynamicConfigHandlerState.d.ts +17 -1
  113. package/types/JavaScriptSDK/CoreUtils.d.ts +0 -5
  114. package/types/JavaScriptSDK/EnvUtils.d.ts +0 -6
  115. package/types/JavaScriptSDK/HelperFuncs.d.ts +0 -18
  116. package/types/__DynamicConstants.d.ts +1 -3
  117. package/types/applicationinsights-core-js.d.ts +4 -4
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Microsoft Application Insights Core Javascript SDK, 3.0.0-beta.2210-16
2
+ * Microsoft Application Insights Core Javascript SDK, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  *
5
5
  * Microsoft Application Insights Team
@@ -18,6 +18,7 @@ import { arrIndexOf } from '@nevware21/ts-utils';
18
18
  import { arrMap } from '@nevware21/ts-utils';
19
19
  import { arrReduce } from '@nevware21/ts-utils';
20
20
  import { asString } from '@nevware21/ts-utils';
21
+ import { utcNow as dateNow } from '@nevware21/ts-utils';
21
22
  import { objDeepFreeze as deepFreeze } from '@nevware21/ts-utils';
22
23
  import { dumpObj } from '@nevware21/ts-utils';
23
24
  import { EnumCls } from '@nevware21/ts-utils';
@@ -26,6 +27,7 @@ import { getGlobal } from '@microsoft/applicationinsights-shims';
26
27
  import { getInst as getGlobalInst } from '@nevware21/ts-utils';
27
28
  import { getHistory } from '@nevware21/ts-utils';
28
29
  import { getNavigator } from '@nevware21/ts-utils';
30
+ import { getPerformance } from '@nevware21/ts-utils';
29
31
  import { getWindow } from '@nevware21/ts-utils';
30
32
  import { hasDocument } from '@nevware21/ts-utils';
31
33
  import { hasHistory } from '@nevware21/ts-utils';
@@ -53,6 +55,7 @@ import { objFreeze } from '@nevware21/ts-utils';
53
55
  import { objKeys } from '@nevware21/ts-utils';
54
56
  import { objSeal } from '@nevware21/ts-utils';
55
57
  import { objToString } from '@nevware21/ts-utils';
58
+ import { perfNow } from '@nevware21/ts-utils';
56
59
  import { strEndsWith } from '@nevware21/ts-utils';
57
60
  import { strShimFunction as strFunction } from '@microsoft/applicationinsights-shims';
58
61
  import { strShimObject as strObject } from '@microsoft/applicationinsights-shims';
@@ -438,11 +441,7 @@ export declare const createValueMap: <E, V = E>(values: {
438
441
  [key in keyof E]: [E[keyof E], V[keyof V]];
439
442
  }) => V;
440
443
 
441
- /**
442
- * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)
443
- * https://caniuse.com/#search=Date.now
444
- */
445
- export declare function dateNow(): number;
444
+ export { dateNow }
446
445
 
447
446
  export { deepFreeze }
448
447
 
@@ -799,12 +798,7 @@ export declare function getMsCrypto(): Crypto | null;
799
798
 
800
799
  export { getNavigator }
801
800
 
802
- /**
803
- * Returns the performance object if it is present otherwise null.
804
- * This helper is used to access the performance object from the current
805
- * global instance which could be window or globalThis for a web worker
806
- */
807
- export declare function getPerformance(): Performance | null;
801
+ export { getPerformance }
808
802
 
809
803
  /**
810
804
  * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it
@@ -2511,11 +2505,7 @@ export declare class PerfManager implements IPerfManager {
2511
2505
  getCtx(key: string): any;
2512
2506
  }
2513
2507
 
2514
- /**
2515
- * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)
2516
- * https://caniuse.com/#search=performance.now
2517
- */
2518
- export declare function perfNow(): number;
2508
+ export { perfNow }
2519
2509
 
2520
2510
  /**
2521
2511
  * This class will be removed!
@@ -1,11 +1,10 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
6
6
 
7
- import { asString, isArray, isDefined, isNullOrUndefined, isObject, objHasOwn } from "@nevware21/ts-utils";
8
- import { isPlainObject } from "../JavaScriptSDK/HelperFuncs";
7
+ import { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, objHasOwn } from "@nevware21/ts-utils";
9
8
  import { _DYN_LENGTH } from "../__DynamicConstants";
10
9
  import { _cfgDeepCopy } from "./DynamicSupport";
11
10
  function _getDefault(dynamicHandler, theConfig, cfgDefaults) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.js.map","sources":["ConfigDefaults.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { isPlainObject } from \"../JavaScriptSDK/HelperFuncs\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _cfgDeepCopy } from \"./DynamicSupport\";\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n if (cfgDefaults && isObject(cfgDefaults) && (cfgDefaults.isVal || cfgDefaults.set || cfgDefaults.fb || objHasOwn(cfgDefaults, \"v\"))) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n // Set the value to the default value;\r\n var theValue = defValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n }\r\n if (!usingDefault) {\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n theValue = _cfgDeepCopy(theValue);\r\n }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"ConfigDefaults.js.map","sources":["ConfigDefaults.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _cfgDeepCopy } from \"./DynamicSupport\";\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n if (cfgDefaults && isObject(cfgDefaults) && (cfgDefaults.isVal || cfgDefaults.set || cfgDefaults.fb || objHasOwn(cfgDefaults, \"v\"))) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n // Set the value to the default value;\r\n var theValue = defValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n }\r\n if (!usingDefault) {\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n theValue = _cfgDeepCopy(theValue);\r\n }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,12 +1,11 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
6
6
 
7
- import { dumpObj, objDefineProp } from "@nevware21/ts-utils";
7
+ import { dumpObj, objDefineProp, objForEachKey } from "@nevware21/ts-utils";
8
8
  import { createUniqueNamespace } from "../JavaScriptSDK/DataCacheHelper";
9
- import { objForEachKey } from "../JavaScriptSDK/HelperFuncs";
10
9
  import { STR_NOT_DYNAMIC_ERROR, STR_WARN_TO_CONSOLE } from "../JavaScriptSDK/InternalConstants";
11
10
  import { _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_LOGGER, _DYN_NOTIFY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WATCH } from "../__DynamicConstants";
12
11
  import { _applyDefaultValue } from "./ConfigDefaults";
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicConfig.js.map","sources":["DynamicConfig.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, objDefineProp } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { objForEachKey } from \"../JavaScriptSDK/HelperFuncs\";\r\nimport { STR_NOT_DYNAMIC_ERROR, STR_WARN_TO_CONSOLE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_LOGGER, _DYN_NOTIFY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a, _b;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n return _setDynamicProperty(theState, target, name, value);\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler) {\r\n theState.use(null, configHandler);\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a._block = _block,\r\n _a);\r\n objDefineProp(cfgHandler, \"uid\", (_b = {},\r\n _b[_DYN_CONFIGURABLE /* @min:configurable */] = false,\r\n _b[_DYN_ENUMERABLE /* @min:enumerable */] = false,\r\n _b.writable = false,\r\n _b.value = uid,\r\n _b));\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget);\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"DynamicConfig.js.map","sources":["DynamicConfig.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, objDefineProp, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR, STR_WARN_TO_CONSOLE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_LOGGER, _DYN_NOTIFY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a, _b;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n return _setDynamicProperty(theState, target, name, value);\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler) {\r\n theState.use(null, configHandler);\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a._block = _block,\r\n _a);\r\n objDefineProp(cfgHandler, \"uid\", (_b = {},\r\n _b[_DYN_CONFIGURABLE /* @min:configurable */] = false,\r\n _b[_DYN_ENUMERABLE /* @min:enumerable */] = false,\r\n _b.writable = false,\r\n _b.value = uid,\r\n _b));\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget);\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,13 +1,11 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
6
6
 
7
- import { arrForEach, dumpObj, isArray, objDefineAccessors, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from "@nevware21/ts-utils";
8
- import { isPlainObject } from "../JavaScriptSDK/HelperFuncs";
9
- import { UNDEFINED_VALUE } from "../JavaScriptSDK/InternalConstants";
10
- import { _DYN_APPLY, _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_INDEX_OF, _DYN_PUSH } from "../__DynamicConstants";
7
+ import { arrForEach, arrIndexOf, dumpObj, isArray, isPlainObject, objDefineAccessors, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from "@nevware21/ts-utils";
8
+ import { _DYN_APPLY, _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_PUSH, _DYN_SPLICE } from "../__DynamicConstants";
11
9
  import { CFG_HANDLER_LINK, throwInvalidAccess } from "./DynamicSupport";
12
10
  var arrayMethodsToPatch = [
13
11
  "push",
@@ -39,9 +37,19 @@ function _makeDynamicProperty(state, theConfig, name, value) {
39
37
  var detail = {
40
38
  n: name,
41
39
  h: [],
42
- add: function (handler) {
43
- if (handler && handler.fn && detail.h[_DYN_INDEX_OF /* @min:%2eindexOf */](handler) === -1) {
44
- detail.h[_DYN_PUSH /* @min:%2epush */](handler);
40
+ trk: function (handler) {
41
+ if (handler && handler.fn) {
42
+ if (arrIndexOf(detail.h, handler) === -1) {
43
+ // Add this handler to the collection that should be notified when the value changes
44
+ detail.h[_DYN_PUSH /* @min:%2epush */](handler);
45
+ }
46
+ state.trk(handler, detail);
47
+ }
48
+ },
49
+ clr: function (handler) {
50
+ var idx = arrIndexOf(detail.h, handler);
51
+ if (idx !== -1) {
52
+ detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);
45
53
  }
46
54
  }
47
55
  };
@@ -59,12 +67,16 @@ function _makeDynamicProperty(state, theConfig, name, value) {
59
67
  // If there is an active handler then add it to the tracking set of handlers
60
68
  var activeHandler = state.act;
61
69
  if (activeHandler) {
62
- detail.add(activeHandler);
70
+ detail.trk(activeHandler);
63
71
  }
64
72
  return value;
65
73
  }
66
- // Tag this getting as our dynamic property
67
- _getProperty[state.prop] = true;
74
+ // Tag this getter as our dynamic property and provide shortcut for notifying a change
75
+ _getProperty[state.prop] = {
76
+ chng: function () {
77
+ state.add(detail);
78
+ }
79
+ };
68
80
  function _setProperty(newValue) {
69
81
  if (value !== newValue) {
70
82
  if (!!_setProperty[state.ro] && state.upd) {
@@ -76,14 +88,15 @@ function _makeDynamicProperty(state, theConfig, name, value) {
76
88
  if (value && value[CFG_HANDLER_LINK]) {
77
89
  // For objects / arrays, we can indirectly inform any listeners by just changing the value to undefined
78
90
  // This will trigger any listeners by simply calling their version of the setter.
79
- if (isPlainObject(value)) {
91
+ if (isPlainObject(value) || isArray(value)) {
80
92
  objForEachKey(value, function (key) {
81
- value[key] = UNDEFINED_VALUE;
82
- });
83
- }
84
- else if (isArray(value)) {
85
- arrForEach(value, function (propValue, idx) {
86
- value[idx] = UNDEFINED_VALUE;
93
+ // Check if the value is dynamic
94
+ var propDesc = objGetOwnPropertyDescriptor(value, key);
95
+ if (propDesc && propDesc.get) {
96
+ // And if it is tell it's listeners that the value has changed
97
+ var valueState = propDesc.get[state.prop];
98
+ valueState && valueState.chng();
99
+ }
87
100
  });
88
101
  }
89
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicProperty.js.map","sources":["DynamicProperty.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, dumpObj, isArray, objDefineAccessors, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { isPlainObject } from \"../JavaScriptSDK/HelperFuncs\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_INDEX_OF, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nfunction _patchArray(state, target) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target);\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _makeDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n add: function (handler) {\r\n if (handler && handler.fn && detail.h[_DYN_INDEX_OF /* @min:%2eindexOf */](handler) === -1) {\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n if (value && !value[CFG_HANDLER_LINK] && (isPlainObject(value) || isArray(value))) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value);\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.add(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getting as our dynamic property\r\n _getProperty[state.prop] = true;\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_setProperty[state.ro] && state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is sealed from \" + dumpObj(theConfig));\r\n }\r\n // As we are replacing the value, if already dynamic then we need to notify any listeners that changes\r\n // are happening\r\n if (value && value[CFG_HANDLER_LINK]) {\r\n // For objects / arrays, we can indirectly inform any listeners by just changing the value to undefined\r\n // This will trigger any listeners by simply calling their version of the setter.\r\n if (isPlainObject(value)) {\r\n objForEachKey(value, function (key) {\r\n value[key] = UNDEFINED_VALUE;\r\n });\r\n }\r\n else if (isArray(value)) {\r\n arrForEach(value, function (propValue, idx) {\r\n value[idx] = UNDEFINED_VALUE;\r\n });\r\n }\r\n }\r\n checkDynamic = false;\r\n if (isPlainObject(newValue) || isArray(newValue)) {\r\n _makeDynamicObject(state, newValue);\r\n }\r\n value = newValue;\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefineAccessors(theConfig, detail.n, _getProperty, _setProperty, true);\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n var isDynamic = false;\r\n // To be a dynamic property it needs to have a get function\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n if (propDesc && propDesc.get) {\r\n isDynamic = !!propDesc.get[state.prop];\r\n }\r\n if (!isDynamic) {\r\n _makeDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic and a different value so just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return value;\r\n}\r\nexport function _makeDynamicObject(state, target /*, newValues?: any*/) {\r\n var _a;\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(/*newValues || */ target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, (_a = {},\r\n _a[_DYN_CONFIGURABLE /* @min:configurable */] = false,\r\n _a[_DYN_ENUMERABLE /* @min:enumerable */] = false,\r\n _a.get = function () {\r\n return state.hdlr;\r\n },\r\n _a));\r\n _patchArray(state, target);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"DynamicProperty.js.map","sources":["DynamicProperty.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, isPlainObject, objDefineAccessors, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nfunction _patchArray(state, target) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target);\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _makeDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n if (value && !value[CFG_HANDLER_LINK] && (isPlainObject(value) || isArray(value))) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value);\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_setProperty[state.ro] && state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is sealed from \" + dumpObj(theConfig));\r\n }\r\n // As we are replacing the value, if already dynamic then we need to notify any listeners that changes\r\n // are happening\r\n if (value && value[CFG_HANDLER_LINK]) {\r\n // For objects / arrays, we can indirectly inform any listeners by just changing the value to undefined\r\n // This will trigger any listeners by simply calling their version of the setter.\r\n if (isPlainObject(value) || isArray(value)) {\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var propDesc = objGetOwnPropertyDescriptor(value, key);\r\n if (propDesc && propDesc.get) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = propDesc.get[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n checkDynamic = false;\r\n if (isPlainObject(newValue) || isArray(newValue)) {\r\n _makeDynamicObject(state, newValue);\r\n }\r\n value = newValue;\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefineAccessors(theConfig, detail.n, _getProperty, _setProperty, true);\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n var isDynamic = false;\r\n // To be a dynamic property it needs to have a get function\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n if (propDesc && propDesc.get) {\r\n isDynamic = !!propDesc.get[state.prop];\r\n }\r\n if (!isDynamic) {\r\n _makeDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic and a different value so just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return value;\r\n}\r\nexport function _makeDynamicObject(state, target /*, newValues?: any*/) {\r\n var _a;\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(/*newValues || */ target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, (_a = {},\r\n _a[_DYN_CONFIGURABLE /* @min:configurable */] = false,\r\n _a[_DYN_ENUMERABLE /* @min:enumerable */] = false,\r\n _a.get = function () {\r\n return state.hdlr;\r\n },\r\n _a));\r\n _patchArray(state, target);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,36 +1,18 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
6
6
 
7
- import { arrForEach, dumpObj, newSymbol, scheduleTimeout } from "@nevware21/ts-utils";
7
+ import { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from "@nevware21/ts-utils";
8
8
  import { throwAggregationError } from "../JavaScriptSDK/AggregationError";
9
- import { _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_SET_DF, _DYN_THROW_INTERNAL } from "../__DynamicConstants";
9
+ import { _DYN_LENGTH, _DYN_LOGGER, _DYN_PUSH, _DYN_SET_DF, _DYN_THROW_INTERNAL } from "../__DynamicConstants";
10
10
  var symPrefix = "[[ai_";
11
11
  var symPostfix = "]]";
12
- /**
13
- * @internal
14
- * @ignore
15
- * Add the watcher to the collection of watchers to be notified for the named value that is changing
16
- * @param watchers - The collection of watchers
17
- * @param theDetail - The dynamic property detail
18
- * @param prevValue - The previous value
19
- */
20
- function _insertWatcher(watchers, theDetail) {
21
- if (theDetail && theDetail.h && theDetail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {
22
- arrForEach(theDetail.h, function (handler) {
23
- // The handler may have self removed and we also want to only call the handler once.
24
- if (handler && handler.fn && watchers[_DYN_INDEX_OF /* @min:%2eindexOf */](handler) === -1) {
25
- watchers[_DYN_PUSH /* @min:%2epush */](handler);
26
- }
27
- });
28
- }
29
- }
30
12
  export function _createState(cfgHandler) {
31
- var _a;
32
13
  var dynamicPropertySymbol = newSymbol(symPrefix + "get" + cfgHandler.uid + symPostfix);
33
14
  var dynamicPropertyReadOnly = newSymbol(symPrefix + "ro" + cfgHandler.uid + symPostfix);
15
+ var dynamicPropertyDetail = newSymbol(symPrefix + "dtl" + cfgHandler.uid + symPostfix);
34
16
  var _waitingHandlers = null;
35
17
  var _watcherTimer = null;
36
18
  var theState;
@@ -38,6 +20,13 @@ export function _createState(cfgHandler) {
38
20
  var prevWatcher = theState.act;
39
21
  try {
40
22
  theState.act = activeHandler;
23
+ if (activeHandler && activeHandler[dynamicPropertyDetail]) {
24
+ // Clear out the previously tracked details for this handler, so that access are re-evaluated
25
+ arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {
26
+ detail.clr(activeHandler);
27
+ });
28
+ activeHandler[dynamicPropertyDetail] = [];
29
+ }
41
30
  callback({
42
31
  cfg: cfgHandler.cfg,
43
32
  set: cfgHandler.set.bind(cfgHandler),
@@ -48,7 +37,7 @@ export function _createState(cfgHandler) {
48
37
  var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];
49
38
  if (logger) {
50
39
  // Don't let one individual failure break everyone
51
- logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, "Watcher [" + dumpObj(callback) + "] failed [" + dumpObj(e) + "]");
40
+ logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));
52
41
  }
53
42
  // Re-throw the exception so that any true "error" is reported back to the called
54
43
  throw e;
@@ -61,22 +50,29 @@ export function _createState(cfgHandler) {
61
50
  if (_waitingHandlers) {
62
51
  var notifyHandlers = _waitingHandlers;
63
52
  _waitingHandlers = null;
64
- if (_watcherTimer) {
65
- // Stop any timer as we are running them now anyway
66
- _watcherTimer.cancel();
67
- _watcherTimer = null;
68
- }
53
+ // Stop any timer as we are running them now anyway
54
+ _watcherTimer && _watcherTimer.cancel();
55
+ _watcherTimer = null;
69
56
  var watcherFailures_1 = [];
70
57
  // Now run the handlers
71
58
  arrForEach(notifyHandlers, function (handler) {
72
- // The handler may have self removed as part of another handler so re-check
73
- if (handler.fn) {
74
- try {
75
- _useHandler(handler, handler.fn);
59
+ if (handler) {
60
+ if (handler[dynamicPropertyDetail]) {
61
+ arrForEach(handler[dynamicPropertyDetail], function (detail) {
62
+ // Clear out this handler from previously tracked details, so that access are re-evaluated
63
+ detail.clr(handler);
64
+ });
65
+ handler[dynamicPropertyDetail] = null;
76
66
  }
77
- catch (e) {
78
- // Don't let a single failing watcher cause other watches to fail
79
- watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);
67
+ // The handler may have self removed as part of another handler so re-check
68
+ if (handler.fn) {
69
+ try {
70
+ _useHandler(handler, handler.fn);
71
+ }
72
+ catch (e) {
73
+ // Don't let a single failing watcher cause other watches to fail
74
+ watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);
75
+ }
80
76
  }
81
77
  }
82
78
  });
@@ -90,7 +86,7 @@ export function _createState(cfgHandler) {
90
86
  }
91
87
  }
92
88
  if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {
93
- throwAggregationError("Unexpected watcher error occurred: ", watcherFailures_1);
89
+ throwAggregationError("Watcher error(s): ", watcherFailures_1);
94
90
  }
95
91
  }
96
92
  }
@@ -105,19 +101,34 @@ export function _createState(cfgHandler) {
105
101
  _notifyWatchers();
106
102
  }, 0);
107
103
  }
108
- // Add the watcher to the collection of waiting watchers to be executed later
109
- _insertWatcher(_waitingHandlers, detail);
104
+ // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance
105
+ for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {
106
+ var handler = detail.h[idx];
107
+ // Add this handler to the collection of handlers to re-execute
108
+ if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {
109
+ _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ function _trackHandler(handler, detail) {
115
+ if (handler) {
116
+ var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];
117
+ if (arrIndexOf(details, detail) === -1) {
118
+ // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage
119
+ details[_DYN_PUSH /* @min:%2epush */](detail);
120
+ }
110
121
  }
111
122
  }
112
- theState = (_a = {
113
- prop: dynamicPropertySymbol,
114
- ro: dynamicPropertyReadOnly,
115
- hdlr: cfgHandler,
116
- add: _addWatcher
117
- },
118
- _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,
119
- _a.use = _useHandler,
120
- _a);
123
+ theState = {
124
+ prop: dynamicPropertySymbol,
125
+ ro: dynamicPropertyReadOnly,
126
+ hdlr: cfgHandler,
127
+ add: _addWatcher,
128
+ notify: _notifyWatchers,
129
+ use: _useHandler,
130
+ trk: _trackHandler
131
+ };
121
132
  return theState;
122
133
  }
123
134
  //# sourceMappingURL=DynamicState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicState.js.map","sources":["DynamicState.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Add the watcher to the collection of watchers to be notified for the named value that is changing\r\n * @param watchers - The collection of watchers\r\n * @param theDetail - The dynamic property detail\r\n * @param prevValue - The previous value\r\n */\r\nfunction _insertWatcher(watchers, theDetail) {\r\n if (theDetail && theDetail.h && theDetail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(theDetail.h, function (handler) {\r\n // The handler may have self removed and we also want to only call the handler once.\r\n if (handler && handler.fn && watchers[_DYN_INDEX_OF /* @min:%2eindexOf */](handler) === -1) {\r\n watchers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n });\r\n }\r\n}\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, \"Watcher [\" + dumpObj(callback) + \"] failed [\" + dumpObj(e) + \"]\");\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n if (_watcherTimer) {\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer.cancel();\r\n _watcherTimer = null;\r\n }\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Unexpected watcher error occurred: \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add the watcher to the collection of waiting watchers to be executed later\r\n _insertWatcher(_waitingHandlers, detail);\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n hdlr: cfgHandler,\r\n add: _addWatcher\r\n },\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"DynamicState.js.map","sources":["DynamicState.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_LENGTH, _DYN_LOGGER, _DYN_PUSH, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer.cancel();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n hdlr: cfgHandler,\r\n add: _addWatcher,\r\n notify: _notifyWatchers,\r\n use: _useHandler,\r\n trk: _trackHandler\r\n };\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,11 +1,10 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
6
6
 
7
- import { isArray, objForEachKey, symbolFor, throwTypeError } from "@nevware21/ts-utils";
8
- import { isPlainObject } from "../JavaScriptSDK/HelperFuncs";
7
+ import { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from "@nevware21/ts-utils";
9
8
  import { _DYN_LENGTH } from "../__DynamicConstants";
10
9
  // Using Symbol.for so that if the same symbol was already created it would be returned
11
10
  // To handle multiple instances using potentially different versions we are not using
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicSupport.js.map","sources":["DynamicSupport.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isArray, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { isPlainObject } from \"../JavaScriptSDK/HelperFuncs\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"DynamicSupport.js.map","sources":["DynamicSupport.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  export {};
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-16
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2210-18
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -8,7 +8,7 @@
8
8
  var _a;
9
9
  import { __spreadArrayFn as __spreadArray } from "@microsoft/applicationinsights-shims";
10
10
  import dynamicProto from "@microsoft/dynamicproto-js";
11
- import { arrAppend, arrForEach, arrIndexOf, deepExtend, dumpObj, isFunction, isNullOrUndefined, objDeepFreeze, objDefineProp, objFreeze, objHasOwn, throwError } from "@nevware21/ts-utils";
11
+ import { arrAppend, arrForEach, arrIndexOf, deepExtend, dumpObj, isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, objDefineProp, objForEachKey, objFreeze, objHasOwn, throwError } from "@nevware21/ts-utils";
12
12
  import { createDynamicConfig, onConfigChange } from "../Config/DynamicConfig";
13
13
  import { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CALL, _DYN_CONFIGURABLE, _DYN_ENUMERABLE, _DYN_FLUSH, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_WATCH, _DYN__EXTENSIONS } from "../__DynamicConstants";
14
14
  import { ChannelControllerPriority, createChannelControllerPlugin, createChannelQueues } from "./ChannelController";
@@ -16,7 +16,7 @@ import { createCookieMgr } from "./CookieMgr";
16
16
  import { createUniqueNamespace } from "./DataCacheHelper";
17
17
  import { getDebugListener } from "./DbgExtensionUtils";
18
18
  import { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from "./DiagnosticLogger";
19
- import { getSetValue, isPlainObject, objForEachKey, proxyFunctionAs, proxyFunctions, toISOString } from "./HelperFuncs";
19
+ import { getSetValue, proxyFunctionAs, proxyFunctions, toISOString } from "./HelperFuncs";
20
20
  import { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from "./InternalConstants";
21
21
  import { NotificationManager } from "./NotificationManager";
22
22
  import { PerfManager, doPerf, getGblPerfMgr } from "./PerfManager";