@microsoft/applicationinsights-offlinechannel-js 0.1.1-nightly3.2402-22 → 0.1.1-nightly3.2403-02
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/dist/es5/applicationinsights-offlinechannel-js.js +698 -510
- package/dist/es5/applicationinsights-offlinechannel-js.js.map +1 -1
- package/dist/es5/applicationinsights-offlinechannel-js.min.js +2 -2
- package/dist/es5/applicationinsights-offlinechannel-js.min.js.map +1 -1
- package/dist-es5/Helpers/Utils.js +5 -5
- package/dist-es5/Helpers/Utils.js.map +1 -1
- package/dist-es5/InMemoryBatch.js +1 -1
- package/dist-es5/Interfaces/IInMemoryBatch.js +1 -1
- package/dist-es5/Interfaces/IOfflineBatch.js +1 -1
- package/dist-es5/Interfaces/IOfflineIndexDb.js +1 -1
- package/dist-es5/Interfaces/IOfflineProvider.js +1 -1
- package/dist-es5/Interfaces/ISender.js +1 -1
- package/dist-es5/OfflineBatchHandler.js +4 -4
- package/dist-es5/OfflineBatchHandler.js.map +1 -1
- package/dist-es5/OfflineChannel.js +4 -4
- package/dist-es5/OfflineChannel.js.map +1 -1
- package/dist-es5/PayloadHelper.js +1 -1
- package/dist-es5/Providers/IndexDbHelper.js +4 -4
- package/dist-es5/Providers/IndexDbHelper.js.map +1 -1
- package/dist-es5/Providers/IndexDbProvider.js +1 -1
- package/dist-es5/Providers/WebStorageProvider.js +1 -1
- package/dist-es5/Sender.js +55 -400
- package/dist-es5/Sender.js.map +1 -1
- package/dist-es5/__DynamicConstants.js +10 -13
- package/dist-es5/__DynamicConstants.js.map +1 -1
- package/dist-es5/applicationinsights-offlinechannel-js.js +1 -1
- package/package.json +3 -3
- package/types/applicationinsights-offlinechannel-js.d.ts +1 -1
- package/types/applicationinsights-offlinechannel-js.namespaced.d.ts +6 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Offline Channel, 0.1.1-nightly3.
|
|
2
|
+
* Application Insights JavaScript SDK - Offline Channel, 0.1.1-nightly3.2403-02
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
(function (global, factory) {
|
|
@@ -167,6 +167,19 @@
|
|
|
167
167
|
function createEnumKeyMap(values) {
|
|
168
168
|
return _createKeyValueMap(values, 0 , 0 , objDeepFreeze);
|
|
169
169
|
}
|
|
170
|
+
/*#__NO_SIDE_EFFECTS__*/
|
|
171
|
+
function createSimpleMap(values) {
|
|
172
|
+
var mapClass = {};
|
|
173
|
+
objForEachKey(values, function (key, value) {
|
|
174
|
+
mapClass[key] = value[1];
|
|
175
|
+
mapClass[value[0]] = value[1];
|
|
176
|
+
});
|
|
177
|
+
return objDeepFreeze(mapClass);
|
|
178
|
+
}
|
|
179
|
+
/*#__NO_SIDE_EFFECTS__*/
|
|
180
|
+
function createTypeMap(values) {
|
|
181
|
+
return createSimpleMap(values);
|
|
182
|
+
}
|
|
170
183
|
|
|
171
184
|
var _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({
|
|
172
185
|
asyncIterator: 0 ,
|
|
@@ -1029,6 +1042,7 @@
|
|
|
1029
1042
|
dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
|
|
1030
1043
|
|
|
1031
1044
|
var createEnumStyle = createEnum;
|
|
1045
|
+
var createValueMap = createTypeMap;
|
|
1032
1046
|
|
|
1033
1047
|
var EventsDiscardedReason = createEnumStyle({
|
|
1034
1048
|
Unknown: 0 ,
|
|
@@ -1039,9 +1053,9 @@
|
|
|
1039
1053
|
QueueFull: 5
|
|
1040
1054
|
});
|
|
1041
1055
|
|
|
1042
|
-
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
1056
|
+
var _DYN_TO_LOWER_CASE$1 = "toLowerCase";
|
|
1043
1057
|
var _DYN_BLK_VAL = "blkVal";
|
|
1044
|
-
var _DYN_LENGTH$
|
|
1058
|
+
var _DYN_LENGTH$2 = "length";
|
|
1045
1059
|
var _DYN_RD_ONLY = "rdOnly";
|
|
1046
1060
|
var _DYN_NOTIFY = "notify";
|
|
1047
1061
|
var _DYN_WARN_TO_CONSOLE = "warnToConsole";
|
|
@@ -1067,7 +1081,7 @@
|
|
|
1067
1081
|
var _DYN_CREATE_NEW = "createNew";
|
|
1068
1082
|
var _DYN_TEARDOWN$1 = "teardown";
|
|
1069
1083
|
var _DYN_MESSAGE_ID = "messageId";
|
|
1070
|
-
var _DYN_MESSAGE = "message";
|
|
1084
|
+
var _DYN_MESSAGE$1 = "message";
|
|
1071
1085
|
var _DYN_IS_ASYNC = "isAsync";
|
|
1072
1086
|
var _DYN_DIAG_LOG$1 = "diagLog";
|
|
1073
1087
|
var _DYN__DO_TEARDOWN = "_doTeardown";
|
|
@@ -1077,7 +1091,7 @@
|
|
|
1077
1091
|
var _DYN_USER_AGENT = "userAgent";
|
|
1078
1092
|
var _DYN_SPLIT$1 = "split";
|
|
1079
1093
|
var _DYN_NODE_TYPE = "nodeType";
|
|
1080
|
-
var _DYN_REPLACE
|
|
1094
|
+
var _DYN_REPLACE = "replace";
|
|
1081
1095
|
var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
|
|
1082
1096
|
var _DYN_TYPE = "type";
|
|
1083
1097
|
var _DYN_HANDLER = "handler";
|
|
@@ -1090,7 +1104,7 @@
|
|
|
1090
1104
|
function throwAggregationError(message, sourceErrors) {
|
|
1091
1105
|
if (!aggregationErrorType) {
|
|
1092
1106
|
aggregationErrorType = createCustomError("AggregationError", function (self, args) {
|
|
1093
|
-
if (args[_DYN_LENGTH$
|
|
1107
|
+
if (args[_DYN_LENGTH$2 ] > 1) {
|
|
1094
1108
|
self.errors = args[1];
|
|
1095
1109
|
}
|
|
1096
1110
|
});
|
|
@@ -1659,7 +1673,7 @@
|
|
|
1659
1673
|
}
|
|
1660
1674
|
|
|
1661
1675
|
var UNDEFINED_VALUE = undefined;
|
|
1662
|
-
var STR_EMPTY = "";
|
|
1676
|
+
var STR_EMPTY$1 = "";
|
|
1663
1677
|
var STR_CORE = "core";
|
|
1664
1678
|
var STR_DISABLED = "disabled";
|
|
1665
1679
|
var STR_EXTENSION_CONFIG = "extensionConfig";
|
|
@@ -1677,11 +1691,11 @@
|
|
|
1677
1691
|
function normalizeJsName(name) {
|
|
1678
1692
|
var value = name;
|
|
1679
1693
|
if (value && isString(value)) {
|
|
1680
|
-
value = value[_DYN_REPLACE
|
|
1694
|
+
value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
|
|
1681
1695
|
return letter.toUpperCase();
|
|
1682
1696
|
});
|
|
1683
|
-
value = value[_DYN_REPLACE
|
|
1684
|
-
value = value[_DYN_REPLACE
|
|
1697
|
+
value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
|
|
1698
|
+
value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
|
|
1685
1699
|
return "_" + match;
|
|
1686
1700
|
});
|
|
1687
1701
|
}
|
|
@@ -1697,7 +1711,7 @@
|
|
|
1697
1711
|
if (isError(object)) {
|
|
1698
1712
|
return object[_DYN_NAME$1 ];
|
|
1699
1713
|
}
|
|
1700
|
-
return STR_EMPTY;
|
|
1714
|
+
return STR_EMPTY$1;
|
|
1701
1715
|
}
|
|
1702
1716
|
function _createProxyFunction(source, funcName) {
|
|
1703
1717
|
var srcFunc = null;
|
|
@@ -1801,7 +1815,7 @@
|
|
|
1801
1815
|
var nav = getNavigator();
|
|
1802
1816
|
if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
|
|
1803
1817
|
_navUserAgentCheck = nav[_DYN_USER_AGENT ];
|
|
1804
|
-
var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE ]();
|
|
1818
|
+
var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
|
|
1805
1819
|
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
1806
1820
|
}
|
|
1807
1821
|
return _isTrident;
|
|
@@ -1902,8 +1916,8 @@
|
|
|
1902
1916
|
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1903
1917
|
var number = random32() >>> 0;
|
|
1904
1918
|
var chars = 0;
|
|
1905
|
-
var result = STR_EMPTY;
|
|
1906
|
-
while (result[_DYN_LENGTH$
|
|
1919
|
+
var result = STR_EMPTY$1;
|
|
1920
|
+
while (result[_DYN_LENGTH$2 ] < maxLength) {
|
|
1907
1921
|
chars++;
|
|
1908
1922
|
result += base64chars.charAt(number & 0x3F);
|
|
1909
1923
|
number >>>= 6;
|
|
@@ -1940,11 +1954,11 @@
|
|
|
1940
1954
|
}
|
|
1941
1955
|
function createUniqueNamespace(name, includeVersion) {
|
|
1942
1956
|
if (includeVersion === void 0) { includeVersion = false; }
|
|
1943
|
-
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version$1 : STR_EMPTY) + instanceName);
|
|
1957
|
+
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version$1 : STR_EMPTY$1) + instanceName);
|
|
1944
1958
|
}
|
|
1945
1959
|
function createElmNodeData(name) {
|
|
1946
1960
|
var data = {
|
|
1947
|
-
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version$1),
|
|
1961
|
+
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version$1),
|
|
1948
1962
|
accept: function (target) {
|
|
1949
1963
|
return _canAcceptData(target);
|
|
1950
1964
|
},
|
|
@@ -1983,7 +1997,7 @@
|
|
|
1983
1997
|
if (!isArray(fallbacks)) {
|
|
1984
1998
|
fallbacks = [fallbacks];
|
|
1985
1999
|
}
|
|
1986
|
-
for (var lp = 0; lp < fallbacks[_DYN_LENGTH$
|
|
2000
|
+
for (var lp = 0; lp < fallbacks[_DYN_LENGTH$2 ]; lp++) {
|
|
1987
2001
|
var fallback = fallbacks[lp];
|
|
1988
2002
|
var fbValue = theConfig[fallback];
|
|
1989
2003
|
if (isDefaultValid(fbValue)) {
|
|
@@ -2018,7 +2032,7 @@
|
|
|
2018
2032
|
var newValue_1;
|
|
2019
2033
|
if (isArray(theValue)) {
|
|
2020
2034
|
newValue_1 = [];
|
|
2021
|
-
newValue_1[_DYN_LENGTH$
|
|
2035
|
+
newValue_1[_DYN_LENGTH$2 ] = theValue[_DYN_LENGTH$2 ];
|
|
2022
2036
|
}
|
|
2023
2037
|
else if (isPlainObject(theValue)) {
|
|
2024
2038
|
newValue_1 = {};
|
|
@@ -2109,7 +2123,7 @@
|
|
|
2109
2123
|
var target_1;
|
|
2110
2124
|
if (isArray(source)) {
|
|
2111
2125
|
target_1 = [];
|
|
2112
|
-
target_1[_DYN_LENGTH$
|
|
2126
|
+
target_1[_DYN_LENGTH$2 ] = source[_DYN_LENGTH$2 ];
|
|
2113
2127
|
}
|
|
2114
2128
|
else if (isPlainObject(source)) {
|
|
2115
2129
|
target_1 = {};
|
|
@@ -2418,13 +2432,13 @@
|
|
|
2418
2432
|
watcherFailures_1[_DYN_PUSH$2 ](e);
|
|
2419
2433
|
}
|
|
2420
2434
|
}
|
|
2421
|
-
if (watcherFailures_1[_DYN_LENGTH$
|
|
2435
|
+
if (watcherFailures_1[_DYN_LENGTH$2 ] > 0) {
|
|
2422
2436
|
throwAggregationError("Watcher error(s): ", watcherFailures_1);
|
|
2423
2437
|
}
|
|
2424
2438
|
}
|
|
2425
2439
|
}
|
|
2426
2440
|
function _addWatcher(detail) {
|
|
2427
|
-
if (detail && detail.h[_DYN_LENGTH$
|
|
2441
|
+
if (detail && detail.h[_DYN_LENGTH$2 ] > 0) {
|
|
2428
2442
|
if (!_waitingHandlers) {
|
|
2429
2443
|
_waitingHandlers = [];
|
|
2430
2444
|
}
|
|
@@ -2434,7 +2448,7 @@
|
|
|
2434
2448
|
_notifyWatchers();
|
|
2435
2449
|
}, 0);
|
|
2436
2450
|
}
|
|
2437
|
-
for (var idx = 0; idx < detail.h[_DYN_LENGTH$
|
|
2451
|
+
for (var idx = 0; idx < detail.h[_DYN_LENGTH$2 ]; idx++) {
|
|
2438
2452
|
var handler = detail.h[idx];
|
|
2439
2453
|
if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {
|
|
2440
2454
|
_waitingHandlers[_DYN_PUSH$2 ](handler);
|
|
@@ -2625,9 +2639,9 @@
|
|
|
2625
2639
|
_a$1);
|
|
2626
2640
|
function _sanitizeDiagnosticText(text) {
|
|
2627
2641
|
if (text) {
|
|
2628
|
-
return "\"" + text[_DYN_REPLACE
|
|
2642
|
+
return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
|
|
2629
2643
|
}
|
|
2630
|
-
return STR_EMPTY;
|
|
2644
|
+
return STR_EMPTY$1;
|
|
2631
2645
|
}
|
|
2632
2646
|
function _logToConsole(func, message) {
|
|
2633
2647
|
var theConsole = getConsole();
|
|
@@ -2646,16 +2660,16 @@
|
|
|
2646
2660
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
2647
2661
|
var _self = this;
|
|
2648
2662
|
_self[_DYN_MESSAGE_ID ] = msgId;
|
|
2649
|
-
_self[_DYN_MESSAGE ] =
|
|
2663
|
+
_self[_DYN_MESSAGE$1 ] =
|
|
2650
2664
|
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
2651
2665
|
msgId;
|
|
2652
|
-
var strProps = STR_EMPTY;
|
|
2666
|
+
var strProps = STR_EMPTY$1;
|
|
2653
2667
|
if (hasJSON()) {
|
|
2654
2668
|
strProps = getJSON().stringify(properties);
|
|
2655
2669
|
}
|
|
2656
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
|
|
2657
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
|
|
2658
|
-
_self[_DYN_MESSAGE ] += diagnosticText;
|
|
2670
|
+
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
|
|
2671
|
+
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
|
|
2672
|
+
_self[_DYN_MESSAGE$1 ] += diagnosticText;
|
|
2659
2673
|
}
|
|
2660
2674
|
_InternalLogMessage.dataType = "MessageData";
|
|
2661
2675
|
return _InternalLogMessage;
|
|
@@ -2685,17 +2699,17 @@
|
|
|
2685
2699
|
}
|
|
2686
2700
|
else {
|
|
2687
2701
|
var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;
|
|
2688
|
-
if (!isUndefined(message[_DYN_MESSAGE ])) {
|
|
2702
|
+
if (!isUndefined(message[_DYN_MESSAGE$1 ])) {
|
|
2689
2703
|
if (isUserAct) {
|
|
2690
2704
|
var messageKey = +message[_DYN_MESSAGE_ID ];
|
|
2691
2705
|
if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
|
|
2692
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
2706
|
+
_self[logFunc](message[_DYN_MESSAGE$1 ]);
|
|
2693
2707
|
_messageLogged[messageKey] = true;
|
|
2694
2708
|
}
|
|
2695
2709
|
}
|
|
2696
2710
|
else {
|
|
2697
2711
|
if (_loggingLevelConsole >= severity) {
|
|
2698
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
2712
|
+
_self[logFunc](message[_DYN_MESSAGE$1 ]);
|
|
2699
2713
|
}
|
|
2700
2714
|
}
|
|
2701
2715
|
_logInternalMessage(severity, message);
|
|
@@ -2840,7 +2854,7 @@
|
|
|
2840
2854
|
var childTime = 0;
|
|
2841
2855
|
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
2842
2856
|
if (isArray(childEvts)) {
|
|
2843
|
-
for (var lp = 0; lp < childEvts[_DYN_LENGTH$
|
|
2857
|
+
for (var lp = 0; lp < childEvts[_DYN_LENGTH$2 ]; lp++) {
|
|
2844
2858
|
var childEvt = childEvts[lp];
|
|
2845
2859
|
if (childEvt) {
|
|
2846
2860
|
childTime += childEvt[_DYN_TIME ];
|
|
@@ -2906,7 +2920,7 @@
|
|
|
2906
2920
|
}
|
|
2907
2921
|
function generateW3CId() {
|
|
2908
2922
|
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
2909
|
-
var oct = STR_EMPTY, tmp;
|
|
2923
|
+
var oct = STR_EMPTY$1, tmp;
|
|
2910
2924
|
for (var a = 0; a < 4; a++) {
|
|
2911
2925
|
tmp = random32();
|
|
2912
2926
|
oct +=
|
|
@@ -2995,7 +3009,7 @@
|
|
|
2995
3009
|
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
2996
3010
|
if (!nextProxy) {
|
|
2997
3011
|
var onComplete = _onComplete;
|
|
2998
|
-
if (onComplete && onComplete[_DYN_LENGTH$
|
|
3012
|
+
if (onComplete && onComplete[_DYN_LENGTH$2 ] > 0) {
|
|
2999
3013
|
arrForEach(onComplete, function (completeDetails) {
|
|
3000
3014
|
try {
|
|
3001
3015
|
completeDetails.func.call(completeDetails.self, completeDetails.args);
|
|
@@ -3136,7 +3150,7 @@
|
|
|
3136
3150
|
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
3137
3151
|
var firstProxy = null;
|
|
3138
3152
|
var add = startAt ? false : true;
|
|
3139
|
-
if (isArray(plugins) && plugins[_DYN_LENGTH$
|
|
3153
|
+
if (isArray(plugins) && plugins[_DYN_LENGTH$2 ] > 0) {
|
|
3140
3154
|
var lastProxy_1 = null;
|
|
3141
3155
|
arrForEach(plugins, function (thePlugin) {
|
|
3142
3156
|
if (!add && startAt === thePlugin) {
|
|
@@ -3207,7 +3221,7 @@
|
|
|
3207
3221
|
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
3208
3222
|
hasRunContext[chainId] = true;
|
|
3209
3223
|
try {
|
|
3210
|
-
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
3224
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
|
|
3211
3225
|
if (nextId) {
|
|
3212
3226
|
hasRunContext[nextId] = false;
|
|
3213
3227
|
}
|
|
@@ -3492,17 +3506,17 @@
|
|
|
3492
3506
|
var elmNodeData = createElmNodeData("events");
|
|
3493
3507
|
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
3494
3508
|
function _normalizeNamespace(name) {
|
|
3495
|
-
if (name && name[_DYN_REPLACE
|
|
3496
|
-
return name[_DYN_REPLACE
|
|
3509
|
+
if (name && name[_DYN_REPLACE ]) {
|
|
3510
|
+
return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
|
|
3497
3511
|
}
|
|
3498
3512
|
return name;
|
|
3499
3513
|
}
|
|
3500
3514
|
function _getEvtNamespace(eventName, evtNamespace) {
|
|
3501
3515
|
var _a;
|
|
3502
3516
|
if (evtNamespace) {
|
|
3503
|
-
var theNamespace_1 = STR_EMPTY;
|
|
3517
|
+
var theNamespace_1 = STR_EMPTY$1;
|
|
3504
3518
|
if (isArray(evtNamespace)) {
|
|
3505
|
-
theNamespace_1 = STR_EMPTY;
|
|
3519
|
+
theNamespace_1 = STR_EMPTY$1;
|
|
3506
3520
|
arrForEach(evtNamespace, function (name) {
|
|
3507
3521
|
name = _normalizeNamespace(name);
|
|
3508
3522
|
if (name) {
|
|
@@ -3520,13 +3534,13 @@
|
|
|
3520
3534
|
if (theNamespace_1[0] !== ".") {
|
|
3521
3535
|
theNamespace_1 = "." + theNamespace_1;
|
|
3522
3536
|
}
|
|
3523
|
-
eventName = (eventName || STR_EMPTY) + theNamespace_1;
|
|
3537
|
+
eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
|
|
3524
3538
|
}
|
|
3525
3539
|
}
|
|
3526
|
-
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
|
|
3540
|
+
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
|
|
3527
3541
|
return _a = {},
|
|
3528
3542
|
_a[_DYN_TYPE ] = parsedEvent[1],
|
|
3529
|
-
_a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
|
|
3543
|
+
_a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
|
|
3530
3544
|
_a;
|
|
3531
3545
|
}
|
|
3532
3546
|
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
@@ -3563,7 +3577,7 @@
|
|
|
3563
3577
|
return result;
|
|
3564
3578
|
}
|
|
3565
3579
|
function _doUnregister(target, events, evtName, unRegFn) {
|
|
3566
|
-
var idx = events[_DYN_LENGTH$
|
|
3580
|
+
var idx = events[_DYN_LENGTH$2 ];
|
|
3567
3581
|
while (idx--) {
|
|
3568
3582
|
var theEvent = events[idx];
|
|
3569
3583
|
if (theEvent) {
|
|
@@ -3585,7 +3599,7 @@
|
|
|
3585
3599
|
objForEachKey(eventCache, function (evtType, events) {
|
|
3586
3600
|
_doUnregister(target, events, evtName, unRegFn);
|
|
3587
3601
|
});
|
|
3588
|
-
if (objKeys(eventCache)[_DYN_LENGTH$
|
|
3602
|
+
if (objKeys(eventCache)[_DYN_LENGTH$2 ] === 0) {
|
|
3589
3603
|
elmNodeData.kill(target, strEvents);
|
|
3590
3604
|
}
|
|
3591
3605
|
}
|
|
@@ -3653,177 +3667,607 @@
|
|
|
3653
3667
|
}
|
|
3654
3668
|
|
|
3655
3669
|
var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
3670
|
+
var DEFAULT_BREEZE_ENDPOINT = "https://dc.services.visualstudio.com";
|
|
3671
|
+
var DEFAULT_BREEZE_PATH = "/v2/track";
|
|
3656
3672
|
|
|
3657
|
-
var
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3673
|
+
var RequestHeaders = createValueMap({
|
|
3674
|
+
requestContextHeader: [0 , "Request-Context"],
|
|
3675
|
+
requestContextTargetKey: [1 , "appId"],
|
|
3676
|
+
requestContextAppIdFormat: [2 , "appId=cid-v1:"],
|
|
3677
|
+
requestIdHeader: [3 , "Request-Id"],
|
|
3678
|
+
traceParentHeader: [4 , "traceparent"],
|
|
3679
|
+
traceStateHeader: [5 , "tracestate"],
|
|
3680
|
+
sdkContextHeader: [6 , "Sdk-Context"],
|
|
3681
|
+
sdkContextHeaderAppIdRequest: [7 , "appId"],
|
|
3682
|
+
requestContextHeaderLowerCase: [8 , "request-context"]
|
|
3662
3683
|
});
|
|
3663
3684
|
|
|
3664
|
-
|
|
3665
|
-
|
|
3685
|
+
var _DYN_LENGTH$1 = "length";
|
|
3686
|
+
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
3687
|
+
var _DYN_LOCATION = "location";
|
|
3688
|
+
var _DYN_PUSH$1 = "push";
|
|
3689
|
+
var _DYN_URL_STRING = "urlString";
|
|
3690
|
+
var _DYN_DATA$1 = "data";
|
|
3691
|
+
var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
|
|
3692
|
+
var _DYN_REASON = "reason";
|
|
3693
|
+
var _DYN_MESSAGE = "message";
|
|
3694
|
+
var _DYN_ITEMS_RECEIVED = "itemsReceived";
|
|
3695
|
+
|
|
3696
|
+
var _internalEndpoints = [
|
|
3697
|
+
DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,
|
|
3698
|
+
"https://breeze.aimon.applicationinsights.io" + DEFAULT_BREEZE_PATH,
|
|
3699
|
+
"https://dc-int.services.visualstudio.com" + DEFAULT_BREEZE_PATH
|
|
3700
|
+
];
|
|
3701
|
+
function isInternalApplicationInsightsEndpoint(endpointUrl) {
|
|
3702
|
+
return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE ]()) !== -1;
|
|
3666
3703
|
}
|
|
3667
|
-
function
|
|
3668
|
-
var _document = getDocument();
|
|
3669
|
-
var _navigator = getNavigator();
|
|
3670
|
-
var _isListening = false;
|
|
3671
|
-
var listenerList = [];
|
|
3672
|
-
var rState = 1 ;
|
|
3673
|
-
if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) {
|
|
3674
|
-
rState = 2 ;
|
|
3675
|
-
}
|
|
3676
|
-
var uState = 0 ;
|
|
3677
|
-
var _currentState = calCurrentState();
|
|
3678
|
-
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
3704
|
+
function getResponseText(xhr) {
|
|
3679
3705
|
try {
|
|
3680
|
-
|
|
3681
|
-
_isListening = true;
|
|
3682
|
-
}
|
|
3683
|
-
if (_document) {
|
|
3684
|
-
var target = _document.body || _document;
|
|
3685
|
-
if (target.ononline) {
|
|
3686
|
-
if (_enableEvents(target)) {
|
|
3687
|
-
_isListening = true;
|
|
3688
|
-
}
|
|
3689
|
-
}
|
|
3690
|
-
}
|
|
3706
|
+
return xhr.responseText;
|
|
3691
3707
|
}
|
|
3692
3708
|
catch (e) {
|
|
3693
|
-
_isListening = false;
|
|
3694
3709
|
}
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
3701
|
-
}
|
|
3702
|
-
}
|
|
3703
|
-
return enabled;
|
|
3710
|
+
return null;
|
|
3711
|
+
}
|
|
3712
|
+
function formatErrorMessageXdr(xdr, message) {
|
|
3713
|
+
if (xdr) {
|
|
3714
|
+
return "XDomainRequest,Response:" + getResponseText(xdr) || "";
|
|
3704
3715
|
}
|
|
3705
|
-
|
|
3706
|
-
|
|
3716
|
+
return message;
|
|
3717
|
+
}
|
|
3718
|
+
function formatErrorMessageXhr(xhr, message) {
|
|
3719
|
+
if (xhr) {
|
|
3720
|
+
return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
|
|
3707
3721
|
}
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3722
|
+
return message;
|
|
3723
|
+
}
|
|
3724
|
+
function prependTransports(theTransports, newTransports) {
|
|
3725
|
+
if (newTransports) {
|
|
3726
|
+
if (isNumber(newTransports)) {
|
|
3727
|
+
theTransports = [newTransports].concat(theTransports);
|
|
3728
|
+
}
|
|
3729
|
+
else if (isArray(newTransports)) {
|
|
3730
|
+
theTransports = newTransports.concat(theTransports);
|
|
3711
3731
|
}
|
|
3712
|
-
return true;
|
|
3713
3732
|
}
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3733
|
+
return theTransports;
|
|
3734
|
+
}
|
|
3735
|
+
function parseResponse(response, diagLog) {
|
|
3736
|
+
try {
|
|
3737
|
+
if (response && response !== "") {
|
|
3738
|
+
var result = getJSON().parse(response);
|
|
3739
|
+
if (result && result[_DYN_ITEMS_RECEIVED ] && result[_DYN_ITEMS_RECEIVED ] >= result.itemsAccepted &&
|
|
3740
|
+
result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH$1 ]) {
|
|
3741
|
+
return result;
|
|
3742
|
+
}
|
|
3743
|
+
}
|
|
3744
|
+
}
|
|
3745
|
+
catch (e) {
|
|
3746
|
+
_throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
|
|
3747
|
+
response: response
|
|
3748
|
+
});
|
|
3749
|
+
}
|
|
3750
|
+
return null;
|
|
3751
|
+
}
|
|
3752
|
+
|
|
3753
|
+
var EventPersistence = createEnumStyle({
|
|
3754
|
+
Normal: 1 ,
|
|
3755
|
+
Critical: 2
|
|
3756
|
+
});
|
|
3757
|
+
|
|
3758
|
+
var STR_EMPTY = "";
|
|
3759
|
+
var SenderPostManager = /** @class */ (function () {
|
|
3760
|
+
function SenderPostManager() {
|
|
3761
|
+
var _syncFetchPayload = 0;
|
|
3762
|
+
var _enableSendPromise;
|
|
3763
|
+
var _isInitialized;
|
|
3764
|
+
var _diagLog;
|
|
3765
|
+
var _isOneDs;
|
|
3766
|
+
var _onCompleteFuncs;
|
|
3767
|
+
var _disableCredentials;
|
|
3768
|
+
var _fallbackInst;
|
|
3769
|
+
var _disableXhr;
|
|
3770
|
+
var _disableBeacon;
|
|
3771
|
+
var _disableBeaconSync;
|
|
3772
|
+
dynamicProto(SenderPostManager, this, function (_self, _base) {
|
|
3773
|
+
var _sendCredentials = true;
|
|
3774
|
+
_initDefaults();
|
|
3775
|
+
_self.initialize = function (config, diagLog) {
|
|
3776
|
+
_diagLog = diagLog;
|
|
3777
|
+
if (_isInitialized) {
|
|
3778
|
+
_throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
|
|
3779
|
+
}
|
|
3780
|
+
_self.SetConfig(config);
|
|
3781
|
+
_isInitialized = true;
|
|
3782
|
+
};
|
|
3783
|
+
_self["_getDbgPlgTargets"] = function () {
|
|
3784
|
+
return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
|
|
3785
|
+
};
|
|
3786
|
+
_self.SetConfig = function (config) {
|
|
3724
3787
|
try {
|
|
3725
|
-
|
|
3788
|
+
_onCompleteFuncs = config.senderOnCompleteCallBack || {};
|
|
3789
|
+
_disableCredentials = !!config.disableCredentials;
|
|
3790
|
+
_isOneDs = !!config.isOneDs;
|
|
3791
|
+
_enableSendPromise = !!config.enableSendPromise;
|
|
3792
|
+
_disableXhr = !!config.disableXhr;
|
|
3793
|
+
_disableBeacon = !!config.disableBeacon;
|
|
3794
|
+
_disableBeaconSync = !!config.disableBeaconSync;
|
|
3795
|
+
_fallbackInst = { sendPOST: _xhrSender };
|
|
3796
|
+
if (_disableCredentials) {
|
|
3797
|
+
var location_1 = getLocation();
|
|
3798
|
+
if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
|
|
3799
|
+
_sendCredentials = false;
|
|
3800
|
+
}
|
|
3801
|
+
}
|
|
3802
|
+
return true;
|
|
3726
3803
|
}
|
|
3727
3804
|
catch (e) {
|
|
3728
3805
|
}
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
rState = 1 ;
|
|
3738
|
-
listnerNoticeCheck();
|
|
3739
|
-
}
|
|
3740
|
-
function _setOffline() {
|
|
3741
|
-
rState = 2 ;
|
|
3742
|
-
listnerNoticeCheck();
|
|
3743
|
-
}
|
|
3744
|
-
function _unload() {
|
|
3745
|
-
var win = getWindow();
|
|
3746
|
-
if (win && _isListening) {
|
|
3747
|
-
_disableEvents(win, _evtNamespace);
|
|
3748
|
-
if (_document) {
|
|
3749
|
-
var target = _document.body || _document;
|
|
3750
|
-
if (!isUndefined(target.ononline)) {
|
|
3751
|
-
_disableEvents(target, _evtNamespace);
|
|
3806
|
+
return false;
|
|
3807
|
+
};
|
|
3808
|
+
_self.getSyncFetchPayload = function () {
|
|
3809
|
+
return _syncFetchPayload;
|
|
3810
|
+
};
|
|
3811
|
+
_self.getXhrInst = function (transports, sync) {
|
|
3812
|
+
if (transports && transports[_DYN_LENGTH$1 ]) {
|
|
3813
|
+
return _getSenderInterface(transports, sync);
|
|
3752
3814
|
}
|
|
3815
|
+
return null;
|
|
3816
|
+
};
|
|
3817
|
+
_self.getFallbackInst = function () {
|
|
3818
|
+
return _fallbackInst;
|
|
3819
|
+
};
|
|
3820
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
3821
|
+
_initDefaults();
|
|
3822
|
+
};
|
|
3823
|
+
function _onSuccess(res, onComplete) {
|
|
3824
|
+
_doOnComplete(onComplete, 200, {}, res);
|
|
3753
3825
|
}
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3826
|
+
function _onError(message, onComplete) {
|
|
3827
|
+
_throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
|
|
3828
|
+
_doOnComplete(onComplete, 400, {});
|
|
3829
|
+
}
|
|
3830
|
+
function _onNoPayloadUrl(onComplete) {
|
|
3831
|
+
_onError("No endpoint url is provided for the batch", onComplete);
|
|
3832
|
+
}
|
|
3833
|
+
function _getSenderInterface(transports, syncSupport) {
|
|
3834
|
+
var transportType = null;
|
|
3835
|
+
var sendPostFunc = null;
|
|
3836
|
+
var lp = 0;
|
|
3837
|
+
while (sendPostFunc == null && lp < transports[_DYN_LENGTH$1 ]) {
|
|
3838
|
+
transportType = transports[lp];
|
|
3839
|
+
if (!_disableXhr && transportType === 1 ) {
|
|
3840
|
+
if (useXDomainRequest()) {
|
|
3841
|
+
sendPostFunc = _xdrSender;
|
|
3842
|
+
}
|
|
3843
|
+
else if (isXhrSupported()) {
|
|
3844
|
+
sendPostFunc = _xhrSender;
|
|
3845
|
+
}
|
|
3846
|
+
}
|
|
3847
|
+
else if (transportType === 2 && isFetchSupported(syncSupport)) {
|
|
3848
|
+
sendPostFunc = _doFetchSender;
|
|
3849
|
+
}
|
|
3850
|
+
else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
|
|
3851
|
+
sendPostFunc = _beaconSender;
|
|
3852
|
+
}
|
|
3853
|
+
lp++;
|
|
3764
3854
|
}
|
|
3765
|
-
|
|
3766
|
-
return
|
|
3855
|
+
if (sendPostFunc) {
|
|
3856
|
+
return {
|
|
3857
|
+
sendPOST: sendPostFunc
|
|
3858
|
+
};
|
|
3767
3859
|
}
|
|
3860
|
+
return null;
|
|
3768
3861
|
}
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3862
|
+
function _doOnComplete(oncomplete, status, headers, response) {
|
|
3863
|
+
try {
|
|
3864
|
+
oncomplete && oncomplete(status, headers, response);
|
|
3865
|
+
}
|
|
3866
|
+
catch (e) {
|
|
3867
|
+
}
|
|
3868
|
+
}
|
|
3869
|
+
function _doBeaconSend(payload, oncomplete) {
|
|
3870
|
+
var nav = getNavigator();
|
|
3871
|
+
var url = payload[_DYN_URL_STRING ];
|
|
3872
|
+
if (!url) {
|
|
3873
|
+
_onNoPayloadUrl(oncomplete);
|
|
3874
|
+
return true;
|
|
3875
|
+
}
|
|
3876
|
+
var data = payload[_DYN_DATA$1 ];
|
|
3877
|
+
var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
|
|
3878
|
+
var queued = nav.sendBeacon(url, plainTextBatch);
|
|
3879
|
+
return queued;
|
|
3880
|
+
}
|
|
3881
|
+
function _beaconSender(payload, oncomplete, sync) {
|
|
3882
|
+
var data = payload[_DYN_DATA$1 ];
|
|
3883
|
+
if (data) {
|
|
3884
|
+
if (!_doBeaconSend(payload, oncomplete)) {
|
|
3885
|
+
var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
|
|
3886
|
+
if (onRetry && isFunction(onRetry)) {
|
|
3887
|
+
onRetry(payload, oncomplete, _doBeaconSend);
|
|
3888
|
+
}
|
|
3889
|
+
else {
|
|
3890
|
+
_fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
|
|
3891
|
+
_throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
3892
|
+
}
|
|
3893
|
+
}
|
|
3894
|
+
else {
|
|
3895
|
+
_onSuccess(null, oncomplete);
|
|
3896
|
+
}
|
|
3897
|
+
}
|
|
3898
|
+
return;
|
|
3899
|
+
}
|
|
3900
|
+
function _xhrSender(payload, oncomplete, sync) {
|
|
3901
|
+
var thePromise;
|
|
3902
|
+
var resolveFunc;
|
|
3903
|
+
var rejectFunc;
|
|
3904
|
+
var headers = payload.headers || {};
|
|
3905
|
+
if (!sync && _enableSendPromise) {
|
|
3906
|
+
thePromise = createPromise(function (resolve, reject) {
|
|
3907
|
+
resolveFunc = resolve;
|
|
3908
|
+
rejectFunc = reject;
|
|
3909
|
+
});
|
|
3910
|
+
}
|
|
3911
|
+
var xhr = new XMLHttpRequest();
|
|
3912
|
+
var endPointUrl = payload[_DYN_URL_STRING ];
|
|
3913
|
+
if (!endPointUrl) {
|
|
3914
|
+
_onNoPayloadUrl(oncomplete);
|
|
3915
|
+
resolveFunc && resolveFunc(false);
|
|
3916
|
+
return;
|
|
3917
|
+
}
|
|
3918
|
+
try {
|
|
3919
|
+
xhr[DisabledPropertyName] = true;
|
|
3920
|
+
}
|
|
3921
|
+
catch (e) {
|
|
3922
|
+
}
|
|
3923
|
+
xhr.open("POST", endPointUrl, !sync);
|
|
3924
|
+
xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
|
|
3925
|
+
if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
|
|
3926
|
+
xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
|
|
3927
|
+
}
|
|
3928
|
+
arrForEach(objKeys(headers), function (headerName) {
|
|
3929
|
+
xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
|
|
3930
|
+
});
|
|
3931
|
+
xhr.onreadystatechange = function () {
|
|
3932
|
+
var response = getResponseText(xhr);
|
|
3933
|
+
var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
|
|
3934
|
+
var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
|
|
3935
|
+
if (onReadyFuncExist) {
|
|
3936
|
+
onReadyFunc(xhr, oncomplete, payload);
|
|
3937
|
+
}
|
|
3938
|
+
if (xhr.readyState === 4) {
|
|
3939
|
+
if (!onReadyFuncExist) {
|
|
3940
|
+
_doOnComplete(oncomplete, xhr.status, {}, response);
|
|
3941
|
+
}
|
|
3942
|
+
resolveFunc && resolveFunc(true);
|
|
3943
|
+
}
|
|
3944
|
+
};
|
|
3945
|
+
xhr.onerror = function (event) {
|
|
3946
|
+
_doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
|
|
3947
|
+
rejectFunc && rejectFunc(event);
|
|
3948
|
+
};
|
|
3949
|
+
xhr.ontimeout = function () {
|
|
3950
|
+
_doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
|
|
3951
|
+
resolveFunc && resolveFunc(false);
|
|
3952
|
+
};
|
|
3953
|
+
xhr.send(payload[_DYN_DATA$1 ]);
|
|
3954
|
+
return thePromise;
|
|
3955
|
+
}
|
|
3956
|
+
function _doFetchSender(payload, oncomplete, sync) {
|
|
3957
|
+
var _a;
|
|
3958
|
+
var endPointUrl = payload[_DYN_URL_STRING ];
|
|
3959
|
+
var batch = payload[_DYN_DATA$1 ];
|
|
3960
|
+
var plainTextBatch = new Blob([batch], { type: "application/json" });
|
|
3961
|
+
var thePromise;
|
|
3962
|
+
var resolveFunc;
|
|
3963
|
+
var rejectFunc;
|
|
3964
|
+
var requestHeaders = new Headers();
|
|
3965
|
+
var batchLength = batch[_DYN_LENGTH$1 ];
|
|
3966
|
+
var ignoreResponse = false;
|
|
3967
|
+
var responseHandled = false;
|
|
3968
|
+
var headers = payload.headers || {};
|
|
3969
|
+
if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
|
|
3970
|
+
requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
|
|
3971
|
+
}
|
|
3972
|
+
arrForEach(objKeys(headers), function (headerName) {
|
|
3973
|
+
requestHeaders.append(headerName, headers[headerName]);
|
|
3974
|
+
});
|
|
3975
|
+
var init = (_a = {
|
|
3976
|
+
method: "POST",
|
|
3977
|
+
headers: requestHeaders,
|
|
3978
|
+
body: plainTextBatch
|
|
3979
|
+
},
|
|
3980
|
+
_a[DisabledPropertyName] = true
|
|
3981
|
+
,
|
|
3982
|
+
_a);
|
|
3983
|
+
if (_sendCredentials && _isOneDs) {
|
|
3984
|
+
init.credentials = "include";
|
|
3985
|
+
}
|
|
3986
|
+
if (sync) {
|
|
3987
|
+
init.keepalive = true;
|
|
3988
|
+
ignoreResponse = true;
|
|
3989
|
+
_syncFetchPayload += batchLength;
|
|
3990
|
+
}
|
|
3991
|
+
var request = new Request(endPointUrl, init);
|
|
3992
|
+
try {
|
|
3993
|
+
request[DisabledPropertyName] = true;
|
|
3994
|
+
}
|
|
3995
|
+
catch (e) {
|
|
3996
|
+
}
|
|
3997
|
+
if (!sync && _enableSendPromise) {
|
|
3998
|
+
thePromise = createPromise(function (resolve, reject) {
|
|
3999
|
+
resolveFunc = resolve;
|
|
4000
|
+
rejectFunc = reject;
|
|
4001
|
+
});
|
|
4002
|
+
}
|
|
4003
|
+
if (!endPointUrl) {
|
|
4004
|
+
_onNoPayloadUrl(oncomplete);
|
|
4005
|
+
resolveFunc && resolveFunc(false);
|
|
4006
|
+
return;
|
|
4007
|
+
}
|
|
4008
|
+
try {
|
|
4009
|
+
doAwaitResponse(fetch(request), function (result) {
|
|
4010
|
+
if (sync) {
|
|
4011
|
+
_syncFetchPayload -= batchLength;
|
|
4012
|
+
batchLength = 0;
|
|
4013
|
+
}
|
|
4014
|
+
if (!responseHandled) {
|
|
4015
|
+
responseHandled = true;
|
|
4016
|
+
if (!result.rejected) {
|
|
4017
|
+
var response_1 = result.value;
|
|
4018
|
+
if (!response_1.ok) {
|
|
4019
|
+
_doOnComplete(oncomplete, 400, {}, response_1.statusText);
|
|
4020
|
+
resolveFunc && resolveFunc(false);
|
|
4021
|
+
}
|
|
4022
|
+
else {
|
|
4023
|
+
doAwaitResponse(response_1.text(), function (resp) {
|
|
4024
|
+
var status = response_1.status;
|
|
4025
|
+
var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
|
|
4026
|
+
if (onCompleteFunc && isFunction(onCompleteFunc)) {
|
|
4027
|
+
onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
|
|
4028
|
+
}
|
|
4029
|
+
else {
|
|
4030
|
+
_doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
|
|
4031
|
+
}
|
|
4032
|
+
resolveFunc && resolveFunc(true);
|
|
4033
|
+
});
|
|
4034
|
+
}
|
|
4035
|
+
}
|
|
4036
|
+
else {
|
|
4037
|
+
_doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
|
|
4038
|
+
rejectFunc && rejectFunc(result[_DYN_REASON ]);
|
|
4039
|
+
}
|
|
4040
|
+
}
|
|
4041
|
+
});
|
|
4042
|
+
}
|
|
4043
|
+
catch (e) {
|
|
4044
|
+
if (!responseHandled) {
|
|
4045
|
+
_doOnComplete(oncomplete, 400, {}, dumpObj(e));
|
|
4046
|
+
rejectFunc && rejectFunc(e);
|
|
4047
|
+
}
|
|
4048
|
+
}
|
|
4049
|
+
if (ignoreResponse && !responseHandled) {
|
|
4050
|
+
responseHandled = true;
|
|
4051
|
+
_doOnComplete(oncomplete, 200, {});
|
|
4052
|
+
resolveFunc && resolveFunc(true);
|
|
4053
|
+
}
|
|
4054
|
+
return thePromise;
|
|
4055
|
+
}
|
|
4056
|
+
function _xdrSender(payload, oncomplete, sync) {
|
|
4057
|
+
var _window = getWindow();
|
|
4058
|
+
var xdr = new XDomainRequest();
|
|
4059
|
+
var data = payload[_DYN_DATA$1 ];
|
|
4060
|
+
xdr.onload = function () {
|
|
4061
|
+
var response = getResponseText(xdr);
|
|
4062
|
+
var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
|
|
4063
|
+
if (onloadFunc && isFunction(onloadFunc)) {
|
|
4064
|
+
onloadFunc(xdr, oncomplete, payload);
|
|
4065
|
+
}
|
|
4066
|
+
else {
|
|
4067
|
+
_doOnComplete(oncomplete, 200, {}, response);
|
|
4068
|
+
}
|
|
4069
|
+
};
|
|
4070
|
+
xdr.onerror = function () {
|
|
4071
|
+
_doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
|
|
4072
|
+
};
|
|
4073
|
+
xdr.ontimeout = function () {
|
|
4074
|
+
_doOnComplete(oncomplete, 500, {});
|
|
4075
|
+
};
|
|
4076
|
+
xdr.onprogress = function () { };
|
|
4077
|
+
var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
|
|
4078
|
+
var endpoint = payload[_DYN_URL_STRING ];
|
|
4079
|
+
if (!endpoint) {
|
|
4080
|
+
_onNoPayloadUrl(oncomplete);
|
|
4081
|
+
return;
|
|
4082
|
+
}
|
|
4083
|
+
if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
4084
|
+
var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
|
|
4085
|
+
_throwInternal(_diagLog, 2 , 40 , ". " + msg);
|
|
4086
|
+
_onError(msg, oncomplete);
|
|
4087
|
+
return;
|
|
4088
|
+
}
|
|
4089
|
+
var endpointUrl = endpoint.replace(/^(https?:)/, "");
|
|
4090
|
+
xdr.open("POST", endpointUrl);
|
|
4091
|
+
xdr.send(data);
|
|
4092
|
+
}
|
|
4093
|
+
function _initDefaults() {
|
|
4094
|
+
_syncFetchPayload = 0;
|
|
4095
|
+
_isInitialized = false;
|
|
4096
|
+
_enableSendPromise = false;
|
|
4097
|
+
_diagLog = null;
|
|
4098
|
+
_isOneDs = null;
|
|
4099
|
+
_onCompleteFuncs = null;
|
|
4100
|
+
_disableCredentials = null;
|
|
4101
|
+
_fallbackInst = null;
|
|
4102
|
+
_disableXhr = false;
|
|
4103
|
+
_disableBeacon = false;
|
|
4104
|
+
_disableBeaconSync = false;
|
|
4105
|
+
}
|
|
4106
|
+
});
|
|
4107
|
+
}
|
|
4108
|
+
SenderPostManager.__ieDyn=1;
|
|
4109
|
+
return SenderPostManager;
|
|
4110
|
+
}());
|
|
4111
|
+
|
|
4112
|
+
function _disableEvents(target, evtNamespace) {
|
|
4113
|
+
eventOff(target, null, null, evtNamespace);
|
|
4114
|
+
}
|
|
4115
|
+
function createOfflineListener(parentEvtNamespace) {
|
|
4116
|
+
var _document = getDocument();
|
|
4117
|
+
var _navigator = getNavigator();
|
|
4118
|
+
var _isListening = false;
|
|
4119
|
+
var listenerList = [];
|
|
4120
|
+
var rState = 1 ;
|
|
4121
|
+
if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) {
|
|
4122
|
+
rState = 2 ;
|
|
4123
|
+
}
|
|
4124
|
+
var uState = 0 ;
|
|
4125
|
+
var _currentState = calCurrentState();
|
|
4126
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("OfflineListener"), parentEvtNamespace);
|
|
4127
|
+
try {
|
|
4128
|
+
if (_enableEvents(getWindow())) {
|
|
4129
|
+
_isListening = true;
|
|
4130
|
+
}
|
|
4131
|
+
if (_document) {
|
|
4132
|
+
var target = _document.body || _document;
|
|
4133
|
+
if (target.ononline) {
|
|
4134
|
+
if (_enableEvents(target)) {
|
|
4135
|
+
_isListening = true;
|
|
4136
|
+
}
|
|
4137
|
+
}
|
|
4138
|
+
}
|
|
4139
|
+
}
|
|
4140
|
+
catch (e) {
|
|
4141
|
+
_isListening = false;
|
|
4142
|
+
}
|
|
4143
|
+
function _enableEvents(target) {
|
|
4144
|
+
var enabled = false;
|
|
4145
|
+
if (target) {
|
|
4146
|
+
enabled = eventOn(target, "online", _setOnline, _evtNamespace);
|
|
4147
|
+
if (enabled) {
|
|
4148
|
+
eventOn(target, "offline", _setOffline, _evtNamespace);
|
|
4149
|
+
}
|
|
4150
|
+
}
|
|
4151
|
+
return enabled;
|
|
4152
|
+
}
|
|
4153
|
+
function _isOnline() {
|
|
4154
|
+
return _currentState;
|
|
4155
|
+
}
|
|
4156
|
+
function calCurrentState() {
|
|
4157
|
+
if (uState === 2 || rState === 2 ) {
|
|
4158
|
+
return false;
|
|
4159
|
+
}
|
|
4160
|
+
return true;
|
|
4161
|
+
}
|
|
4162
|
+
function listnerNoticeCheck() {
|
|
4163
|
+
var newState = calCurrentState();
|
|
4164
|
+
if (_currentState !== newState) {
|
|
4165
|
+
_currentState = newState;
|
|
4166
|
+
arrForEach(listenerList, function (callback) {
|
|
4167
|
+
var offlineState = {
|
|
4168
|
+
isOnline: _currentState,
|
|
4169
|
+
rState: rState,
|
|
4170
|
+
uState: uState
|
|
4171
|
+
};
|
|
4172
|
+
try {
|
|
4173
|
+
callback(offlineState);
|
|
4174
|
+
}
|
|
4175
|
+
catch (e) {
|
|
4176
|
+
}
|
|
4177
|
+
});
|
|
4178
|
+
}
|
|
4179
|
+
}
|
|
4180
|
+
function setOnlineState(newState) {
|
|
4181
|
+
uState = newState;
|
|
4182
|
+
listnerNoticeCheck();
|
|
4183
|
+
}
|
|
4184
|
+
function _setOnline() {
|
|
4185
|
+
rState = 1 ;
|
|
4186
|
+
listnerNoticeCheck();
|
|
4187
|
+
}
|
|
4188
|
+
function _setOffline() {
|
|
4189
|
+
rState = 2 ;
|
|
4190
|
+
listnerNoticeCheck();
|
|
4191
|
+
}
|
|
4192
|
+
function _unload() {
|
|
4193
|
+
var win = getWindow();
|
|
4194
|
+
if (win && _isListening) {
|
|
4195
|
+
_disableEvents(win, _evtNamespace);
|
|
4196
|
+
if (_document) {
|
|
4197
|
+
var target = _document.body || _document;
|
|
4198
|
+
if (!isUndefined(target.ononline)) {
|
|
4199
|
+
_disableEvents(target, _evtNamespace);
|
|
4200
|
+
}
|
|
4201
|
+
}
|
|
4202
|
+
_isListening = false;
|
|
4203
|
+
}
|
|
4204
|
+
}
|
|
4205
|
+
function addListener(callback) {
|
|
4206
|
+
listenerList[_DYN_PUSH$1 ](callback);
|
|
4207
|
+
return {
|
|
4208
|
+
rm: function () {
|
|
4209
|
+
var index = listenerList.indexOf(callback);
|
|
4210
|
+
if (index > -1) {
|
|
4211
|
+
return listenerList.splice(index, 1);
|
|
4212
|
+
}
|
|
4213
|
+
else {
|
|
4214
|
+
return;
|
|
4215
|
+
}
|
|
4216
|
+
}
|
|
4217
|
+
};
|
|
4218
|
+
}
|
|
4219
|
+
return {
|
|
4220
|
+
isOnline: _isOnline,
|
|
4221
|
+
isListening: function () { return _isListening; },
|
|
4222
|
+
unload: _unload,
|
|
4223
|
+
addListener: addListener,
|
|
4224
|
+
setOnlineState: setOnlineState
|
|
4225
|
+
};
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
var BreezeChannelIdentifier = "AppInsightsChannelPlugin";
|
|
4229
|
+
|
|
4230
|
+
var _DYN_ENDPOINT = "endpoint";
|
|
4231
|
+
var _DYN_ADD_EVENT = "addEvent";
|
|
4232
|
+
var _DYN_COUNT = "count";
|
|
4233
|
+
var _DYN_PUSH = "push";
|
|
4234
|
+
var _DYN_LENGTH = "length";
|
|
4235
|
+
var _DYN_CLEAR = "clear";
|
|
4236
|
+
var _DYN_GET_ITEMS = "getItems";
|
|
4237
|
+
var _DYN_SPLIT = "split";
|
|
4238
|
+
var _DYN_SPLICE = "splice";
|
|
4239
|
+
var _DYN_INITIALIZE = "initialize";
|
|
4240
|
+
var _DYN_DIAG_LOG = "diagLog";
|
|
4241
|
+
var _DYN_ITEM_CTX = "itemCtx";
|
|
4242
|
+
var _DYN_STORAGE_CONFIG = "storageConfig";
|
|
4243
|
+
var _DYN_VALUE = "value";
|
|
4244
|
+
var _DYN_REJECTED = "rejected";
|
|
4245
|
+
var _DYN_GET_NEXT_BATCH = "getNextBatch";
|
|
4246
|
+
var _DYN_REMOVE_EVENTS = "removeEvents";
|
|
4247
|
+
var _DYN_DATA = "data";
|
|
4248
|
+
var _DYN_SEND_POST = "sendPOST";
|
|
4249
|
+
var _DYN_ATTEMP_CNT = "attempCnt";
|
|
4250
|
+
var _DYN_STATE = "state";
|
|
4251
|
+
var _DYN_TEARDOWN = "teardown";
|
|
4252
|
+
var _DYN_IS_ARR = "isArr";
|
|
4253
|
+
var _DYN_INDEX_OF = "indexOf";
|
|
4254
|
+
var _DYN_GET_XHR_INST = "getXhrInst";
|
|
4255
|
+
var _DYN_IS_ONLINE = "isOnline";
|
|
4256
|
+
var _DYN_CANCEL = "cancel";
|
|
4257
|
+
var _DYN_PROCESS_NEXT = "processNext";
|
|
4258
|
+
var _DYN_PERSISTENCE = "persistence";
|
|
4259
|
+
var _DYN_ONUNLOAD_FLUSH = "onunloadFlush";
|
|
4260
|
+
var _DYN_BATCH_HANDLER = "batchHandler";
|
|
4261
|
+
var _DYN_MIN_PERSISTENCE_CACH0 = "minPersistenceCacheLevel";
|
|
4262
|
+
var _DYN_REFRESH = "refresh";
|
|
4263
|
+
var _DYN_IS_COMPLETELY_IDLE = "isCompletelyIdle";
|
|
4264
|
+
var _DYN_CRITICAL_CNT = "criticalCnt";
|
|
4265
|
+
var _DYN_GET_OFFLINE_SUPPORT = "getOfflineSupport";
|
|
4266
|
+
var _DYN_OVERRIDE_INSTRUMENTA1 = "overrideInstrumentationKey";
|
|
4267
|
+
var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
|
|
4268
|
+
var _DYN_NOTIFICATION_MGR = "notificationMgr";
|
|
4269
|
+
var _DYN_TO_STRING = "toString";
|
|
4270
|
+
var _DYN_ENABLE_SEND_PROMISE = "enableSendPromise";
|
|
3827
4271
|
var _DYN_CHAR_CODE_AT = "charCodeAt";
|
|
3828
4272
|
var _DYN_CHAR_AT = "charAt";
|
|
3829
4273
|
var _DYN_FROM_CHAR_CODE = "fromCharCode";
|
|
@@ -3836,6 +4280,7 @@
|
|
|
3836
4280
|
var _DYN_OPEN_CURSOR = "openCursor";
|
|
3837
4281
|
var _DYN_DB_NAME = "dbName";
|
|
3838
4282
|
var _DYN_REMOVE = "remove";
|
|
4283
|
+
var _DYN_ONERROR = "onerror";
|
|
3839
4284
|
var _DYN_ONSUCCESS = "onsuccess";
|
|
3840
4285
|
var _DYN_THEN = "then";
|
|
3841
4286
|
var _DYN_KEY_RANGE = "keyRange";
|
|
@@ -3994,7 +4439,7 @@
|
|
|
3994
4439
|
dbOpenRequest[_DYN_TRANSACTION ] && dbOpenRequest[_DYN_TRANSACTION ].abort();
|
|
3995
4440
|
}
|
|
3996
4441
|
finally {
|
|
3997
|
-
openReject(response
|
|
4442
|
+
openReject(response.reason);
|
|
3998
4443
|
}
|
|
3999
4444
|
}
|
|
4000
4445
|
});
|
|
@@ -4224,7 +4669,7 @@
|
|
|
4224
4669
|
else {
|
|
4225
4670
|
cursorRequest = storeCtx.store[_DYN_OPEN_CURSOR ]();
|
|
4226
4671
|
}
|
|
4227
|
-
cursorRequest
|
|
4672
|
+
cursorRequest.onerror = _eventReject(storeCtx.db[_DYN_DB_NAME ], ErrorMessageFailedToOpenCursor, openCursorReject, "openCursor");
|
|
4228
4673
|
cursorRequest[_DYN_ONSUCCESS ] = function (evt) {
|
|
4229
4674
|
var _a;
|
|
4230
4675
|
var cursor = evt.target[Result];
|
|
@@ -4747,8 +5192,8 @@
|
|
|
4747
5192
|
|
|
4748
5193
|
function getEndpointDomain(endpoint) {
|
|
4749
5194
|
try {
|
|
4750
|
-
var url = endpoint
|
|
4751
|
-
url = url
|
|
5195
|
+
var url = endpoint.replace(/^https?:\/\/|^www\./, "");
|
|
5196
|
+
url = url.replace(/\?/, "/");
|
|
4752
5197
|
var arr = url[_DYN_SPLIT ]("/");
|
|
4753
5198
|
if (arr && arr[_DYN_LENGTH ] > 0) {
|
|
4754
5199
|
return arr[0];
|
|
@@ -4796,7 +5241,7 @@
|
|
|
4796
5241
|
var chr1, chr2, chr3;
|
|
4797
5242
|
var enc1, enc2, enc3, enc4;
|
|
4798
5243
|
var i = 0;
|
|
4799
|
-
input = input
|
|
5244
|
+
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
|
4800
5245
|
while (i < input[_DYN_LENGTH ]) {
|
|
4801
5246
|
enc1 = _base64[_DYN_INDEX_OF ](input[_DYN_CHAR_AT ](i++));
|
|
4802
5247
|
enc2 = _base64[_DYN_INDEX_OF ](input[_DYN_CHAR_AT ](i++));
|
|
@@ -5324,7 +5769,7 @@
|
|
|
5324
5769
|
var evt = _getOfflineEvt(batch);
|
|
5325
5770
|
return doAwaitResponse(provider[_DYN_ADD_EVENT ](evt.id, evt, _itemCtx), function (response) {
|
|
5326
5771
|
try {
|
|
5327
|
-
var evt_1 = response[_DYN_VALUE ] || response
|
|
5772
|
+
var evt_1 = response[_DYN_VALUE ] || response.reason || [];
|
|
5328
5773
|
var state = 2 ;
|
|
5329
5774
|
if (!response[_DYN_REJECTED ]) {
|
|
5330
5775
|
state = 1 ;
|
|
@@ -5443,7 +5888,7 @@
|
|
|
5443
5888
|
return;
|
|
5444
5889
|
}
|
|
5445
5890
|
result[_DYN_STATE ] = 4 ;
|
|
5446
|
-
result
|
|
5891
|
+
result[_DYN_DATA ] = res.reason;
|
|
5447
5892
|
storeResolve(result);
|
|
5448
5893
|
return;
|
|
5449
5894
|
});
|
|
@@ -5621,44 +6066,23 @@
|
|
|
5621
6066
|
|
|
5622
6067
|
var DefaultOfflineIdentifier$1 = "OfflineChannel";
|
|
5623
6068
|
var PostChannelId = "PostChannel";
|
|
5624
|
-
function _getResponseText(xhr) {
|
|
5625
|
-
try {
|
|
5626
|
-
return xhr.responseText;
|
|
5627
|
-
}
|
|
5628
|
-
catch (e) {
|
|
5629
|
-
}
|
|
5630
|
-
return null;
|
|
5631
|
-
}
|
|
5632
6069
|
function isOverrideFn(httpXHROverride) {
|
|
5633
6070
|
return httpXHROverride && httpXHROverride[_DYN_SEND_POST ];
|
|
5634
6071
|
}
|
|
5635
|
-
function _prependTransports(theTransports, newTransports) {
|
|
5636
|
-
if (newTransports) {
|
|
5637
|
-
if (isNumber(newTransports)) {
|
|
5638
|
-
theTransports = [newTransports].concat(theTransports);
|
|
5639
|
-
}
|
|
5640
|
-
else if (isArray(newTransports)) {
|
|
5641
|
-
theTransports = newTransports.concat(theTransports);
|
|
5642
|
-
}
|
|
5643
|
-
}
|
|
5644
|
-
return theTransports;
|
|
5645
|
-
}
|
|
5646
6072
|
var Sender = /** @class */ (function () {
|
|
5647
6073
|
function Sender() {
|
|
5648
6074
|
var _paused;
|
|
5649
|
-
var _syncFetchPayload = 0;
|
|
5650
6075
|
var _enableSendPromise;
|
|
5651
6076
|
var _alwaysUseCustomSend;
|
|
5652
|
-
var _disableXhr;
|
|
5653
|
-
var _fallbackSend;
|
|
5654
6077
|
var _isInitialized;
|
|
5655
6078
|
var _diagLog;
|
|
5656
6079
|
var _core;
|
|
5657
6080
|
var _httpInterface;
|
|
5658
6081
|
var _onlineChannelId;
|
|
5659
6082
|
var _isOneDs;
|
|
6083
|
+
var _sendPostMgr;
|
|
6084
|
+
var _disableCredentials;
|
|
5660
6085
|
dynamicProto(Sender, this, function (_self, _base) {
|
|
5661
|
-
var _sendCredentials = true;
|
|
5662
6086
|
_initDefaults();
|
|
5663
6087
|
_self.pause = function () {
|
|
5664
6088
|
_paused = true;
|
|
@@ -5668,7 +6092,7 @@
|
|
|
5668
6092
|
_paused = false;
|
|
5669
6093
|
}
|
|
5670
6094
|
};
|
|
5671
|
-
_self
|
|
6095
|
+
_self[_DYN_GET_XHR_INST ] = function (sync) {
|
|
5672
6096
|
return _httpInterface;
|
|
5673
6097
|
};
|
|
5674
6098
|
_self[_DYN_INITIALIZE ] = function (config, core, cxt, diagLog, channelId, unloadHookContainer) {
|
|
@@ -5688,27 +6112,30 @@
|
|
|
5688
6112
|
_isOneDs = true;
|
|
5689
6113
|
}
|
|
5690
6114
|
_alwaysUseCustomSend = offlineSenderCfg.alwaysUseXhrOverride;
|
|
5691
|
-
_enableSendPromise = !(senderConfig
|
|
6115
|
+
_enableSendPromise = !(senderConfig[_DYN_ENABLE_SEND_PROMISE ] === false);
|
|
5692
6116
|
var xhrOverride = offlineSenderCfg.httpXHROverride || senderConfig.httpXHROverride;
|
|
5693
6117
|
var customInterface = isOverrideFn(xhrOverride) ? xhrOverride : null;
|
|
5694
|
-
|
|
5695
|
-
|
|
5696
|
-
|
|
5697
|
-
|
|
5698
|
-
|
|
6118
|
+
_disableCredentials = !customInterface && _isOneDs;
|
|
6119
|
+
var sendPostMgrConfig = _getSendPostMgrConfig();
|
|
6120
|
+
if (!_sendPostMgr) {
|
|
6121
|
+
_sendPostMgr = new SenderPostManager();
|
|
6122
|
+
_sendPostMgr[_DYN_INITIALIZE ](sendPostMgrConfig, _diagLog);
|
|
6123
|
+
}
|
|
6124
|
+
else {
|
|
6125
|
+
_sendPostMgr.SetConfig(sendPostMgrConfig);
|
|
5699
6126
|
}
|
|
5700
6127
|
var httpInterface = null;
|
|
5701
6128
|
var customTransPorts = offlineSenderCfg.transports || senderConfig.transports || [];
|
|
5702
|
-
var theTransports =
|
|
5703
|
-
httpInterface =
|
|
5704
|
-
var xhrInterface =
|
|
5705
|
-
_fallbackSend = _xhrSender;
|
|
6129
|
+
var theTransports = prependTransports([1 , 2 , 3 ], customTransPorts);
|
|
6130
|
+
httpInterface = _sendPostMgr[_DYN_GET_XHR_INST ](theTransports, false);
|
|
6131
|
+
var xhrInterface = _sendPostMgr.getFallbackInst();
|
|
5706
6132
|
httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);
|
|
5707
6133
|
_httpInterface = httpInterface || xhrInterface;
|
|
5708
6134
|
});
|
|
5709
6135
|
unloadHookContainer && unloadHookContainer.add(hook);
|
|
5710
6136
|
};
|
|
5711
6137
|
_self[_DYN_IS_COMPLETELY_IDLE ] = function () {
|
|
6138
|
+
var syncPayload = 0;
|
|
5712
6139
|
try {
|
|
5713
6140
|
var senderPlugin = _core.getPlugin(_onlineChannelId).plugin;
|
|
5714
6141
|
if (senderPlugin && isFunction(senderPlugin[_DYN_IS_COMPLETELY_IDLE ])) {
|
|
@@ -5716,10 +6143,13 @@
|
|
|
5716
6143
|
return false;
|
|
5717
6144
|
}
|
|
5718
6145
|
}
|
|
6146
|
+
if (_sendPostMgr) {
|
|
6147
|
+
syncPayload = _sendPostMgr.getSyncFetchPayload();
|
|
6148
|
+
}
|
|
5719
6149
|
}
|
|
5720
6150
|
catch (e) {
|
|
5721
6151
|
}
|
|
5722
|
-
return !_paused &&
|
|
6152
|
+
return !_paused && syncPayload === 0;
|
|
5723
6153
|
};
|
|
5724
6154
|
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
5725
6155
|
_initDefaults();
|
|
@@ -5727,45 +6157,35 @@
|
|
|
5727
6157
|
function _onSuccess(res, onComplete) {
|
|
5728
6158
|
_doOnComplete(onComplete, 200, {}, res);
|
|
5729
6159
|
}
|
|
6160
|
+
function _getSendPostMgrConfig() {
|
|
6161
|
+
var _a;
|
|
6162
|
+
var config = (_a = {},
|
|
6163
|
+
_a[_DYN_ENABLE_SEND_PROMISE ] = _enableSendPromise,
|
|
6164
|
+
_a.isOneDs = _isOneDs,
|
|
6165
|
+
_a.disableCredentials = _disableCredentials,
|
|
6166
|
+
_a.senderOnCompleteCallBack = _getOnCompleteFuncs(),
|
|
6167
|
+
_a);
|
|
6168
|
+
return config;
|
|
6169
|
+
}
|
|
5730
6170
|
function _onError(message, onComplete) {
|
|
5731
6171
|
_throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
|
|
5732
6172
|
_doOnComplete(onComplete, 400, {});
|
|
5733
6173
|
}
|
|
5734
|
-
function
|
|
5735
|
-
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
|
|
5743
|
-
|
|
5744
|
-
|
|
5745
|
-
|
|
5746
|
-
sendPostFunc = _xdrSender;
|
|
5747
|
-
}
|
|
5748
|
-
else if (isXhrSupported()) {
|
|
5749
|
-
sendPostFunc = _xhrSender;
|
|
5750
|
-
}
|
|
5751
|
-
}
|
|
5752
|
-
else if (transportType === 2 && isFetchSupported(syncSupport)) {
|
|
5753
|
-
sendPostFunc = _fetchSender;
|
|
5754
|
-
}
|
|
5755
|
-
else if (transportType === 3 && isBeaconsSupported()) {
|
|
5756
|
-
sendPostFunc = _beaconSender;
|
|
6174
|
+
function _getOnCompleteFuncs() {
|
|
6175
|
+
var funcs = {
|
|
6176
|
+
xdrOnComplete: function (response, oncomplete) {
|
|
6177
|
+
return _xdrOnLoad(response, oncomplete);
|
|
6178
|
+
},
|
|
6179
|
+
fetchOnComplete: function (response, onComplete, resValue) {
|
|
6180
|
+
var status = response.status;
|
|
6181
|
+
return _handleResponse(onComplete, status, {}, resValue);
|
|
6182
|
+
},
|
|
6183
|
+
xhrOnComplete: function (request, oncomplete) {
|
|
6184
|
+
var response = getResponseText(request);
|
|
6185
|
+
return _handleResponse(oncomplete, request.status, {}, response);
|
|
5757
6186
|
}
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
if (sendPostFunc) {
|
|
5761
|
-
return _a = {},
|
|
5762
|
-
_a[_DYN_SEND_POST ] = sendPostFunc,
|
|
5763
|
-
_a;
|
|
5764
|
-
}
|
|
5765
|
-
return null;
|
|
5766
|
-
}
|
|
5767
|
-
function _fetchSender(payload, oncomplete, sync) {
|
|
5768
|
-
return _doFetchSender(payload, oncomplete, false);
|
|
6187
|
+
};
|
|
6188
|
+
return funcs;
|
|
5769
6189
|
}
|
|
5770
6190
|
function _doOnComplete(oncomplete, status, headers, response) {
|
|
5771
6191
|
try {
|
|
@@ -5774,170 +6194,6 @@
|
|
|
5774
6194
|
catch (e) {
|
|
5775
6195
|
}
|
|
5776
6196
|
}
|
|
5777
|
-
function _doBeaconSend(payload, oncomplete) {
|
|
5778
|
-
var nav = getNavigator();
|
|
5779
|
-
var url = payload[_DYN_URL_STRING ];
|
|
5780
|
-
if (!url) {
|
|
5781
|
-
_onNoPayloadUrl(oncomplete);
|
|
5782
|
-
return true;
|
|
5783
|
-
}
|
|
5784
|
-
var data = payload[_DYN_DATA ];
|
|
5785
|
-
var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
|
|
5786
|
-
var queued = nav.sendBeacon(url, plainTextBatch);
|
|
5787
|
-
if (queued) {
|
|
5788
|
-
_onSuccess(null, oncomplete);
|
|
5789
|
-
}
|
|
5790
|
-
return queued;
|
|
5791
|
-
}
|
|
5792
|
-
function _beaconSender(payload, oncomplete, sync) {
|
|
5793
|
-
var data = payload[_DYN_DATA ];
|
|
5794
|
-
if (data) {
|
|
5795
|
-
if (!_doBeaconSend(payload, oncomplete)) {
|
|
5796
|
-
_fallbackSend && _fallbackSend(payload, oncomplete, true);
|
|
5797
|
-
_throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
|
|
5798
|
-
}
|
|
5799
|
-
}
|
|
5800
|
-
return;
|
|
5801
|
-
}
|
|
5802
|
-
function _xhrSender(payload, oncomplete, sync) {
|
|
5803
|
-
var thePromise;
|
|
5804
|
-
var resolveFunc;
|
|
5805
|
-
var rejectFunc;
|
|
5806
|
-
var headers = payload.headers || {};
|
|
5807
|
-
if (!sync && _enableSendPromise) {
|
|
5808
|
-
thePromise = createPromise(function (resolve, reject) {
|
|
5809
|
-
resolveFunc = resolve;
|
|
5810
|
-
rejectFunc = reject;
|
|
5811
|
-
});
|
|
5812
|
-
}
|
|
5813
|
-
var xhr = new XMLHttpRequest();
|
|
5814
|
-
var endPointUrl = payload[_DYN_URL_STRING ];
|
|
5815
|
-
if (!endPointUrl) {
|
|
5816
|
-
_onNoPayloadUrl(oncomplete);
|
|
5817
|
-
resolveFunc && resolveFunc(false);
|
|
5818
|
-
return;
|
|
5819
|
-
}
|
|
5820
|
-
try {
|
|
5821
|
-
xhr[DisabledPropertyName] = true;
|
|
5822
|
-
}
|
|
5823
|
-
catch (e) {
|
|
5824
|
-
}
|
|
5825
|
-
xhr.open("POST", endPointUrl, !sync);
|
|
5826
|
-
xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
|
|
5827
|
-
arrForEach(objKeys(headers), function (headerName) {
|
|
5828
|
-
xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
|
|
5829
|
-
});
|
|
5830
|
-
xhr.onreadystatechange = function () {
|
|
5831
|
-
var response = _getResponseText(xhr);
|
|
5832
|
-
if (xhr.readyState !== 4) {
|
|
5833
|
-
_handleResponse(oncomplete, xhr[_DYN_STATUS ], {}, response);
|
|
5834
|
-
resolveFunc && resolveFunc(false);
|
|
5835
|
-
}
|
|
5836
|
-
_handleResponse(oncomplete, xhr[_DYN_STATUS ], {}, response);
|
|
5837
|
-
resolveFunc && resolveFunc(true);
|
|
5838
|
-
};
|
|
5839
|
-
xhr[_DYN_ONERROR ] = function (event) {
|
|
5840
|
-
_doOnComplete(oncomplete, 400, {}, _formatErrorMessageXhr(xhr));
|
|
5841
|
-
rejectFunc && rejectFunc(event);
|
|
5842
|
-
};
|
|
5843
|
-
xhr.ontimeout = function () {
|
|
5844
|
-
_doOnComplete(oncomplete, 500, {}, _formatErrorMessageXhr(xhr));
|
|
5845
|
-
resolveFunc && resolveFunc(false);
|
|
5846
|
-
};
|
|
5847
|
-
xhr.send(payload[_DYN_DATA ]);
|
|
5848
|
-
return thePromise;
|
|
5849
|
-
}
|
|
5850
|
-
function _doFetchSender(payload, oncomplete, sync) {
|
|
5851
|
-
var _a;
|
|
5852
|
-
var endPointUrl = payload[_DYN_URL_STRING ];
|
|
5853
|
-
var batch = payload[_DYN_DATA ];
|
|
5854
|
-
var plainTextBatch = new Blob([batch], { type: "application/json" });
|
|
5855
|
-
var thePromise;
|
|
5856
|
-
var resolveFunc;
|
|
5857
|
-
var rejectFunc;
|
|
5858
|
-
var requestHeaders = new Headers();
|
|
5859
|
-
var batchLength = batch[_DYN_LENGTH ];
|
|
5860
|
-
var ignoreResponse = false;
|
|
5861
|
-
var responseHandled = false;
|
|
5862
|
-
var headers = payload.headers || [];
|
|
5863
|
-
arrForEach(objKeys(headers), function (headerName) {
|
|
5864
|
-
requestHeaders.append(headerName, headers[headerName]);
|
|
5865
|
-
});
|
|
5866
|
-
var init = (_a = {
|
|
5867
|
-
method: "POST",
|
|
5868
|
-
headers: requestHeaders,
|
|
5869
|
-
body: plainTextBatch
|
|
5870
|
-
},
|
|
5871
|
-
_a[DisabledPropertyName] = true
|
|
5872
|
-
,
|
|
5873
|
-
_a);
|
|
5874
|
-
if (_sendCredentials && _isOneDs) {
|
|
5875
|
-
init.credentials = "include";
|
|
5876
|
-
}
|
|
5877
|
-
if (sync) {
|
|
5878
|
-
init.keepalive = true;
|
|
5879
|
-
ignoreResponse = true;
|
|
5880
|
-
_syncFetchPayload += batchLength;
|
|
5881
|
-
}
|
|
5882
|
-
var request = new Request(endPointUrl, init);
|
|
5883
|
-
try {
|
|
5884
|
-
request[DisabledPropertyName] = true;
|
|
5885
|
-
}
|
|
5886
|
-
catch (e) {
|
|
5887
|
-
}
|
|
5888
|
-
if (!sync && _enableSendPromise) {
|
|
5889
|
-
thePromise = createPromise(function (resolve, reject) {
|
|
5890
|
-
resolveFunc = resolve;
|
|
5891
|
-
rejectFunc = reject;
|
|
5892
|
-
});
|
|
5893
|
-
}
|
|
5894
|
-
if (!endPointUrl) {
|
|
5895
|
-
_onNoPayloadUrl(oncomplete);
|
|
5896
|
-
resolveFunc && resolveFunc(false);
|
|
5897
|
-
return;
|
|
5898
|
-
}
|
|
5899
|
-
try {
|
|
5900
|
-
doAwaitResponse(fetch(request), function (result) {
|
|
5901
|
-
if (sync) {
|
|
5902
|
-
_syncFetchPayload -= batchLength;
|
|
5903
|
-
batchLength = 0;
|
|
5904
|
-
}
|
|
5905
|
-
if (!responseHandled) {
|
|
5906
|
-
responseHandled = true;
|
|
5907
|
-
if (!result[_DYN_REJECTED ]) {
|
|
5908
|
-
var response_1 = result[_DYN_VALUE ];
|
|
5909
|
-
if (!response_1.ok) {
|
|
5910
|
-
_doOnComplete(oncomplete, 400, {}, response_1.statusText);
|
|
5911
|
-
resolveFunc && resolveFunc(false);
|
|
5912
|
-
}
|
|
5913
|
-
else {
|
|
5914
|
-
doAwaitResponse(response_1.text(), function (resp) {
|
|
5915
|
-
var status = response_1[_DYN_STATUS ];
|
|
5916
|
-
_handleResponse(oncomplete, status, {}, response_1.statusText);
|
|
5917
|
-
resolveFunc && resolveFunc(true);
|
|
5918
|
-
});
|
|
5919
|
-
}
|
|
5920
|
-
}
|
|
5921
|
-
else {
|
|
5922
|
-
_doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ].message);
|
|
5923
|
-
rejectFunc && rejectFunc(result[_DYN_REASON ]);
|
|
5924
|
-
}
|
|
5925
|
-
}
|
|
5926
|
-
});
|
|
5927
|
-
}
|
|
5928
|
-
catch (e) {
|
|
5929
|
-
if (!responseHandled) {
|
|
5930
|
-
_doOnComplete(oncomplete, 400, {}, dumpObj(e));
|
|
5931
|
-
rejectFunc && rejectFunc(e);
|
|
5932
|
-
}
|
|
5933
|
-
}
|
|
5934
|
-
if (ignoreResponse && !responseHandled) {
|
|
5935
|
-
responseHandled = true;
|
|
5936
|
-
_doOnComplete(oncomplete, 200, {});
|
|
5937
|
-
resolveFunc && resolveFunc(true);
|
|
5938
|
-
}
|
|
5939
|
-
return thePromise;
|
|
5940
|
-
}
|
|
5941
6197
|
function _handleResponse(oncomplete, status, headers, response) {
|
|
5942
6198
|
if (status == 206 && !_isOneDs) {
|
|
5943
6199
|
_doOnComplete(oncomplete, 200, headers, response);
|
|
@@ -5949,96 +6205,28 @@
|
|
|
5949
6205
|
_doOnComplete(oncomplete, status, headers, response);
|
|
5950
6206
|
}
|
|
5951
6207
|
}
|
|
5952
|
-
function _parseResponse(response) {
|
|
5953
|
-
try {
|
|
5954
|
-
if (response && response !== "") {
|
|
5955
|
-
var result = getJSON().parse(response);
|
|
5956
|
-
if (_isOneDs) {
|
|
5957
|
-
return result;
|
|
5958
|
-
}
|
|
5959
|
-
if (result && result.itemsReceived) {
|
|
5960
|
-
return result;
|
|
5961
|
-
}
|
|
5962
|
-
}
|
|
5963
|
-
}
|
|
5964
|
-
catch (e) {
|
|
5965
|
-
_throwInternal(_diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
|
|
5966
|
-
response: response
|
|
5967
|
-
});
|
|
5968
|
-
}
|
|
5969
|
-
return null;
|
|
5970
|
-
}
|
|
5971
|
-
function _formatErrorMessageXhr(xhr, message) {
|
|
5972
|
-
if (xhr) {
|
|
5973
|
-
return "XMLHttpRequest,Status:" + xhr[_DYN_STATUS ] + ",Response:" + _getResponseText(xhr) || xhr.response || "";
|
|
5974
|
-
}
|
|
5975
|
-
return message;
|
|
5976
|
-
}
|
|
5977
|
-
function _xdrSender(payload, oncomplete, sync) {
|
|
5978
|
-
var _window = getWindow();
|
|
5979
|
-
var xdr = new XDomainRequest();
|
|
5980
|
-
var data = payload[_DYN_DATA ];
|
|
5981
|
-
xdr.onload = function () {
|
|
5982
|
-
var response = _getResponseText(xdr);
|
|
5983
|
-
if (_isOneDs) {
|
|
5984
|
-
_doOnComplete(oncomplete, 200, {}, response);
|
|
5985
|
-
}
|
|
5986
|
-
else {
|
|
5987
|
-
_xdrOnLoad(xdr, oncomplete);
|
|
5988
|
-
}
|
|
5989
|
-
};
|
|
5990
|
-
xdr[_DYN_ONERROR ] = function () {
|
|
5991
|
-
_doOnComplete(oncomplete, 400, {}, _formatErrorMessageXdr(xdr));
|
|
5992
|
-
};
|
|
5993
|
-
xdr.ontimeout = function () {
|
|
5994
|
-
_doOnComplete(oncomplete, 500, {});
|
|
5995
|
-
};
|
|
5996
|
-
xdr.onprogress = function () { };
|
|
5997
|
-
var hostingProtocol = _window && _window.location && _window.location.protocol || "";
|
|
5998
|
-
var endpoint = payload[_DYN_URL_STRING ];
|
|
5999
|
-
if (!endpoint) {
|
|
6000
|
-
_onNoPayloadUrl(oncomplete);
|
|
6001
|
-
return;
|
|
6002
|
-
}
|
|
6003
|
-
if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
|
|
6004
|
-
_throwInternal(_diagLog, 2 , 40 , ". " +
|
|
6005
|
-
"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.");
|
|
6006
|
-
return;
|
|
6007
|
-
}
|
|
6008
|
-
var endpointUrl = endpoint[_DYN_REPLACE ](/^(https?:)/, "");
|
|
6009
|
-
xdr.open("POST", endpointUrl);
|
|
6010
|
-
xdr.send(data);
|
|
6011
|
-
}
|
|
6012
6208
|
function _xdrOnLoad(xdr, oncomplete) {
|
|
6013
|
-
var responseText =
|
|
6209
|
+
var responseText = getResponseText(xdr);
|
|
6014
6210
|
if (xdr && (responseText + "" === "200" || responseText === "")) {
|
|
6015
6211
|
_onSuccess(responseText, oncomplete);
|
|
6016
6212
|
}
|
|
6017
6213
|
else {
|
|
6018
|
-
var results =
|
|
6214
|
+
var results = parseResponse(responseText, _diagLog);
|
|
6019
6215
|
if (results && results.itemsAccepted) {
|
|
6020
6216
|
_onSuccess(responseText, oncomplete);
|
|
6021
6217
|
}
|
|
6022
6218
|
else {
|
|
6023
|
-
_onError(
|
|
6219
|
+
_onError(formatErrorMessageXdr(xdr), oncomplete);
|
|
6024
6220
|
}
|
|
6025
6221
|
}
|
|
6026
6222
|
}
|
|
6027
|
-
function _formatErrorMessageXdr(xdr, message) {
|
|
6028
|
-
if (xdr) {
|
|
6029
|
-
return "XDomainRequest,Response:" + _getResponseText(xdr) || "";
|
|
6030
|
-
}
|
|
6031
|
-
return message;
|
|
6032
|
-
}
|
|
6033
6223
|
function _initDefaults() {
|
|
6034
6224
|
_self._appId = null;
|
|
6035
6225
|
_paused = false;
|
|
6036
|
-
_syncFetchPayload = 0;
|
|
6037
|
-
_disableXhr = false;
|
|
6038
6226
|
_isInitialized = false;
|
|
6039
|
-
_fallbackSend = null;
|
|
6040
6227
|
_core = null;
|
|
6041
6228
|
_onlineChannelId = null;
|
|
6229
|
+
_sendPostMgr = null;
|
|
6042
6230
|
}
|
|
6043
6231
|
});
|
|
6044
6232
|
}
|
|
@@ -6046,7 +6234,7 @@
|
|
|
6046
6234
|
return Sender;
|
|
6047
6235
|
}());
|
|
6048
6236
|
|
|
6049
|
-
var version = '0.1.1-nightly3.
|
|
6237
|
+
var version = '0.1.1-nightly3.2403-02';
|
|
6050
6238
|
var DefaultOfflineIdentifier = "OfflineChannel";
|
|
6051
6239
|
var DefaultBatchInterval = 15000;
|
|
6052
6240
|
var DefaultInMemoMaxTime = 15000;
|
|
@@ -6115,7 +6303,7 @@
|
|
|
6115
6303
|
var ctx = _getCoreItemCtx(coreConfig, core, extensions, pluginChain);
|
|
6116
6304
|
_sender[_DYN_INITIALIZE ](coreConfig, core, ctx, _diagLogger, _primaryChannelId, _self._unloadHooks);
|
|
6117
6305
|
if (_sender) {
|
|
6118
|
-
_senderInst = _sender
|
|
6306
|
+
_senderInst = _sender[_DYN_GET_XHR_INST ]();
|
|
6119
6307
|
_offlineListener.addListener(function (val) {
|
|
6120
6308
|
if (!val[_DYN_IS_ONLINE ]) {
|
|
6121
6309
|
_sendNextBatchTimer && _sendNextBatchTimer[_DYN_CANCEL ]();
|