@microsoft/applicationinsights-common 3.0.0-beta.2210-19 → 3.0.0-beta.2211-01

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 (107) hide show
  1. package/browser/applicationinsights-common.integrity.json +9 -9
  2. package/browser/applicationinsights-common.js +399 -174
  3. package/browser/applicationinsights-common.js.map +1 -1
  4. package/browser/applicationinsights-common.min.js +2 -2
  5. package/browser/applicationinsights-common.min.js.map +1 -1
  6. package/dist/applicationinsights-common.api.json +2049 -1177
  7. package/dist/applicationinsights-common.api.md +65 -0
  8. package/dist/applicationinsights-common.d.ts +118 -1
  9. package/dist/applicationinsights-common.js +399 -174
  10. package/dist/applicationinsights-common.js.map +1 -1
  11. package/dist/applicationinsights-common.min.js +2 -2
  12. package/dist/applicationinsights-common.min.js.map +1 -1
  13. package/dist/applicationinsights-common.rollup.d.ts +118 -1
  14. package/dist-esm/ConnectionStringParser.js +1 -1
  15. package/dist-esm/Constants.js +1 -1
  16. package/dist-esm/DomHelperFuncs.js +1 -1
  17. package/dist-esm/Enums.js +1 -1
  18. package/dist-esm/HelperFuncs.js +1 -1
  19. package/dist-esm/Interfaces/ConnectionString.js +1 -1
  20. package/dist-esm/Interfaces/Context/IApplication.js +1 -1
  21. package/dist-esm/Interfaces/Context/IDevice.js +1 -1
  22. package/dist-esm/Interfaces/Context/IInternal.js +1 -1
  23. package/dist-esm/Interfaces/Context/ILocation.js +1 -1
  24. package/dist-esm/Interfaces/Context/IOperatingSystem.js +1 -1
  25. package/dist-esm/Interfaces/Context/ISample.js +1 -1
  26. package/dist-esm/Interfaces/Context/ISession.js +1 -1
  27. package/dist-esm/Interfaces/Context/ITelemetryTrace.js +1 -1
  28. package/dist-esm/Interfaces/Context/IUser.js +1 -1
  29. package/dist-esm/Interfaces/Context/IWeb.js +1 -1
  30. package/dist-esm/Interfaces/Contracts/AvailabilityData.js +1 -1
  31. package/dist-esm/Interfaces/Contracts/ContextTagKeys.js +1 -1
  32. package/dist-esm/Interfaces/Contracts/DataPointType.js +1 -1
  33. package/dist-esm/Interfaces/Contracts/DependencyKind.js +1 -1
  34. package/dist-esm/Interfaces/Contracts/DependencySourceType.js +1 -1
  35. package/dist-esm/Interfaces/Contracts/IBase.js +1 -1
  36. package/dist-esm/Interfaces/Contracts/IData.js +1 -1
  37. package/dist-esm/Interfaces/Contracts/IDataPoint.js +1 -1
  38. package/dist-esm/Interfaces/Contracts/IDomain.js +1 -1
  39. package/dist-esm/Interfaces/Contracts/IEnvelope.js +1 -1
  40. package/dist-esm/Interfaces/Contracts/IEventData.js +1 -1
  41. package/dist-esm/Interfaces/Contracts/IExceptionData.js +1 -1
  42. package/dist-esm/Interfaces/Contracts/IExceptionDetails.js +1 -1
  43. package/dist-esm/Interfaces/Contracts/IMessageData.js +1 -1
  44. package/dist-esm/Interfaces/Contracts/IMetricData.js +1 -1
  45. package/dist-esm/Interfaces/Contracts/IPageViewData.js +1 -1
  46. package/dist-esm/Interfaces/Contracts/IPageViewPerfData.js +1 -1
  47. package/dist-esm/Interfaces/Contracts/IRemoteDependencyData.js +1 -1
  48. package/dist-esm/Interfaces/Contracts/IStackFrame.js +1 -1
  49. package/dist-esm/Interfaces/Contracts/RequestData.js +1 -1
  50. package/dist-esm/Interfaces/Contracts/SeverityLevel.js +1 -1
  51. package/dist-esm/Interfaces/IAppInsights.js +1 -1
  52. package/dist-esm/Interfaces/IChannelControlsAI.js +1 -1
  53. package/dist-esm/Interfaces/IConfig.js +1 -1
  54. package/dist-esm/Interfaces/ICorrelationConfig.js +1 -1
  55. package/dist-esm/Interfaces/IDependencyTelemetry.js +1 -1
  56. package/dist-esm/Interfaces/IEventTelemetry.js +1 -1
  57. package/dist-esm/Interfaces/IExceptionTelemetry.js +1 -1
  58. package/dist-esm/Interfaces/IMetricTelemetry.js +1 -1
  59. package/dist-esm/Interfaces/IPageViewPerformanceTelemetry.js +1 -1
  60. package/dist-esm/Interfaces/IPageViewTelemetry.js +1 -1
  61. package/dist-esm/Interfaces/IPartC.js +1 -1
  62. package/dist-esm/Interfaces/IPropertiesPlugin.js +1 -1
  63. package/dist-esm/Interfaces/IRequestContext.js +1 -1
  64. package/dist-esm/Interfaces/ITelemetryContext.js +1 -1
  65. package/dist-esm/Interfaces/IThrottleMgr.js +6 -0
  66. package/dist-esm/Interfaces/IThrottleMgr.js.map +1 -0
  67. package/dist-esm/Interfaces/ITraceTelemetry.js +1 -1
  68. package/dist-esm/Interfaces/PartAExtensions.js +1 -1
  69. package/dist-esm/Interfaces/Telemetry/IEnvelope.js +1 -1
  70. package/dist-esm/Interfaces/Telemetry/ISerializable.js +1 -1
  71. package/dist-esm/RequestResponseHeaders.js +1 -1
  72. package/dist-esm/StorageHelperFuncs.js +1 -1
  73. package/dist-esm/Telemetry/Common/Data.js +1 -1
  74. package/dist-esm/Telemetry/Common/DataPoint.js +1 -1
  75. package/dist-esm/Telemetry/Common/DataSanitizer.js +1 -1
  76. package/dist-esm/Telemetry/Common/Envelope.js +1 -1
  77. package/dist-esm/Telemetry/Event.js +1 -1
  78. package/dist-esm/Telemetry/Exception.js +4 -4
  79. package/dist-esm/Telemetry/Exception.js.map +1 -1
  80. package/dist-esm/Telemetry/Metric.js +3 -3
  81. package/dist-esm/Telemetry/Metric.js.map +1 -1
  82. package/dist-esm/Telemetry/PageView.js +1 -1
  83. package/dist-esm/Telemetry/PageViewPerformance.js +1 -1
  84. package/dist-esm/Telemetry/RemoteDependencyData.js +1 -1
  85. package/dist-esm/Telemetry/Trace.js +1 -1
  86. package/dist-esm/TelemetryItemCreator.js +1 -1
  87. package/dist-esm/ThrottleMgr.js +259 -0
  88. package/dist-esm/ThrottleMgr.js.map +1 -0
  89. package/dist-esm/UrlHelperFuncs.js +1 -1
  90. package/dist-esm/Util.js +4 -4
  91. package/dist-esm/Util.js.map +1 -1
  92. package/dist-esm/__DynamicConstants.js +16 -10
  93. package/dist-esm/__DynamicConstants.js.map +1 -1
  94. package/dist-esm/applicationinsights-common.js +2 -1
  95. package/dist-esm/applicationinsights-common.js.map +1 -1
  96. package/package.json +5 -4
  97. package/src/Enums.ts +6 -0
  98. package/src/Interfaces/IThrottleMgr.ts +109 -0
  99. package/src/ThrottleMgr.ts +285 -0
  100. package/src/__DynamicConstants.ts +15 -9
  101. package/src/applicationinsights-common.ts +3 -1
  102. package/types/Enums.d.ts +5 -0
  103. package/types/Interfaces/IThrottleMgr.d.ts +94 -0
  104. package/types/ThrottleMgr.d.ts +12 -0
  105. package/types/__DynamicConstants.d.ts +13 -7
  106. package/types/applicationinsights-common.d.ts +3 -1
  107. package/types/tsdoc-metadata.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Common, 3.0.0-beta.2210-19
2
+ * Application Insights JavaScript SDK - Common, 3.0.0-beta.2211-01
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -568,6 +568,7 @@
568
568
  var _DYN_SPLICE = "splice";
569
569
  var _DYN_NAME$1 = "name";
570
570
  var _DYN_CALL = "call";
571
+ var _DYN_VERSION = "version";
571
572
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
572
573
  var _DYN_MESSAGE_ID = "messageId";
573
574
  var _DYN_MESSAGE$1 = "message";
@@ -580,7 +581,6 @@
580
581
  var _DYN_TRACE_ID = "traceId";
581
582
  var _DYN_SPAN_ID = "spanId";
582
583
  var _DYN_TRACE_FLAGS = "traceFlags";
583
- var _DYN_VERSION = "version";
584
584
 
585
585
  var aggregationErrorType;
586
586
  function throwAggregationError(message, sourceErrors) {
@@ -968,6 +968,9 @@
968
968
  var rCamelCase = /-([a-z])/g;
969
969
  var rNormalizeInvalid = /([^\w\d_$])/g;
970
970
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
971
+ function isNotNullOrUndefined(value) {
972
+ return !isNullOrUndefined(value);
973
+ }
971
974
  function normalizeJsName(name) {
972
975
  var value = name;
973
976
  if (value && isString(value)) {
@@ -1106,6 +1109,12 @@
1106
1109
  catch (e) {
1107
1110
  }
1108
1111
  }
1112
+ function randomValue(maxValue) {
1113
+ if (maxValue > 0) {
1114
+ return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;
1115
+ }
1116
+ return 0;
1117
+ }
1109
1118
  function random32(signed) {
1110
1119
  var value = 0;
1111
1120
  var c = getCrypto() || getMsCrypto();
@@ -1153,7 +1162,7 @@
1153
1162
  return result;
1154
1163
  }
1155
1164
 
1156
- var version = "3.0.0-beta.2210-19";
1165
+ var version = "3.0.0-beta.2211-01";
1157
1166
  var instanceName = "." + newId(6);
1158
1167
  var _dataUid = 0;
1159
1168
  function createUniqueNamespace(name, includeVersion) {
@@ -1629,6 +1638,9 @@
1629
1638
  _InternalLogMessage.dataType = "MessageData";
1630
1639
  return _InternalLogMessage;
1631
1640
  }());
1641
+ function safeGetLogger(core, config) {
1642
+ return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
1643
+ }
1632
1644
  var DiagnosticLogger = /** @class */ (function () {
1633
1645
  function DiagnosticLogger(config) {
1634
1646
  this.identifier = "DiagnosticLogger";
@@ -1823,11 +1835,10 @@
1823
1835
  match[3] === INVALID_SPAN_ID) {
1824
1836
  return null;
1825
1837
  }
1826
- return _a = {
1827
- version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
1828
- traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
1829
- spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]()
1830
- },
1838
+ return _a = {},
1839
+ _a[_DYN_VERSION ] = (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
1840
+ _a.traceId = (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
1841
+ _a.spanId = (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
1831
1842
  _a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
1832
1843
  _a;
1833
1844
  }
@@ -1902,32 +1913,38 @@
1902
1913
  var _DYN_TO_LOWER_CASE = "toLowerCase";
1903
1914
  var _DYN_INGESTIONENDPOINT = "ingestionendpoint";
1904
1915
  var _DYN_TO_STRING = "toString";
1905
- var _DYN_REMOVE_ITEM = "removeItem";
1906
- var _DYN_NAME = "name";
1907
- var _DYN_PATHNAME = "pathname";
1908
- var _DYN_CORRELATION_HEADER_E0 = "correlationHeaderExcludePatterns";
1909
1916
  var _DYN_EXTENSION_CONFIG = "extensionConfig";
1910
1917
  var _DYN_EXCEPTIONS = "exceptions";
1911
1918
  var _DYN_PARSED_STACK = "parsedStack";
1919
+ var _DYN_REMOVE_ITEM = "removeItem";
1920
+ var _DYN_SUBSTRING = "substring";
1921
+ var _DYN_STRINGIFY = "stringify";
1922
+ var _DYN_NAME = "name";
1912
1923
  var _DYN_PROPERTIES = "properties";
1913
1924
  var _DYN_MEASUREMENTS = "measurements";
1914
- var _DYN_STRINGIFY = "stringify";
1915
1925
  var _DYN_MESSAGE = "message";
1916
1926
  var _DYN_SIZE_IN_BYTES = "sizeInBytes";
1917
1927
  var _DYN_TYPE_NAME = "typeName";
1918
1928
  var _DYN_SEVERITY_LEVEL = "severityLevel";
1919
1929
  var _DYN_PROBLEM_GROUP = "problemGroup";
1920
1930
  var _DYN_IS_MANUAL = "isManual";
1921
- var _DYN__CREATE_FROM_INTERFA1 = "CreateFromInterface";
1931
+ var _DYN__CREATE_FROM_INTERFA0 = "CreateFromInterface";
1922
1932
  var _DYN_HAS_FULL_STACK = "hasFullStack";
1923
1933
  var _DYN_LEVEL = "level";
1924
1934
  var _DYN_METHOD = "method";
1925
1935
  var _DYN_ASSEMBLY = "assembly";
1926
1936
  var _DYN_FILE_NAME = "fileName";
1927
1937
  var _DYN_LINE = "line";
1938
+ var _DYN_COUNT = "count";
1928
1939
  var _DYN_DURATION = "duration";
1929
1940
  var _DYN_RECEIVED_RESPONSE = "receivedResponse";
1930
- var _DYN_SUBSTRING = "substring";
1941
+ var _DYN_PRE_TRIGGER_DATE = "preTriggerDate";
1942
+ var _DYN_DISABLED = "disabled";
1943
+ var _DYN_DATE = "date";
1944
+ var _DYN_GET_UTCDATE = "getUTCDate";
1945
+ var _DYN_MAX_TIMES_PER_MONTH = "maxTimesPerMonth";
1946
+ var _DYN_PATHNAME = "pathname";
1947
+ var _DYN_CORRELATION_HEADER_E1 = "correlationHeaderExcludePatterns";
1931
1948
 
1932
1949
  function dataSanitizeKeyAndAddUniqueness(logger, key, map) {
1933
1950
  var origLength = key[_DYN_LENGTH ];
@@ -2135,9 +2152,9 @@
2135
2152
  if (!requestUrl || (config && config.disableCorrelationHeaders)) {
2136
2153
  return false;
2137
2154
  }
2138
- if (config && config[_DYN_CORRELATION_HEADER_E0 ]) {
2155
+ if (config && config[_DYN_CORRELATION_HEADER_E1 ]) {
2139
2156
  for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH ]; i++) {
2140
- if (config[_DYN_CORRELATION_HEADER_E0 ][i].test(requestUrl)) {
2157
+ if (config[_DYN_CORRELATION_HEADER_E1 ][i].test(requestUrl)) {
2141
2158
  return false;
2142
2159
  }
2143
2160
  }
@@ -2275,6 +2292,367 @@
2275
2292
  };
2276
2293
  }
2277
2294
 
2295
+ var StorageType = createEnumStyle({
2296
+ LocalStorage: 0 ,
2297
+ SessionStorage: 1
2298
+ });
2299
+ var DistributedTracingModes = createEnumStyle({
2300
+ AI: 0 ,
2301
+ AI_AND_W3C: 1 ,
2302
+ W3C: 2
2303
+ });
2304
+
2305
+ var _canUseLocalStorage = undefined;
2306
+ var _canUseSessionStorage = undefined;
2307
+ function _getLocalStorageObject() {
2308
+ if (utlCanUseLocalStorage()) {
2309
+ return _getVerifiedStorageObject(StorageType.LocalStorage);
2310
+ }
2311
+ return null;
2312
+ }
2313
+ function _getVerifiedStorageObject(storageType) {
2314
+ try {
2315
+ if (isNullOrUndefined(getGlobal())) {
2316
+ return null;
2317
+ }
2318
+ var uid = (new Date)[_DYN_TO_STRING ]();
2319
+ var storage = getInst(storageType === StorageType.LocalStorage ? "localStorage" : "sessionStorage");
2320
+ storage.setItem(uid, uid);
2321
+ var fail = storage.getItem(uid) !== uid;
2322
+ storage[_DYN_REMOVE_ITEM ](uid);
2323
+ if (!fail) {
2324
+ return storage;
2325
+ }
2326
+ }
2327
+ catch (exception) {
2328
+ }
2329
+ return null;
2330
+ }
2331
+ function _getSessionStorageObject() {
2332
+ if (utlCanUseSessionStorage()) {
2333
+ return _getVerifiedStorageObject(StorageType.SessionStorage);
2334
+ }
2335
+ return null;
2336
+ }
2337
+ function utlDisableStorage() {
2338
+ _canUseLocalStorage = false;
2339
+ _canUseSessionStorage = false;
2340
+ }
2341
+ function utlEnableStorage() {
2342
+ _canUseLocalStorage = utlCanUseLocalStorage(true);
2343
+ _canUseSessionStorage = utlCanUseSessionStorage(true);
2344
+ }
2345
+ function utlCanUseLocalStorage(reset) {
2346
+ if (reset || _canUseLocalStorage === undefined) {
2347
+ _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
2348
+ }
2349
+ return _canUseLocalStorage;
2350
+ }
2351
+ function utlGetLocalStorage(logger, name) {
2352
+ var storage = _getLocalStorageObject();
2353
+ if (storage !== null) {
2354
+ try {
2355
+ return storage.getItem(name);
2356
+ }
2357
+ catch (e) {
2358
+ _canUseLocalStorage = false;
2359
+ _throwInternal(logger, 2 , 1 , "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
2360
+ }
2361
+ }
2362
+ return null;
2363
+ }
2364
+ function utlSetLocalStorage(logger, name, data) {
2365
+ var storage = _getLocalStorageObject();
2366
+ if (storage !== null) {
2367
+ try {
2368
+ storage.setItem(name, data);
2369
+ return true;
2370
+ }
2371
+ catch (e) {
2372
+ _canUseLocalStorage = false;
2373
+ _throwInternal(logger, 2 , 3 , "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
2374
+ }
2375
+ }
2376
+ return false;
2377
+ }
2378
+ function utlRemoveStorage(logger, name) {
2379
+ var storage = _getLocalStorageObject();
2380
+ if (storage !== null) {
2381
+ try {
2382
+ storage[_DYN_REMOVE_ITEM ](name);
2383
+ return true;
2384
+ }
2385
+ catch (e) {
2386
+ _canUseLocalStorage = false;
2387
+ _throwInternal(logger, 2 , 5 , "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2388
+ }
2389
+ }
2390
+ return false;
2391
+ }
2392
+ function utlCanUseSessionStorage(reset) {
2393
+ if (reset || _canUseSessionStorage === undefined) {
2394
+ _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
2395
+ }
2396
+ return _canUseSessionStorage;
2397
+ }
2398
+ function utlGetSessionStorageKeys() {
2399
+ var keys = [];
2400
+ if (utlCanUseSessionStorage()) {
2401
+ objForEachKey(getInst("sessionStorage"), function (key) {
2402
+ keys.push(key);
2403
+ });
2404
+ }
2405
+ return keys;
2406
+ }
2407
+ function utlGetSessionStorage(logger, name) {
2408
+ var storage = _getSessionStorageObject();
2409
+ if (storage !== null) {
2410
+ try {
2411
+ return storage.getItem(name);
2412
+ }
2413
+ catch (e) {
2414
+ _canUseSessionStorage = false;
2415
+ _throwInternal(logger, 2 , 2 , "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2416
+ }
2417
+ }
2418
+ return null;
2419
+ }
2420
+ function utlSetSessionStorage(logger, name, data) {
2421
+ var storage = _getSessionStorageObject();
2422
+ if (storage !== null) {
2423
+ try {
2424
+ storage.setItem(name, data);
2425
+ return true;
2426
+ }
2427
+ catch (e) {
2428
+ _canUseSessionStorage = false;
2429
+ _throwInternal(logger, 2 , 4 , "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2430
+ }
2431
+ }
2432
+ return false;
2433
+ }
2434
+ function utlRemoveSessionStorage(logger, name) {
2435
+ var storage = _getSessionStorageObject();
2436
+ if (storage !== null) {
2437
+ try {
2438
+ storage[_DYN_REMOVE_ITEM ](name);
2439
+ return true;
2440
+ }
2441
+ catch (e) {
2442
+ _canUseSessionStorage = false;
2443
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2444
+ }
2445
+ }
2446
+ return false;
2447
+ }
2448
+
2449
+ var THROTTLE_STORAGE_PREFIX = "appInsightsThrottle";
2450
+ var ThrottleMgr = /** @class */ (function () {
2451
+ function ThrottleMgr(throttleMgr, core, namePrefix) {
2452
+ var _self = this;
2453
+ var _canUseLocalStorage;
2454
+ var _logger;
2455
+ var _config;
2456
+ var _localStorageName;
2457
+ var _localStorageObj;
2458
+ var _isTriggered;
2459
+ var _namePrefix;
2460
+ var _queue;
2461
+ var _isReady = false;
2462
+ _initConfig();
2463
+ _self.getConfig = function () {
2464
+ return _config;
2465
+ };
2466
+ _self.canThrottle = function () {
2467
+ return _canThrottle(_config, _canUseLocalStorage, _localStorageObj);
2468
+ };
2469
+ _self.isTriggered = function () {
2470
+ return _isTriggered;
2471
+ };
2472
+ _self.isReady = function () {
2473
+ return _isReady;
2474
+ };
2475
+ _self.flush = function () {
2476
+ try {
2477
+ if (_isReady && _queue[_DYN_LENGTH ] > 0) {
2478
+ arrForEach(_queue, function (item) {
2479
+ _self.sendMessage(item.msgID, item[_DYN_MESSAGE ], item.severity);
2480
+ });
2481
+ return true;
2482
+ }
2483
+ }
2484
+ catch (err) {
2485
+ }
2486
+ return false;
2487
+ };
2488
+ _self.onReadyState = function (isReady) {
2489
+ _isReady = isNullOrUndefined(isReady) ? true : isReady;
2490
+ return _self.flush();
2491
+ };
2492
+ _self.sendMessage = function (msgID, message, severity) {
2493
+ if (_isReady) {
2494
+ var isSampledIn = _canSampledIn();
2495
+ if (!isSampledIn) {
2496
+ return;
2497
+ }
2498
+ var canThrottle = _canThrottle(_config, _canUseLocalStorage, _localStorageObj);
2499
+ var throttled = false;
2500
+ var number = 0;
2501
+ try {
2502
+ if (canThrottle && !_isTriggered) {
2503
+ number = Math.min(_config.limit.maxSendNumber, _localStorageObj[_DYN_COUNT ] + 1);
2504
+ _localStorageObj[_DYN_COUNT ] = 0;
2505
+ throttled = true;
2506
+ _isTriggered = true;
2507
+ _localStorageObj[_DYN_PRE_TRIGGER_DATE ] = new Date();
2508
+ }
2509
+ else {
2510
+ _isTriggered = canThrottle;
2511
+ _localStorageObj[_DYN_COUNT ] += 1;
2512
+ }
2513
+ _resetLocalStorage(_logger, _localStorageName, _localStorageObj);
2514
+ for (var i = 0; i < number; i++) {
2515
+ _sendMessage(msgID, _logger, message, severity);
2516
+ }
2517
+ }
2518
+ catch (e) {
2519
+ }
2520
+ return {
2521
+ isThrottled: throttled,
2522
+ throttleNum: number
2523
+ };
2524
+ }
2525
+ else {
2526
+ _queue.push({
2527
+ msgID: msgID,
2528
+ message: message,
2529
+ severity: severity
2530
+ });
2531
+ }
2532
+ return null;
2533
+ };
2534
+ function _initConfig() {
2535
+ var _a, _b, _c, _d, _e;
2536
+ _canUseLocalStorage = utlCanUseLocalStorage();
2537
+ _logger = safeGetLogger(core);
2538
+ _isTriggered = false;
2539
+ _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : "";
2540
+ _queue = [];
2541
+ var configMgr = throttleMgr;
2542
+ _config = {};
2543
+ _config[_DYN_DISABLED ] = !!configMgr[_DYN_DISABLED ];
2544
+ _config.msgKey = configMgr.msgKey;
2545
+ var interval = {
2546
+ monthInterval: ((_a = configMgr.interval) === null || _a === void 0 ? void 0 : _a.monthInterval) || 3,
2547
+ dayInterval: ((_b = configMgr.interval) === null || _b === void 0 ? void 0 : _b.dayInterval) || 28,
2548
+ maxTimesPerMonth: ((_c = configMgr.interval) === null || _c === void 0 ? void 0 : _c.maxTimesPerMonth) || 1
2549
+ };
2550
+ _config.interval = interval;
2551
+ var limit = {
2552
+ samplingRate: ((_d = configMgr.limit) === null || _d === void 0 ? void 0 : _d.samplingRate) || 100,
2553
+ maxSendNumber: ((_e = configMgr.limit) === null || _e === void 0 ? void 0 : _e.maxSendNumber) || 1
2554
+ };
2555
+ _config.limit = limit;
2556
+ _localStorageName = _getLocalStorageName(_config.msgKey, _namePrefix);
2557
+ if (_canUseLocalStorage && _localStorageName) {
2558
+ _localStorageObj = _getLocalStorageObj(utlGetLocalStorage(_logger, _localStorageName), _logger, _localStorageName);
2559
+ }
2560
+ if (_localStorageObj) {
2561
+ _isTriggered = _isTriggeredOnCurDate(_localStorageObj[_DYN_PRE_TRIGGER_DATE ]);
2562
+ }
2563
+ }
2564
+ function _canThrottle(config, canUseLocalStorage, localStorageObj) {
2565
+ if (!config[_DYN_DISABLED ] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {
2566
+ var curDate = _getThrottleDate();
2567
+ var date = localStorageObj[_DYN_DATE ];
2568
+ var interval = config.interval;
2569
+ var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();
2570
+ var monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);
2571
+ var dayCheck = _checkInterval(interval.dayInterval, 0, curDate[_DYN_GET_UTCDATE ]()) - 1;
2572
+ return monthCheck >= 0 && dayCheck >= 0 && dayCheck <= config.interval[_DYN_MAX_TIMES_PER_MONTH ];
2573
+ }
2574
+ return false;
2575
+ }
2576
+ function _getLocalStorageName(msgKey, prefix) {
2577
+ var fix = isNotNullOrUndefined(prefix) ? prefix : "";
2578
+ if (msgKey) {
2579
+ return THROTTLE_STORAGE_PREFIX + fix + "-" + msgKey;
2580
+ }
2581
+ return null;
2582
+ }
2583
+ function _isTriggeredOnCurDate(preTriggerDate) {
2584
+ try {
2585
+ if (preTriggerDate) {
2586
+ var curDate = new Date();
2587
+ return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&
2588
+ preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&
2589
+ preTriggerDate[_DYN_GET_UTCDATE ]() === curDate[_DYN_GET_UTCDATE ]();
2590
+ }
2591
+ }
2592
+ catch (e) {
2593
+ }
2594
+ return false;
2595
+ }
2596
+ function _getLocalStorageObj(value, logger, storageName) {
2597
+ try {
2598
+ var storageObj = {
2599
+ date: _getThrottleDate(),
2600
+ count: 0
2601
+ };
2602
+ if (value) {
2603
+ var obj = JSON.parse(value);
2604
+ return {
2605
+ date: _getThrottleDate(obj[_DYN_DATE ]) || storageObj[_DYN_DATE ],
2606
+ count: obj[_DYN_COUNT ] || storageObj[_DYN_COUNT ],
2607
+ preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE ]) : undefined
2608
+ };
2609
+ }
2610
+ else {
2611
+ _resetLocalStorage(logger, storageName, storageObj);
2612
+ return storageObj;
2613
+ }
2614
+ }
2615
+ catch (e) {
2616
+ }
2617
+ return null;
2618
+ }
2619
+ function _getThrottleDate(dateStr) {
2620
+ try {
2621
+ if (dateStr) {
2622
+ var date = new Date(dateStr);
2623
+ if (!isNaN(date.getDate())) {
2624
+ return date;
2625
+ }
2626
+ }
2627
+ else {
2628
+ return new Date();
2629
+ }
2630
+ }
2631
+ catch (e) {
2632
+ }
2633
+ return null;
2634
+ }
2635
+ function _resetLocalStorage(logger, storageName, obj) {
2636
+ try {
2637
+ return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY ](obj)));
2638
+ }
2639
+ catch (e) {
2640
+ }
2641
+ return false;
2642
+ }
2643
+ function _checkInterval(interval, start, current) {
2644
+ return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;
2645
+ }
2646
+ function _sendMessage(msgID, logger, message, severity) {
2647
+ _throwInternal(logger, severity || 1 , msgID, message);
2648
+ }
2649
+ function _canSampledIn() {
2650
+ return randomValue(1000000) <= _config.limit.samplingRate;
2651
+ }
2652
+ }
2653
+ return ThrottleMgr;
2654
+ }());
2655
+
2278
2656
  var _FIELDS_SEPARATOR = ";";
2279
2657
  var _FIELD_KEY_VALUE_SEPARATOR = "=";
2280
2658
  function parseConnectionString(connectionString) {
@@ -2651,7 +3029,7 @@
2651
3029
  };
2652
3030
  Exception.CreateFromInterface = function (logger, exception, properties, measurements) {
2653
3031
  var exceptions = exception[_DYN_EXCEPTIONS ]
2654
- && arrMap(exception[_DYN_EXCEPTIONS ], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 ](logger, ex); });
3032
+ && arrMap(exception[_DYN_EXCEPTIONS ], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA0 ](logger, ex); });
2655
3033
  var exceptionData = new Exception(logger, __assignFn(__assignFn({}, exception), { exceptions: exceptions }), properties, measurements);
2656
3034
  return exceptionData;
2657
3035
  };
@@ -2746,7 +3124,7 @@
2746
3124
  };
2747
3125
  _ExceptionDetails.CreateFromInterface = function (logger, exception) {
2748
3126
  var parsedStack = (exception[_DYN_PARSED_STACK ] instanceof Array
2749
- && arrMap(exception[_DYN_PARSED_STACK ], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 ](frame); }))
3127
+ && arrMap(exception[_DYN_PARSED_STACK ], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA0 ](frame); }))
2750
3128
  || exception[_DYN_PARSED_STACK ];
2751
3129
  var exceptionDetails = new _ExceptionDetails(logger, __assignFn(__assignFn({}, exception), { parsedStack: parsedStack }));
2752
3130
  return exceptionDetails;
@@ -2837,7 +3215,7 @@
2837
3215
  var _self = this;
2838
3216
  _self.ver = 2;
2839
3217
  var dataPoint = new DataPoint();
2840
- dataPoint.count = count > 0 ? count : undefined;
3218
+ dataPoint[_DYN_COUNT ] = count > 0 ? count : undefined;
2841
3219
  dataPoint.max = isNaN(max) || max === null ? undefined : max;
2842
3220
  dataPoint.min = isNaN(min) || min === null ? undefined : min;
2843
3221
  dataPoint[_DYN_NAME ] = dataSanitizeString(logger, name) || strNotSpecified;
@@ -3190,16 +3568,6 @@
3190
3568
  };
3191
3569
  var CtxTagKeys = new ContextTagKeys();
3192
3570
 
3193
- var StorageType = createEnumStyle({
3194
- LocalStorage: 0 ,
3195
- SessionStorage: 1
3196
- });
3197
- var DistributedTracingModes = createEnumStyle({
3198
- AI: 0 ,
3199
- AI_AND_W3C: 1 ,
3200
- W3C: 2
3201
- });
3202
-
3203
3571
  function createDomEvent(eventName) {
3204
3572
  var event = null;
3205
3573
  if (isFunction(Event)) {
@@ -3215,150 +3583,6 @@
3215
3583
  return event;
3216
3584
  }
3217
3585
 
3218
- var _canUseLocalStorage = undefined;
3219
- var _canUseSessionStorage = undefined;
3220
- function _getLocalStorageObject() {
3221
- if (utlCanUseLocalStorage()) {
3222
- return _getVerifiedStorageObject(StorageType.LocalStorage);
3223
- }
3224
- return null;
3225
- }
3226
- function _getVerifiedStorageObject(storageType) {
3227
- try {
3228
- if (isNullOrUndefined(getGlobal())) {
3229
- return null;
3230
- }
3231
- var uid = (new Date)[_DYN_TO_STRING ]();
3232
- var storage = getInst(storageType === StorageType.LocalStorage ? "localStorage" : "sessionStorage");
3233
- storage.setItem(uid, uid);
3234
- var fail = storage.getItem(uid) !== uid;
3235
- storage[_DYN_REMOVE_ITEM ](uid);
3236
- if (!fail) {
3237
- return storage;
3238
- }
3239
- }
3240
- catch (exception) {
3241
- }
3242
- return null;
3243
- }
3244
- function _getSessionStorageObject() {
3245
- if (utlCanUseSessionStorage()) {
3246
- return _getVerifiedStorageObject(StorageType.SessionStorage);
3247
- }
3248
- return null;
3249
- }
3250
- function utlDisableStorage() {
3251
- _canUseLocalStorage = false;
3252
- _canUseSessionStorage = false;
3253
- }
3254
- function utlEnableStorage() {
3255
- _canUseLocalStorage = utlCanUseLocalStorage(true);
3256
- _canUseSessionStorage = utlCanUseSessionStorage(true);
3257
- }
3258
- function utlCanUseLocalStorage(reset) {
3259
- if (reset || _canUseLocalStorage === undefined) {
3260
- _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
3261
- }
3262
- return _canUseLocalStorage;
3263
- }
3264
- function utlGetLocalStorage(logger, name) {
3265
- var storage = _getLocalStorageObject();
3266
- if (storage !== null) {
3267
- try {
3268
- return storage.getItem(name);
3269
- }
3270
- catch (e) {
3271
- _canUseLocalStorage = false;
3272
- _throwInternal(logger, 2 , 1 , "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
3273
- }
3274
- }
3275
- return null;
3276
- }
3277
- function utlSetLocalStorage(logger, name, data) {
3278
- var storage = _getLocalStorageObject();
3279
- if (storage !== null) {
3280
- try {
3281
- storage.setItem(name, data);
3282
- return true;
3283
- }
3284
- catch (e) {
3285
- _canUseLocalStorage = false;
3286
- _throwInternal(logger, 2 , 3 , "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
3287
- }
3288
- }
3289
- return false;
3290
- }
3291
- function utlRemoveStorage(logger, name) {
3292
- var storage = _getLocalStorageObject();
3293
- if (storage !== null) {
3294
- try {
3295
- storage[_DYN_REMOVE_ITEM ](name);
3296
- return true;
3297
- }
3298
- catch (e) {
3299
- _canUseLocalStorage = false;
3300
- _throwInternal(logger, 2 , 5 , "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
3301
- }
3302
- }
3303
- return false;
3304
- }
3305
- function utlCanUseSessionStorage(reset) {
3306
- if (reset || _canUseSessionStorage === undefined) {
3307
- _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
3308
- }
3309
- return _canUseSessionStorage;
3310
- }
3311
- function utlGetSessionStorageKeys() {
3312
- var keys = [];
3313
- if (utlCanUseSessionStorage()) {
3314
- objForEachKey(getInst("sessionStorage"), function (key) {
3315
- keys.push(key);
3316
- });
3317
- }
3318
- return keys;
3319
- }
3320
- function utlGetSessionStorage(logger, name) {
3321
- var storage = _getSessionStorageObject();
3322
- if (storage !== null) {
3323
- try {
3324
- return storage.getItem(name);
3325
- }
3326
- catch (e) {
3327
- _canUseSessionStorage = false;
3328
- _throwInternal(logger, 2 , 2 , "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
3329
- }
3330
- }
3331
- return null;
3332
- }
3333
- function utlSetSessionStorage(logger, name, data) {
3334
- var storage = _getSessionStorageObject();
3335
- if (storage !== null) {
3336
- try {
3337
- storage.setItem(name, data);
3338
- return true;
3339
- }
3340
- catch (e) {
3341
- _canUseSessionStorage = false;
3342
- _throwInternal(logger, 2 , 4 , "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
3343
- }
3344
- }
3345
- return false;
3346
- }
3347
- function utlRemoveSessionStorage(logger, name) {
3348
- var storage = _getSessionStorageObject();
3349
- if (storage !== null) {
3350
- try {
3351
- storage[_DYN_REMOVE_ITEM ](name);
3352
- return true;
3353
- }
3354
- catch (e) {
3355
- _canUseSessionStorage = false;
3356
- _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
3357
- }
3358
- }
3359
- return false;
3360
- }
3361
-
3362
3586
  var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
3363
3587
  var BreezeChannelIdentifier = "AppInsightsChannelPlugin";
3364
3588
  var AnalyticsPluginIdentifier = "ApplicationInsightsAnalytics";
@@ -3389,6 +3613,7 @@
3389
3613
  exports.SampleRate = SampleRate;
3390
3614
  exports.SeverityLevel = SeverityLevel;
3391
3615
  exports.TelemetryItemCreator = TelemetryItemCreator;
3616
+ exports.ThrottleMgr = ThrottleMgr;
3392
3617
  exports.Trace = Trace;
3393
3618
  exports.correlationIdCanIncludeCorrelationHeader = correlationIdCanIncludeCorrelationHeader;
3394
3619
  exports.correlationIdGetCorrelationContext = correlationIdGetCorrelationContext;