@microsoft/applicationinsights-web-basic 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 (38) hide show
  1. package/browser/es5/{aib.3.1.3-nightly3.240410-01.js → aib.3.1.3-nightly3.240412-01.cjs.js} +178 -77
  2. package/browser/es5/{aib.3.1.3-nightly3.240410-01.cjs.js.map → aib.3.1.3-nightly3.240412-01.cjs.js.map} +1 -1
  3. package/browser/es5/{aib.3.1.3-nightly3.240410-01.cjs.min.js → aib.3.1.3-nightly3.240412-01.cjs.min.js} +3 -3
  4. package/browser/es5/{aib.3.1.3-nightly3.240410-01.cjs.min.js.map → aib.3.1.3-nightly3.240412-01.cjs.min.js.map} +1 -1
  5. package/browser/es5/{aib.3.1.3-nightly3.240410-01.gbl.js → aib.3.1.3-nightly3.240412-01.gbl.js} +180 -52
  6. package/browser/es5/{aib.3.1.3-nightly3.240410-01.gbl.js.map → aib.3.1.3-nightly3.240412-01.gbl.js.map} +1 -1
  7. package/browser/es5/aib.3.1.3-nightly3.240412-01.gbl.min.js +6 -0
  8. package/browser/es5/{aib.3.1.3-nightly3.240410-01.gbl.min.js.map → aib.3.1.3-nightly3.240412-01.gbl.min.js.map} +1 -1
  9. package/browser/es5/aib.3.1.3-nightly3.240412-01.integrity.json +66 -0
  10. package/browser/es5/{aib.3.1.3-nightly3.240410-01.cjs.js → aib.3.1.3-nightly3.240412-01.js} +205 -50
  11. package/browser/es5/{aib.3.1.3-nightly3.240410-01.js.map → aib.3.1.3-nightly3.240412-01.js.map} +1 -1
  12. package/browser/es5/aib.3.1.3-nightly3.240412-01.min.js +6 -0
  13. package/browser/es5/{aib.3.1.3-nightly3.240410-01.min.js.map → aib.3.1.3-nightly3.240412-01.min.js.map} +1 -1
  14. package/browser/es5/aib.3.cjs.js +177 -49
  15. package/browser/es5/aib.3.cjs.js.map +1 -1
  16. package/browser/es5/aib.3.cjs.min.js +2 -2
  17. package/browser/es5/aib.3.cjs.min.js.map +1 -1
  18. package/browser/es5/aib.3.gbl.js +179 -51
  19. package/browser/es5/aib.3.gbl.js.map +1 -1
  20. package/browser/es5/aib.3.gbl.min.js +2 -2
  21. package/browser/es5/aib.3.gbl.min.js.map +1 -1
  22. package/browser/es5/aib.3.integrity.json +25 -25
  23. package/browser/es5/aib.3.js +179 -51
  24. package/browser/es5/aib.3.js.map +1 -1
  25. package/browser/es5/aib.3.min.js +2 -2
  26. package/browser/es5/aib.3.min.js.map +1 -1
  27. package/dist/es5/applicationinsights-web-basic.js +177 -49
  28. package/dist/es5/applicationinsights-web-basic.js.map +1 -1
  29. package/dist/es5/applicationinsights-web-basic.min.js +2 -2
  30. package/dist/es5/applicationinsights-web-basic.min.js.map +1 -1
  31. package/dist-es5/__DynamicConstants.js +1 -1
  32. package/dist-es5/index.js +1 -1
  33. package/package.json +4 -4
  34. package/types/applicationinsights-web-basic.d.ts +1 -1
  35. package/types/applicationinsights-web-basic.namespaced.d.ts +59 -22
  36. package/browser/es5/aib.3.1.3-nightly3.240410-01.gbl.min.js +0 -6
  37. package/browser/es5/aib.3.1.3-nightly3.240410-01.integrity.json +0 -66
  38. package/browser/es5/aib.3.1.3-nightly3.240410-01.min.js +0 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript Web SDK - Basic, 3.1.3-nightly3.240410-01
2
+ * Application Insights JavaScript Web SDK - Basic, 3.1.3-nightly3.240412-01
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -6218,6 +6218,20 @@ function utlSetSessionStorage(logger, name, data) {
6218
6218
  }
6219
6219
  return false;
6220
6220
  }
6221
+ function utlRemoveSessionStorage(logger, name) {
6222
+ var storage = _getSessionStorageObject();
6223
+ if (storage !== null) {
6224
+ try {
6225
+ storage[_DYN_REMOVE_ITEM ](name);
6226
+ return true;
6227
+ }
6228
+ catch (e) {
6229
+ _canUseSessionStorage = false;
6230
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
6231
+ }
6232
+ }
6233
+ return false;
6234
+ }
6221
6235
 
6222
6236
  var _FIELDS_SEPARATOR = ";";
6223
6237
  var _FIELD_KEY_VALUE_SEPARATOR = "=";
@@ -7195,6 +7209,7 @@ var _DYN_ENQUEUE = "enqueue";
7195
7209
  var _DYN_COUNT = "count";
7196
7210
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
7197
7211
  var _DYN_PUSH = "push";
7212
+ var _DYN_ITEM = "item";
7198
7213
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
7199
7214
  var _DYN_CLEAR = "clear";
7200
7215
  var _DYN_CREATE_NEW = "createNew";
@@ -7203,6 +7218,7 @@ var _DYN_CLEAR_SENT = "clearSent";
7203
7218
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
7204
7219
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
7205
7220
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
7221
+ var _DYN_CONCAT = "concat";
7206
7222
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
7207
7223
  var _DYN_TRIGGER_SEND = "triggerSend";
7208
7224
  var _DYN_DIAG_LOG = "diagLog";
@@ -7228,8 +7244,8 @@ var _DYN_SERIALIZE = "serialize";
7228
7244
  var _DYN__ON_ERROR = "_onError";
7229
7245
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
7230
7246
  var _DYN__ON_SUCCESS = "_onSuccess";
7231
- var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7232
7247
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7248
+ var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7233
7249
  var _DYN_ORI_PAYLOAD = "oriPayload";
7234
7250
  var _DYN_BASE_TYPE = "baseType";
7235
7251
  var _DYN_SAMPLE_RATE = "sampleRate";
@@ -7347,7 +7363,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
7347
7363
  }
7348
7364
  }
7349
7365
  var EnvelopeCreator = {
7350
- Version: '3.1.3-nightly3.240410-01'
7366
+ Version: '3.1.3-nightly3.240412-01'
7351
7367
  };
7352
7368
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
7353
7369
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7500,6 +7516,7 @@ var BaseSendBuffer = /** @class */ (function () {
7500
7516
  function BaseSendBuffer(logger, config) {
7501
7517
  var _buffer = [];
7502
7518
  var _bufferFullMessageSent = false;
7519
+ var _maxRetryCnt = config.maxRetryCnt;
7503
7520
  this[_DYN__GET ] = function () {
7504
7521
  return _buffer;
7505
7522
  };
@@ -7516,7 +7533,14 @@ var BaseSendBuffer = /** @class */ (function () {
7516
7533
  }
7517
7534
  return;
7518
7535
  }
7536
+ payload.cnt = payload.cnt || 0;
7537
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7538
+ if (payload.cnt > _maxRetryCnt) {
7539
+ return;
7540
+ }
7541
+ }
7519
7542
  _buffer[_DYN_PUSH ](payload);
7543
+ return;
7520
7544
  };
7521
7545
  _self[_DYN_COUNT ] = function () {
7522
7546
  return _buffer[_DYN_LENGTH ];
@@ -7524,7 +7548,7 @@ var BaseSendBuffer = /** @class */ (function () {
7524
7548
  _self.size = function () {
7525
7549
  var size = _buffer[_DYN_LENGTH ];
7526
7550
  for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
7527
- size += _buffer[lp][_DYN_LENGTH ];
7551
+ size += (_buffer[lp].item)[_DYN_LENGTH ];
7528
7552
  }
7529
7553
  if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]) {
7530
7554
  size += 2;
@@ -7538,11 +7562,15 @@ var BaseSendBuffer = /** @class */ (function () {
7538
7562
  _self.getItems = function () {
7539
7563
  return _buffer.slice(0);
7540
7564
  };
7541
- _self.batchPayloads = function (payload) {
7542
- if (payload && payload[_DYN_LENGTH ] > 0) {
7565
+ _self.batchPayloads = function (payloads) {
7566
+ if (payloads && payloads[_DYN_LENGTH ] > 0) {
7567
+ var payloadStr_1 = [];
7568
+ arrForEach(payloads, function (payload) {
7569
+ payloadStr_1[_DYN_PUSH ](payload[_DYN_ITEM ]);
7570
+ });
7543
7571
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
7544
- payload.join("\n") :
7545
- "[" + payload.join(",") + "]";
7572
+ payloadStr_1.join("\n") :
7573
+ "[" + payloadStr_1.join(",") + "]";
7546
7574
  return batch;
7547
7575
  }
7548
7576
  return null;
@@ -7578,17 +7606,21 @@ var ArraySendBuffer = /** @class */ (function (_super) {
7578
7606
  ArraySendBuffer.__ieDyn=1;
7579
7607
  return ArraySendBuffer;
7580
7608
  }(BaseSendBuffer));
7609
+ var PREVIOUS_KEYS = ["AI_buffer", "AI_sentBuffer"];
7581
7610
  var SessionStorageSendBuffer = /** @class */ (function (_super) {
7582
7611
  __extendsFn(SessionStorageSendBuffer, _super);
7583
7612
  function SessionStorageSendBuffer(logger, config) {
7584
7613
  var _this = _super.call(this, logger, config) || this;
7585
7614
  var _bufferFullMessageSent = false;
7586
7615
  var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
7587
- var _a = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;
7616
+ var _b = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;
7617
+ var _maxRetryCnt = config.maxRetryCnt;
7588
7618
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
7589
7619
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
7590
- var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7591
- var buffer = _self._set(bufferItems.concat(notDeliveredItems));
7620
+ var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7621
+ var previousItems = _getPreviousEvents();
7622
+ var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT ](previousItems);
7623
+ var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
7592
7624
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7593
7625
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
7594
7626
  }
@@ -7602,6 +7634,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7602
7634
  }
7603
7635
  return;
7604
7636
  }
7637
+ payload.cnt = payload.cnt || 0;
7638
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7639
+ if (payload.cnt > _maxRetryCnt) {
7640
+ return;
7641
+ }
7642
+ }
7605
7643
  _base[_DYN_ENQUEUE ](payload);
7606
7644
  _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
7607
7645
  };
@@ -7615,7 +7653,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7615
7653
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
7616
7654
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7617
7655
  if (sentElements instanceof Array && payload instanceof Array) {
7618
- sentElements = sentElements.concat(payload);
7656
+ sentElements = sentElements[_DYN_CONCAT ](payload);
7619
7657
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7620
7658
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
7621
7659
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7646,8 +7684,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7646
7684
  };
7647
7685
  function _removePayloadsFromBuffer(payloads, buffer) {
7648
7686
  var remaining = [];
7687
+ var payloadStr = [];
7688
+ arrForEach(payloads, function (payload) {
7689
+ payloadStr[_DYN_PUSH ](payload[_DYN_ITEM ]);
7690
+ });
7649
7691
  arrForEach(buffer, function (value) {
7650
- if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
7692
+ if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM ]) === -1) {
7651
7693
  remaining[_DYN_PUSH ](value);
7652
7694
  }
7653
7695
  });
@@ -7655,9 +7697,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7655
7697
  }
7656
7698
  function _getBuffer(key) {
7657
7699
  var prefixedKey = key;
7700
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7701
+ return _getBufferBase(prefixedKey);
7702
+ }
7703
+ function _getBufferBase(key) {
7658
7704
  try {
7659
- prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7660
- var bufferJson = getItem(logger, prefixedKey);
7705
+ var bufferJson = getItem(logger, key);
7661
7706
  if (bufferJson) {
7662
7707
  var buffer_1 = getJSON().parse(bufferJson);
7663
7708
  if (isString(buffer_1)) {
@@ -7669,7 +7714,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7669
7714
  }
7670
7715
  }
7671
7716
  catch (e) {
7672
- _throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
7717
+ _throwInternal(logger, 1 , 42 , " storage key: " + key + ", " + getExceptionName(e), { exception: dumpObj(e) });
7673
7718
  }
7674
7719
  return [];
7675
7720
  }
@@ -7685,11 +7730,51 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7685
7730
  _throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
7686
7731
  }
7687
7732
  }
7733
+ function _getPreviousEvents() {
7734
+ var items = [];
7735
+ try {
7736
+ arrForEach(PREVIOUS_KEYS, function (key) {
7737
+ var events = _getItemsFromPreviousKey(key);
7738
+ items = items[_DYN_CONCAT ](events);
7739
+ if (_namePrefix) {
7740
+ var prefixedKey = _namePrefix + "_" + key;
7741
+ var prefixEvents = _getItemsFromPreviousKey(prefixedKey);
7742
+ items = items[_DYN_CONCAT ](prefixEvents);
7743
+ }
7744
+ });
7745
+ return items;
7746
+ }
7747
+ catch (e) {
7748
+ _throwInternal(logger, 2 , 41 , "Transfer events from previous buffers: " + getExceptionName(e) + ". previous Buffer items can not be removed", { exception: dumpObj(e) });
7749
+ }
7750
+ return [];
7751
+ }
7752
+ function _getItemsFromPreviousKey(key) {
7753
+ try {
7754
+ var items = _getBufferBase(key);
7755
+ var transFormedItems_1 = [];
7756
+ arrForEach(items, function (item) {
7757
+ var internalItem = {
7758
+ item: item,
7759
+ cnt: 0
7760
+ };
7761
+ transFormedItems_1[_DYN_PUSH ](internalItem);
7762
+ });
7763
+ utlRemoveSessionStorage(logger, key);
7764
+ return transFormedItems_1;
7765
+ }
7766
+ catch (e) {
7767
+ }
7768
+ return [];
7769
+ }
7688
7770
  });
7689
7771
  return _this;
7690
7772
  }
7691
- SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
7692
- SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
7773
+ var _a;
7774
+ _a = SessionStorageSendBuffer;
7775
+ SessionStorageSendBuffer.VERSION = "_1";
7776
+ SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer" + _a.VERSION;
7777
+ SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer" + _a.VERSION;
7693
7778
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
7694
7779
  return SessionStorageSendBuffer;
7695
7780
  }(BaseSendBuffer));
@@ -7848,7 +7933,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
7848
7933
  return 0;
7849
7934
  }
7850
7935
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7851
- input = input.concat(input);
7936
+ input = input[_DYN_CONCAT ](input);
7852
7937
  }
7853
7938
  var hash = 5381;
7854
7939
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7955,6 +8040,7 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7955
8040
  _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
7956
8041
  _a.transports = UNDEFINED_VALUE,
7957
8042
  _a.retryCodes = UNDEFINED_VALUE,
8043
+ _a.maxRetryCnt = { isVal: isNumber, v: 10 },
7958
8044
  _a));
7959
8045
  function _chkSampling(value) {
7960
8046
  return !isNaN(value) && value > 0 && value <= 100;
@@ -8184,6 +8270,7 @@ var Sender = /** @class */ (function (_super) {
8184
8270
  }));
8185
8271
  };
8186
8272
  _self.processTelemetry = function (telemetryItem, itemCtx) {
8273
+ var _a;
8187
8274
  itemCtx = _self._getTelCtx(itemCtx);
8188
8275
  var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
8189
8276
  try {
@@ -8198,7 +8285,12 @@ var Sender = /** @class */ (function (_super) {
8198
8285
  var payload = _serializer[_DYN_SERIALIZE ](aiEnvelope);
8199
8286
  var buffer = _self[_DYN__BUFFER ];
8200
8287
  _checkMaxSize(payload);
8201
- buffer[_DYN_ENQUEUE ](payload);
8288
+ var payloadItem = (_a = {},
8289
+ _a[_DYN_ITEM ] = payload,
8290
+ _a.cnt = 0
8291
+ ,
8292
+ _a);
8293
+ buffer[_DYN_ENQUEUE ](payloadItem);
8202
8294
  _setupTimer();
8203
8295
  }
8204
8296
  catch (e) {
@@ -8210,6 +8302,9 @@ var Sender = /** @class */ (function (_super) {
8210
8302
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
8211
8303
  };
8212
8304
  _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8305
+ if (_isStringArr(payload)) {
8306
+ return;
8307
+ }
8213
8308
  return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
8214
8309
  };
8215
8310
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
@@ -8265,40 +8360,27 @@ var Sender = /** @class */ (function (_super) {
8265
8360
  _initDefaults();
8266
8361
  };
8267
8362
  _self[_DYN__ON_ERROR ] = function (payload, message, event) {
8268
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
8269
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8363
+ if (_isStringArr(payload)) {
8364
+ return;
8365
+ }
8366
+ return _onError(payload, message);
8270
8367
  };
8271
8368
  _self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
8272
- var failed = [];
8273
- var retry = [];
8274
- var errors = results.errors.reverse();
8275
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
8276
- var error = errors_1[_i];
8277
- var extracted = payload.splice(error.index, 1)[0];
8278
- if (_isRetriable(error.statusCode)) {
8279
- retry[_DYN_PUSH ](extracted);
8280
- }
8281
- else {
8282
- failed[_DYN_PUSH ](extracted);
8283
- }
8284
- }
8285
- if (payload[_DYN_LENGTH ] > 0) {
8286
- _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
8287
- }
8288
- if (failed[_DYN_LENGTH ] > 0) {
8289
- _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8290
- }
8291
- if (retry[_DYN_LENGTH ] > 0) {
8292
- _resendPayload(retry);
8293
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
8294
- "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
8295
- ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
8369
+ if (_isStringArr(payload)) {
8370
+ return;
8296
8371
  }
8372
+ return _onPartialSuccess(payload, results);
8297
8373
  };
8298
8374
  _self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
8299
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8375
+ if (_isStringArr(payload)) {
8376
+ return;
8377
+ }
8378
+ return _onSuccess(payload);
8300
8379
  };
8301
8380
  _self._xdrOnLoad = function (xdr, payload) {
8381
+ if (_isStringArr(payload)) {
8382
+ return;
8383
+ }
8302
8384
  return _xdrOnLoad(xdr, payload);
8303
8385
  };
8304
8386
  function _xdrOnLoad(xdr, payload) {
@@ -8309,7 +8391,7 @@ var Sender = /** @class */ (function (_super) {
8309
8391
  }
8310
8392
  else {
8311
8393
  var results = parseResponse(responseText);
8312
- if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
8394
+ if (results && results[_DYN_ITEMS_RECEIVED ] && results[_DYN_ITEMS_RECEIVED ] > results[_DYN_ITEMS_ACCEPTED ]
8313
8395
  && !_isRetryDisabled) {
8314
8396
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
8315
8397
  }
@@ -8367,6 +8449,40 @@ var Sender = /** @class */ (function (_super) {
8367
8449
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
8368
8450
  }
8369
8451
  }
8452
+ function _onError(payload, message, event) {
8453
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
8454
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8455
+ }
8456
+ function _onPartialSuccess(payload, results) {
8457
+ var failed = [];
8458
+ var retry = [];
8459
+ var errors = results.errors.reverse();
8460
+ for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
8461
+ var error = errors_1[_i];
8462
+ var extracted = payload.splice(error.index, 1)[0];
8463
+ if (_isRetriable(error.statusCode)) {
8464
+ retry[_DYN_PUSH ](extracted);
8465
+ }
8466
+ else {
8467
+ failed[_DYN_PUSH ](extracted);
8468
+ }
8469
+ }
8470
+ if (payload[_DYN_LENGTH ] > 0) {
8471
+ _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
8472
+ }
8473
+ if (failed[_DYN_LENGTH ] > 0) {
8474
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8475
+ }
8476
+ if (retry[_DYN_LENGTH ] > 0) {
8477
+ _resendPayload(retry);
8478
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
8479
+ "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
8480
+ ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
8481
+ }
8482
+ }
8483
+ function _onSuccess(payload, countOfItemsInPayload) {
8484
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8485
+ }
8370
8486
  function _getPayloadArr(payload) {
8371
8487
  try {
8372
8488
  if (payload) {
@@ -8634,12 +8750,22 @@ var Sender = /** @class */ (function (_super) {
8634
8750
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8635
8751
  }
8636
8752
  }
8753
+ function _isStringArr(arr) {
8754
+ try {
8755
+ if (arr && arr[_DYN_LENGTH ]) {
8756
+ return (isString(arr[0]));
8757
+ }
8758
+ }
8759
+ catch (e) {
8760
+ }
8761
+ return null;
8762
+ }
8637
8763
  function _fetchKeepAliveSender(payload, isAsync) {
8638
8764
  var transport = null;
8639
8765
  if (isArray(payload)) {
8640
8766
  var payloadSize = payload[_DYN_LENGTH ];
8641
8767
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8642
- payloadSize += payload[lp][_DYN_LENGTH ];
8768
+ payloadSize += payload[lp].item[_DYN_LENGTH ];
8643
8769
  }
8644
8770
  var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8645
8771
  if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
@@ -8667,6 +8793,8 @@ var Sender = /** @class */ (function (_super) {
8667
8793
  _consecutiveErrors++;
8668
8794
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
8669
8795
  var item = payload_1[_i];
8796
+ item.cnt = item.cnt || 0;
8797
+ item.cnt++;
8670
8798
  buffer[_DYN_ENQUEUE ](item);
8671
8799
  }
8672
8800
  _setRetryTime(linearFactor);