@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
  'use strict';
@@ -1373,14 +1373,19 @@ function throwAggregationError(message, sourceErrors) {
1373
1373
  throw new aggregationErrorType(theMessage, sourceErrors || []);
1374
1374
  }
1375
1375
 
1376
+ var STR_PROMISE = "Promise";
1377
+ var REJECTED = "rejected";
1378
+
1376
1379
  function doAwaitResponse(value, cb) {
1377
1380
  return doAwait(value, function (value) {
1378
1381
  return cb ? cb({
1379
- value: value,
1380
- rejected: false
1382
+ status: "fulfilled",
1383
+ rejected: false,
1384
+ value: value
1381
1385
  }) : value;
1382
1386
  }, function (reason) {
1383
1387
  return cb ? cb({
1388
+ status: REJECTED,
1384
1389
  rejected: true,
1385
1390
  reason: reason
1386
1391
  }) : reason;
@@ -1388,18 +1393,32 @@ function doAwaitResponse(value, cb) {
1388
1393
  }
1389
1394
  function doAwait(value, resolveFn, rejectFn, finallyFn) {
1390
1395
  var result = value;
1391
- if (isPromiseLike(value)) {
1392
- if (resolveFn || rejectFn) {
1393
- result = value.then(resolveFn, rejectFn);
1396
+ try {
1397
+ if (isPromiseLike(value)) {
1398
+ if (resolveFn || rejectFn) {
1399
+ result = value.then(resolveFn, rejectFn);
1400
+ }
1394
1401
  }
1395
- }
1396
- else {
1397
- if (resolveFn) {
1398
- result = resolveFn(value);
1402
+ else {
1403
+ try {
1404
+ if (resolveFn) {
1405
+ result = resolveFn(value);
1406
+ }
1407
+ }
1408
+ catch (err) {
1409
+ if (rejectFn) {
1410
+ result = rejectFn(err);
1411
+ }
1412
+ else {
1413
+ throw err;
1414
+ }
1415
+ }
1399
1416
  }
1400
1417
  }
1401
- if (finallyFn) {
1402
- doFinally(result, finallyFn);
1418
+ finally {
1419
+ if (finallyFn) {
1420
+ doFinally(result, finallyFn);
1421
+ }
1403
1422
  }
1404
1423
  return result;
1405
1424
  }
@@ -1427,21 +1446,22 @@ function doFinally(value, finallyFn) {
1427
1446
  return result;
1428
1447
  }
1429
1448
 
1430
- var STRING_STATES = [
1431
- "pending", "resolving", "resolved", "rejected"
1449
+ var STRING_STATES = [
1450
+ "pending", "resolving", "resolved", REJECTED
1432
1451
  ];
1433
1452
 
1434
1453
  var DISPATCH_EVENT = "dispatchEvent";
1435
1454
  var _hasInitEvent;
1455
+ function _hasInitEventFn(doc) {
1456
+ var evt;
1457
+ if (doc && doc.createEvent) {
1458
+ evt = doc.createEvent("Event");
1459
+ }
1460
+ return (!!evt && evt.initEvent);
1461
+ }
1436
1462
  function emitEvent(target, evtName, populateEvent, useNewEvent) {
1437
1463
  var doc = getDocument();
1438
- !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1439
- var evt;
1440
- if (doc && doc.createEvent) {
1441
- evt = doc.createEvent("Event");
1442
- }
1443
- return (!!evt && evt.initEvent);
1444
- }, null));
1464
+ !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));
1445
1465
  var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1446
1466
  populateEvent && populateEvent(theEvt);
1447
1467
  if (_hasInitEvent.v) {
@@ -1462,8 +1482,6 @@ function emitEvent(target, evtName, populateEvent, useNewEvent) {
1462
1482
  }
1463
1483
  }
1464
1484
 
1465
- var STR_PROMISE = "Promise";
1466
-
1467
1485
  var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1468
1486
  var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1469
1487
  var _unhandledRejectionTimeout = 10;
@@ -1484,7 +1502,7 @@ function _createPromise(newPromise, processor, executor) {
1484
1502
  var _unHandledRejectionHandler = null;
1485
1503
  var _thePromise;
1486
1504
  !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1487
- var _then = function (onResolved, onRejected) {
1505
+ function _then(onResolved, onRejected) {
1488
1506
  try {
1489
1507
  _handled = true;
1490
1508
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
@@ -1519,11 +1537,11 @@ function _createPromise(newPromise, processor, executor) {
1519
1537
  }
1520
1538
  finally {
1521
1539
  }
1522
- };
1523
- var _catch = function (onRejected) {
1540
+ }
1541
+ function _catch(onRejected) {
1524
1542
  return _then(undefined, onRejected);
1525
- };
1526
- var _finally = function (onFinally) {
1543
+ }
1544
+ function _finally(onFinally) {
1527
1545
  var thenFinally = onFinally;
1528
1546
  var catchFinally = onFinally;
1529
1547
  if (isFunction(onFinally)) {
@@ -1537,21 +1555,21 @@ function _createPromise(newPromise, processor, executor) {
1537
1555
  };
1538
1556
  }
1539
1557
  return _then(thenFinally, catchFinally);
1540
- };
1541
- var _strState = function () {
1558
+ }
1559
+ function _strState() {
1542
1560
  return STRING_STATES[_state];
1543
- };
1544
- var _processQueue = function () {
1561
+ }
1562
+ function _processQueue() {
1545
1563
  if (_queue.length > 0) {
1546
1564
  var pending = _queue.slice();
1547
1565
  _queue = [];
1548
1566
  _handled = true;
1549
- processor(pending);
1550
1567
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1551
1568
  _unHandledRejectionHandler = null;
1569
+ processor(pending);
1552
1570
  }
1553
- };
1554
- var _createSettleIfFn = function (newState, allowState) {
1571
+ }
1572
+ function _createSettleIfFn(newState, allowState) {
1555
1573
  return function (theValue) {
1556
1574
  if (_state === allowState) {
1557
1575
  if (newState === 2 && isPromiseLike(theValue)) {
@@ -1568,9 +1586,10 @@ function _createPromise(newPromise, processor, executor) {
1568
1586
  }
1569
1587
  }
1570
1588
  };
1571
- };
1572
- var _notifyUnhandledRejection = function () {
1589
+ }
1590
+ function _notifyUnhandledRejection() {
1573
1591
  if (!_handled) {
1592
+ _handled = true;
1574
1593
  if (isNode()) {
1575
1594
  process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1576
1595
  }
@@ -1583,7 +1602,7 @@ function _createPromise(newPromise, processor, executor) {
1583
1602
  }, !!_hasPromiseRejectionEvent.v);
1584
1603
  }
1585
1604
  }
1586
- };
1605
+ }
1587
1606
  _thePromise = {
1588
1607
  then: _then,
1589
1608
  "catch": _catch,
@@ -1595,9 +1614,9 @@ function _createPromise(newPromise, processor, executor) {
1595
1614
  if (hasSymbol()) {
1596
1615
  _thePromise[getKnownSymbol(11 )] = "IPromise";
1597
1616
  }
1598
- var _toString = function () {
1599
- return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1600
- };
1617
+ function _toString() {
1618
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "") + ("");
1619
+ }
1601
1620
  _thePromise.toString = _toString;
1602
1621
  (function _initialize() {
1603
1622
  if (!isFunction(executor)) {
@@ -1613,6 +1632,7 @@ function _createPromise(newPromise, processor, executor) {
1613
1632
  })();
1614
1633
  return _thePromise;
1615
1634
  }
1635
+ /*#__NO_SIDE_EFFECTS__*/
1616
1636
  function _createAllPromise(newPromise) {
1617
1637
  return function (input) {
1618
1638
  var additionalArgs = arrSlice(arguments, 1);
@@ -1620,7 +1640,7 @@ function _createAllPromise(newPromise) {
1620
1640
  try {
1621
1641
  var values_1 = [];
1622
1642
  var pending_1 = 1;
1623
- arrForEach(input, function (item, idx) {
1643
+ iterForOf(input, function (item, idx) {
1624
1644
  if (item) {
1625
1645
  pending_1++;
1626
1646
  doAwait(item, function (value) {
@@ -1643,7 +1663,7 @@ function _createAllPromise(newPromise) {
1643
1663
  };
1644
1664
  }
1645
1665
 
1646
- var _processPendingItems = function (pending) {
1666
+ function syncItemProcessor(pending) {
1647
1667
  arrForEach(pending, function (fn) {
1648
1668
  try {
1649
1669
  fn();
@@ -1651,12 +1671,12 @@ var _processPendingItems = function (pending) {
1651
1671
  catch (e) {
1652
1672
  }
1653
1673
  });
1654
- };
1674
+ }
1655
1675
  function timeoutItemProcessor(timeout) {
1656
1676
  var callbackTimeout = isNumber(timeout) ? timeout : 0;
1657
1677
  return function (pending) {
1658
1678
  scheduleTimeout(function () {
1659
- _processPendingItems(pending);
1679
+ syncItemProcessor(pending);
1660
1680
  }, callbackTimeout);
1661
1681
  };
1662
1682
  }
@@ -1665,10 +1685,10 @@ function createAsyncPromise(executor, timeout) {
1665
1685
  return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1666
1686
  }
1667
1687
 
1668
- var _isPromiseSupported;
1688
+ var _promiseCls;
1669
1689
  function createNativePromise(executor, timeout) {
1670
- !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1671
- var PrmCls = _isPromiseSupported.v;
1690
+ !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));
1691
+ var PrmCls = _promiseCls.v;
1672
1692
  if (!PrmCls) {
1673
1693
  return createAsyncPromise(executor);
1674
1694
  }
@@ -1698,10 +1718,10 @@ function createNativePromise(executor, timeout) {
1698
1718
 
1699
1719
  var _promiseCreator;
1700
1720
  function createPromise(executor, timeout) {
1701
- !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1721
+ !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));
1702
1722
  return _promiseCreator.v.call(this, executor, timeout);
1703
1723
  }
1704
- var createAllPromise = _createAllPromise(createPromise);
1724
+ var createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);
1705
1725
 
1706
1726
  var UNDEFINED_VALUE$1 = undefined;
1707
1727
  var STR_EMPTY$1 = "";
@@ -5456,7 +5476,9 @@ var SenderPostManager = /** @class */ (function () {
5456
5476
  return;
5457
5477
  }
5458
5478
  var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT ]);
5459
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5479
+ if (!_isOneDs) {
5480
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
5481
+ }
5460
5482
  arrForEach(objKeys(headers), function (headerName) {
5461
5483
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
5462
5484
  });
@@ -6196,6 +6218,20 @@ function utlSetSessionStorage(logger, name, data) {
6196
6218
  }
6197
6219
  return false;
6198
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
+ }
6199
6235
 
6200
6236
  var _FIELDS_SEPARATOR = ";";
6201
6237
  var _FIELD_KEY_VALUE_SEPARATOR = "=";
@@ -7173,6 +7209,7 @@ var _DYN_ENQUEUE = "enqueue";
7173
7209
  var _DYN_COUNT = "count";
7174
7210
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
7175
7211
  var _DYN_PUSH = "push";
7212
+ var _DYN_ITEM = "item";
7176
7213
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
7177
7214
  var _DYN_CLEAR = "clear";
7178
7215
  var _DYN_CREATE_NEW = "createNew";
@@ -7181,6 +7218,7 @@ var _DYN_CLEAR_SENT = "clearSent";
7181
7218
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
7182
7219
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
7183
7220
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
7221
+ var _DYN_CONCAT = "concat";
7184
7222
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
7185
7223
  var _DYN_TRIGGER_SEND = "triggerSend";
7186
7224
  var _DYN_DIAG_LOG = "diagLog";
@@ -7206,8 +7244,8 @@ var _DYN_SERIALIZE = "serialize";
7206
7244
  var _DYN__ON_ERROR = "_onError";
7207
7245
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
7208
7246
  var _DYN__ON_SUCCESS = "_onSuccess";
7209
- var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7210
7247
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
7248
+ var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
7211
7249
  var _DYN_ORI_PAYLOAD = "oriPayload";
7212
7250
  var _DYN_BASE_TYPE = "baseType";
7213
7251
  var _DYN_SAMPLE_RATE = "sampleRate";
@@ -7259,6 +7297,7 @@ function _extractPartAExtensions(logger, item, env) {
7259
7297
  var extOs = itmExt.os;
7260
7298
  if (extOs) {
7261
7299
  _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME ]);
7300
+ _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);
7262
7301
  }
7263
7302
  var extTrace = itmExt.trace;
7264
7303
  if (extTrace) {
@@ -7324,7 +7363,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
7324
7363
  }
7325
7364
  }
7326
7365
  var EnvelopeCreator = {
7327
- Version: '3.1.3-nightly3.2403-15'
7366
+ Version: '3.1.3-nightly3.2404-12'
7328
7367
  };
7329
7368
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
7330
7369
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -7477,6 +7516,7 @@ var BaseSendBuffer = /** @class */ (function () {
7477
7516
  function BaseSendBuffer(logger, config) {
7478
7517
  var _buffer = [];
7479
7518
  var _bufferFullMessageSent = false;
7519
+ var _maxRetryCnt = config.maxRetryCnt;
7480
7520
  this[_DYN__GET ] = function () {
7481
7521
  return _buffer;
7482
7522
  };
@@ -7493,7 +7533,14 @@ var BaseSendBuffer = /** @class */ (function () {
7493
7533
  }
7494
7534
  return;
7495
7535
  }
7536
+ payload.cnt = payload.cnt || 0;
7537
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7538
+ if (payload.cnt > _maxRetryCnt) {
7539
+ return;
7540
+ }
7541
+ }
7496
7542
  _buffer[_DYN_PUSH ](payload);
7543
+ return;
7497
7544
  };
7498
7545
  _self[_DYN_COUNT ] = function () {
7499
7546
  return _buffer[_DYN_LENGTH ];
@@ -7501,7 +7548,7 @@ var BaseSendBuffer = /** @class */ (function () {
7501
7548
  _self.size = function () {
7502
7549
  var size = _buffer[_DYN_LENGTH ];
7503
7550
  for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
7504
- size += _buffer[lp][_DYN_LENGTH ];
7551
+ size += (_buffer[lp].item)[_DYN_LENGTH ];
7505
7552
  }
7506
7553
  if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]) {
7507
7554
  size += 2;
@@ -7515,11 +7562,15 @@ var BaseSendBuffer = /** @class */ (function () {
7515
7562
  _self.getItems = function () {
7516
7563
  return _buffer.slice(0);
7517
7564
  };
7518
- _self.batchPayloads = function (payload) {
7519
- 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
+ });
7520
7571
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
7521
- payload.join("\n") :
7522
- "[" + payload.join(",") + "]";
7572
+ payloadStr_1.join("\n") :
7573
+ "[" + payloadStr_1.join(",") + "]";
7523
7574
  return batch;
7524
7575
  }
7525
7576
  return null;
@@ -7555,17 +7606,21 @@ var ArraySendBuffer = /** @class */ (function (_super) {
7555
7606
  ArraySendBuffer.__ieDyn=1;
7556
7607
  return ArraySendBuffer;
7557
7608
  }(BaseSendBuffer));
7609
+ var PREVIOUS_KEYS = ["AI_buffer", "AI_sentBuffer"];
7558
7610
  var SessionStorageSendBuffer = /** @class */ (function (_super) {
7559
7611
  __extendsFn(SessionStorageSendBuffer, _super);
7560
7612
  function SessionStorageSendBuffer(logger, config) {
7561
7613
  var _this = _super.call(this, logger, config) || this;
7562
7614
  var _bufferFullMessageSent = false;
7563
7615
  var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
7564
- 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;
7565
7618
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
7566
7619
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
7567
- var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7568
- 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));
7569
7624
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7570
7625
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
7571
7626
  }
@@ -7579,6 +7634,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7579
7634
  }
7580
7635
  return;
7581
7636
  }
7637
+ payload.cnt = payload.cnt || 0;
7638
+ if (!isNullOrUndefined(_maxRetryCnt)) {
7639
+ if (payload.cnt > _maxRetryCnt) {
7640
+ return;
7641
+ }
7642
+ }
7582
7643
  _base[_DYN_ENQUEUE ](payload);
7583
7644
  _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
7584
7645
  };
@@ -7592,7 +7653,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7592
7653
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
7593
7654
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
7594
7655
  if (sentElements instanceof Array && payload instanceof Array) {
7595
- sentElements = sentElements.concat(payload);
7656
+ sentElements = sentElements[_DYN_CONCAT ](payload);
7596
7657
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
7597
7658
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
7598
7659
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -7623,8 +7684,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7623
7684
  };
7624
7685
  function _removePayloadsFromBuffer(payloads, buffer) {
7625
7686
  var remaining = [];
7687
+ var payloadStr = [];
7688
+ arrForEach(payloads, function (payload) {
7689
+ payloadStr[_DYN_PUSH ](payload[_DYN_ITEM ]);
7690
+ });
7626
7691
  arrForEach(buffer, function (value) {
7627
- if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
7692
+ if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM ]) === -1) {
7628
7693
  remaining[_DYN_PUSH ](value);
7629
7694
  }
7630
7695
  });
@@ -7632,9 +7697,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7632
7697
  }
7633
7698
  function _getBuffer(key) {
7634
7699
  var prefixedKey = key;
7700
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7701
+ return _getBufferBase(prefixedKey);
7702
+ }
7703
+ function _getBufferBase(key) {
7635
7704
  try {
7636
- prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
7637
- var bufferJson = getItem(logger, prefixedKey);
7705
+ var bufferJson = getItem(logger, key);
7638
7706
  if (bufferJson) {
7639
7707
  var buffer_1 = getJSON().parse(bufferJson);
7640
7708
  if (isString(buffer_1)) {
@@ -7646,7 +7714,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7646
7714
  }
7647
7715
  }
7648
7716
  catch (e) {
7649
- _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) });
7650
7718
  }
7651
7719
  return [];
7652
7720
  }
@@ -7662,11 +7730,51 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
7662
7730
  _throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
7663
7731
  }
7664
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
+ }
7665
7770
  });
7666
7771
  return _this;
7667
7772
  }
7668
- SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
7669
- 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;
7670
7778
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
7671
7779
  return SessionStorageSendBuffer;
7672
7780
  }(BaseSendBuffer));
@@ -7825,7 +7933,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
7825
7933
  return 0;
7826
7934
  }
7827
7935
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
7828
- input = input.concat(input);
7936
+ input = input[_DYN_CONCAT ](input);
7829
7937
  }
7830
7938
  var hash = 5381;
7831
7939
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -7932,6 +8040,7 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
7932
8040
  _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
7933
8041
  _a.transports = UNDEFINED_VALUE,
7934
8042
  _a.retryCodes = UNDEFINED_VALUE,
8043
+ _a.maxRetryCnt = { isVal: isNumber, v: 10 },
7935
8044
  _a));
7936
8045
  function _chkSampling(value) {
7937
8046
  return !isNaN(value) && value > 0 && value <= 100;
@@ -8161,6 +8270,7 @@ var Sender = /** @class */ (function (_super) {
8161
8270
  }));
8162
8271
  };
8163
8272
  _self.processTelemetry = function (telemetryItem, itemCtx) {
8273
+ var _a;
8164
8274
  itemCtx = _self._getTelCtx(itemCtx);
8165
8275
  var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
8166
8276
  try {
@@ -8175,7 +8285,12 @@ var Sender = /** @class */ (function (_super) {
8175
8285
  var payload = _serializer[_DYN_SERIALIZE ](aiEnvelope);
8176
8286
  var buffer = _self[_DYN__BUFFER ];
8177
8287
  _checkMaxSize(payload);
8178
- 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);
8179
8294
  _setupTimer();
8180
8295
  }
8181
8296
  catch (e) {
@@ -8187,6 +8302,9 @@ var Sender = /** @class */ (function (_super) {
8187
8302
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
8188
8303
  };
8189
8304
  _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
8305
+ if (_isStringArr(payload)) {
8306
+ return;
8307
+ }
8190
8308
  return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
8191
8309
  };
8192
8310
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
@@ -8242,40 +8360,27 @@ var Sender = /** @class */ (function (_super) {
8242
8360
  _initDefaults();
8243
8361
  };
8244
8362
  _self[_DYN__ON_ERROR ] = function (payload, message, event) {
8245
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
8246
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8363
+ if (_isStringArr(payload)) {
8364
+ return;
8365
+ }
8366
+ return _onError(payload, message);
8247
8367
  };
8248
8368
  _self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
8249
- var failed = [];
8250
- var retry = [];
8251
- var errors = results.errors.reverse();
8252
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
8253
- var error = errors_1[_i];
8254
- var extracted = payload.splice(error.index, 1)[0];
8255
- if (_isRetriable(error.statusCode)) {
8256
- retry[_DYN_PUSH ](extracted);
8257
- }
8258
- else {
8259
- failed[_DYN_PUSH ](extracted);
8260
- }
8261
- }
8262
- if (payload[_DYN_LENGTH ] > 0) {
8263
- _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
8264
- }
8265
- if (failed[_DYN_LENGTH ] > 0) {
8266
- _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
8267
- }
8268
- if (retry[_DYN_LENGTH ] > 0) {
8269
- _resendPayload(retry);
8270
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
8271
- "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
8272
- ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
8369
+ if (_isStringArr(payload)) {
8370
+ return;
8273
8371
  }
8372
+ return _onPartialSuccess(payload, results);
8274
8373
  };
8275
8374
  _self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
8276
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
8375
+ if (_isStringArr(payload)) {
8376
+ return;
8377
+ }
8378
+ return _onSuccess(payload);
8277
8379
  };
8278
8380
  _self._xdrOnLoad = function (xdr, payload) {
8381
+ if (_isStringArr(payload)) {
8382
+ return;
8383
+ }
8279
8384
  return _xdrOnLoad(xdr, payload);
8280
8385
  };
8281
8386
  function _xdrOnLoad(xdr, payload) {
@@ -8286,7 +8391,7 @@ var Sender = /** @class */ (function (_super) {
8286
8391
  }
8287
8392
  else {
8288
8393
  var results = parseResponse(responseText);
8289
- 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 ]
8290
8395
  && !_isRetryDisabled) {
8291
8396
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
8292
8397
  }
@@ -8344,6 +8449,40 @@ var Sender = /** @class */ (function (_super) {
8344
8449
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
8345
8450
  }
8346
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
+ }
8347
8486
  function _getPayloadArr(payload) {
8348
8487
  try {
8349
8488
  if (payload) {
@@ -8611,12 +8750,22 @@ var Sender = /** @class */ (function (_super) {
8611
8750
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
8612
8751
  }
8613
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
+ }
8614
8763
  function _fetchKeepAliveSender(payload, isAsync) {
8615
8764
  var transport = null;
8616
8765
  if (isArray(payload)) {
8617
8766
  var payloadSize = payload[_DYN_LENGTH ];
8618
8767
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
8619
- payloadSize += payload[lp][_DYN_LENGTH ];
8768
+ payloadSize += payload[lp].item[_DYN_LENGTH ];
8620
8769
  }
8621
8770
  var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
8622
8771
  if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
@@ -8644,6 +8793,8 @@ var Sender = /** @class */ (function (_super) {
8644
8793
  _consecutiveErrors++;
8645
8794
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
8646
8795
  var item = payload_1[_i];
8796
+ item.cnt = item.cnt || 0;
8797
+ item.cnt++;
8647
8798
  buffer[_DYN_ENQUEUE ](item);
8648
8799
  }
8649
8800
  _setRetryTime(linearFactor);