@microsoft/applicationinsights-core-js 3.0.0-beta.2302-04 → 3.0.0-beta.2302-05

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/browser/applicationinsights-core-js.integrity.json +9 -9
  2. package/browser/applicationinsights-core-js.js +179 -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 +756 -32
  7. package/dist/applicationinsights-core-js.api.md +24 -3
  8. package/dist/applicationinsights-core-js.d.ts +76 -4
  9. package/dist/applicationinsights-core-js.js +179 -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 +76 -4
  14. package/dist-esm/Config/ConfigDefaultHelpers.js +103 -0
  15. package/dist-esm/Config/ConfigDefaultHelpers.js.map +1 -0
  16. package/dist-esm/Config/ConfigDefaults.js +81 -11
  17. package/dist-esm/Config/ConfigDefaults.js.map +1 -1
  18. package/dist-esm/Config/DynamicConfig.js +3 -3
  19. package/dist-esm/Config/DynamicConfig.js.map +1 -1
  20. package/dist-esm/Config/DynamicProperty.js +1 -1
  21. package/dist-esm/Config/DynamicState.js +3 -3
  22. package/dist-esm/Config/DynamicState.js.map +1 -1
  23. package/dist-esm/Config/DynamicSupport.js +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 +2 -2
  31. package/dist-esm/JavaScriptSDK/AppInsightsCore.js.map +1 -1
  32. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +1 -1
  33. package/dist-esm/JavaScriptSDK/Constants.js +1 -1
  34. package/dist-esm/JavaScriptSDK/CookieMgr.js +17 -15
  35. package/dist-esm/JavaScriptSDK/CookieMgr.js.map +1 -1
  36. package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -1
  37. package/dist-esm/JavaScriptSDK/DataCacheHelper.js +2 -2
  38. package/dist-esm/JavaScriptSDK/DataCacheHelper.js.map +1 -1
  39. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  40. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
  41. package/dist-esm/JavaScriptSDK/EnvUtils.js +3 -3
  42. package/dist-esm/JavaScriptSDK/EnvUtils.js.map +1 -1
  43. package/dist-esm/JavaScriptSDK/EventHelpers.js +1 -1
  44. package/dist-esm/JavaScriptSDK/HelperFuncs.js +1 -10
  45. package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
  46. package/dist-esm/JavaScriptSDK/InstrumentHooks.js +1 -1
  47. package/dist-esm/JavaScriptSDK/InternalConstants.js +1 -1
  48. package/dist-esm/JavaScriptSDK/NotificationManager.js +1 -1
  49. package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
  50. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +1 -1
  51. package/dist-esm/JavaScriptSDK/RandomHelper.js +1 -1
  52. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +1 -1
  53. package/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
  54. package/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
  55. package/dist-esm/JavaScriptSDK/UnloadHookContainer.js +1 -1
  56. package/dist-esm/JavaScriptSDK/W3cTraceParent.js +6 -5
  57. package/dist-esm/JavaScriptSDK/W3cTraceParent.js.map +1 -1
  58. package/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
  59. package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  60. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  61. package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  62. package/dist-esm/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
  63. package/dist-esm/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
  64. package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  65. package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  66. package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  67. package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  68. package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  69. package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  70. package/dist-esm/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
  71. package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  72. package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  73. package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  74. package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  75. package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  76. package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  77. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  78. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  79. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  80. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  81. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
  82. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
  83. package/dist-esm/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
  84. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
  85. package/dist-esm/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
  86. package/dist-esm/__DynamicConstants.js +6 -5
  87. package/dist-esm/__DynamicConstants.js.map +1 -1
  88. package/dist-esm/applicationinsights-core-js.js +2 -1
  89. package/dist-esm/applicationinsights-core-js.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/JavaScriptSDK/CookieMgr.ts +14 -13
  92. package/src/JavaScriptSDK/HelperFuncs.ts +0 -11
  93. package/types/Config/ConfigDefaultHelpers.d.ts +47 -0
  94. package/types/Config/ConfigDefaults.d.ts +1 -2
  95. package/types/Config/IConfigDefaults.d.ts +24 -3
  96. package/types/__DynamicConstants.d.ts +2 -1
  97. package/types/applicationinsights-core-js.d.ts +1 -0
@@ -173,6 +173,24 @@ export abstract class BaseTelemetryPlugin implements ITelemetryPlugin {
173
173
  version?: string;
174
174
  }
175
175
 
176
+ // @public
177
+ export function cfgDfBoolean<T, C = IConfiguration>(defaultValue?: boolean, fallBackName?: keyof T | keyof C | Array<keyof T | keyof C>): IConfigDefaultCheck<T, boolean, C>;
178
+
179
+ // @public
180
+ export function cfgDfFunc<V, T, C = IConfiguration>(defaultValue?: V): IConfigDefaultCheck<T, V, C>;
181
+
182
+ // @public
183
+ export function cfgDfMerge<V, T = IConfiguration, C = IConfiguration>(defaultValue: V | IConfigDefaults<V, T>): IConfigDefaultCheck<T, V, C>;
184
+
185
+ // @public
186
+ export function cfgDfSet<V, T, C = IConfiguration>(setter: IConfigSetFn<T, V>, defaultValue: V): IConfigDefaultCheck<T, V, C>;
187
+
188
+ // @public
189
+ export function cfgDfString<T, C = IConfiguration>(defaultValue?: string): IConfigDefaultCheck<T, string, C>;
190
+
191
+ // @public
192
+ export function cfgDfValidate<V, T, C = IConfiguration>(validator: IConfigCheckFn<V>, defaultValue: V, fallBackName?: keyof T | keyof C | Array<keyof T | keyof C>): IConfigDefaultCheck<T, V, C>;
193
+
176
194
  // @public
177
195
  export function createClassFromInterface<T>(defaults?: T): new () => T;
178
196
 
@@ -591,16 +609,19 @@ export interface IChannelControls extends ITelemetryPlugin {
591
609
  export type IConfigCheckFn<V> = (value: V) => boolean;
592
610
 
593
611
  // @public
594
- export interface IConfigDefaultCheck<T, V, C extends IConfiguration = IConfiguration> {
612
+ export interface IConfigDefaultCheck<T, V, C = IConfiguration> {
595
613
  dfVal?: (value: any) => boolean;
596
614
  fb?: keyof T | keyof C | Array<keyof T | keyof C>;
597
615
  isVal?: IConfigCheckFn<V>;
616
+ mrg?: boolean;
617
+ rdOnly?: boolean;
618
+ ref?: boolean;
598
619
  set?: IConfigSetFn<T, V>;
599
- v?: V;
620
+ v?: V | IConfigDefaults<V, T>;
600
621
  }
601
622
 
602
623
  // @public
603
- export type IConfigDefaults<T, C extends IConfiguration = IConfiguration> = {
624
+ export type IConfigDefaults<T, C = IConfiguration> = {
604
625
  [key in keyof T]: T[key] | IConfigDefaultCheck<T, T[key], C>;
605
626
  };
606
627
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Microsoft Application Insights Core Javascript SDK, 3.0.0-beta.2302-04
2
+ * Microsoft Application Insights Core Javascript SDK, 3.0.0-beta.2302-05
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  *
5
5
  * Microsoft Application Insights Team
@@ -390,6 +390,57 @@ declare namespace ApplicationInsights {
390
390
  protected _addHook(hooks: IUnloadHook | IUnloadHook[] | Iterator<IUnloadHook> | ILegacyUnloadHook | ILegacyUnloadHook[] | Iterator<ILegacyUnloadHook>): void;
391
391
  }
392
392
 
393
+ /**
394
+ * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user
395
+ * provided value to a boolean from a string or boolean value
396
+ * @param validator - The IConfigCheckFn function to validate the user provided value
397
+ * @param defaultValue - The default value to apply it not provided or it's not valid
398
+ * @param fallBackName - The fallback configuration name if the current value is not available
399
+ * @returns a new IConfigDefaultCheck structure
400
+ */
401
+ function cfgDfBoolean<T, C = IConfiguration>(defaultValue?: boolean, fallBackName?: keyof T | keyof C | Array<keyof T | keyof C>): IConfigDefaultCheck<T, boolean, C>;
402
+
403
+ /**
404
+ * Helper which returns an IConfigDefaultCheck instance that will validate that the user
405
+ * provided value is a function.
406
+ * @param defaultValue - The default value to apply it not provided or it's not valid
407
+ * @returns a new IConfigDefaultCheck structure
408
+ */
409
+ function cfgDfFunc<V, T, C = IConfiguration>(defaultValue?: V): IConfigDefaultCheck<T, V, C>;
410
+
411
+ /**
412
+ * Helper which returns an IConfigDefaultCheck instance with the provided field validator
413
+ * @param validator - The IConfigCheckFn function to validate the user provided value
414
+ * @param defaultValue - The default value to apply it not provided or it's not valid
415
+ * @returns a new IConfigDefaultCheck structure
416
+ */
417
+ function cfgDfMerge<V, T = IConfiguration, C = IConfiguration>(defaultValue: V | IConfigDefaults<V, T>): IConfigDefaultCheck<T, V, C>;
418
+
419
+ /**
420
+ * Helper which returns an IConfigDefaultCheck instance with the provided field set function
421
+ * @param setter - The IConfigCheckFn function to validate the user provided value
422
+ * @param defaultValue - The default value to apply it not provided or it's not valid
423
+ * @returns a new IConfigDefaultCheck structure
424
+ */
425
+ function cfgDfSet<V, T, C = IConfiguration>(setter: IConfigSetFn<T, V>, defaultValue: V): IConfigDefaultCheck<T, V, C>;
426
+
427
+ /**
428
+ * Helper which returns an IConfigDefaultCheck instance that will validate that the user
429
+ * provided value is a function.
430
+ * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string
431
+ * @returns a new IConfigDefaultCheck structure
432
+ */
433
+ function cfgDfString<T, C = IConfiguration>(defaultValue?: string): IConfigDefaultCheck<T, string, C>;
434
+
435
+ /**
436
+ * Helper which returns an IConfigDefaultCheck instance with the provided field validator
437
+ * @param validator - The IConfigCheckFn function to validate the user provided value
438
+ * @param defaultValue - The default value to apply it not provided or it's not valid
439
+ * @param fallBackName - The fallback configuration name if the current value is not available
440
+ * @returns a new IConfigDefaultCheck structure
441
+ */
442
+ function cfgDfValidate<V, T, C = IConfiguration>(validator: IConfigCheckFn<V>, defaultValue: V, fallBackName?: keyof T | keyof C | Array<keyof T | keyof C>): IConfigDefaultCheck<T, V, C>;
443
+
393
444
  /**
394
445
  * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.
395
446
  * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance
@@ -1083,7 +1134,7 @@ declare namespace ApplicationInsights {
1083
1134
  /**
1084
1135
  * The default values with a check function
1085
1136
  */
1086
- interface IConfigDefaultCheck<T, V, C extends IConfiguration = IConfiguration> {
1137
+ interface IConfigDefaultCheck<T, V, C = IConfiguration> {
1087
1138
  /**
1088
1139
  * Callback function to check if the user-supplied value is valid, if not the default will be applied
1089
1140
  */
@@ -1095,7 +1146,7 @@ declare namespace ApplicationInsights {
1095
1146
  /**
1096
1147
  * The default value to apply if the user-supplied value is not valid
1097
1148
  */
1098
- v?: V;
1149
+ v?: V | IConfigDefaults<V, T>;
1099
1150
  /**
1100
1151
  * The default fallback key if the main key is not present, this is the key value from the config
1101
1152
  */
@@ -1105,13 +1156,34 @@ declare namespace ApplicationInsights {
1105
1156
  * therefore `null`; `""` are considered to be valid values.
1106
1157
  */
1107
1158
  dfVal?: (value: any) => boolean;
1159
+ /**
1160
+ * Specify that any provided value should have the default value(s) merged into the value rather than
1161
+ * just using either the default of user provided values. Mergeed objects will automatically be marked
1162
+ * as referenced.
1163
+ */
1164
+ mrg?: boolean;
1165
+ /**
1166
+ * Set this field of the target as referenced, which will cause any object or array instance
1167
+ * to be updated in-place rather than being entirely replaced. All other values will continue to be replaced.
1168
+ * This is required for nested default objects to avoid multiple repetitive updates to listeners
1169
+ * @returns The referenced properties current value
1170
+ */
1171
+ ref?: boolean;
1172
+ /**
1173
+ * Set this field of the target as read-only, which will block this single named property from
1174
+ * ever being changed for the target instance.
1175
+ * This does NOT freeze or seal the instance, it just stops the direct re-assignment of the named property,
1176
+ * if the value is a non-primitive (ie. an object or array) it's properties will still be mutable.
1177
+ * @returns The referenced properties current value
1178
+ */
1179
+ rdOnly?: boolean;
1108
1180
  }
1109
1181
 
1110
1182
  /**
1111
1183
  * The Type definition to define default values to be applied to the config
1112
1184
  * The value may be either the direct value or a ConfigDefaultCheck definition
1113
1185
  */
1114
- type IConfigDefaults<T, C extends IConfiguration = IConfiguration> = {
1186
+ type IConfigDefaults<T, C = IConfiguration> = {
1115
1187
  [key in keyof T]: T[key] | IConfigDefaultCheck<T, T[key], C>;
1116
1188
  };
1117
1189
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Core, 3.0.0-beta.2302-04
2
+ * Application Insights JavaScript SDK - Core, 3.0.0-beta.2302-05
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -528,7 +528,7 @@
528
528
  return new Date().getTime();
529
529
  }
530
530
 
531
- var _fnToString$1;
531
+ var _fnToString;
532
532
  var _objCtrFnString;
533
533
  var _gblWindow;
534
534
  function isPlainObject(value) {
@@ -541,8 +541,8 @@
541
541
  var result = false;
542
542
  if (value !== _gblWindow) {
543
543
  if (!_objCtrFnString) {
544
- _fnToString$1 = Function[PROTOTYPE].toString;
545
- _objCtrFnString = _fnToString$1.call(ObjClass$1);
544
+ _fnToString = Function[PROTOTYPE].toString;
545
+ _objCtrFnString = _fnToString.call(ObjClass$1);
546
546
  }
547
547
  try {
548
548
  var proto = objGetPrototypeOf(value);
@@ -551,7 +551,7 @@
551
551
  if (objHasOwnProperty(proto, CONSTRUCTOR)) {
552
552
  proto = proto[CONSTRUCTOR];
553
553
  }
554
- result = proto && typeof proto === FUNCTION && _fnToString$1.call(proto) === _objCtrFnString;
554
+ result = proto && typeof proto === FUNCTION && _fnToString.call(proto) === _objCtrFnString;
555
555
  }
556
556
  }
557
557
  catch (ex) {
@@ -828,7 +828,9 @@
828
828
  QueueFull: 5
829
829
  });
830
830
 
831
+ var _DYN_TO_LOWER_CASE = "toLowerCase";
831
832
  var _DYN_LENGTH = "length";
833
+ var _DYN_RD_ONLY = "rdOnly";
832
834
  var _DYN_NOTIFY = "notify";
833
835
  var _DYN_THROW_INTERNAL = "throwInternal";
834
836
  var _DYN_SET_DF = "setDf";
@@ -872,7 +874,6 @@
872
874
  var _DYN_REPLACE = "replace";
873
875
  var _DYN_ENABLE_DEBUG_EXCEPTI5 = "enableDebugExceptions";
874
876
  var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
875
- var _DYN_TO_LOWER_CASE = "toLowerCase";
876
877
  var _DYN_TYPE = "type";
877
878
  var _DYN_HANDLER = "handler";
878
879
  var _DYN_LISTENERS = "listeners";
@@ -1275,10 +1276,7 @@
1275
1276
  var STR_PATH = "path";
1276
1277
  var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
1277
1278
 
1278
- var strToString = "toString";
1279
1279
  var strGetPrototypeOf = "getPrototypeOf";
1280
- var _fnToString = ObjClass[strToString];
1281
- _fnToString.call(ObjClass);
1282
1280
  var rCamelCase = /-([a-z])/g;
1283
1281
  var rNormalizeInvalid = /([^\w\d_$])/g;
1284
1282
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
@@ -1568,7 +1566,7 @@
1568
1566
  if (userAgentStr === void 0) { userAgentStr = null; }
1569
1567
  if (!userAgentStr) {
1570
1568
  var navigator_1 = getNavigator() || {};
1571
- userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT ] || STR_EMPTY)[_DYN_TO_LOWER_CASE ]() : STR_EMPTY;
1569
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE ]() : STR_EMPTY;
1572
1570
  }
1573
1571
  var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE ]();
1574
1572
  if (strContains(ua, strMsie)) {
@@ -1586,7 +1584,7 @@
1586
1584
  function isSafari(userAgentStr) {
1587
1585
  if (!userAgentStr || !isString(userAgentStr)) {
1588
1586
  var navigator_2 = getNavigator() || {};
1589
- userAgentStr = navigator_2 ? (navigator_2[_DYN_USER_AGENT ] || STR_EMPTY)[_DYN_TO_LOWER_CASE ]() : STR_EMPTY;
1587
+ userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE ]() : STR_EMPTY;
1590
1588
  }
1591
1589
  var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE ]();
1592
1590
  return (strIndexOf(ua, "safari") >= 0);
@@ -1742,7 +1740,7 @@
1742
1740
  }
1743
1741
 
1744
1742
  var _objDefineProperty = ObjDefineProperty;
1745
- var version = "3.0.0-beta.2302-04";
1743
+ var version = "3.0.0-beta.2302-05";
1746
1744
  var instanceName = "." + newId(6);
1747
1745
  var _dataUid = 0;
1748
1746
  function _createAccessor(target, prop, value) {
@@ -1815,39 +1813,9 @@
1815
1813
  return data;
1816
1814
  }
1817
1815
 
1818
- var CFG_HANDLER_LINK = symbolFor("[[ai_dynCfg_1]]");
1819
- function _cfgDeepCopy(source) {
1820
- if (source) {
1821
- var target_1;
1822
- if (isArray(source)) {
1823
- target_1 = [];
1824
- target_1[_DYN_LENGTH ] = source[_DYN_LENGTH ];
1825
- }
1826
- else if (isPlainObject(source)) {
1827
- target_1 = {};
1828
- }
1829
- if (target_1) {
1830
- objForEachKey(source, function (key, value) {
1831
- target_1[key] = _cfgDeepCopy(value);
1832
- });
1833
- return target_1;
1834
- }
1835
- }
1836
- return source;
1837
- }
1838
- function getDynamicConfigHandler(value) {
1839
- if (value) {
1840
- var handler = value[CFG_HANDLER_LINK] || value;
1841
- if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {
1842
- return handler;
1843
- }
1844
- }
1845
- return null;
1846
- }
1847
- function throwInvalidAccess(message) {
1848
- throwTypeError$1("InvalidAccess:" + message);
1816
+ function _isConfigDefaults(value) {
1817
+ return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, "v") || objHasOwn(value, "mrg") || objHasOwn(value, "ref") || value.set));
1849
1818
  }
1850
-
1851
1819
  function _getDefault(dynamicHandler, theConfig, cfgDefaults) {
1852
1820
  var defValue;
1853
1821
  var isDefaultValid = cfgDefaults.dfVal || isDefined;
@@ -1862,7 +1830,7 @@
1862
1830
  if (isDefaultValid(fbValue)) {
1863
1831
  defValue = fbValue;
1864
1832
  }
1865
- else {
1833
+ else if (dynamicHandler) {
1866
1834
  fbValue = dynamicHandler.cfg[fallback];
1867
1835
  if (isDefaultValid(fbValue)) {
1868
1836
  defValue = fbValue;
@@ -1879,27 +1847,63 @@
1879
1847
  }
1880
1848
  return defValue;
1881
1849
  }
1850
+ function _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {
1851
+ var theValue = cfgDefaults;
1852
+ if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {
1853
+ theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);
1854
+ }
1855
+ if (theValue) {
1856
+ if (_isConfigDefaults(theValue)) {
1857
+ theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);
1858
+ }
1859
+ var newValue_1;
1860
+ if (isArray(theValue)) {
1861
+ newValue_1 = [];
1862
+ newValue_1[_DYN_LENGTH ] = theValue[_DYN_LENGTH ];
1863
+ }
1864
+ else if (isPlainObject(theValue)) {
1865
+ newValue_1 = {};
1866
+ }
1867
+ if (newValue_1) {
1868
+ objForEachKey(theValue, function (key, value) {
1869
+ if (value && _isConfigDefaults(value)) {
1870
+ value = _resolveDefaultValue(dynamicHandler, theConfig, value);
1871
+ }
1872
+ newValue_1[key] = value;
1873
+ });
1874
+ theValue = newValue_1;
1875
+ }
1876
+ }
1877
+ return theValue;
1878
+ }
1882
1879
  function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {
1883
1880
  var isValid;
1884
1881
  var setFn;
1885
1882
  var defValue;
1886
1883
  var cfgDefaults = defaultValue;
1887
- if (cfgDefaults && isObject(cfgDefaults) && (cfgDefaults.isVal || cfgDefaults.set || cfgDefaults.fb || objHasOwn(cfgDefaults, "v"))) {
1884
+ var mergeDf;
1885
+ var reference;
1886
+ var readOnly;
1887
+ if (_isConfigDefaults(cfgDefaults)) {
1888
1888
  isValid = cfgDefaults.isVal;
1889
1889
  setFn = cfgDefaults.set;
1890
+ readOnly = cfgDefaults[_DYN_RD_ONLY ];
1891
+ mergeDf = cfgDefaults.mrg;
1892
+ reference = cfgDefaults.ref;
1893
+ if (!reference && isUndefined(reference)) {
1894
+ reference = !!mergeDf;
1895
+ }
1890
1896
  defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);
1891
1897
  }
1892
1898
  else {
1893
1899
  defValue = defaultValue;
1894
1900
  }
1895
- var theValue = defValue;
1901
+ var theValue;
1896
1902
  var usingDefault = true;
1897
1903
  var cfgValue = theConfig[name];
1898
1904
  if (cfgValue || !isNullOrUndefined(cfgValue)) {
1899
1905
  theValue = cfgValue;
1900
1906
  usingDefault = false;
1901
- }
1902
- if (!usingDefault) {
1903
1907
  if (isValid && theValue !== defValue && !isValid(theValue)) {
1904
1908
  theValue = defValue;
1905
1909
  usingDefault = true;
@@ -1909,10 +1913,61 @@
1909
1913
  usingDefault = theValue === defValue;
1910
1914
  }
1911
1915
  }
1912
- if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {
1913
- theValue = _cfgDeepCopy(theValue);
1916
+ if (!usingDefault) {
1917
+ if (isPlainObject(theValue) || isArray(defValue)) {
1918
+ if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {
1919
+ objForEachKey(defValue, function (dfName, dfValue) {
1920
+ _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);
1921
+ });
1922
+ }
1923
+ }
1924
+ }
1925
+ else if (defValue) {
1926
+ theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);
1927
+ }
1928
+ else {
1929
+ theValue = defValue;
1914
1930
  }
1915
1931
  dynamicHandler.set(theConfig, name, theValue);
1932
+ if (reference) {
1933
+ dynamicHandler.ref(theConfig, name);
1934
+ }
1935
+ if (readOnly) {
1936
+ dynamicHandler[_DYN_RD_ONLY ](theConfig, name);
1937
+ }
1938
+ }
1939
+
1940
+ var CFG_HANDLER_LINK = symbolFor("[[ai_dynCfg_1]]");
1941
+ function _cfgDeepCopy(source) {
1942
+ if (source) {
1943
+ var target_1;
1944
+ if (isArray(source)) {
1945
+ target_1 = [];
1946
+ target_1[_DYN_LENGTH ] = source[_DYN_LENGTH ];
1947
+ }
1948
+ else if (isPlainObject(source)) {
1949
+ target_1 = {};
1950
+ }
1951
+ if (target_1) {
1952
+ objForEachKey(source, function (key, value) {
1953
+ target_1[key] = _cfgDeepCopy(value);
1954
+ });
1955
+ return target_1;
1956
+ }
1957
+ }
1958
+ return source;
1959
+ }
1960
+ function getDynamicConfigHandler(value) {
1961
+ if (value) {
1962
+ var handler = value[CFG_HANDLER_LINK] || value;
1963
+ if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {
1964
+ return handler;
1965
+ }
1966
+ }
1967
+ return null;
1968
+ }
1969
+ function throwInvalidAccess(message) {
1970
+ throwTypeError$1("InvalidAccess:" + message);
1916
1971
  }
1917
1972
 
1918
1973
  var arrayMethodsToPatch = [
@@ -2092,7 +2147,7 @@
2092
2147
  set: cfgHandler.set.bind(cfgHandler),
2093
2148
  setDf: cfgHandler[_DYN_SET_DF ].bind(cfgHandler),
2094
2149
  ref: cfgHandler.ref.bind(cfgHandler),
2095
- rdOnly: cfgHandler.rdOnly.bind(cfgHandler)
2150
+ rdOnly: cfgHandler[_DYN_RD_ONLY ].bind(cfgHandler)
2096
2151
  });
2097
2152
  }
2098
2153
  catch (e) {
@@ -2242,7 +2297,7 @@
2242
2297
  _a[_DYN_SET_DF ] = _applyDefaults,
2243
2298
  _a[_DYN_WATCH ] = _watch,
2244
2299
  _a.ref = _ref,
2245
- _a.rdOnly = _rdOnly,
2300
+ _a[_DYN_RD_ONLY ] = _rdOnly,
2246
2301
  _a._block = _block,
2247
2302
  _a);
2248
2303
  objDefineProp(cfgHandler, "uid", (_b = {},
@@ -2282,6 +2337,54 @@
2282
2337
 
2283
2338
  var ChannelControllerPriority = 500;
2284
2339
 
2340
+ function _stringToBoolOrDefault(theValue, defaultValue, theConfig) {
2341
+ if (!theValue && isNullOrUndefined(theValue)) {
2342
+ return defaultValue;
2343
+ }
2344
+ if (isBoolean(theValue)) {
2345
+ return theValue;
2346
+ }
2347
+ return asString(theValue)[_DYN_TO_LOWER_CASE ]() === "true";
2348
+ }
2349
+ function cfgDfMerge(defaultValue) {
2350
+ return {
2351
+ mrg: true,
2352
+ v: defaultValue
2353
+ };
2354
+ }
2355
+ function cfgDfSet(setter, defaultValue) {
2356
+ return {
2357
+ set: setter,
2358
+ v: defaultValue
2359
+ };
2360
+ }
2361
+ function cfgDfValidate(validator, defaultValue, fallBackName) {
2362
+ return {
2363
+ fb: fallBackName,
2364
+ isVal: validator,
2365
+ v: defaultValue
2366
+ };
2367
+ }
2368
+ function cfgDfBoolean(defaultValue, fallBackName) {
2369
+ return {
2370
+ fb: fallBackName,
2371
+ set: _stringToBoolOrDefault,
2372
+ v: !!defaultValue
2373
+ };
2374
+ }
2375
+ function cfgDfFunc(defaultValue) {
2376
+ return {
2377
+ isVal: isFunction,
2378
+ v: defaultValue || null
2379
+ };
2380
+ }
2381
+ function cfgDfString(defaultValue) {
2382
+ return {
2383
+ isVal: isString,
2384
+ v: asString(defaultValue || STR_EMPTY)
2385
+ };
2386
+ }
2387
+
2285
2388
  var listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];
2286
2389
  var _aiNamespace = null;
2287
2390
  var _debugListener;
@@ -2512,18 +2615,19 @@
2512
2615
  var _doc = getDocument();
2513
2616
  var _cookieCache = {};
2514
2617
  var _globalCookieConfig = {};
2515
- var defaultConfig$1 = objDeepFreeze((_a$2 = {},
2516
- _a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
2517
- _a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
2518
- _a$2.enabled = UNDEFINED_VALUE,
2519
- _a$2));
2520
- var rootDefaultConfig = (_b = {
2521
- cookieCfg: {},
2618
+ var rootDefaultConfig = (_a$2 = {
2619
+ cookieCfg: cfgDfMerge((_b = {},
2620
+ _b[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
2621
+ _b.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
2622
+ _b.enabled = UNDEFINED_VALUE,
2623
+ _b.ignoreCookies = UNDEFINED_VALUE,
2624
+ _b.blockedCookies = UNDEFINED_VALUE,
2625
+ _b)),
2522
2626
  cookieDomain: UNDEFINED_VALUE,
2523
2627
  cookiePath: UNDEFINED_VALUE
2524
2628
  },
2525
- _b[strDisableCookiesUsage] = UNDEFINED_VALUE,
2526
- _b);
2629
+ _a$2[strDisableCookiesUsage] = UNDEFINED_VALUE,
2630
+ _a$2);
2527
2631
  function _gblCookieMgr(config, logger) {
2528
2632
  var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
2529
2633
  if (!inst) {
@@ -2582,7 +2686,7 @@
2582
2686
  rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
2583
2687
  onConfigChange(rootConfig, function (details) {
2584
2688
  details[_DYN_SET_DF ](details.cfg, rootDefaultConfig);
2585
- cookieMgrConfig = details[_DYN_SET_DF ](details.cfg.cookieCfg, defaultConfig$1);
2689
+ cookieMgrConfig = details.ref(details.cfg, "cookieCfg");
2586
2690
  var isEnabled = cookieMgrConfig.enabled;
2587
2691
  if (isNullOrUndefined(isEnabled)) {
2588
2692
  var cookieEnabled = void 0;
@@ -3074,10 +3178,11 @@
3074
3178
  match[3] === INVALID_SPAN_ID) {
3075
3179
  return null;
3076
3180
  }
3077
- return _a = {},
3078
- _a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
3079
- _a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
3080
- _a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
3181
+ return _a = {
3182
+ version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
3183
+ traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE ](),
3184
+ spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE ]()
3185
+ },
3081
3186
  _a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
3082
3187
  _a;
3083
3188
  }
@@ -4510,7 +4615,7 @@
4510
4615
  var item = (_a = {},
4511
4616
  _a[_DYN_NAME ] = _internalLogsEventName ? _internalLogsEventName : "InternalMessageId: " + logMessage[_DYN_MESSAGE_ID ],
4512
4617
  _a.iKey = _instrumentationKey,
4513
- _a.time = toISOString(new Date()),
4618
+ _a[_DYN_TIME ] = toISOString(new Date()),
4514
4619
  _a.baseType = _InternalLogMessage.dataType,
4515
4620
  _a.baseData = { message: logMessage[_DYN_MESSAGE ] },
4516
4621
  _a);
@@ -5144,6 +5249,12 @@
5144
5249
  exports.arrReduce = arrReduce;
5145
5250
  exports.asString = asString;
5146
5251
  exports.attachEvent = attachEvent;
5252
+ exports.cfgDfBoolean = cfgDfBoolean;
5253
+ exports.cfgDfFunc = cfgDfFunc;
5254
+ exports.cfgDfMerge = cfgDfMerge;
5255
+ exports.cfgDfSet = cfgDfSet;
5256
+ exports.cfgDfString = cfgDfString;
5257
+ exports.cfgDfValidate = cfgDfValidate;
5147
5258
  exports.createClassFromInterface = createClassFromInterface;
5148
5259
  exports.createCookieMgr = createCookieMgr;
5149
5260
  exports.createDynamicConfig = createDynamicConfig;