@microsoft/applicationinsights-common 3.0.0-beta.2210-18 → 3.0.0-beta.2210-21

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 (104) hide show
  1. package/browser/applicationinsights-common.integrity.json +9 -9
  2. package/browser/applicationinsights-common.js +385 -159
  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 +2048 -1176
  7. package/dist/applicationinsights-common.api.md +65 -0
  8. package/dist/applicationinsights-common.d.ts +118 -1
  9. package/dist/applicationinsights-common.js +385 -159
  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 +1 -1
  79. package/dist-esm/Telemetry/Metric.js +3 -3
  80. package/dist-esm/Telemetry/Metric.js.map +1 -1
  81. package/dist-esm/Telemetry/PageView.js +1 -1
  82. package/dist-esm/Telemetry/PageViewPerformance.js +1 -1
  83. package/dist-esm/Telemetry/RemoteDependencyData.js +1 -1
  84. package/dist-esm/Telemetry/Trace.js +1 -1
  85. package/dist-esm/TelemetryItemCreator.js +1 -1
  86. package/dist-esm/ThrottleMgr.js +259 -0
  87. package/dist-esm/ThrottleMgr.js.map +1 -0
  88. package/dist-esm/UrlHelperFuncs.js +1 -1
  89. package/dist-esm/Util.js +1 -1
  90. package/dist-esm/__DynamicConstants.js +10 -4
  91. package/dist-esm/__DynamicConstants.js.map +1 -1
  92. package/dist-esm/applicationinsights-common.js +2 -1
  93. package/dist-esm/applicationinsights-common.js.map +1 -1
  94. package/package.json +5 -4
  95. package/src/Enums.ts +6 -0
  96. package/src/Interfaces/IThrottleMgr.ts +109 -0
  97. package/src/ThrottleMgr.ts +285 -0
  98. package/src/__DynamicConstants.ts +9 -3
  99. package/src/applicationinsights-common.ts +3 -1
  100. package/types/Enums.d.ts +5 -0
  101. package/types/Interfaces/IThrottleMgr.d.ts +94 -0
  102. package/types/ThrottleMgr.d.ts +12 -0
  103. package/types/__DynamicConstants.d.ts +8 -2
  104. package/types/applicationinsights-common.d.ts +3 -1
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-common",
3
- "version": "3.0.0-beta.2210-18",
3
+ "version": "3.0.0-beta.2210-21",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-common.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-NlGJbZ+a+vNptqd+6ap47vW3ZBkHWf1eU4mw/HQtUFw= sha384-7hGvWmSe2T1jNvJVvoGKybQ6nC87WD008FoM+MtNAfqaRFAPCwXNqJbAb3Og+Rq/ sha512-nb+tn/3CIsIKWtesbJw3HcBBySfr90xpmhRVZD+dMtFcy/gxPtRf0Ql4vNrl3W0Q493MV80iY49jObbMOy4tNg==",
8
+ "integrity": "sha256-gHq6EyRSLwBhmZZUY5+D1R7C2IbWvHFJ+xi0flkv3Ro= sha384-hY8UwI6R7sqRlKqoe5j9xMhB0QTIXRF0aAt3vkzfBx8LRTxg6uS+VZR8daRG0+YR sha512-duqw2XfJpApJpP9ow2JGaFA/MlxqwwaxFeX+lxgTtmPXj97uxN+LfbNepDeYPu6VcIg2e6ou6/v9vL1cO1zliQ==",
9
9
  "hashes": {
10
- "sha256": "NlGJbZ+a+vNptqd+6ap47vW3ZBkHWf1eU4mw/HQtUFw=",
11
- "sha384": "7hGvWmSe2T1jNvJVvoGKybQ6nC87WD008FoM+MtNAfqaRFAPCwXNqJbAb3Og+Rq/",
12
- "sha512": "nb+tn/3CIsIKWtesbJw3HcBBySfr90xpmhRVZD+dMtFcy/gxPtRf0Ql4vNrl3W0Q493MV80iY49jObbMOy4tNg=="
10
+ "sha256": "gHq6EyRSLwBhmZZUY5+D1R7C2IbWvHFJ+xi0flkv3Ro=",
11
+ "sha384": "hY8UwI6R7sqRlKqoe5j9xMhB0QTIXRF0aAt3vkzfBx8LRTxg6uS+VZR8daRG0+YR",
12
+ "sha512": "duqw2XfJpApJpP9ow2JGaFA/MlxqwwaxFeX+lxgTtmPXj97uxN+LfbNepDeYPu6VcIg2e6ou6/v9vL1cO1zliQ=="
13
13
  }
14
14
  },
15
15
  "@min.js": {
16
16
  "file": "applicationinsights-common.min.js",
17
17
  "type": "text/javascript; charset=utf-8",
18
- "integrity": "sha256-ZdxGb4b2c5uSsfyNoflbxmgvMn0Uwi+b+i2dquVrIQE= sha384-3AgqpiOFW/HUxRpVX0L3+qYKm0lh2nSbVszU1J3ey3JlbH53aLH5CPV1jwd4ropG sha512-kzDXtBLjSpkyhjLOLndN5Khcd7uOsOEU4kOI/Na5hfh/5xHEy20Ck1PN0GlZPNr1xRmM3Gf3EXP1AfgHVo38vQ==",
18
+ "integrity": "sha256-fPtrpA7SlJZuyMsSza681H/tOQGtz4r0MkTRH/kb5NI= sha384-/E2HC82u8YhbZ39JsZdUKgOrebsoanRCfRPs4xarclnOmxX6zDtzUmz0c9ykUKve sha512-kyGI/kYqFXzRagyUVxN2aiyJsZsAJoMc0sxGd4MRMcMo+zReiEcnOz/rrpEB8c2tT6vNiml/DdV0zb5yTaioAw==",
19
19
  "hashes": {
20
- "sha256": "ZdxGb4b2c5uSsfyNoflbxmgvMn0Uwi+b+i2dquVrIQE=",
21
- "sha384": "3AgqpiOFW/HUxRpVX0L3+qYKm0lh2nSbVszU1J3ey3JlbH53aLH5CPV1jwd4ropG",
22
- "sha512": "kzDXtBLjSpkyhjLOLndN5Khcd7uOsOEU4kOI/Na5hfh/5xHEy20Ck1PN0GlZPNr1xRmM3Gf3EXP1AfgHVo38vQ=="
20
+ "sha256": "fPtrpA7SlJZuyMsSza681H/tOQGtz4r0MkTRH/kb5NI=",
21
+ "sha384": "/E2HC82u8YhbZ39JsZdUKgOrebsoanRCfRPs4xarclnOmxX6zDtzUmz0c9ykUKve",
22
+ "sha512": "kyGI/kYqFXzRagyUVxN2aiyJsZsAJoMc0sxGd4MRMcMo+zReiEcnOz/rrpEB8c2tT6vNiml/DdV0zb5yTaioAw=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Common, 3.0.0-beta.2210-18
2
+ * Application Insights JavaScript SDK - Common, 3.0.0-beta.2210-21
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -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-18";
1165
+ var version = "3.0.0-beta.2210-21";
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";
@@ -1904,6 +1916,14 @@
1904
1916
  var _DYN_TO_STRING = "toString";
1905
1917
  var _DYN_REMOVE_ITEM = "removeItem";
1906
1918
  var _DYN_NAME = "name";
1919
+ var _DYN_MESSAGE = "message";
1920
+ var _DYN_COUNT = "count";
1921
+ var _DYN_PRE_TRIGGER_DATE = "preTriggerDate";
1922
+ var _DYN_DISABLED = "disabled";
1923
+ var _DYN_DATE = "date";
1924
+ var _DYN_GET_UTCDATE = "getUTCDate";
1925
+ var _DYN_MAX_TIMES_PER_MONTH = "maxTimesPerMonth";
1926
+ var _DYN_STRINGIFY = "stringify";
1907
1927
  var _DYN_PATHNAME = "pathname";
1908
1928
  var _DYN_CORRELATION_HEADER_E0 = "correlationHeaderExcludePatterns";
1909
1929
  var _DYN_EXTENSION_CONFIG = "extensionConfig";
@@ -1911,8 +1931,6 @@
1911
1931
  var _DYN_PARSED_STACK = "parsedStack";
1912
1932
  var _DYN_PROPERTIES = "properties";
1913
1933
  var _DYN_MEASUREMENTS = "measurements";
1914
- var _DYN_STRINGIFY = "stringify";
1915
- var _DYN_MESSAGE = "message";
1916
1934
  var _DYN_SIZE_IN_BYTES = "sizeInBytes";
1917
1935
  var _DYN_TYPE_NAME = "typeName";
1918
1936
  var _DYN_SEVERITY_LEVEL = "severityLevel";
@@ -2275,6 +2293,367 @@
2275
2293
  };
2276
2294
  }
2277
2295
 
2296
+ var StorageType = createEnumStyle({
2297
+ LocalStorage: 0 ,
2298
+ SessionStorage: 1
2299
+ });
2300
+ var DistributedTracingModes = createEnumStyle({
2301
+ AI: 0 ,
2302
+ AI_AND_W3C: 1 ,
2303
+ W3C: 2
2304
+ });
2305
+
2306
+ var _canUseLocalStorage = undefined;
2307
+ var _canUseSessionStorage = undefined;
2308
+ function _getLocalStorageObject() {
2309
+ if (utlCanUseLocalStorage()) {
2310
+ return _getVerifiedStorageObject(StorageType.LocalStorage);
2311
+ }
2312
+ return null;
2313
+ }
2314
+ function _getVerifiedStorageObject(storageType) {
2315
+ try {
2316
+ if (isNullOrUndefined(getGlobal())) {
2317
+ return null;
2318
+ }
2319
+ var uid = (new Date)[_DYN_TO_STRING ]();
2320
+ var storage = getInst(storageType === StorageType.LocalStorage ? "localStorage" : "sessionStorage");
2321
+ storage.setItem(uid, uid);
2322
+ var fail = storage.getItem(uid) !== uid;
2323
+ storage[_DYN_REMOVE_ITEM ](uid);
2324
+ if (!fail) {
2325
+ return storage;
2326
+ }
2327
+ }
2328
+ catch (exception) {
2329
+ }
2330
+ return null;
2331
+ }
2332
+ function _getSessionStorageObject() {
2333
+ if (utlCanUseSessionStorage()) {
2334
+ return _getVerifiedStorageObject(StorageType.SessionStorage);
2335
+ }
2336
+ return null;
2337
+ }
2338
+ function utlDisableStorage() {
2339
+ _canUseLocalStorage = false;
2340
+ _canUseSessionStorage = false;
2341
+ }
2342
+ function utlEnableStorage() {
2343
+ _canUseLocalStorage = utlCanUseLocalStorage(true);
2344
+ _canUseSessionStorage = utlCanUseSessionStorage(true);
2345
+ }
2346
+ function utlCanUseLocalStorage(reset) {
2347
+ if (reset || _canUseLocalStorage === undefined) {
2348
+ _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);
2349
+ }
2350
+ return _canUseLocalStorage;
2351
+ }
2352
+ function utlGetLocalStorage(logger, name) {
2353
+ var storage = _getLocalStorageObject();
2354
+ if (storage !== null) {
2355
+ try {
2356
+ return storage.getItem(name);
2357
+ }
2358
+ catch (e) {
2359
+ _canUseLocalStorage = false;
2360
+ _throwInternal(logger, 2 , 1 , "Browser failed read of local storage. " + getExceptionName(e), { exception: dumpObj(e) });
2361
+ }
2362
+ }
2363
+ return null;
2364
+ }
2365
+ function utlSetLocalStorage(logger, name, data) {
2366
+ var storage = _getLocalStorageObject();
2367
+ if (storage !== null) {
2368
+ try {
2369
+ storage.setItem(name, data);
2370
+ return true;
2371
+ }
2372
+ catch (e) {
2373
+ _canUseLocalStorage = false;
2374
+ _throwInternal(logger, 2 , 3 , "Browser failed write to local storage. " + getExceptionName(e), { exception: dumpObj(e) });
2375
+ }
2376
+ }
2377
+ return false;
2378
+ }
2379
+ function utlRemoveStorage(logger, name) {
2380
+ var storage = _getLocalStorageObject();
2381
+ if (storage !== null) {
2382
+ try {
2383
+ storage[_DYN_REMOVE_ITEM ](name);
2384
+ return true;
2385
+ }
2386
+ catch (e) {
2387
+ _canUseLocalStorage = false;
2388
+ _throwInternal(logger, 2 , 5 , "Browser failed removal of local storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2389
+ }
2390
+ }
2391
+ return false;
2392
+ }
2393
+ function utlCanUseSessionStorage(reset) {
2394
+ if (reset || _canUseSessionStorage === undefined) {
2395
+ _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);
2396
+ }
2397
+ return _canUseSessionStorage;
2398
+ }
2399
+ function utlGetSessionStorageKeys() {
2400
+ var keys = [];
2401
+ if (utlCanUseSessionStorage()) {
2402
+ objForEachKey(getInst("sessionStorage"), function (key) {
2403
+ keys.push(key);
2404
+ });
2405
+ }
2406
+ return keys;
2407
+ }
2408
+ function utlGetSessionStorage(logger, name) {
2409
+ var storage = _getSessionStorageObject();
2410
+ if (storage !== null) {
2411
+ try {
2412
+ return storage.getItem(name);
2413
+ }
2414
+ catch (e) {
2415
+ _canUseSessionStorage = false;
2416
+ _throwInternal(logger, 2 , 2 , "Browser failed read of session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2417
+ }
2418
+ }
2419
+ return null;
2420
+ }
2421
+ function utlSetSessionStorage(logger, name, data) {
2422
+ var storage = _getSessionStorageObject();
2423
+ if (storage !== null) {
2424
+ try {
2425
+ storage.setItem(name, data);
2426
+ return true;
2427
+ }
2428
+ catch (e) {
2429
+ _canUseSessionStorage = false;
2430
+ _throwInternal(logger, 2 , 4 , "Browser failed write to session storage. " + getExceptionName(e), { exception: dumpObj(e) });
2431
+ }
2432
+ }
2433
+ return false;
2434
+ }
2435
+ function utlRemoveSessionStorage(logger, name) {
2436
+ var storage = _getSessionStorageObject();
2437
+ if (storage !== null) {
2438
+ try {
2439
+ storage[_DYN_REMOVE_ITEM ](name);
2440
+ return true;
2441
+ }
2442
+ catch (e) {
2443
+ _canUseSessionStorage = false;
2444
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
2445
+ }
2446
+ }
2447
+ return false;
2448
+ }
2449
+
2450
+ var THROTTLE_STORAGE_PREFIX = "appInsightsThrottle";
2451
+ var ThrottleMgr = /** @class */ (function () {
2452
+ function ThrottleMgr(throttleMgr, core, namePrefix) {
2453
+ var _self = this;
2454
+ var _canUseLocalStorage;
2455
+ var _logger;
2456
+ var _config;
2457
+ var _localStorageName;
2458
+ var _localStorageObj;
2459
+ var _isTriggered;
2460
+ var _namePrefix;
2461
+ var _queue;
2462
+ var _isReady = false;
2463
+ _initConfig();
2464
+ _self.getConfig = function () {
2465
+ return _config;
2466
+ };
2467
+ _self.canThrottle = function () {
2468
+ return _canThrottle(_config, _canUseLocalStorage, _localStorageObj);
2469
+ };
2470
+ _self.isTriggered = function () {
2471
+ return _isTriggered;
2472
+ };
2473
+ _self.isReady = function () {
2474
+ return _isReady;
2475
+ };
2476
+ _self.flush = function () {
2477
+ try {
2478
+ if (_isReady && _queue[_DYN_LENGTH ] > 0) {
2479
+ arrForEach(_queue, function (item) {
2480
+ _self.sendMessage(item.msgID, item[_DYN_MESSAGE ], item.severity);
2481
+ });
2482
+ return true;
2483
+ }
2484
+ }
2485
+ catch (err) {
2486
+ }
2487
+ return false;
2488
+ };
2489
+ _self.onReadyState = function (isReady) {
2490
+ _isReady = isNullOrUndefined(isReady) ? true : isReady;
2491
+ return _self.flush();
2492
+ };
2493
+ _self.sendMessage = function (msgID, message, severity) {
2494
+ if (_isReady) {
2495
+ var isSampledIn = _canSampledIn();
2496
+ if (!isSampledIn) {
2497
+ return;
2498
+ }
2499
+ var canThrottle = _canThrottle(_config, _canUseLocalStorage, _localStorageObj);
2500
+ var throttled = false;
2501
+ var number = 0;
2502
+ try {
2503
+ if (canThrottle && !_isTriggered) {
2504
+ number = Math.min(_config.limit.maxSendNumber, _localStorageObj[_DYN_COUNT ] + 1);
2505
+ _localStorageObj[_DYN_COUNT ] = 0;
2506
+ throttled = true;
2507
+ _isTriggered = true;
2508
+ _localStorageObj[_DYN_PRE_TRIGGER_DATE ] = new Date();
2509
+ }
2510
+ else {
2511
+ _isTriggered = canThrottle;
2512
+ _localStorageObj[_DYN_COUNT ] += 1;
2513
+ }
2514
+ _resetLocalStorage(_logger, _localStorageName, _localStorageObj);
2515
+ for (var i = 0; i < number; i++) {
2516
+ _sendMessage(msgID, _logger, message, severity);
2517
+ }
2518
+ }
2519
+ catch (e) {
2520
+ }
2521
+ return {
2522
+ isThrottled: throttled,
2523
+ throttleNum: number
2524
+ };
2525
+ }
2526
+ else {
2527
+ _queue.push({
2528
+ msgID: msgID,
2529
+ message: message,
2530
+ severity: severity
2531
+ });
2532
+ }
2533
+ return null;
2534
+ };
2535
+ function _initConfig() {
2536
+ var _a, _b, _c, _d, _e;
2537
+ _canUseLocalStorage = utlCanUseLocalStorage();
2538
+ _logger = safeGetLogger(core);
2539
+ _isTriggered = false;
2540
+ _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : "";
2541
+ _queue = [];
2542
+ var configMgr = throttleMgr;
2543
+ _config = {};
2544
+ _config[_DYN_DISABLED ] = !!configMgr[_DYN_DISABLED ];
2545
+ _config.msgKey = configMgr.msgKey;
2546
+ var interval = {
2547
+ monthInterval: ((_a = configMgr.interval) === null || _a === void 0 ? void 0 : _a.monthInterval) || 3,
2548
+ dayInterval: ((_b = configMgr.interval) === null || _b === void 0 ? void 0 : _b.dayInterval) || 28,
2549
+ maxTimesPerMonth: ((_c = configMgr.interval) === null || _c === void 0 ? void 0 : _c.maxTimesPerMonth) || 1
2550
+ };
2551
+ _config.interval = interval;
2552
+ var limit = {
2553
+ samplingRate: ((_d = configMgr.limit) === null || _d === void 0 ? void 0 : _d.samplingRate) || 100,
2554
+ maxSendNumber: ((_e = configMgr.limit) === null || _e === void 0 ? void 0 : _e.maxSendNumber) || 1
2555
+ };
2556
+ _config.limit = limit;
2557
+ _localStorageName = _getLocalStorageName(_config.msgKey, _namePrefix);
2558
+ if (_canUseLocalStorage && _localStorageName) {
2559
+ _localStorageObj = _getLocalStorageObj(utlGetLocalStorage(_logger, _localStorageName), _logger, _localStorageName);
2560
+ }
2561
+ if (_localStorageObj) {
2562
+ _isTriggered = _isTriggeredOnCurDate(_localStorageObj[_DYN_PRE_TRIGGER_DATE ]);
2563
+ }
2564
+ }
2565
+ function _canThrottle(config, canUseLocalStorage, localStorageObj) {
2566
+ if (!config[_DYN_DISABLED ] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {
2567
+ var curDate = _getThrottleDate();
2568
+ var date = localStorageObj[_DYN_DATE ];
2569
+ var interval = config.interval;
2570
+ var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();
2571
+ var monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);
2572
+ var dayCheck = _checkInterval(interval.dayInterval, 0, curDate[_DYN_GET_UTCDATE ]()) - 1;
2573
+ return monthCheck >= 0 && dayCheck >= 0 && dayCheck <= config.interval[_DYN_MAX_TIMES_PER_MONTH ];
2574
+ }
2575
+ return false;
2576
+ }
2577
+ function _getLocalStorageName(msgKey, prefix) {
2578
+ var fix = isNotNullOrUndefined(prefix) ? prefix : "";
2579
+ if (msgKey) {
2580
+ return THROTTLE_STORAGE_PREFIX + fix + "-" + msgKey;
2581
+ }
2582
+ return null;
2583
+ }
2584
+ function _isTriggeredOnCurDate(preTriggerDate) {
2585
+ try {
2586
+ if (preTriggerDate) {
2587
+ var curDate = new Date();
2588
+ return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&
2589
+ preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&
2590
+ preTriggerDate[_DYN_GET_UTCDATE ]() === curDate[_DYN_GET_UTCDATE ]();
2591
+ }
2592
+ }
2593
+ catch (e) {
2594
+ }
2595
+ return false;
2596
+ }
2597
+ function _getLocalStorageObj(value, logger, storageName) {
2598
+ try {
2599
+ var storageObj = {
2600
+ date: _getThrottleDate(),
2601
+ count: 0
2602
+ };
2603
+ if (value) {
2604
+ var obj = JSON.parse(value);
2605
+ return {
2606
+ date: _getThrottleDate(obj[_DYN_DATE ]) || storageObj[_DYN_DATE ],
2607
+ count: obj[_DYN_COUNT ] || storageObj[_DYN_COUNT ],
2608
+ preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE ]) : undefined
2609
+ };
2610
+ }
2611
+ else {
2612
+ _resetLocalStorage(logger, storageName, storageObj);
2613
+ return storageObj;
2614
+ }
2615
+ }
2616
+ catch (e) {
2617
+ }
2618
+ return null;
2619
+ }
2620
+ function _getThrottleDate(dateStr) {
2621
+ try {
2622
+ if (dateStr) {
2623
+ var date = new Date(dateStr);
2624
+ if (!isNaN(date.getDate())) {
2625
+ return date;
2626
+ }
2627
+ }
2628
+ else {
2629
+ return new Date();
2630
+ }
2631
+ }
2632
+ catch (e) {
2633
+ }
2634
+ return null;
2635
+ }
2636
+ function _resetLocalStorage(logger, storageName, obj) {
2637
+ try {
2638
+ return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY ](obj)));
2639
+ }
2640
+ catch (e) {
2641
+ }
2642
+ return false;
2643
+ }
2644
+ function _checkInterval(interval, start, current) {
2645
+ return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;
2646
+ }
2647
+ function _sendMessage(msgID, logger, message, severity) {
2648
+ _throwInternal(logger, severity || 1 , msgID, message);
2649
+ }
2650
+ function _canSampledIn() {
2651
+ return randomValue(1000000) <= _config.limit.samplingRate;
2652
+ }
2653
+ }
2654
+ return ThrottleMgr;
2655
+ }());
2656
+
2278
2657
  var _FIELDS_SEPARATOR = ";";
2279
2658
  var _FIELD_KEY_VALUE_SEPARATOR = "=";
2280
2659
  function parseConnectionString(connectionString) {
@@ -2837,7 +3216,7 @@
2837
3216
  var _self = this;
2838
3217
  _self.ver = 2;
2839
3218
  var dataPoint = new DataPoint();
2840
- dataPoint.count = count > 0 ? count : undefined;
3219
+ dataPoint[_DYN_COUNT ] = count > 0 ? count : undefined;
2841
3220
  dataPoint.max = isNaN(max) || max === null ? undefined : max;
2842
3221
  dataPoint.min = isNaN(min) || min === null ? undefined : min;
2843
3222
  dataPoint[_DYN_NAME ] = dataSanitizeString(logger, name) || strNotSpecified;
@@ -3190,16 +3569,6 @@
3190
3569
  };
3191
3570
  var CtxTagKeys = new ContextTagKeys();
3192
3571
 
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
3572
  function createDomEvent(eventName) {
3204
3573
  var event = null;
3205
3574
  if (isFunction(Event)) {
@@ -3215,150 +3584,6 @@
3215
3584
  return event;
3216
3585
  }
3217
3586
 
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
3587
  var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
3363
3588
  var BreezeChannelIdentifier = "AppInsightsChannelPlugin";
3364
3589
  var AnalyticsPluginIdentifier = "ApplicationInsightsAnalytics";
@@ -3389,6 +3614,7 @@
3389
3614
  exports.SampleRate = SampleRate;
3390
3615
  exports.SeverityLevel = SeverityLevel;
3391
3616
  exports.TelemetryItemCreator = TelemetryItemCreator;
3617
+ exports.ThrottleMgr = ThrottleMgr;
3392
3618
  exports.Trace = Trace;
3393
3619
  exports.correlationIdCanIncludeCorrelationHeader = correlationIdCanIncludeCorrelationHeader;
3394
3620
  exports.correlationIdGetCorrelationContext = correlationIdGetCorrelationContext;