@microsoft/applicationinsights-channel-js 3.1.3-nightly3.240410-01 → 3.1.3-nightly3.240412-01

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.js → applicationinsights-channel-js.3.1.3-nightly3.240412-01.cjs.js} +178 -77
  2. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.cjs.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.cjs.js.map} +1 -1
  3. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.cjs.min.js → applicationinsights-channel-js.3.1.3-nightly3.240412-01.cjs.min.js} +3 -3
  4. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.cjs.min.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.cjs.min.js.map} +1 -1
  5. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.gbl.js → applicationinsights-channel-js.3.1.3-nightly3.240412-01.gbl.js} +180 -52
  6. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.gbl.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.gbl.js.map} +1 -1
  7. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240412-01.gbl.min.js +6 -0
  8. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.gbl.min.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.gbl.min.js.map} +1 -1
  9. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240412-01.integrity.json +66 -0
  10. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.cjs.js → applicationinsights-channel-js.3.1.3-nightly3.240412-01.js} +205 -50
  11. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.js.map} +1 -1
  12. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240412-01.min.js +6 -0
  13. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.240410-01.min.js.map → applicationinsights-channel-js.3.1.3-nightly3.240412-01.min.js.map} +1 -1
  14. package/browser/es5/applicationinsights-channel-js.3.cjs.js +177 -49
  15. package/browser/es5/applicationinsights-channel-js.3.cjs.js.map +1 -1
  16. package/browser/es5/applicationinsights-channel-js.3.cjs.min.js +2 -2
  17. package/browser/es5/applicationinsights-channel-js.3.cjs.min.js.map +1 -1
  18. package/browser/es5/applicationinsights-channel-js.3.gbl.js +179 -51
  19. package/browser/es5/applicationinsights-channel-js.3.gbl.js.map +1 -1
  20. package/browser/es5/applicationinsights-channel-js.3.gbl.min.js +2 -2
  21. package/browser/es5/applicationinsights-channel-js.3.gbl.min.js.map +1 -1
  22. package/browser/es5/applicationinsights-channel-js.3.integrity.json +25 -25
  23. package/browser/es5/applicationinsights-channel-js.3.js +179 -51
  24. package/browser/es5/applicationinsights-channel-js.3.js.map +1 -1
  25. package/browser/es5/applicationinsights-channel-js.3.min.js +2 -2
  26. package/browser/es5/applicationinsights-channel-js.3.min.js.map +1 -1
  27. package/dist/es5/applicationinsights-channel-js.js +177 -49
  28. package/dist/es5/applicationinsights-channel-js.js.map +1 -1
  29. package/dist/es5/applicationinsights-channel-js.min.js +2 -2
  30. package/dist/es5/applicationinsights-channel-js.min.js.map +1 -1
  31. package/dist-es5/EnvelopeCreator.js +2 -2
  32. package/dist-es5/EnvelopeCreator.js.map +1 -1
  33. package/dist-es5/Interfaces.js +1 -1
  34. package/dist-es5/InternalConstants.js +1 -1
  35. package/dist-es5/SendBuffer.js +98 -19
  36. package/dist-es5/SendBuffer.js.map +1 -1
  37. package/dist-es5/Sender.js +94 -35
  38. package/dist-es5/Sender.js.map +1 -1
  39. package/dist-es5/Serializer.js +1 -1
  40. package/dist-es5/TelemetryProcessors/Sample.js +1 -1
  41. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js +3 -3
  42. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js.map +1 -1
  43. package/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +1 -1
  44. package/dist-es5/__DynamicConstants.js +6 -4
  45. package/dist-es5/__DynamicConstants.js.map +1 -1
  46. package/dist-es5/applicationinsights-channel-js.js +1 -1
  47. package/package.json +3 -3
  48. package/types/applicationinsights-channel-js.d.ts +59 -22
  49. package/types/applicationinsights-channel-js.namespaced.d.ts +59 -22
  50. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240410-01.gbl.min.js +0 -6
  51. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240410-01.integrity.json +0 -66
  52. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.240410-01.min.js +0 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Channel, 3.1.3-nightly3.240410-01
2
+ * Application Insights JavaScript SDK - Channel, 3.1.3-nightly3.240412-01
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -4462,6 +4462,20 @@
4462
4462
  }
4463
4463
  return false;
4464
4464
  }
4465
+ function utlRemoveSessionStorage(logger, name) {
4466
+ var storage = _getSessionStorageObject();
4467
+ if (storage !== null) {
4468
+ try {
4469
+ storage[_DYN_REMOVE_ITEM ](name);
4470
+ return true;
4471
+ }
4472
+ catch (e) {
4473
+ _canUseSessionStorage = false;
4474
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
4475
+ }
4476
+ }
4477
+ return false;
4478
+ }
4465
4479
 
4466
4480
  var Envelope = /** @class */ (function () {
4467
4481
  function Envelope(logger, data, name) {
@@ -5402,6 +5416,7 @@
5402
5416
  var _DYN_COUNT = "count";
5403
5417
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
5404
5418
  var _DYN_PUSH = "push";
5419
+ var _DYN_ITEM = "item";
5405
5420
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
5406
5421
  var _DYN_CLEAR = "clear";
5407
5422
  var _DYN_CREATE_NEW = "createNew";
@@ -5410,6 +5425,7 @@
5410
5425
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
5411
5426
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
5412
5427
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
5428
+ var _DYN_CONCAT = "concat";
5413
5429
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
5414
5430
  var _DYN_TRIGGER_SEND = "triggerSend";
5415
5431
  var _DYN_DIAG_LOG = "diagLog";
@@ -5435,8 +5451,8 @@
5435
5451
  var _DYN__ON_ERROR = "_onError";
5436
5452
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
5437
5453
  var _DYN__ON_SUCCESS = "_onSuccess";
5438
- var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
5439
5454
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
5455
+ var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
5440
5456
  var _DYN_ORI_PAYLOAD = "oriPayload";
5441
5457
  var _DYN_BASE_TYPE = "baseType";
5442
5458
  var _DYN_SAMPLE_RATE = "sampleRate";
@@ -5554,7 +5570,7 @@
5554
5570
  }
5555
5571
  }
5556
5572
  var EnvelopeCreator = {
5557
- Version: '3.1.3-nightly3.240410-01'
5573
+ Version: '3.1.3-nightly3.240412-01'
5558
5574
  };
5559
5575
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5560
5576
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5707,6 +5723,7 @@
5707
5723
  function BaseSendBuffer(logger, config) {
5708
5724
  var _buffer = [];
5709
5725
  var _bufferFullMessageSent = false;
5726
+ var _maxRetryCnt = config.maxRetryCnt;
5710
5727
  this[_DYN__GET ] = function () {
5711
5728
  return _buffer;
5712
5729
  };
@@ -5723,7 +5740,14 @@
5723
5740
  }
5724
5741
  return;
5725
5742
  }
5743
+ payload.cnt = payload.cnt || 0;
5744
+ if (!isNullOrUndefined(_maxRetryCnt)) {
5745
+ if (payload.cnt > _maxRetryCnt) {
5746
+ return;
5747
+ }
5748
+ }
5726
5749
  _buffer[_DYN_PUSH ](payload);
5750
+ return;
5727
5751
  };
5728
5752
  _self[_DYN_COUNT ] = function () {
5729
5753
  return _buffer[_DYN_LENGTH ];
@@ -5731,7 +5755,7 @@
5731
5755
  _self.size = function () {
5732
5756
  var size = _buffer[_DYN_LENGTH ];
5733
5757
  for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
5734
- size += _buffer[lp][_DYN_LENGTH ];
5758
+ size += (_buffer[lp].item)[_DYN_LENGTH ];
5735
5759
  }
5736
5760
  if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]) {
5737
5761
  size += 2;
@@ -5745,11 +5769,15 @@
5745
5769
  _self.getItems = function () {
5746
5770
  return _buffer.slice(0);
5747
5771
  };
5748
- _self.batchPayloads = function (payload) {
5749
- if (payload && payload[_DYN_LENGTH ] > 0) {
5772
+ _self.batchPayloads = function (payloads) {
5773
+ if (payloads && payloads[_DYN_LENGTH ] > 0) {
5774
+ var payloadStr_1 = [];
5775
+ arrForEach(payloads, function (payload) {
5776
+ payloadStr_1[_DYN_PUSH ](payload[_DYN_ITEM ]);
5777
+ });
5750
5778
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
5751
- payload.join("\n") :
5752
- "[" + payload.join(",") + "]";
5779
+ payloadStr_1.join("\n") :
5780
+ "[" + payloadStr_1.join(",") + "]";
5753
5781
  return batch;
5754
5782
  }
5755
5783
  return null;
@@ -5785,17 +5813,21 @@
5785
5813
  ArraySendBuffer.__ieDyn=1;
5786
5814
  return ArraySendBuffer;
5787
5815
  }(BaseSendBuffer));
5816
+ var PREVIOUS_KEYS = ["AI_buffer", "AI_sentBuffer"];
5788
5817
  var SessionStorageSendBuffer = /** @class */ (function (_super) {
5789
5818
  __extendsFn(SessionStorageSendBuffer, _super);
5790
5819
  function SessionStorageSendBuffer(logger, config) {
5791
5820
  var _this = _super.call(this, logger, config) || this;
5792
5821
  var _bufferFullMessageSent = false;
5793
5822
  var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
5794
- var _a = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;
5823
+ var _b = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;
5824
+ var _maxRetryCnt = config.maxRetryCnt;
5795
5825
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
5796
5826
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
5797
- var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5798
- var buffer = _self._set(bufferItems.concat(notDeliveredItems));
5827
+ var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5828
+ var previousItems = _getPreviousEvents();
5829
+ var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT ](previousItems);
5830
+ var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
5799
5831
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5800
5832
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
5801
5833
  }
@@ -5809,6 +5841,12 @@
5809
5841
  }
5810
5842
  return;
5811
5843
  }
5844
+ payload.cnt = payload.cnt || 0;
5845
+ if (!isNullOrUndefined(_maxRetryCnt)) {
5846
+ if (payload.cnt > _maxRetryCnt) {
5847
+ return;
5848
+ }
5849
+ }
5812
5850
  _base[_DYN_ENQUEUE ](payload);
5813
5851
  _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
5814
5852
  };
@@ -5822,7 +5860,7 @@
5822
5860
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
5823
5861
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5824
5862
  if (sentElements instanceof Array && payload instanceof Array) {
5825
- sentElements = sentElements.concat(payload);
5863
+ sentElements = sentElements[_DYN_CONCAT ](payload);
5826
5864
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5827
5865
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
5828
5866
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -5853,8 +5891,12 @@
5853
5891
  };
5854
5892
  function _removePayloadsFromBuffer(payloads, buffer) {
5855
5893
  var remaining = [];
5894
+ var payloadStr = [];
5895
+ arrForEach(payloads, function (payload) {
5896
+ payloadStr[_DYN_PUSH ](payload[_DYN_ITEM ]);
5897
+ });
5856
5898
  arrForEach(buffer, function (value) {
5857
- if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
5899
+ if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM ]) === -1) {
5858
5900
  remaining[_DYN_PUSH ](value);
5859
5901
  }
5860
5902
  });
@@ -5862,9 +5904,12 @@
5862
5904
  }
5863
5905
  function _getBuffer(key) {
5864
5906
  var prefixedKey = key;
5907
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
5908
+ return _getBufferBase(prefixedKey);
5909
+ }
5910
+ function _getBufferBase(key) {
5865
5911
  try {
5866
- prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
5867
- var bufferJson = getItem(logger, prefixedKey);
5912
+ var bufferJson = getItem(logger, key);
5868
5913
  if (bufferJson) {
5869
5914
  var buffer_1 = getJSON().parse(bufferJson);
5870
5915
  if (isString(buffer_1)) {
@@ -5876,7 +5921,7 @@
5876
5921
  }
5877
5922
  }
5878
5923
  catch (e) {
5879
- _throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
5924
+ _throwInternal(logger, 1 , 42 , " storage key: " + key + ", " + getExceptionName(e), { exception: dumpObj(e) });
5880
5925
  }
5881
5926
  return [];
5882
5927
  }
@@ -5892,11 +5937,51 @@
5892
5937
  _throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
5893
5938
  }
5894
5939
  }
5940
+ function _getPreviousEvents() {
5941
+ var items = [];
5942
+ try {
5943
+ arrForEach(PREVIOUS_KEYS, function (key) {
5944
+ var events = _getItemsFromPreviousKey(key);
5945
+ items = items[_DYN_CONCAT ](events);
5946
+ if (_namePrefix) {
5947
+ var prefixedKey = _namePrefix + "_" + key;
5948
+ var prefixEvents = _getItemsFromPreviousKey(prefixedKey);
5949
+ items = items[_DYN_CONCAT ](prefixEvents);
5950
+ }
5951
+ });
5952
+ return items;
5953
+ }
5954
+ catch (e) {
5955
+ _throwInternal(logger, 2 , 41 , "Transfer events from previous buffers: " + getExceptionName(e) + ". previous Buffer items can not be removed", { exception: dumpObj(e) });
5956
+ }
5957
+ return [];
5958
+ }
5959
+ function _getItemsFromPreviousKey(key) {
5960
+ try {
5961
+ var items = _getBufferBase(key);
5962
+ var transFormedItems_1 = [];
5963
+ arrForEach(items, function (item) {
5964
+ var internalItem = {
5965
+ item: item,
5966
+ cnt: 0
5967
+ };
5968
+ transFormedItems_1[_DYN_PUSH ](internalItem);
5969
+ });
5970
+ utlRemoveSessionStorage(logger, key);
5971
+ return transFormedItems_1;
5972
+ }
5973
+ catch (e) {
5974
+ }
5975
+ return [];
5976
+ }
5895
5977
  });
5896
5978
  return _this;
5897
5979
  }
5898
- SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
5899
- SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
5980
+ var _a;
5981
+ _a = SessionStorageSendBuffer;
5982
+ SessionStorageSendBuffer.VERSION = "_1";
5983
+ SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer" + _a.VERSION;
5984
+ SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer" + _a.VERSION;
5900
5985
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
5901
5986
  return SessionStorageSendBuffer;
5902
5987
  }(BaseSendBuffer));
@@ -6055,7 +6140,7 @@
6055
6140
  return 0;
6056
6141
  }
6057
6142
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
6058
- input = input.concat(input);
6143
+ input = input[_DYN_CONCAT ](input);
6059
6144
  }
6060
6145
  var hash = 5381;
6061
6146
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -6162,6 +6247,7 @@
6162
6247
  _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
6163
6248
  _a.transports = UNDEFINED_VALUE,
6164
6249
  _a.retryCodes = UNDEFINED_VALUE,
6250
+ _a.maxRetryCnt = { isVal: isNumber, v: 10 },
6165
6251
  _a));
6166
6252
  function _chkSampling(value) {
6167
6253
  return !isNaN(value) && value > 0 && value <= 100;
@@ -6391,6 +6477,7 @@
6391
6477
  }));
6392
6478
  };
6393
6479
  _self.processTelemetry = function (telemetryItem, itemCtx) {
6480
+ var _a;
6394
6481
  itemCtx = _self._getTelCtx(itemCtx);
6395
6482
  var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
6396
6483
  try {
@@ -6405,7 +6492,12 @@
6405
6492
  var payload = _serializer[_DYN_SERIALIZE ](aiEnvelope);
6406
6493
  var buffer = _self[_DYN__BUFFER ];
6407
6494
  _checkMaxSize(payload);
6408
- buffer[_DYN_ENQUEUE ](payload);
6495
+ var payloadItem = (_a = {},
6496
+ _a[_DYN_ITEM ] = payload,
6497
+ _a.cnt = 0
6498
+ ,
6499
+ _a);
6500
+ buffer[_DYN_ENQUEUE ](payloadItem);
6409
6501
  _setupTimer();
6410
6502
  }
6411
6503
  catch (e) {
@@ -6417,6 +6509,9 @@
6417
6509
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
6418
6510
  };
6419
6511
  _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
6512
+ if (_isStringArr(payload)) {
6513
+ return;
6514
+ }
6420
6515
  return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
6421
6516
  };
6422
6517
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
@@ -6472,40 +6567,27 @@
6472
6567
  _initDefaults();
6473
6568
  };
6474
6569
  _self[_DYN__ON_ERROR ] = function (payload, message, event) {
6475
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
6476
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6570
+ if (_isStringArr(payload)) {
6571
+ return;
6572
+ }
6573
+ return _onError(payload, message);
6477
6574
  };
6478
6575
  _self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
6479
- var failed = [];
6480
- var retry = [];
6481
- var errors = results.errors.reverse();
6482
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
6483
- var error = errors_1[_i];
6484
- var extracted = payload.splice(error.index, 1)[0];
6485
- if (_isRetriable(error.statusCode)) {
6486
- retry[_DYN_PUSH ](extracted);
6487
- }
6488
- else {
6489
- failed[_DYN_PUSH ](extracted);
6490
- }
6491
- }
6492
- if (payload[_DYN_LENGTH ] > 0) {
6493
- _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
6494
- }
6495
- if (failed[_DYN_LENGTH ] > 0) {
6496
- _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6497
- }
6498
- if (retry[_DYN_LENGTH ] > 0) {
6499
- _resendPayload(retry);
6500
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
6501
- "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
6502
- ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
6576
+ if (_isStringArr(payload)) {
6577
+ return;
6503
6578
  }
6579
+ return _onPartialSuccess(payload, results);
6504
6580
  };
6505
6581
  _self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
6506
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6582
+ if (_isStringArr(payload)) {
6583
+ return;
6584
+ }
6585
+ return _onSuccess(payload);
6507
6586
  };
6508
6587
  _self._xdrOnLoad = function (xdr, payload) {
6588
+ if (_isStringArr(payload)) {
6589
+ return;
6590
+ }
6509
6591
  return _xdrOnLoad(xdr, payload);
6510
6592
  };
6511
6593
  function _xdrOnLoad(xdr, payload) {
@@ -6516,7 +6598,7 @@
6516
6598
  }
6517
6599
  else {
6518
6600
  var results = parseResponse(responseText);
6519
- if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
6601
+ if (results && results[_DYN_ITEMS_RECEIVED ] && results[_DYN_ITEMS_RECEIVED ] > results[_DYN_ITEMS_ACCEPTED ]
6520
6602
  && !_isRetryDisabled) {
6521
6603
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
6522
6604
  }
@@ -6574,6 +6656,40 @@
6574
6656
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
6575
6657
  }
6576
6658
  }
6659
+ function _onError(payload, message, event) {
6660
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
6661
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6662
+ }
6663
+ function _onPartialSuccess(payload, results) {
6664
+ var failed = [];
6665
+ var retry = [];
6666
+ var errors = results.errors.reverse();
6667
+ for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
6668
+ var error = errors_1[_i];
6669
+ var extracted = payload.splice(error.index, 1)[0];
6670
+ if (_isRetriable(error.statusCode)) {
6671
+ retry[_DYN_PUSH ](extracted);
6672
+ }
6673
+ else {
6674
+ failed[_DYN_PUSH ](extracted);
6675
+ }
6676
+ }
6677
+ if (payload[_DYN_LENGTH ] > 0) {
6678
+ _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
6679
+ }
6680
+ if (failed[_DYN_LENGTH ] > 0) {
6681
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6682
+ }
6683
+ if (retry[_DYN_LENGTH ] > 0) {
6684
+ _resendPayload(retry);
6685
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
6686
+ "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
6687
+ ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
6688
+ }
6689
+ }
6690
+ function _onSuccess(payload, countOfItemsInPayload) {
6691
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6692
+ }
6577
6693
  function _getPayloadArr(payload) {
6578
6694
  try {
6579
6695
  if (payload) {
@@ -6841,12 +6957,22 @@
6841
6957
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6842
6958
  }
6843
6959
  }
6960
+ function _isStringArr(arr) {
6961
+ try {
6962
+ if (arr && arr[_DYN_LENGTH ]) {
6963
+ return (isString(arr[0]));
6964
+ }
6965
+ }
6966
+ catch (e) {
6967
+ }
6968
+ return null;
6969
+ }
6844
6970
  function _fetchKeepAliveSender(payload, isAsync) {
6845
6971
  var transport = null;
6846
6972
  if (isArray(payload)) {
6847
6973
  var payloadSize = payload[_DYN_LENGTH ];
6848
6974
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
6849
- payloadSize += payload[lp][_DYN_LENGTH ];
6975
+ payloadSize += payload[lp].item[_DYN_LENGTH ];
6850
6976
  }
6851
6977
  var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
6852
6978
  if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
@@ -6874,6 +7000,8 @@
6874
7000
  _consecutiveErrors++;
6875
7001
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
6876
7002
  var item = payload_1[_i];
7003
+ item.cnt = item.cnt || 0;
7004
+ item.cnt++;
6877
7005
  buffer[_DYN_ENQUEUE ](item);
6878
7006
  }
6879
7007
  _setRetryTime(linearFactor);