@microsoft/applicationinsights-common 3.0.0-beta.2210-19 → 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.
- package/browser/applicationinsights-common.integrity.json +9 -9
- package/browser/applicationinsights-common.js +385 -159
- package/browser/applicationinsights-common.js.map +1 -1
- package/browser/applicationinsights-common.min.js +2 -2
- package/browser/applicationinsights-common.min.js.map +1 -1
- package/dist/applicationinsights-common.api.json +2048 -1176
- package/dist/applicationinsights-common.api.md +65 -0
- package/dist/applicationinsights-common.d.ts +118 -1
- package/dist/applicationinsights-common.js +385 -159
- package/dist/applicationinsights-common.js.map +1 -1
- package/dist/applicationinsights-common.min.js +2 -2
- package/dist/applicationinsights-common.min.js.map +1 -1
- package/dist/applicationinsights-common.rollup.d.ts +118 -1
- package/dist-esm/ConnectionStringParser.js +1 -1
- package/dist-esm/Constants.js +1 -1
- package/dist-esm/DomHelperFuncs.js +1 -1
- package/dist-esm/Enums.js +1 -1
- package/dist-esm/HelperFuncs.js +1 -1
- package/dist-esm/Interfaces/ConnectionString.js +1 -1
- package/dist-esm/Interfaces/Context/IApplication.js +1 -1
- package/dist-esm/Interfaces/Context/IDevice.js +1 -1
- package/dist-esm/Interfaces/Context/IInternal.js +1 -1
- package/dist-esm/Interfaces/Context/ILocation.js +1 -1
- package/dist-esm/Interfaces/Context/IOperatingSystem.js +1 -1
- package/dist-esm/Interfaces/Context/ISample.js +1 -1
- package/dist-esm/Interfaces/Context/ISession.js +1 -1
- package/dist-esm/Interfaces/Context/ITelemetryTrace.js +1 -1
- package/dist-esm/Interfaces/Context/IUser.js +1 -1
- package/dist-esm/Interfaces/Context/IWeb.js +1 -1
- package/dist-esm/Interfaces/Contracts/AvailabilityData.js +1 -1
- package/dist-esm/Interfaces/Contracts/ContextTagKeys.js +1 -1
- package/dist-esm/Interfaces/Contracts/DataPointType.js +1 -1
- package/dist-esm/Interfaces/Contracts/DependencyKind.js +1 -1
- package/dist-esm/Interfaces/Contracts/DependencySourceType.js +1 -1
- package/dist-esm/Interfaces/Contracts/IBase.js +1 -1
- package/dist-esm/Interfaces/Contracts/IData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IDataPoint.js +1 -1
- package/dist-esm/Interfaces/Contracts/IDomain.js +1 -1
- package/dist-esm/Interfaces/Contracts/IEnvelope.js +1 -1
- package/dist-esm/Interfaces/Contracts/IEventData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IExceptionData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IExceptionDetails.js +1 -1
- package/dist-esm/Interfaces/Contracts/IMessageData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IMetricData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IPageViewData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IPageViewPerfData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IRemoteDependencyData.js +1 -1
- package/dist-esm/Interfaces/Contracts/IStackFrame.js +1 -1
- package/dist-esm/Interfaces/Contracts/RequestData.js +1 -1
- package/dist-esm/Interfaces/Contracts/SeverityLevel.js +1 -1
- package/dist-esm/Interfaces/IAppInsights.js +1 -1
- package/dist-esm/Interfaces/IChannelControlsAI.js +1 -1
- package/dist-esm/Interfaces/IConfig.js +1 -1
- package/dist-esm/Interfaces/ICorrelationConfig.js +1 -1
- package/dist-esm/Interfaces/IDependencyTelemetry.js +1 -1
- package/dist-esm/Interfaces/IEventTelemetry.js +1 -1
- package/dist-esm/Interfaces/IExceptionTelemetry.js +1 -1
- package/dist-esm/Interfaces/IMetricTelemetry.js +1 -1
- package/dist-esm/Interfaces/IPageViewPerformanceTelemetry.js +1 -1
- package/dist-esm/Interfaces/IPageViewTelemetry.js +1 -1
- package/dist-esm/Interfaces/IPartC.js +1 -1
- package/dist-esm/Interfaces/IPropertiesPlugin.js +1 -1
- package/dist-esm/Interfaces/IRequestContext.js +1 -1
- package/dist-esm/Interfaces/ITelemetryContext.js +1 -1
- package/dist-esm/Interfaces/IThrottleMgr.js +6 -0
- package/dist-esm/Interfaces/IThrottleMgr.js.map +1 -0
- package/dist-esm/Interfaces/ITraceTelemetry.js +1 -1
- package/dist-esm/Interfaces/PartAExtensions.js +1 -1
- package/dist-esm/Interfaces/Telemetry/IEnvelope.js +1 -1
- package/dist-esm/Interfaces/Telemetry/ISerializable.js +1 -1
- package/dist-esm/RequestResponseHeaders.js +1 -1
- package/dist-esm/StorageHelperFuncs.js +1 -1
- package/dist-esm/Telemetry/Common/Data.js +1 -1
- package/dist-esm/Telemetry/Common/DataPoint.js +1 -1
- package/dist-esm/Telemetry/Common/DataSanitizer.js +1 -1
- package/dist-esm/Telemetry/Common/Envelope.js +1 -1
- package/dist-esm/Telemetry/Event.js +1 -1
- package/dist-esm/Telemetry/Exception.js +1 -1
- package/dist-esm/Telemetry/Metric.js +3 -3
- package/dist-esm/Telemetry/Metric.js.map +1 -1
- package/dist-esm/Telemetry/PageView.js +1 -1
- package/dist-esm/Telemetry/PageViewPerformance.js +1 -1
- package/dist-esm/Telemetry/RemoteDependencyData.js +1 -1
- package/dist-esm/Telemetry/Trace.js +1 -1
- package/dist-esm/TelemetryItemCreator.js +1 -1
- package/dist-esm/ThrottleMgr.js +259 -0
- package/dist-esm/ThrottleMgr.js.map +1 -0
- package/dist-esm/UrlHelperFuncs.js +1 -1
- package/dist-esm/Util.js +1 -1
- package/dist-esm/__DynamicConstants.js +10 -4
- package/dist-esm/__DynamicConstants.js.map +1 -1
- package/dist-esm/applicationinsights-common.js +2 -1
- package/dist-esm/applicationinsights-common.js.map +1 -1
- package/package.json +5 -4
- package/src/Enums.ts +6 -0
- package/src/Interfaces/IThrottleMgr.ts +109 -0
- package/src/ThrottleMgr.ts +285 -0
- package/src/__DynamicConstants.ts +9 -3
- package/src/applicationinsights-common.ts +3 -1
- package/types/Enums.d.ts +5 -0
- package/types/Interfaces/IThrottleMgr.d.ts +94 -0
- package/types/ThrottleMgr.d.ts +12 -0
- package/types/__DynamicConstants.d.ts +8 -2
- package/types/applicationinsights-common.d.ts +3 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Common, 3.0.0-beta.2210-
|
|
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-
|
|
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
|
|
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;
|