@microsoft/applicationinsights-web-basic 3.1.3-nightly3.2403-15 → 3.1.3-nightly3.2404-12

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 (45) hide show
  1. package/browser/es5/{aib.3.1.3-nightly3.2403-15.js → aib.3.1.3-nightly3.2404-12.cjs.js} +251 -127
  2. package/browser/es5/aib.3.1.3-nightly3.2404-12.cjs.js.map +1 -0
  3. package/browser/es5/aib.3.1.3-nightly3.2404-12.cjs.min.js +6 -0
  4. package/browser/es5/aib.3.1.3-nightly3.2404-12.cjs.min.js.map +1 -0
  5. package/browser/es5/{aib.3.1.3-nightly3.2403-15.gbl.js → aib.3.1.3-nightly3.2404-12.gbl.js} +253 -102
  6. package/browser/es5/aib.3.1.3-nightly3.2404-12.gbl.js.map +1 -0
  7. package/browser/es5/aib.3.1.3-nightly3.2404-12.gbl.min.js +6 -0
  8. package/browser/es5/aib.3.1.3-nightly3.2404-12.gbl.min.js.map +1 -0
  9. package/browser/es5/aib.3.1.3-nightly3.2404-12.integrity.json +66 -0
  10. package/browser/es5/{aib.3.1.3-nightly3.2403-15.cjs.js → aib.3.1.3-nightly3.2404-12.js} +278 -100
  11. package/browser/es5/aib.3.1.3-nightly3.2404-12.js.map +1 -0
  12. package/browser/es5/aib.3.1.3-nightly3.2404-12.min.js +6 -0
  13. package/browser/es5/aib.3.1.3-nightly3.2404-12.min.js.map +1 -0
  14. package/browser/es5/aib.3.cjs.js +250 -99
  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 +252 -101
  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 +252 -101
  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 +250 -99
  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 -49
  36. package/browser/es5/aib.3.1.3-nightly3.2403-15.cjs.js.map +0 -1
  37. package/browser/es5/aib.3.1.3-nightly3.2403-15.cjs.min.js +0 -6
  38. package/browser/es5/aib.3.1.3-nightly3.2403-15.cjs.min.js.map +0 -1
  39. package/browser/es5/aib.3.1.3-nightly3.2403-15.gbl.js.map +0 -1
  40. package/browser/es5/aib.3.1.3-nightly3.2403-15.gbl.min.js +0 -6
  41. package/browser/es5/aib.3.1.3-nightly3.2403-15.gbl.min.js.map +0 -1
  42. package/browser/es5/aib.3.1.3-nightly3.2403-15.integrity.json +0 -66
  43. package/browser/es5/aib.3.1.3-nightly3.2403-15.js.map +0 -1
  44. package/browser/es5/aib.3.1.3-nightly3.2403-15.min.js +0 -6
  45. package/browser/es5/aib.3.1.3-nightly3.2403-15.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript Web SDK - Basic, 3.1.3-nightly3.2403-15
2
+ * Application Insights JavaScript Web SDK - Basic, 3.1.3-nightly3.2404-12
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -1376,14 +1376,19 @@
1376
1376
  throw new aggregationErrorType(theMessage, sourceErrors || []);
1377
1377
  }
1378
1378
 
1379
+ var STR_PROMISE = "Promise";
1380
+ var REJECTED = "rejected";
1381
+
1379
1382
  function doAwaitResponse(value, cb) {
1380
1383
  return doAwait(value, function (value) {
1381
1384
  return cb ? cb({
1382
- value: value,
1383
- rejected: false
1385
+ status: "fulfilled",
1386
+ rejected: false,
1387
+ value: value
1384
1388
  }) : value;
1385
1389
  }, function (reason) {
1386
1390
  return cb ? cb({
1391
+ status: REJECTED,
1387
1392
  rejected: true,
1388
1393
  reason: reason
1389
1394
  }) : reason;
@@ -1391,18 +1396,32 @@
1391
1396
  }
1392
1397
  function doAwait(value, resolveFn, rejectFn, finallyFn) {
1393
1398
  var result = value;
1394
- if (isPromiseLike(value)) {
1395
- if (resolveFn || rejectFn) {
1396
- result = value.then(resolveFn, rejectFn);
1399
+ try {
1400
+ if (isPromiseLike(value)) {
1401
+ if (resolveFn || rejectFn) {
1402
+ result = value.then(resolveFn, rejectFn);
1403
+ }
1397
1404
  }
1398
- }
1399
- else {
1400
- if (resolveFn) {
1401
- result = resolveFn(value);
1405
+ else {
1406
+ try {
1407
+ if (resolveFn) {
1408
+ result = resolveFn(value);
1409
+ }
1410
+ }
1411
+ catch (err) {
1412
+ if (rejectFn) {
1413
+ result = rejectFn(err);
1414
+ }
1415
+ else {
1416
+ throw err;
1417
+ }
1418
+ }
1402
1419
  }
1403
1420
  }
1404
- if (finallyFn) {
1405
- doFinally(result, finallyFn);
1421
+ finally {
1422
+ if (finallyFn) {
1423
+ doFinally(result, finallyFn);
1424
+ }
1406
1425
  }
1407
1426
  return result;
1408
1427
  }
@@ -1430,21 +1449,22 @@
1430
1449
  return result;
1431
1450
  }
1432
1451
 
1433
- var STRING_STATES = [
1434
- "pending", "resolving", "resolved", "rejected"
1452
+ var STRING_STATES = [
1453
+ "pending", "resolving", "resolved", REJECTED
1435
1454
  ];
1436
1455
 
1437
1456
  var DISPATCH_EVENT = "dispatchEvent";
1438
1457
  var _hasInitEvent;
1458
+ function _hasInitEventFn(doc) {
1459
+ var evt;
1460
+ if (doc && doc.createEvent) {
1461
+ evt = doc.createEvent("Event");
1462
+ }
1463
+ return (!!evt && evt.initEvent);
1464
+ }
1439
1465
  function emitEvent(target, evtName, populateEvent, useNewEvent) {
1440
1466
  var doc = getDocument();
1441
- !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1442
- var evt;
1443
- if (doc && doc.createEvent) {
1444
- evt = doc.createEvent("Event");
1445
- }
1446
- return (!!evt && evt.initEvent);
1447
- }, null));
1467
+ !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));
1448
1468
  var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1449
1469
  populateEvent && populateEvent(theEvt);
1450
1470
  if (_hasInitEvent.v) {
@@ -1465,8 +1485,6 @@
1465
1485
  }
1466
1486
  }
1467
1487
 
1468
- var STR_PROMISE = "Promise";
1469
-
1470
1488
  var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1471
1489
  var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1472
1490
  var _unhandledRejectionTimeout = 10;
@@ -1487,7 +1505,7 @@
1487
1505
  var _unHandledRejectionHandler = null;
1488
1506
  var _thePromise;
1489
1507
  !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1490
- var _then = function (onResolved, onRejected) {
1508
+ function _then(onResolved, onRejected) {
1491
1509
  try {
1492
1510
  _handled = true;
1493
1511
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
@@ -1522,11 +1540,11 @@
1522
1540
  }
1523
1541
  finally {
1524
1542
  }
1525
- };
1526
- var _catch = function (onRejected) {
1543
+ }
1544
+ function _catch(onRejected) {
1527
1545
  return _then(undefined, onRejected);
1528
- };
1529
- var _finally = function (onFinally) {
1546
+ }
1547
+ function _finally(onFinally) {
1530
1548
  var thenFinally = onFinally;
1531
1549
  var catchFinally = onFinally;
1532
1550
  if (isFunction(onFinally)) {
@@ -1540,21 +1558,21 @@
1540
1558
  };
1541
1559
  }
1542
1560
  return _then(thenFinally, catchFinally);
1543
- };
1544
- var _strState = function () {
1561
+ }
1562
+ function _strState() {
1545
1563
  return STRING_STATES[_state];
1546
- };
1547
- var _processQueue = function () {
1564
+ }
1565
+ function _processQueue() {
1548
1566
  if (_queue.length > 0) {
1549
1567
  var pending = _queue.slice();
1550
1568
  _queue = [];
1551
1569
  _handled = true;
1552
- processor(pending);
1553
1570
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1554
1571
  _unHandledRejectionHandler = null;
1572
+ processor(pending);
1555
1573
  }
1556
- };
1557
- var _createSettleIfFn = function (newState, allowState) {
1574
+ }
1575
+ function _createSettleIfFn(newState, allowState) {
1558
1576
  return function (theValue) {
1559
1577
  if (_state === allowState) {
1560
1578
  if (newState === 2 && isPromiseLike(theValue)) {
@@ -1571,9 +1589,10 @@
1571
1589
  }
1572
1590
  }
1573
1591
  };
1574
- };
1575
- var _notifyUnhandledRejection = function () {
1592
+ }
1593
+ function _notifyUnhandledRejection() {
1576
1594
  if (!_handled) {
1595
+ _handled = true;
1577
1596
  if (isNode()) {
1578
1597
  process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1579
1598
  }
@@ -1586,7 +1605,7 @@
1586
1605
  }, !!_hasPromiseRejectionEvent.v);
1587
1606
  }
1588
1607
  }
1589
- };
1608
+ }
1590
1609
  _thePromise = {
1591
1610
  then: _then,
1592
1611
  "catch": _catch,
@@ -1598,9 +1617,9 @@
1598
1617
  if (hasSymbol()) {
1599
1618
  _thePromise[getKnownSymbol(11 )] = "IPromise";
1600
1619
  }
1601
- var _toString = function () {
1602
- return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1603
- };
1620
+ function _toString() {
1621
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "") + ("");
1622
+ }
1604
1623
  _thePromise.toString = _toString;
1605
1624
  (function _initialize() {
1606
1625
  if (!isFunction(executor)) {
@@ -1616,6 +1635,7 @@
1616
1635
  })();
1617
1636
  return _thePromise;
1618
1637
  }
1638
+ /*#__NO_SIDE_EFFECTS__*/
1619
1639
  function _createAllPromise(newPromise) {
1620
1640
  return function (input) {
1621
1641
  var additionalArgs = arrSlice(arguments, 1);
@@ -1623,7 +1643,7 @@
1623
1643
  try {
1624
1644
  var values_1 = [];
1625
1645
  var pending_1 = 1;
1626
- arrForEach(input, function (item, idx) {
1646
+ iterForOf(input, function (item, idx) {
1627
1647
  if (item) {
1628
1648
  pending_1++;
1629
1649
  doAwait(item, function (value) {
@@ -1646,7 +1666,7 @@
1646
1666
  };
1647
1667
  }
1648
1668
 
1649
- var _processPendingItems = function (pending) {
1669
+ function syncItemProcessor(pending) {
1650
1670
  arrForEach(pending, function (fn) {
1651
1671
  try {
1652
1672
  fn();
@@ -1654,12 +1674,12 @@
1654
1674
  catch (e) {
1655
1675
  }
1656
1676
  });
1657
- };
1677
+ }
1658
1678
  function timeoutItemProcessor(timeout) {
1659
1679
  var callbackTimeout = isNumber(timeout) ? timeout : 0;
1660
1680
  return function (pending) {
1661
1681
  scheduleTimeout(function () {
1662
- _processPendingItems(pending);
1682
+ syncItemProcessor(pending);
1663
1683
  }, callbackTimeout);
1664
1684
  };
1665
1685
  }
@@ -1668,10 +1688,10 @@
1668
1688
  return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1669
1689
  }
1670
1690
 
1671
- var _isPromiseSupported;
1691
+ var _promiseCls;
1672
1692
  function createNativePromise(executor, timeout) {
1673
- !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1674
- var PrmCls = _isPromiseSupported.v;
1693
+ !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));
1694
+ var PrmCls = _promiseCls.v;
1675
1695
  if (!PrmCls) {
1676
1696
  return createAsyncPromise(executor);
1677
1697
  }
@@ -1701,10 +1721,10 @@
1701
1721
 
1702
1722
  var _promiseCreator;
1703
1723
  function createPromise(executor, timeout) {
1704
- !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1724
+ !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));
1705
1725
  return _promiseCreator.v.call(this, executor, timeout);
1706
1726
  }
1707
- var createAllPromise = _createAllPromise(createPromise);
1727
+ var createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);
1708
1728
 
1709
1729
  var UNDEFINED_VALUE$1 = undefined;
1710
1730
  var STR_EMPTY$1 = "";
@@ -5459,7 +5479,9 @@
5459
5479
  return;
5460
5480
  }
5461
5481
  var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT ]);
5462
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5482
+ if (!_isOneDs) {
5483
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5484
+ }
5463
5485
  arrForEach(objKeys(headers), function (headerName) {
5464
5486
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
5465
5487
  });
@@ -6199,6 +6221,20 @@
6199
6221
  }
6200
6222
  return false;
6201
6223
  }
6224
+ function utlRemoveSessionStorage(logger, name) {
6225
+ var storage = _getSessionStorageObject();
6226
+ if (storage !== null) {
6227
+ try {
6228
+ storage[_DYN_REMOVE_ITEM ](name);
6229
+ return true;
6230
+ }
6231
+ catch (e) {
6232
+ _canUseSessionStorage = false;
6233
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
6234
+ }
6235
+ }
6236
+ return false;
6237
+ }
6202
6238
 
6203
6239
  var _FIELDS_SEPARATOR = ";";
6204
6240
  var _FIELD_KEY_VALUE_SEPARATOR = "=";
@@ -7176,6 +7212,7 @@
7176
7212
  var _DYN_COUNT = "count";
7177
7213
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
7178
7214
  var _DYN_PUSH = "push";
7215
+ var _DYN_ITEM = "item";
7179
7216
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
7180
7217
  var _DYN_CLEAR = "clear";
7181
7218
  var _DYN_CREATE_NEW = "createNew";
@@ -7184,6 +7221,7 @@
7184
7221
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
7185
7222
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
7186
7223
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
7224
+ var _DYN_CONCAT = "concat";
7187
7225
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
7188
7226
  var _DYN_TRIGGER_SEND = "triggerSend";
7189
7227
  var _DYN_DIAG_LOG = "diagLog";
@@ -7209,8 +7247,8 @@
7209
7247
  var _DYN__ON_ERROR = "_onError";
7210
7248
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
7211
7249
  var _DYN__ON_SUCCESS = "_onSuccess";
7212
- var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7213
7250
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7251
+ var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7214
7252
  var _DYN_ORI_PAYLOAD = "oriPayload";
7215
7253
  var _DYN_BASE_TYPE = "baseType";
7216
7254
  var _DYN_SAMPLE_RATE = "sampleRate";
@@ -7262,6 +7300,7 @@
7262
7300
  var extOs = itmExt.os;
7263
7301
  if (extOs) {
7264
7302
  _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME ]);
7303
+ _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);
7265
7304
  }
7266
7305
  var extTrace = itmExt.trace;
7267
7306
  if (extTrace) {
@@ -7327,7 +7366,7 @@
7327
7366
  }
7328
7367
  }
7329
7368
  var EnvelopeCreator = {
7330
- Version: '3.1.3-nightly3.2403-15'
7369
+ Version: '3.1.3-nightly3.2404-12'
7331
7370
  };
7332
7371
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
7333
7372
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7480,6 +7519,7 @@
7480
7519
  function BaseSendBuffer(logger, config) {
7481
7520
  var _buffer = [];
7482
7521
  var _bufferFullMessageSent = false;
7522
+ var _maxRetryCnt = config.maxRetryCnt;
7483
7523
  this[_DYN__GET ] = function () {
7484
7524
  return _buffer;
7485
7525
  };
@@ -7496,7 +7536,14 @@
7496
7536
  }
7497
7537
  return;
7498
7538
  }
7539
+ payload.cnt = payload.cnt || 0;
7540
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7541
+ if (payload.cnt > _maxRetryCnt) {
7542
+ return;
7543
+ }
7544
+ }
7499
7545
  _buffer[_DYN_PUSH ](payload);
7546
+ return;
7500
7547
  };
7501
7548
  _self[_DYN_COUNT ] = function () {
7502
7549
  return _buffer[_DYN_LENGTH ];
@@ -7504,7 +7551,7 @@
7504
7551
  _self.size = function () {
7505
7552
  var size = _buffer[_DYN_LENGTH ];
7506
7553
  for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
7507
- size += _buffer[lp][_DYN_LENGTH ];
7554
+ size += (_buffer[lp].item)[_DYN_LENGTH ];
7508
7555
  }
7509
7556
  if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]) {
7510
7557
  size += 2;
@@ -7518,11 +7565,15 @@
7518
7565
  _self.getItems = function () {
7519
7566
  return _buffer.slice(0);
7520
7567
  };
7521
- _self.batchPayloads = function (payload) {
7522
- if (payload && payload[_DYN_LENGTH ] > 0) {
7568
+ _self.batchPayloads = function (payloads) {
7569
+ if (payloads && payloads[_DYN_LENGTH ] > 0) {
7570
+ var payloadStr_1 = [];
7571
+ arrForEach(payloads, function (payload) {
7572
+ payloadStr_1[_DYN_PUSH ](payload[_DYN_ITEM ]);
7573
+ });
7523
7574
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
7524
- payload.join("\n") :
7525
- "[" + payload.join(",") + "]";
7575
+ payloadStr_1.join("\n") :
7576
+ "[" + payloadStr_1.join(",") + "]";
7526
7577
  return batch;
7527
7578
  }
7528
7579
  return null;
@@ -7558,17 +7609,21 @@
7558
7609
  ArraySendBuffer.__ieDyn=1;
7559
7610
  return ArraySendBuffer;
7560
7611
  }(BaseSendBuffer));
7612
+ var PREVIOUS_KEYS = ["AI_buffer", "AI_sentBuffer"];
7561
7613
  var SessionStorageSendBuffer = /** @class */ (function (_super) {
7562
7614
  __extendsFn(SessionStorageSendBuffer, _super);
7563
7615
  function SessionStorageSendBuffer(logger, config) {
7564
7616
  var _this = _super.call(this, logger, config) || this;
7565
7617
  var _bufferFullMessageSent = false;
7566
7618
  var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
7567
- var _a = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;
7619
+ var _b = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;
7620
+ var _maxRetryCnt = config.maxRetryCnt;
7568
7621
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
7569
7622
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
7570
- var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7571
- var buffer = _self._set(bufferItems.concat(notDeliveredItems));
7623
+ var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7624
+ var previousItems = _getPreviousEvents();
7625
+ var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT ](previousItems);
7626
+ var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
7572
7627
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7573
7628
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
7574
7629
  }
@@ -7582,6 +7637,12 @@
7582
7637
  }
7583
7638
  return;
7584
7639
  }
7640
+ payload.cnt = payload.cnt || 0;
7641
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7642
+ if (payload.cnt > _maxRetryCnt) {
7643
+ return;
7644
+ }
7645
+ }
7585
7646
  _base[_DYN_ENQUEUE ](payload);
7586
7647
  _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
7587
7648
  };
@@ -7595,7 +7656,7 @@
7595
7656
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
7596
7657
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7597
7658
  if (sentElements instanceof Array && payload instanceof Array) {
7598
- sentElements = sentElements.concat(payload);
7659
+ sentElements = sentElements[_DYN_CONCAT ](payload);
7599
7660
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7600
7661
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
7601
7662
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7626,8 +7687,12 @@
7626
7687
  };
7627
7688
  function _removePayloadsFromBuffer(payloads, buffer) {
7628
7689
  var remaining = [];
7690
+ var payloadStr = [];
7691
+ arrForEach(payloads, function (payload) {
7692
+ payloadStr[_DYN_PUSH ](payload[_DYN_ITEM ]);
7693
+ });
7629
7694
  arrForEach(buffer, function (value) {
7630
- if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
7695
+ if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM ]) === -1) {
7631
7696
  remaining[_DYN_PUSH ](value);
7632
7697
  }
7633
7698
  });
@@ -7635,9 +7700,12 @@
7635
7700
  }
7636
7701
  function _getBuffer(key) {
7637
7702
  var prefixedKey = key;
7703
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7704
+ return _getBufferBase(prefixedKey);
7705
+ }
7706
+ function _getBufferBase(key) {
7638
7707
  try {
7639
- prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7640
- var bufferJson = getItem(logger, prefixedKey);
7708
+ var bufferJson = getItem(logger, key);
7641
7709
  if (bufferJson) {
7642
7710
  var buffer_1 = getJSON().parse(bufferJson);
7643
7711
  if (isString(buffer_1)) {
@@ -7649,7 +7717,7 @@
7649
7717
  }
7650
7718
  }
7651
7719
  catch (e) {
7652
- _throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
7720
+ _throwInternal(logger, 1 , 42 , " storage key: " + key + ", " + getExceptionName(e), { exception: dumpObj(e) });
7653
7721
  }
7654
7722
  return [];
7655
7723
  }
@@ -7665,11 +7733,51 @@
7665
7733
  _throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
7666
7734
  }
7667
7735
  }
7736
+ function _getPreviousEvents() {
7737
+ var items = [];
7738
+ try {
7739
+ arrForEach(PREVIOUS_KEYS, function (key) {
7740
+ var events = _getItemsFromPreviousKey(key);
7741
+ items = items[_DYN_CONCAT ](events);
7742
+ if (_namePrefix) {
7743
+ var prefixedKey = _namePrefix + "_" + key;
7744
+ var prefixEvents = _getItemsFromPreviousKey(prefixedKey);
7745
+ items = items[_DYN_CONCAT ](prefixEvents);
7746
+ }
7747
+ });
7748
+ return items;
7749
+ }
7750
+ catch (e) {
7751
+ _throwInternal(logger, 2 , 41 , "Transfer events from previous buffers: " + getExceptionName(e) + ". previous Buffer items can not be removed", { exception: dumpObj(e) });
7752
+ }
7753
+ return [];
7754
+ }
7755
+ function _getItemsFromPreviousKey(key) {
7756
+ try {
7757
+ var items = _getBufferBase(key);
7758
+ var transFormedItems_1 = [];
7759
+ arrForEach(items, function (item) {
7760
+ var internalItem = {
7761
+ item: item,
7762
+ cnt: 0
7763
+ };
7764
+ transFormedItems_1[_DYN_PUSH ](internalItem);
7765
+ });
7766
+ utlRemoveSessionStorage(logger, key);
7767
+ return transFormedItems_1;
7768
+ }
7769
+ catch (e) {
7770
+ }
7771
+ return [];
7772
+ }
7668
7773
  });
7669
7774
  return _this;
7670
7775
  }
7671
- SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
7672
- SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
7776
+ var _a;
7777
+ _a = SessionStorageSendBuffer;
7778
+ SessionStorageSendBuffer.VERSION = "_1";
7779
+ SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer" + _a.VERSION;
7780
+ SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer" + _a.VERSION;
7673
7781
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
7674
7782
  return SessionStorageSendBuffer;
7675
7783
  }(BaseSendBuffer));
@@ -7828,7 +7936,7 @@
7828
7936
  return 0;
7829
7937
  }
7830
7938
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7831
- input = input.concat(input);
7939
+ input = input[_DYN_CONCAT ](input);
7832
7940
  }
7833
7941
  var hash = 5381;
7834
7942
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7935,6 +8043,7 @@
7935
8043
  _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
7936
8044
  _a.transports = UNDEFINED_VALUE,
7937
8045
  _a.retryCodes = UNDEFINED_VALUE,
8046
+ _a.maxRetryCnt = { isVal: isNumber, v: 10 },
7938
8047
  _a));
7939
8048
  function _chkSampling(value) {
7940
8049
  return !isNaN(value) && value > 0 && value <= 100;
@@ -8164,6 +8273,7 @@
8164
8273
  }));
8165
8274
  };
8166
8275
  _self.processTelemetry = function (telemetryItem, itemCtx) {
8276
+ var _a;
8167
8277
  itemCtx = _self._getTelCtx(itemCtx);
8168
8278
  var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
8169
8279
  try {
@@ -8178,7 +8288,12 @@
8178
8288
  var payload = _serializer[_DYN_SERIALIZE ](aiEnvelope);
8179
8289
  var buffer = _self[_DYN__BUFFER ];
8180
8290
  _checkMaxSize(payload);
8181
- buffer[_DYN_ENQUEUE ](payload);
8291
+ var payloadItem = (_a = {},
8292
+ _a[_DYN_ITEM ] = payload,
8293
+ _a.cnt = 0
8294
+ ,
8295
+ _a);
8296
+ buffer[_DYN_ENQUEUE ](payloadItem);
8182
8297
  _setupTimer();
8183
8298
  }
8184
8299
  catch (e) {
@@ -8190,6 +8305,9 @@
8190
8305
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
8191
8306
  };
8192
8307
  _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8308
+ if (_isStringArr(payload)) {
8309
+ return;
8310
+ }
8193
8311
  return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
8194
8312
  };
8195
8313
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
@@ -8245,40 +8363,27 @@
8245
8363
  _initDefaults();
8246
8364
  };
8247
8365
  _self[_DYN__ON_ERROR ] = function (payload, message, event) {
8248
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
8249
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8366
+ if (_isStringArr(payload)) {
8367
+ return;
8368
+ }
8369
+ return _onError(payload, message);
8250
8370
  };
8251
8371
  _self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
8252
- var failed = [];
8253
- var retry = [];
8254
- var errors = results.errors.reverse();
8255
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
8256
- var error = errors_1[_i];
8257
- var extracted = payload.splice(error.index, 1)[0];
8258
- if (_isRetriable(error.statusCode)) {
8259
- retry[_DYN_PUSH ](extracted);
8260
- }
8261
- else {
8262
- failed[_DYN_PUSH ](extracted);
8263
- }
8264
- }
8265
- if (payload[_DYN_LENGTH ] > 0) {
8266
- _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
8267
- }
8268
- if (failed[_DYN_LENGTH ] > 0) {
8269
- _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8270
- }
8271
- if (retry[_DYN_LENGTH ] > 0) {
8272
- _resendPayload(retry);
8273
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
8274
- "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
8275
- ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
8372
+ if (_isStringArr(payload)) {
8373
+ return;
8276
8374
  }
8375
+ return _onPartialSuccess(payload, results);
8277
8376
  };
8278
8377
  _self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
8279
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8378
+ if (_isStringArr(payload)) {
8379
+ return;
8380
+ }
8381
+ return _onSuccess(payload);
8280
8382
  };
8281
8383
  _self._xdrOnLoad = function (xdr, payload) {
8384
+ if (_isStringArr(payload)) {
8385
+ return;
8386
+ }
8282
8387
  return _xdrOnLoad(xdr, payload);
8283
8388
  };
8284
8389
  function _xdrOnLoad(xdr, payload) {
@@ -8289,7 +8394,7 @@
8289
8394
  }
8290
8395
  else {
8291
8396
  var results = parseResponse(responseText);
8292
- if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
8397
+ if (results && results[_DYN_ITEMS_RECEIVED ] && results[_DYN_ITEMS_RECEIVED ] > results[_DYN_ITEMS_ACCEPTED ]
8293
8398
  && !_isRetryDisabled) {
8294
8399
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
8295
8400
  }
@@ -8347,6 +8452,40 @@
8347
8452
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
8348
8453
  }
8349
8454
  }
8455
+ function _onError(payload, message, event) {
8456
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
8457
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8458
+ }
8459
+ function _onPartialSuccess(payload, results) {
8460
+ var failed = [];
8461
+ var retry = [];
8462
+ var errors = results.errors.reverse();
8463
+ for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
8464
+ var error = errors_1[_i];
8465
+ var extracted = payload.splice(error.index, 1)[0];
8466
+ if (_isRetriable(error.statusCode)) {
8467
+ retry[_DYN_PUSH ](extracted);
8468
+ }
8469
+ else {
8470
+ failed[_DYN_PUSH ](extracted);
8471
+ }
8472
+ }
8473
+ if (payload[_DYN_LENGTH ] > 0) {
8474
+ _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
8475
+ }
8476
+ if (failed[_DYN_LENGTH ] > 0) {
8477
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8478
+ }
8479
+ if (retry[_DYN_LENGTH ] > 0) {
8480
+ _resendPayload(retry);
8481
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
8482
+ "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
8483
+ ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
8484
+ }
8485
+ }
8486
+ function _onSuccess(payload, countOfItemsInPayload) {
8487
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8488
+ }
8350
8489
  function _getPayloadArr(payload) {
8351
8490
  try {
8352
8491
  if (payload) {
@@ -8614,12 +8753,22 @@
8614
8753
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8615
8754
  }
8616
8755
  }
8756
+ function _isStringArr(arr) {
8757
+ try {
8758
+ if (arr && arr[_DYN_LENGTH ]) {
8759
+ return (isString(arr[0]));
8760
+ }
8761
+ }
8762
+ catch (e) {
8763
+ }
8764
+ return null;
8765
+ }
8617
8766
  function _fetchKeepAliveSender(payload, isAsync) {
8618
8767
  var transport = null;
8619
8768
  if (isArray(payload)) {
8620
8769
  var payloadSize = payload[_DYN_LENGTH ];
8621
8770
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8622
- payloadSize += payload[lp][_DYN_LENGTH ];
8771
+ payloadSize += payload[lp].item[_DYN_LENGTH ];
8623
8772
  }
8624
8773
  var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8625
8774
  if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
@@ -8647,6 +8796,8 @@
8647
8796
  _consecutiveErrors++;
8648
8797
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
8649
8798
  var item = payload_1[_i];
8799
+ item.cnt = item.cnt || 0;
8800
+ item.cnt++;
8650
8801
  buffer[_DYN_ENQUEUE ](item);
8651
8802
  }
8652
8803
  _setRetryTime(linearFactor);