@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.
Files changed (29) hide show
  1. package/dist/es5/applicationinsights-offlinechannel-js.js +698 -510
  2. package/dist/es5/applicationinsights-offlinechannel-js.js.map +1 -1
  3. package/dist/es5/applicationinsights-offlinechannel-js.min.js +2 -2
  4. package/dist/es5/applicationinsights-offlinechannel-js.min.js.map +1 -1
  5. package/dist-es5/Helpers/Utils.js +5 -5
  6. package/dist-es5/Helpers/Utils.js.map +1 -1
  7. package/dist-es5/InMemoryBatch.js +1 -1
  8. package/dist-es5/Interfaces/IInMemoryBatch.js +1 -1
  9. package/dist-es5/Interfaces/IOfflineBatch.js +1 -1
  10. package/dist-es5/Interfaces/IOfflineIndexDb.js +1 -1
  11. package/dist-es5/Interfaces/IOfflineProvider.js +1 -1
  12. package/dist-es5/Interfaces/ISender.js +1 -1
  13. package/dist-es5/OfflineBatchHandler.js +4 -4
  14. package/dist-es5/OfflineBatchHandler.js.map +1 -1
  15. package/dist-es5/OfflineChannel.js +4 -4
  16. package/dist-es5/OfflineChannel.js.map +1 -1
  17. package/dist-es5/PayloadHelper.js +1 -1
  18. package/dist-es5/Providers/IndexDbHelper.js +4 -4
  19. package/dist-es5/Providers/IndexDbHelper.js.map +1 -1
  20. package/dist-es5/Providers/IndexDbProvider.js +1 -1
  21. package/dist-es5/Providers/WebStorageProvider.js +1 -1
  22. package/dist-es5/Sender.js +55 -400
  23. package/dist-es5/Sender.js.map +1 -1
  24. package/dist-es5/__DynamicConstants.js +10 -13
  25. package/dist-es5/__DynamicConstants.js.map +1 -1
  26. package/dist-es5/applicationinsights-offlinechannel-js.js +1 -1
  27. package/package.json +3 -3
  28. package/types/applicationinsights-offlinechannel-js.d.ts +1 -1
  29. 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.2402-22
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$1 = "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$1 = "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$1 ] > 1) {
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$1 ](rCamelCase, function (_all, letter) {
1694
+ value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
1681
1695
  return letter.toUpperCase();
1682
1696
  });
1683
- value = value[_DYN_REPLACE$1 ](rNormalizeInvalid, "_");
1684
- value = value[_DYN_REPLACE$1 ](rLeadingNumeric, function (_all, match) {
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$1 ] < maxLength) {
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$1 ]; lp++) {
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$1 ] = theValue[_DYN_LENGTH$1 ];
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$1 ] = source[_DYN_LENGTH$1 ];
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$1 ] > 0) {
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$1 ] > 0) {
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$1 ]; idx++) {
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$1 ](/\"/g, STR_EMPTY) + "\"";
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$1 ]; lp++) {
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$1 ] > 0) {
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$1 ] > 0) {
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$1 ]) {
3496
- return name[_DYN_REPLACE$1 ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
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$1 ];
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$1 ] === 0) {
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 _DYN_PUSH$1 = "push";
3658
-
3659
- var EventPersistence = createEnumStyle({
3660
- Normal: 1 ,
3661
- Critical: 2
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
- function _disableEvents(target, evtNamespace) {
3665
- eventOff(target, null, null, evtNamespace);
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 createOfflineListener(parentEvtNamespace) {
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
- if (_enableEvents(getWindow())) {
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
- function _enableEvents(target) {
3696
- var enabled = false;
3697
- if (target) {
3698
- enabled = eventOn(target, "online", _setOnline, _evtNamespace);
3699
- if (enabled) {
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
- function _isOnline() {
3706
- return _currentState;
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
- function calCurrentState() {
3709
- if (uState === 2 || rState === 2 ) {
3710
- return false;
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
- function listnerNoticeCheck() {
3715
- var newState = calCurrentState();
3716
- if (_currentState !== newState) {
3717
- _currentState = newState;
3718
- arrForEach(listenerList, function (callback) {
3719
- var offlineState = {
3720
- isOnline: _currentState,
3721
- rState: rState,
3722
- uState: uState
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
- callback(offlineState);
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
- function setOnlineState(newState) {
3733
- uState = newState;
3734
- listnerNoticeCheck();
3735
- }
3736
- function _setOnline() {
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
- _isListening = false;
3755
- }
3756
- }
3757
- function addListener(callback) {
3758
- listenerList[_DYN_PUSH$1 ](callback);
3759
- return {
3760
- rm: function () {
3761
- var index = listenerList.indexOf(callback);
3762
- if (index > -1) {
3763
- return listenerList.splice(index, 1);
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
- else {
3766
- return;
3855
+ if (sendPostFunc) {
3856
+ return {
3857
+ sendPOST: sendPostFunc
3858
+ };
3767
3859
  }
3860
+ return null;
3768
3861
  }
3769
- };
3770
- }
3771
- return {
3772
- isOnline: _isOnline,
3773
- isListening: function () { return _isListening; },
3774
- unload: _unload,
3775
- addListener: addListener,
3776
- setOnlineState: setOnlineState
3777
- };
3778
- }
3779
-
3780
- var BreezeChannelIdentifier = "AppInsightsChannelPlugin";
3781
-
3782
- var _DYN_ENDPOINT = "endpoint";
3783
- var _DYN_ADD_EVENT = "addEvent";
3784
- var _DYN_COUNT = "count";
3785
- var _DYN_PUSH = "push";
3786
- var _DYN_LENGTH = "length";
3787
- var _DYN_CLEAR = "clear";
3788
- var _DYN_GET_ITEMS = "getItems";
3789
- var _DYN_SPLIT = "split";
3790
- var _DYN_SPLICE = "splice";
3791
- var _DYN_INITIALIZE = "initialize";
3792
- var _DYN_DIAG_LOG = "diagLog";
3793
- var _DYN_ITEM_CTX = "itemCtx";
3794
- var _DYN_STORAGE_CONFIG = "storageConfig";
3795
- var _DYN_VALUE = "value";
3796
- var _DYN_REASON = "reason";
3797
- var _DYN_REJECTED = "rejected";
3798
- var _DYN_GET_NEXT_BATCH = "getNextBatch";
3799
- var _DYN_REMOVE_EVENTS = "removeEvents";
3800
- var _DYN_DATA = "data";
3801
- var _DYN_SEND_POST = "sendPOST";
3802
- var _DYN_ATTEMP_CNT = "attempCnt";
3803
- var _DYN_STATE = "state";
3804
- var _DYN_TEARDOWN = "teardown";
3805
- var _DYN_IS_ARR = "isArr";
3806
- var _DYN_INDEX_OF = "indexOf";
3807
- var _DYN_IS_ONLINE = "isOnline";
3808
- var _DYN_CANCEL = "cancel";
3809
- var _DYN_PROCESS_NEXT = "processNext";
3810
- var _DYN_PERSISTENCE = "persistence";
3811
- var _DYN_ONUNLOAD_FLUSH = "onunloadFlush";
3812
- var _DYN_BATCH_HANDLER = "batchHandler";
3813
- var _DYN_MIN_PERSISTENCE_CACH0 = "minPersistenceCacheLevel";
3814
- var _DYN_REFRESH = "refresh";
3815
- var _DYN_IS_COMPLETELY_IDLE = "isCompletelyIdle";
3816
- var _DYN_CRITICAL_CNT = "criticalCnt";
3817
- var _DYN_GET_OFFLINE_SUPPORT = "getOfflineSupport";
3818
- var _DYN_OVERRIDE_INSTRUMENTA1 = "overrideInstrumentationKey";
3819
- var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
3820
- var _DYN_NOTIFICATION_MGR = "notificationMgr";
3821
- var _DYN_TO_STRING = "toString";
3822
- var _DYN_URL_STRING = "urlString";
3823
- var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
3824
- var _DYN_STATUS = "status";
3825
- var _DYN_ONERROR = "onerror";
3826
- var _DYN_REPLACE = "replace";
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[_DYN_REASON ]);
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[_DYN_ONERROR ] = _eventReject(storeCtx.db[_DYN_DB_NAME ], ErrorMessageFailedToOpenCursor, openCursorReject, "openCursor");
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[_DYN_REPLACE ](/^https?:\/\/|^www\./, "");
4751
- url = url[_DYN_REPLACE ](/\?/, "/");
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[_DYN_REPLACE ](/[^A-Za-z0-9\+\/\=]/g, "");
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[_DYN_REASON ] || [];
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.data = res[_DYN_REASON ];
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.getXhrInst = function (sync) {
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.enableSendPromise === false);
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
- if (!customInterface && _isOneDs) {
5695
- var location_1 = getLocation();
5696
- if (location_1 && location_1.protocol && location_1.protocol.toLowerCase() === "file:") {
5697
- _sendCredentials = false;
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 = _prependTransports([1 , 2 , 3 ], customTransPorts);
5703
- httpInterface = _getSenderInterface(theTransports, false);
5704
- var xhrInterface = { sendPOST: _xhrSender };
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 && _syncFetchPayload === 0;
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 _onNoPayloadUrl(onComplete) {
5735
- _onError("No endpoint url is provided for the batch", onComplete);
5736
- }
5737
- function _getSenderInterface(transports, syncSupport) {
5738
- var _a;
5739
- var transportType = null;
5740
- var sendPostFunc = null;
5741
- var lp = 0;
5742
- while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
5743
- transportType = transports[lp];
5744
- if (!_disableXhr && transportType === 1 ) {
5745
- if (useXDomainRequest()) {
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
- lp++;
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 = _getResponseText(xdr);
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 = _parseResponse(responseText);
6214
+ var results = parseResponse(responseText, _diagLog);
6019
6215
  if (results && results.itemsAccepted) {
6020
6216
  _onSuccess(responseText, oncomplete);
6021
6217
  }
6022
6218
  else {
6023
- _onError(_formatErrorMessageXdr(xdr), oncomplete);
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.2402-22';
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.getXhrInst();
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 ]();