@microsoft/applicationinsights-channel-js 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 (59) hide show
  1. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.2403-15.js → applicationinsights-channel-js.3.1.3-nightly3.2404-12.cjs.js} +248 -125
  2. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.cjs.js.map +1 -0
  3. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.cjs.min.js +6 -0
  4. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.cjs.min.js.map +1 -0
  5. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.2403-15.gbl.js → applicationinsights-channel-js.3.1.3-nightly3.2404-12.gbl.js} +250 -100
  6. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.gbl.js.map +1 -0
  7. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.gbl.min.js +6 -0
  8. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.gbl.min.js.map +1 -0
  9. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.integrity.json +66 -0
  10. package/browser/es5/{applicationinsights-channel-js.3.1.3-nightly3.2403-15.cjs.js → applicationinsights-channel-js.3.1.3-nightly3.2404-12.js} +275 -98
  11. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.js.map +1 -0
  12. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.min.js +6 -0
  13. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2404-12.min.js.map +1 -0
  14. package/browser/es5/applicationinsights-channel-js.3.cjs.js +247 -97
  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 +249 -99
  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 +249 -99
  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 +247 -97
  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 +3 -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 -49
  50. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.cjs.js.map +0 -1
  51. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.cjs.min.js +0 -6
  52. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.cjs.min.js.map +0 -1
  53. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.gbl.js.map +0 -1
  54. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.gbl.min.js +0 -6
  55. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.gbl.min.js.map +0 -1
  56. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.integrity.json +0 -66
  57. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.js.map +0 -1
  58. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.min.js +0 -6
  59. package/browser/es5/applicationinsights-channel-js.3.1.3-nightly3.2403-15.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Channel, 3.1.3-nightly3.2403-15
2
+ * Application Insights JavaScript SDK - Channel, 3.1.3-nightly3.2404-12
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -1165,14 +1165,19 @@ function throwAggregationError(message, sourceErrors) {
1165
1165
  throw new aggregationErrorType(theMessage, sourceErrors || []);
1166
1166
  }
1167
1167
 
1168
+ var STR_PROMISE = "Promise";
1169
+ var REJECTED = "rejected";
1170
+
1168
1171
  function doAwaitResponse(value, cb) {
1169
1172
  return doAwait(value, function (value) {
1170
1173
  return cb ? cb({
1171
- value: value,
1172
- rejected: false
1174
+ status: "fulfilled",
1175
+ rejected: false,
1176
+ value: value
1173
1177
  }) : value;
1174
1178
  }, function (reason) {
1175
1179
  return cb ? cb({
1180
+ status: REJECTED,
1176
1181
  rejected: true,
1177
1182
  reason: reason
1178
1183
  }) : reason;
@@ -1180,18 +1185,32 @@ function doAwaitResponse(value, cb) {
1180
1185
  }
1181
1186
  function doAwait(value, resolveFn, rejectFn, finallyFn) {
1182
1187
  var result = value;
1183
- if (isPromiseLike(value)) {
1184
- if (resolveFn || rejectFn) {
1185
- result = value.then(resolveFn, rejectFn);
1188
+ try {
1189
+ if (isPromiseLike(value)) {
1190
+ if (resolveFn || rejectFn) {
1191
+ result = value.then(resolveFn, rejectFn);
1192
+ }
1186
1193
  }
1187
- }
1188
- else {
1189
- if (resolveFn) {
1190
- result = resolveFn(value);
1194
+ else {
1195
+ try {
1196
+ if (resolveFn) {
1197
+ result = resolveFn(value);
1198
+ }
1199
+ }
1200
+ catch (err) {
1201
+ if (rejectFn) {
1202
+ result = rejectFn(err);
1203
+ }
1204
+ else {
1205
+ throw err;
1206
+ }
1207
+ }
1191
1208
  }
1192
1209
  }
1193
- if (finallyFn) {
1194
- doFinally(result, finallyFn);
1210
+ finally {
1211
+ if (finallyFn) {
1212
+ doFinally(result, finallyFn);
1213
+ }
1195
1214
  }
1196
1215
  return result;
1197
1216
  }
@@ -1219,21 +1238,22 @@ function doFinally(value, finallyFn) {
1219
1238
  return result;
1220
1239
  }
1221
1240
 
1222
- var STRING_STATES = [
1223
- "pending", "resolving", "resolved", "rejected"
1241
+ var STRING_STATES = [
1242
+ "pending", "resolving", "resolved", REJECTED
1224
1243
  ];
1225
1244
 
1226
1245
  var DISPATCH_EVENT = "dispatchEvent";
1227
1246
  var _hasInitEvent;
1247
+ function _hasInitEventFn(doc) {
1248
+ var evt;
1249
+ if (doc && doc.createEvent) {
1250
+ evt = doc.createEvent("Event");
1251
+ }
1252
+ return (!!evt && evt.initEvent);
1253
+ }
1228
1254
  function emitEvent(target, evtName, populateEvent, useNewEvent) {
1229
1255
  var doc = getDocument();
1230
- !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1231
- var evt;
1232
- if (doc && doc.createEvent) {
1233
- evt = doc.createEvent("Event");
1234
- }
1235
- return (!!evt && evt.initEvent);
1236
- }, null));
1256
+ !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));
1237
1257
  var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1238
1258
  populateEvent && populateEvent(theEvt);
1239
1259
  if (_hasInitEvent.v) {
@@ -1254,8 +1274,6 @@ function emitEvent(target, evtName, populateEvent, useNewEvent) {
1254
1274
  }
1255
1275
  }
1256
1276
 
1257
- var STR_PROMISE = "Promise";
1258
-
1259
1277
  var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1260
1278
  var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1261
1279
  var _unhandledRejectionTimeout = 10;
@@ -1276,7 +1294,7 @@ function _createPromise(newPromise, processor, executor) {
1276
1294
  var _unHandledRejectionHandler = null;
1277
1295
  var _thePromise;
1278
1296
  !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1279
- var _then = function (onResolved, onRejected) {
1297
+ function _then(onResolved, onRejected) {
1280
1298
  try {
1281
1299
  _handled = true;
1282
1300
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
@@ -1311,11 +1329,11 @@ function _createPromise(newPromise, processor, executor) {
1311
1329
  }
1312
1330
  finally {
1313
1331
  }
1314
- };
1315
- var _catch = function (onRejected) {
1332
+ }
1333
+ function _catch(onRejected) {
1316
1334
  return _then(undefined, onRejected);
1317
- };
1318
- var _finally = function (onFinally) {
1335
+ }
1336
+ function _finally(onFinally) {
1319
1337
  var thenFinally = onFinally;
1320
1338
  var catchFinally = onFinally;
1321
1339
  if (isFunction(onFinally)) {
@@ -1329,21 +1347,21 @@ function _createPromise(newPromise, processor, executor) {
1329
1347
  };
1330
1348
  }
1331
1349
  return _then(thenFinally, catchFinally);
1332
- };
1333
- var _strState = function () {
1350
+ }
1351
+ function _strState() {
1334
1352
  return STRING_STATES[_state];
1335
- };
1336
- var _processQueue = function () {
1353
+ }
1354
+ function _processQueue() {
1337
1355
  if (_queue.length > 0) {
1338
1356
  var pending = _queue.slice();
1339
1357
  _queue = [];
1340
1358
  _handled = true;
1341
- processor(pending);
1342
1359
  _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1343
1360
  _unHandledRejectionHandler = null;
1361
+ processor(pending);
1344
1362
  }
1345
- };
1346
- var _createSettleIfFn = function (newState, allowState) {
1363
+ }
1364
+ function _createSettleIfFn(newState, allowState) {
1347
1365
  return function (theValue) {
1348
1366
  if (_state === allowState) {
1349
1367
  if (newState === 2 && isPromiseLike(theValue)) {
@@ -1360,9 +1378,10 @@ function _createPromise(newPromise, processor, executor) {
1360
1378
  }
1361
1379
  }
1362
1380
  };
1363
- };
1364
- var _notifyUnhandledRejection = function () {
1381
+ }
1382
+ function _notifyUnhandledRejection() {
1365
1383
  if (!_handled) {
1384
+ _handled = true;
1366
1385
  if (isNode()) {
1367
1386
  process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1368
1387
  }
@@ -1375,7 +1394,7 @@ function _createPromise(newPromise, processor, executor) {
1375
1394
  }, !!_hasPromiseRejectionEvent.v);
1376
1395
  }
1377
1396
  }
1378
- };
1397
+ }
1379
1398
  _thePromise = {
1380
1399
  then: _then,
1381
1400
  "catch": _catch,
@@ -1387,9 +1406,9 @@ function _createPromise(newPromise, processor, executor) {
1387
1406
  if (hasSymbol()) {
1388
1407
  _thePromise[getKnownSymbol(11 )] = "IPromise";
1389
1408
  }
1390
- var _toString = function () {
1391
- return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1392
- };
1409
+ function _toString() {
1410
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "") + ("");
1411
+ }
1393
1412
  _thePromise.toString = _toString;
1394
1413
  (function _initialize() {
1395
1414
  if (!isFunction(executor)) {
@@ -1406,7 +1425,7 @@ function _createPromise(newPromise, processor, executor) {
1406
1425
  return _thePromise;
1407
1426
  }
1408
1427
 
1409
- var _processPendingItems = function (pending) {
1428
+ function syncItemProcessor(pending) {
1410
1429
  arrForEach(pending, function (fn) {
1411
1430
  try {
1412
1431
  fn();
@@ -1414,12 +1433,12 @@ var _processPendingItems = function (pending) {
1414
1433
  catch (e) {
1415
1434
  }
1416
1435
  });
1417
- };
1436
+ }
1418
1437
  function timeoutItemProcessor(timeout) {
1419
1438
  var callbackTimeout = isNumber(timeout) ? timeout : 0;
1420
1439
  return function (pending) {
1421
1440
  scheduleTimeout(function () {
1422
- _processPendingItems(pending);
1441
+ syncItemProcessor(pending);
1423
1442
  }, callbackTimeout);
1424
1443
  };
1425
1444
  }
@@ -1428,10 +1447,10 @@ function createAsyncPromise(executor, timeout) {
1428
1447
  return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1429
1448
  }
1430
1449
 
1431
- var _isPromiseSupported;
1450
+ var _promiseCls;
1432
1451
  function createNativePromise(executor, timeout) {
1433
- !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1434
- var PrmCls = _isPromiseSupported.v;
1452
+ !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));
1453
+ var PrmCls = _promiseCls.v;
1435
1454
  if (!PrmCls) {
1436
1455
  return createAsyncPromise(executor);
1437
1456
  }
@@ -1461,7 +1480,7 @@ function createNativePromise(executor, timeout) {
1461
1480
 
1462
1481
  var _promiseCreator;
1463
1482
  function createPromise(executor, timeout) {
1464
- !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1483
+ !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));
1465
1484
  return _promiseCreator.v.call(this, executor, timeout);
1466
1485
  }
1467
1486
 
@@ -3699,7 +3718,9 @@ var SenderPostManager = /** @class */ (function () {
3699
3718
  return;
3700
3719
  }
3701
3720
  var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT ]);
3702
- xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
3721
+ if (!_isOneDs) {
3722
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
3723
+ }
3703
3724
  arrForEach(objKeys(headers), function (headerName) {
3704
3725
  xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
3705
3726
  });
@@ -4438,6 +4459,20 @@ function utlSetSessionStorage(logger, name, data) {
4438
4459
  }
4439
4460
  return false;
4440
4461
  }
4462
+ function utlRemoveSessionStorage(logger, name) {
4463
+ var storage = _getSessionStorageObject();
4464
+ if (storage !== null) {
4465
+ try {
4466
+ storage[_DYN_REMOVE_ITEM ](name);
4467
+ return true;
4468
+ }
4469
+ catch (e) {
4470
+ _canUseSessionStorage = false;
4471
+ _throwInternal(logger, 2 , 6 , "Browser failed removal of session storage item. " + getExceptionName(e), { exception: dumpObj(e) });
4472
+ }
4473
+ }
4474
+ return false;
4475
+ }
4441
4476
 
4442
4477
  var Envelope = /** @class */ (function () {
4443
4478
  function Envelope(logger, data, name) {
@@ -5378,6 +5413,7 @@ var _DYN_ENQUEUE = "enqueue";
5378
5413
  var _DYN_COUNT = "count";
5379
5414
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
5380
5415
  var _DYN_PUSH = "push";
5416
+ var _DYN_ITEM = "item";
5381
5417
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
5382
5418
  var _DYN_CLEAR = "clear";
5383
5419
  var _DYN_CREATE_NEW = "createNew";
@@ -5386,6 +5422,7 @@ var _DYN_CLEAR_SENT = "clearSent";
5386
5422
  var _DYN_BUFFER_OVERRIDE = "bufferOverride";
5387
5423
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
5388
5424
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
5425
+ var _DYN_CONCAT = "concat";
5389
5426
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
5390
5427
  var _DYN_TRIGGER_SEND = "triggerSend";
5391
5428
  var _DYN_DIAG_LOG = "diagLog";
@@ -5411,8 +5448,8 @@ var _DYN_SERIALIZE = "serialize";
5411
5448
  var _DYN__ON_ERROR = "_onError";
5412
5449
  var _DYN__ON_PARTIAL_SUCCESS = "_onPartialSuccess";
5413
5450
  var _DYN__ON_SUCCESS = "_onSuccess";
5414
- var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
5415
5451
  var _DYN_ITEMS_RECEIVED = "itemsReceived";
5452
+ var _DYN_ITEMS_ACCEPTED = "itemsAccepted";
5416
5453
  var _DYN_ORI_PAYLOAD = "oriPayload";
5417
5454
  var _DYN_BASE_TYPE = "baseType";
5418
5455
  var _DYN_SAMPLE_RATE = "sampleRate";
@@ -5464,6 +5501,7 @@ function _extractPartAExtensions(logger, item, env) {
5464
5501
  var extOs = itmExt.os;
5465
5502
  if (extOs) {
5466
5503
  _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME ]);
5504
+ _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);
5467
5505
  }
5468
5506
  var extTrace = itmExt.trace;
5469
5507
  if (extTrace) {
@@ -5529,7 +5567,7 @@ function EnvelopeCreatorInit(logger, telemetryItem) {
5529
5567
  }
5530
5568
  }
5531
5569
  var EnvelopeCreator = {
5532
- Version: '3.1.3-nightly3.2403-15'
5570
+ Version: '3.1.3-nightly3.2404-12'
5533
5571
  };
5534
5572
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
5535
5573
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -5682,6 +5720,7 @@ var BaseSendBuffer = /** @class */ (function () {
5682
5720
  function BaseSendBuffer(logger, config) {
5683
5721
  var _buffer = [];
5684
5722
  var _bufferFullMessageSent = false;
5723
+ var _maxRetryCnt = config.maxRetryCnt;
5685
5724
  this[_DYN__GET ] = function () {
5686
5725
  return _buffer;
5687
5726
  };
@@ -5698,7 +5737,14 @@ var BaseSendBuffer = /** @class */ (function () {
5698
5737
  }
5699
5738
  return;
5700
5739
  }
5740
+ payload.cnt = payload.cnt || 0;
5741
+ if (!isNullOrUndefined(_maxRetryCnt)) {
5742
+ if (payload.cnt > _maxRetryCnt) {
5743
+ return;
5744
+ }
5745
+ }
5701
5746
  _buffer[_DYN_PUSH ](payload);
5747
+ return;
5702
5748
  };
5703
5749
  _self[_DYN_COUNT ] = function () {
5704
5750
  return _buffer[_DYN_LENGTH ];
@@ -5706,7 +5752,7 @@ var BaseSendBuffer = /** @class */ (function () {
5706
5752
  _self.size = function () {
5707
5753
  var size = _buffer[_DYN_LENGTH ];
5708
5754
  for (var lp = 0; lp < _buffer[_DYN_LENGTH ]; lp++) {
5709
- size += _buffer[lp][_DYN_LENGTH ];
5755
+ size += (_buffer[lp].item)[_DYN_LENGTH ];
5710
5756
  }
5711
5757
  if (!config[_DYN_EMIT_LINE_DELIMITED_0 ]) {
5712
5758
  size += 2;
@@ -5720,11 +5766,15 @@ var BaseSendBuffer = /** @class */ (function () {
5720
5766
  _self.getItems = function () {
5721
5767
  return _buffer.slice(0);
5722
5768
  };
5723
- _self.batchPayloads = function (payload) {
5724
- if (payload && payload[_DYN_LENGTH ] > 0) {
5769
+ _self.batchPayloads = function (payloads) {
5770
+ if (payloads && payloads[_DYN_LENGTH ] > 0) {
5771
+ var payloadStr_1 = [];
5772
+ arrForEach(payloads, function (payload) {
5773
+ payloadStr_1[_DYN_PUSH ](payload[_DYN_ITEM ]);
5774
+ });
5725
5775
  var batch = config[_DYN_EMIT_LINE_DELIMITED_0 ] ?
5726
- payload.join("\n") :
5727
- "[" + payload.join(",") + "]";
5776
+ payloadStr_1.join("\n") :
5777
+ "[" + payloadStr_1.join(",") + "]";
5728
5778
  return batch;
5729
5779
  }
5730
5780
  return null;
@@ -5760,17 +5810,21 @@ var ArraySendBuffer = /** @class */ (function (_super) {
5760
5810
  ArraySendBuffer.__ieDyn=1;
5761
5811
  return ArraySendBuffer;
5762
5812
  }(BaseSendBuffer));
5813
+ var PREVIOUS_KEYS = ["AI_buffer", "AI_sentBuffer"];
5763
5814
  var SessionStorageSendBuffer = /** @class */ (function (_super) {
5764
5815
  __extendsFn(SessionStorageSendBuffer, _super);
5765
5816
  function SessionStorageSendBuffer(logger, config) {
5766
5817
  var _this = _super.call(this, logger, config) || this;
5767
5818
  var _bufferFullMessageSent = false;
5768
5819
  var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
5769
- var _a = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;
5820
+ var _b = config[_DYN_BUFFER_OVERRIDE ] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;
5821
+ var _maxRetryCnt = config.maxRetryCnt;
5770
5822
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
5771
5823
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
5772
- var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5773
- var buffer = _self._set(bufferItems.concat(notDeliveredItems));
5824
+ var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5825
+ var previousItems = _getPreviousEvents();
5826
+ var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT ](previousItems);
5827
+ var buffer = _self._set(bufferItems[_DYN_CONCAT ](notDeliveredItems));
5774
5828
  if (buffer[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5775
5829
  buffer[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
5776
5830
  }
@@ -5784,6 +5838,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5784
5838
  }
5785
5839
  return;
5786
5840
  }
5841
+ payload.cnt = payload.cnt || 0;
5842
+ if (!isNullOrUndefined(_maxRetryCnt)) {
5843
+ if (payload.cnt > _maxRetryCnt) {
5844
+ return;
5845
+ }
5846
+ }
5787
5847
  _base[_DYN_ENQUEUE ](payload);
5788
5848
  _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
5789
5849
  };
@@ -5797,7 +5857,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5797
5857
  _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
5798
5858
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
5799
5859
  if (sentElements instanceof Array && payload instanceof Array) {
5800
- sentElements = sentElements.concat(payload);
5860
+ sentElements = sentElements[_DYN_CONCAT ](payload);
5801
5861
  if (sentElements[_DYN_LENGTH ] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ]) {
5802
5862
  _throwInternal(logger, 1 , 67 , "Sent buffer reached its maximum size: " + sentElements[_DYN_LENGTH ], true);
5803
5863
  sentElements[_DYN_LENGTH ] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE ];
@@ -5828,8 +5888,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5828
5888
  };
5829
5889
  function _removePayloadsFromBuffer(payloads, buffer) {
5830
5890
  var remaining = [];
5891
+ var payloadStr = [];
5892
+ arrForEach(payloads, function (payload) {
5893
+ payloadStr[_DYN_PUSH ](payload[_DYN_ITEM ]);
5894
+ });
5831
5895
  arrForEach(buffer, function (value) {
5832
- if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {
5896
+ if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM ]) === -1) {
5833
5897
  remaining[_DYN_PUSH ](value);
5834
5898
  }
5835
5899
  });
@@ -5837,9 +5901,12 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5837
5901
  }
5838
5902
  function _getBuffer(key) {
5839
5903
  var prefixedKey = key;
5904
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
5905
+ return _getBufferBase(prefixedKey);
5906
+ }
5907
+ function _getBufferBase(key) {
5840
5908
  try {
5841
- prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
5842
- var bufferJson = getItem(logger, prefixedKey);
5909
+ var bufferJson = getItem(logger, key);
5843
5910
  if (bufferJson) {
5844
5911
  var buffer_1 = getJSON().parse(bufferJson);
5845
5912
  if (isString(buffer_1)) {
@@ -5851,7 +5918,7 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5851
5918
  }
5852
5919
  }
5853
5920
  catch (e) {
5854
- _throwInternal(logger, 1 , 42 , " storage key: " + prefixedKey + ", " + getExceptionName(e), { exception: dumpObj(e) });
5921
+ _throwInternal(logger, 1 , 42 , " storage key: " + key + ", " + getExceptionName(e), { exception: dumpObj(e) });
5855
5922
  }
5856
5923
  return [];
5857
5924
  }
@@ -5867,11 +5934,51 @@ var SessionStorageSendBuffer = /** @class */ (function (_super) {
5867
5934
  _throwInternal(logger, 2 , 41 , " storage key: " + prefixedKey + ", " + getExceptionName(e) + ". Buffer cleared", { exception: dumpObj(e) });
5868
5935
  }
5869
5936
  }
5937
+ function _getPreviousEvents() {
5938
+ var items = [];
5939
+ try {
5940
+ arrForEach(PREVIOUS_KEYS, function (key) {
5941
+ var events = _getItemsFromPreviousKey(key);
5942
+ items = items[_DYN_CONCAT ](events);
5943
+ if (_namePrefix) {
5944
+ var prefixedKey = _namePrefix + "_" + key;
5945
+ var prefixEvents = _getItemsFromPreviousKey(prefixedKey);
5946
+ items = items[_DYN_CONCAT ](prefixEvents);
5947
+ }
5948
+ });
5949
+ return items;
5950
+ }
5951
+ catch (e) {
5952
+ _throwInternal(logger, 2 , 41 , "Transfer events from previous buffers: " + getExceptionName(e) + ". previous Buffer items can not be removed", { exception: dumpObj(e) });
5953
+ }
5954
+ return [];
5955
+ }
5956
+ function _getItemsFromPreviousKey(key) {
5957
+ try {
5958
+ var items = _getBufferBase(key);
5959
+ var transFormedItems_1 = [];
5960
+ arrForEach(items, function (item) {
5961
+ var internalItem = {
5962
+ item: item,
5963
+ cnt: 0
5964
+ };
5965
+ transFormedItems_1[_DYN_PUSH ](internalItem);
5966
+ });
5967
+ utlRemoveSessionStorage(logger, key);
5968
+ return transFormedItems_1;
5969
+ }
5970
+ catch (e) {
5971
+ }
5972
+ return [];
5973
+ }
5870
5974
  });
5871
5975
  return _this;
5872
5976
  }
5873
- SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer";
5874
- SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer";
5977
+ var _a;
5978
+ _a = SessionStorageSendBuffer;
5979
+ SessionStorageSendBuffer.VERSION = "_1";
5980
+ SessionStorageSendBuffer.BUFFER_KEY = "AI_buffer" + _a.VERSION;
5981
+ SessionStorageSendBuffer.SENT_BUFFER_KEY = "AI_sentBuffer" + _a.VERSION;
5875
5982
  SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;
5876
5983
  return SessionStorageSendBuffer;
5877
5984
  }(BaseSendBuffer));
@@ -6030,7 +6137,7 @@ var HashCodeScoreGenerator = /** @class */ (function () {
6030
6137
  return 0;
6031
6138
  }
6032
6139
  while (input[_DYN_LENGTH ] < MIN_INPUT_LENGTH) {
6033
- input = input.concat(input);
6140
+ input = input[_DYN_CONCAT ](input);
6034
6141
  }
6035
6142
  var hash = 5381;
6036
6143
  for (var i = 0; i < input[_DYN_LENGTH ]; ++i) {
@@ -6137,6 +6244,7 @@ var defaultAppInsightsChannelConfig = objDeepFreeze((_a = {
6137
6244
  _a[_DYN_ALWAYS_USE_XHR_OVERR4 ] = cfgDfBoolean(),
6138
6245
  _a.transports = UNDEFINED_VALUE,
6139
6246
  _a.retryCodes = UNDEFINED_VALUE,
6247
+ _a.maxRetryCnt = { isVal: isNumber, v: 10 },
6140
6248
  _a));
6141
6249
  function _chkSampling(value) {
6142
6250
  return !isNaN(value) && value > 0 && value <= 100;
@@ -6366,6 +6474,7 @@ var Sender = /** @class */ (function (_super) {
6366
6474
  }));
6367
6475
  };
6368
6476
  _self.processTelemetry = function (telemetryItem, itemCtx) {
6477
+ var _a;
6369
6478
  itemCtx = _self._getTelCtx(itemCtx);
6370
6479
  var diagLogger = itemCtx[_DYN_DIAG_LOG ]();
6371
6480
  try {
@@ -6380,7 +6489,12 @@ var Sender = /** @class */ (function (_super) {
6380
6489
  var payload = _serializer[_DYN_SERIALIZE ](aiEnvelope);
6381
6490
  var buffer = _self[_DYN__BUFFER ];
6382
6491
  _checkMaxSize(payload);
6383
- buffer[_DYN_ENQUEUE ](payload);
6492
+ var payloadItem = (_a = {},
6493
+ _a[_DYN_ITEM ] = payload,
6494
+ _a.cnt = 0
6495
+ ,
6496
+ _a);
6497
+ buffer[_DYN_ENQUEUE ](payloadItem);
6384
6498
  _setupTimer();
6385
6499
  }
6386
6500
  catch (e) {
@@ -6392,6 +6506,9 @@ var Sender = /** @class */ (function (_super) {
6392
6506
  return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT ]() === 0;
6393
6507
  };
6394
6508
  _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
6509
+ if (_isStringArr(payload)) {
6510
+ return;
6511
+ }
6395
6512
  return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);
6396
6513
  };
6397
6514
  _self[_DYN_TRIGGER_SEND ] = function (async, forcedSender, sendReason) {
@@ -6447,40 +6564,27 @@ var Sender = /** @class */ (function (_super) {
6447
6564
  _initDefaults();
6448
6565
  };
6449
6566
  _self[_DYN__ON_ERROR ] = function (payload, message, event) {
6450
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
6451
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6567
+ if (_isStringArr(payload)) {
6568
+ return;
6569
+ }
6570
+ return _onError(payload, message);
6452
6571
  };
6453
6572
  _self[_DYN__ON_PARTIAL_SUCCESS ] = function (payload, results) {
6454
- var failed = [];
6455
- var retry = [];
6456
- var errors = results.errors.reverse();
6457
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
6458
- var error = errors_1[_i];
6459
- var extracted = payload.splice(error.index, 1)[0];
6460
- if (_isRetriable(error.statusCode)) {
6461
- retry[_DYN_PUSH ](extracted);
6462
- }
6463
- else {
6464
- failed[_DYN_PUSH ](extracted);
6465
- }
6466
- }
6467
- if (payload[_DYN_LENGTH ] > 0) {
6468
- _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
6469
- }
6470
- if (failed[_DYN_LENGTH ] > 0) {
6471
- _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6472
- }
6473
- if (retry[_DYN_LENGTH ] > 0) {
6474
- _resendPayload(retry);
6475
- _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
6476
- "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
6477
- ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
6573
+ if (_isStringArr(payload)) {
6574
+ return;
6478
6575
  }
6576
+ return _onPartialSuccess(payload, results);
6479
6577
  };
6480
6578
  _self[_DYN__ON_SUCCESS ] = function (payload, countOfItemsInPayload) {
6481
- _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6579
+ if (_isStringArr(payload)) {
6580
+ return;
6581
+ }
6582
+ return _onSuccess(payload);
6482
6583
  };
6483
6584
  _self._xdrOnLoad = function (xdr, payload) {
6585
+ if (_isStringArr(payload)) {
6586
+ return;
6587
+ }
6484
6588
  return _xdrOnLoad(xdr, payload);
6485
6589
  };
6486
6590
  function _xdrOnLoad(xdr, payload) {
@@ -6491,7 +6595,7 @@ var Sender = /** @class */ (function (_super) {
6491
6595
  }
6492
6596
  else {
6493
6597
  var results = parseResponse(responseText);
6494
- if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED ]
6598
+ if (results && results[_DYN_ITEMS_RECEIVED ] && results[_DYN_ITEMS_RECEIVED ] > results[_DYN_ITEMS_ACCEPTED ]
6495
6599
  && !_isRetryDisabled) {
6496
6600
  _self[_DYN__ON_PARTIAL_SUCCESS ](payload, results);
6497
6601
  }
@@ -6549,6 +6653,40 @@ var Sender = /** @class */ (function (_super) {
6549
6653
  _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);
6550
6654
  }
6551
6655
  }
6656
+ function _onError(payload, message, event) {
6657
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 26 , "Failed to send telemetry.", { message: message });
6658
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6659
+ }
6660
+ function _onPartialSuccess(payload, results) {
6661
+ var failed = [];
6662
+ var retry = [];
6663
+ var errors = results.errors.reverse();
6664
+ for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
6665
+ var error = errors_1[_i];
6666
+ var extracted = payload.splice(error.index, 1)[0];
6667
+ if (_isRetriable(error.statusCode)) {
6668
+ retry[_DYN_PUSH ](extracted);
6669
+ }
6670
+ else {
6671
+ failed[_DYN_PUSH ](extracted);
6672
+ }
6673
+ }
6674
+ if (payload[_DYN_LENGTH ] > 0) {
6675
+ _self[_DYN__ON_SUCCESS ](payload, results[_DYN_ITEMS_ACCEPTED ]);
6676
+ }
6677
+ if (failed[_DYN_LENGTH ] > 0) {
6678
+ _self[_DYN__ON_ERROR ](failed, formatErrorMessageXhr(null, ["partial success", results[_DYN_ITEMS_ACCEPTED ], "of", results.itemsReceived].join(" ")));
6679
+ }
6680
+ if (retry[_DYN_LENGTH ] > 0) {
6681
+ _resendPayload(retry);
6682
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , "Partial success. " +
6683
+ "Delivered: " + payload[_DYN_LENGTH ] + ", Failed: " + failed[_DYN_LENGTH ] +
6684
+ ". Will retry to send " + retry[_DYN_LENGTH ] + " our of " + results[_DYN_ITEMS_RECEIVED ] + " items");
6685
+ }
6686
+ }
6687
+ function _onSuccess(payload, countOfItemsInPayload) {
6688
+ _self._buffer && _self._buffer[_DYN_CLEAR_SENT ](payload);
6689
+ }
6552
6690
  function _getPayloadArr(payload) {
6553
6691
  try {
6554
6692
  if (payload) {
@@ -6816,12 +6954,22 @@ var Sender = /** @class */ (function (_super) {
6816
6954
  _throwInternal(_self[_DYN_DIAG_LOG ](), 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
6817
6955
  }
6818
6956
  }
6957
+ function _isStringArr(arr) {
6958
+ try {
6959
+ if (arr && arr[_DYN_LENGTH ]) {
6960
+ return (isString(arr[0]));
6961
+ }
6962
+ }
6963
+ catch (e) {
6964
+ }
6965
+ return null;
6966
+ }
6819
6967
  function _fetchKeepAliveSender(payload, isAsync) {
6820
6968
  var transport = null;
6821
6969
  if (isArray(payload)) {
6822
6970
  var payloadSize = payload[_DYN_LENGTH ];
6823
6971
  for (var lp = 0; lp < payload[_DYN_LENGTH ]; lp++) {
6824
- payloadSize += payload[lp][_DYN_LENGTH ];
6972
+ payloadSize += payload[lp].item[_DYN_LENGTH ];
6825
6973
  }
6826
6974
  var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();
6827
6975
  if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {
@@ -6849,6 +6997,8 @@ var Sender = /** @class */ (function (_super) {
6849
6997
  _consecutiveErrors++;
6850
6998
  for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {
6851
6999
  var item = payload_1[_i];
7000
+ item.cnt = item.cnt || 0;
7001
+ item.cnt++;
6852
7002
  buffer[_DYN_ENQUEUE ](item);
6853
7003
  }
6854
7004
  _setRetryTime(linearFactor);