@microsoft/applicationinsights-channel-js 3.0.0-beta.2301-08 → 3.0.0-beta.2301-10

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 (35) hide show
  1. package/browser/applicationinsights-channel-js.integrity.json +9 -9
  2. package/browser/applicationinsights-channel-js.js +89 -37
  3. package/browser/applicationinsights-channel-js.js.map +1 -1
  4. package/browser/applicationinsights-channel-js.min.js +2 -2
  5. package/browser/applicationinsights-channel-js.min.js.map +1 -1
  6. package/dist/applicationinsights-channel-js.api.json +1 -1
  7. package/dist/applicationinsights-channel-js.d.ts +39 -1
  8. package/dist/applicationinsights-channel-js.js +89 -37
  9. package/dist/applicationinsights-channel-js.js.map +1 -1
  10. package/dist/applicationinsights-channel-js.min.js +2 -2
  11. package/dist/applicationinsights-channel-js.min.js.map +1 -1
  12. package/dist/applicationinsights-channel-js.rollup.d.ts +39 -1
  13. package/dist-esm/EnvelopeCreator.js +2 -2
  14. package/dist-esm/EnvelopeCreator.js.map +1 -1
  15. package/dist-esm/Interfaces.js +1 -1
  16. package/dist-esm/InternalConstants.js +1 -1
  17. package/dist-esm/Offline.js +1 -1
  18. package/dist-esm/SendBuffer.js +40 -8
  19. package/dist-esm/SendBuffer.js.map +1 -1
  20. package/dist-esm/Sender.js +56 -30
  21. package/dist-esm/Sender.js.map +1 -1
  22. package/dist-esm/Serializer.js +1 -1
  23. package/dist-esm/TelemetryProcessors/Sample.js +1 -1
  24. package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js +1 -1
  25. package/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js +1 -1
  26. package/dist-esm/__DynamicConstants.js +11 -10
  27. package/dist-esm/__DynamicConstants.js.map +1 -1
  28. package/dist-esm/applicationinsights-channel-js.js +1 -1
  29. package/package.json +3 -3
  30. package/src/SendBuffer.ts +53 -4
  31. package/src/Sender.ts +67 -36
  32. package/src/__DynamicConstants.ts +10 -9
  33. package/types/SendBuffer.d.ts +9 -0
  34. package/types/__DynamicConstants.d.ts +4 -3
  35. package/types/tsdoc-metadata.json +1 -1
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "applicationinsights-channel-js",
3
- "version": "3.0.0-beta.2301-08",
3
+ "version": "3.0.0-beta.2301-10",
4
4
  "ext": {
5
5
  "@js": {
6
6
  "file": "applicationinsights-channel-js.js",
7
7
  "type": "text/javascript; charset=utf-8",
8
- "integrity": "sha256-cQiCD8YX+m52+lh468c44Xt96aiKMq0X8MKKG+YQAdA= sha384-SIcUSfYRhq4ghyebeLOC8AoGtHbTrrTYlhRRk1g8m/FxGc8HEAUnUyhPO2thI8pm sha512-Ndu3OrTADBq8V8jtW4YcJNpywQcrW91gFZvsWAiMHS6m+3kEgcpXt+aNd34OcCKQVmdS4sEvRLghPc8P7B+FGQ==",
8
+ "integrity": "sha256-4swHO3PZb3MPpcX0C5C5CZ7UogyUUDbZEm4omfnLrlE= sha384-6fTpRLa5vM+npmb0IRBGLw3Mhl5JyYROWxFN+evzcJ1KhB7Lrtcvc+0zKUMYUWlf sha512-RF21ogqSspdinzlMsEfEG0Cs+gpQytoPI6SFesuKuHGGPewd1Cu6+rJqRCVJ1PRwjpc6Kbd8YKSiVe2hLSHZdg==",
9
9
  "hashes": {
10
- "sha256": "cQiCD8YX+m52+lh468c44Xt96aiKMq0X8MKKG+YQAdA=",
11
- "sha384": "SIcUSfYRhq4ghyebeLOC8AoGtHbTrrTYlhRRk1g8m/FxGc8HEAUnUyhPO2thI8pm",
12
- "sha512": "Ndu3OrTADBq8V8jtW4YcJNpywQcrW91gFZvsWAiMHS6m+3kEgcpXt+aNd34OcCKQVmdS4sEvRLghPc8P7B+FGQ=="
10
+ "sha256": "4swHO3PZb3MPpcX0C5C5CZ7UogyUUDbZEm4omfnLrlE=",
11
+ "sha384": "6fTpRLa5vM+npmb0IRBGLw3Mhl5JyYROWxFN+evzcJ1KhB7Lrtcvc+0zKUMYUWlf",
12
+ "sha512": "RF21ogqSspdinzlMsEfEG0Cs+gpQytoPI6SFesuKuHGGPewd1Cu6+rJqRCVJ1PRwjpc6Kbd8YKSiVe2hLSHZdg=="
13
13
  }
14
14
  },
15
15
  "@min.js": {
16
16
  "file": "applicationinsights-channel-js.min.js",
17
17
  "type": "text/javascript; charset=utf-8",
18
- "integrity": "sha256-ruoy+Fja9dmXAOhRjxbSNootHkYXrkHE7N2r9eLfAfg= sha384-xzPRp5JKe1l1bLmBtvBuoqypob7uGj0o2h4WqJY4F4V/PZ3hyehLs9GtpYytbMeP sha512-WSRY/1d7PsfgabrDeCdkj2JtTcX+cSiAGqR2eKPAJl9Z+0ZpCnn6M9Pt2rEEkqtsrRY8lYGTUtcfuawEQk8PqA==",
18
+ "integrity": "sha256-9ZvHiZy8rI83u6OtP9Kg0dEE1LasCx57WAgjOWw2w2o= sha384-NbaGdkMSqztlvp2s44/cgcxA61kUwbEISjyzr8+HttyU6dcXbjrMFc0FAvfAtZBJ sha512-Rg1O72sAI9x3TbTUtxfaa6kQjO7RUlEWm27xrPlG4C1mI0o6CXw+wdICZ6thuF9xeTmxY6coVNBFjTQB7RG72Q==",
19
19
  "hashes": {
20
- "sha256": "ruoy+Fja9dmXAOhRjxbSNootHkYXrkHE7N2r9eLfAfg=",
21
- "sha384": "xzPRp5JKe1l1bLmBtvBuoqypob7uGj0o2h4WqJY4F4V/PZ3hyehLs9GtpYytbMeP",
22
- "sha512": "WSRY/1d7PsfgabrDeCdkj2JtTcX+cSiAGqR2eKPAJl9Z+0ZpCnn6M9Pt2rEEkqtsrRY8lYGTUtcfuawEQk8PqA=="
20
+ "sha256": "9ZvHiZy8rI83u6OtP9Kg0dEE1LasCx57WAgjOWw2w2o=",
21
+ "sha384": "NbaGdkMSqztlvp2s44/cgcxA61kUwbEISjyzr8+HttyU6dcXbjrMFc0FAvfAtZBJ",
22
+ "sha512": "Rg1O72sAI9x3TbTUtxfaa6kQjO7RUlEWm27xrPlG4C1mI0o6CXw+wdICZ6thuF9xeTmxY6coVNBFjTQB7RG72Q=="
23
23
  }
24
24
  }
25
25
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Channel, 3.0.0-beta.2301-08
2
+ * Application Insights JavaScript SDK - Channel, 3.0.0-beta.2301-10
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -913,7 +913,7 @@
913
913
  var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
914
914
  var _DYN_CALL = "call";
915
915
  var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
916
- var _DYN_CREATE_NEW = "createNew";
916
+ var _DYN_CREATE_NEW$1 = "createNew";
917
917
  var _DYN_TEARDOWN = "teardown";
918
918
  var _DYN_MESSAGE_ID = "messageId";
919
919
  var _DYN_MESSAGE$1 = "message";
@@ -1296,7 +1296,7 @@
1296
1296
  }
1297
1297
 
1298
1298
  var _objDefineProperty = ObjDefineProperty;
1299
- var version = "3.0.0-beta.2301-08";
1299
+ var version = "3.0.0-beta.2301-10";
1300
1300
  var instanceName = "." + newId(6);
1301
1301
  var _dataUid = 0;
1302
1302
  function _createAccessor(target, prop, value) {
@@ -2255,7 +2255,7 @@
2255
2255
  return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
2256
2256
  }
2257
2257
  context[_DYN_PROCESS_NEXT ] = _processNext;
2258
- context[_DYN_CREATE_NEW ] = _createNew;
2258
+ context[_DYN_CREATE_NEW$1 ] = _createNew;
2259
2259
  return context;
2260
2260
  }
2261
2261
  function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
@@ -2275,7 +2275,7 @@
2275
2275
  return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
2276
2276
  }
2277
2277
  context[_DYN_PROCESS_NEXT ] = _processNext;
2278
- context[_DYN_CREATE_NEW ] = _createNew;
2278
+ context[_DYN_CREATE_NEW$1 ] = _createNew;
2279
2279
  return context;
2280
2280
  }
2281
2281
  function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
@@ -2297,7 +2297,7 @@
2297
2297
  return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
2298
2298
  }
2299
2299
  context[_DYN_PROCESS_NEXT ] = _processNext;
2300
- context[_DYN_CREATE_NEW ] = _createNew;
2300
+ context[_DYN_CREATE_NEW$1 ] = _createNew;
2301
2301
  return context;
2302
2302
  }
2303
2303
  function createTelemetryProxyChain(plugins, config, core, startAt) {
@@ -2599,10 +2599,10 @@
2599
2599
  if (!itemCtx) {
2600
2600
  var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
2601
2601
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
2602
- itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
2602
+ itemCtx = rootCtx[_DYN_CREATE_NEW$1 ](null, _nextPlugin[strGetPlugin]);
2603
2603
  }
2604
2604
  else {
2605
- itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
2605
+ itemCtx = rootCtx[_DYN_CREATE_NEW$1 ](null, _nextPlugin);
2606
2606
  }
2607
2607
  }
2608
2608
  return itemCtx;
@@ -3937,6 +3937,7 @@
3937
3937
  var _DYN_ENVELOPE_TYPE = "envelopeType";
3938
3938
  var _DYN_TO_STRING = "toString";
3939
3939
  var _DYN_ON_LINE = "onLine";
3940
+ var _DYN__GET = "_get";
3940
3941
  var _DYN_ENQUEUE = "enqueue";
3941
3942
  var _DYN_COUNT = "count";
3942
3943
  var _DYN_EVENTS_LIMIT_IN_MEM = "eventsLimitInMem";
@@ -3944,23 +3945,23 @@
3944
3945
  var _DYN_EMIT_LINE_DELIMITED_0 = "emitLineDelimitedJson";
3945
3946
  var _DYN_CLEAR = "clear";
3946
3947
  var _DYN_BATCH_PAYLOADS = "batchPayloads";
3948
+ var _DYN_CREATE_NEW = "createNew";
3947
3949
  var _DYN_MARK_AS_SENT = "markAsSent";
3948
3950
  var _DYN_CLEAR_SENT = "clearSent";
3949
3951
  var _DYN__BUFFER__KEY = "BUFFER_KEY";
3950
3952
  var _DYN__SENT__BUFFER__KEY = "SENT_BUFFER_KEY";
3951
3953
  var _DYN__MAX__BUFFER__SIZE = "MAX_BUFFER_SIZE";
3952
- var _DYN_NAME_PREFIX = "namePrefix";
3953
3954
  var _DYN_TRIGGER_SEND = "triggerSend";
3954
3955
  var _DYN_DIAG_LOG = "diagLog";
3955
3956
  var _DYN__SENDER = "_sender";
3957
+ var _DYN_CUSTOM_HEADERS = "customHeaders";
3956
3958
  var _DYN_MAX_BATCH_SIZE_IN_BY1 = "maxBatchSizeInBytes";
3957
3959
  var _DYN_ONUNLOAD_DISABLE_BEA2 = "onunloadDisableBeacon";
3958
3960
  var _DYN_IS_BEACON_API_DISABL3 = "isBeaconApiDisabled";
3959
- var _DYN__BUFFER = "_buffer";
3960
3961
  var _DYN_ENABLE_SESSION_STORA4 = "enableSessionStorageBuffer";
3962
+ var _DYN__BUFFER = "_buffer";
3961
3963
  var _DYN_SAMPLING_PERCENTAGE = "samplingPercentage";
3962
3964
  var _DYN_INSTRUMENTATION_KEY = "instrumentationKey";
3963
- var _DYN_CUSTOM_HEADERS = "customHeaders";
3964
3965
  var _DYN_DISABLE_XHR = "disableXhr";
3965
3966
  var _DYN_ONUNLOAD_DISABLE_FET5 = "onunloadDisableFetch";
3966
3967
  var _DYN_CONVERT_UNDEFINED = "convertUndefined";
@@ -4087,7 +4088,7 @@
4087
4088
  }
4088
4089
  }
4089
4090
  var EnvelopeCreator = {
4090
- Version: "3.0.0-beta.2301-08"
4091
+ Version: "3.0.0-beta.2301-10"
4091
4092
  };
4092
4093
  function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {
4093
4094
  EnvelopeCreatorInit(logger, telemetryItem);
@@ -4316,7 +4317,7 @@
4316
4317
  function BaseSendBuffer(logger, config) {
4317
4318
  var _buffer = [];
4318
4319
  var _bufferFullMessageSent = false;
4319
- this._get = function () {
4320
+ this[_DYN__GET ] = function () {
4320
4321
  return _buffer;
4321
4322
  };
4322
4323
  this._set = function (buffer) {
@@ -4363,6 +4364,16 @@
4363
4364
  }
4364
4365
  return null;
4365
4366
  };
4367
+ _self[_DYN_CREATE_NEW ] = function (newLogger, newConfig, canUseSessionStorage) {
4368
+ var items = _buffer.slice(0);
4369
+ newLogger = newLogger || logger;
4370
+ newConfig = newConfig || {};
4371
+ var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);
4372
+ arrForEach(items, function (payload) {
4373
+ newBuffer[_DYN_ENQUEUE ](payload);
4374
+ });
4375
+ return newBuffer;
4376
+ };
4366
4377
  });
4367
4378
  }
4368
4379
  BaseSendBuffer.__ieDyn=1;
@@ -4389,6 +4400,7 @@
4389
4400
  function SessionStorageSendBuffer(logger, config) {
4390
4401
  var _this = _super.call(this, logger, config) || this;
4391
4402
  var _bufferFullMessageSent = false;
4403
+ var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;
4392
4404
  dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {
4393
4405
  var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ]);
4394
4406
  var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
@@ -4407,16 +4419,16 @@
4407
4419
  return;
4408
4420
  }
4409
4421
  _base[_DYN_ENQUEUE ](payload);
4410
- _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._get());
4422
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
4411
4423
  };
4412
4424
  _self[_DYN_CLEAR ] = function () {
4413
4425
  _base[_DYN_CLEAR ]();
4414
- _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._get());
4426
+ _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET ]());
4415
4427
  _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], []);
4416
4428
  _bufferFullMessageSent = false;
4417
4429
  };
4418
4430
  _self[_DYN_MARK_AS_SENT ] = function (payload) {
4419
- _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self._get())));
4431
+ _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY ], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET ]())));
4420
4432
  var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]);
4421
4433
  if (sentElements instanceof Array && payload instanceof Array) {
4422
4434
  sentElements = sentElements.concat(payload);
@@ -4432,6 +4444,22 @@
4432
4444
  sentElements = _removePayloadsFromBuffer(payload, sentElements);
4433
4445
  _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ], sentElements);
4434
4446
  };
4447
+ _self[_DYN_CREATE_NEW ] = function (newLogger, newConfig, canUseSessionStorage) {
4448
+ canUseSessionStorage = !!canUseSessionStorage;
4449
+ var unsentItems = _self[_DYN__GET ]().slice(0);
4450
+ var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY ]).slice(0);
4451
+ newLogger = newLogger || logger;
4452
+ newConfig = newConfig || {};
4453
+ _self[_DYN_CLEAR ]();
4454
+ var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);
4455
+ arrForEach(unsentItems, function (payload) {
4456
+ newBuffer[_DYN_ENQUEUE ](payload);
4457
+ });
4458
+ if (canUseSessionStorage) {
4459
+ newBuffer[_DYN_MARK_AS_SENT ](sentItems);
4460
+ }
4461
+ return newBuffer;
4462
+ };
4435
4463
  function _removePayloadsFromBuffer(payloads, buffer) {
4436
4464
  var remaining = [];
4437
4465
  arrForEach(buffer, function (value) {
@@ -4444,7 +4472,7 @@
4444
4472
  function _getBuffer(key) {
4445
4473
  var prefixedKey = key;
4446
4474
  try {
4447
- prefixedKey = config[_DYN_NAME_PREFIX ] ? config[_DYN_NAME_PREFIX ] + "_" + prefixedKey : prefixedKey;
4475
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
4448
4476
  var bufferJson = utlGetSessionStorage(logger, prefixedKey);
4449
4477
  if (bufferJson) {
4450
4478
  var buffer_1 = getJSON().parse(bufferJson);
@@ -4464,7 +4492,7 @@
4464
4492
  function _setBuffer(key, buffer) {
4465
4493
  var prefixedKey = key;
4466
4494
  try {
4467
- prefixedKey = config[_DYN_NAME_PREFIX ] ? config[_DYN_NAME_PREFIX ] + "_" + prefixedKey : prefixedKey;
4495
+ prefixedKey = _namePrefix ? _namePrefix + "_" + prefixedKey : prefixedKey;
4468
4496
  var bufferJson = JSON[_DYN_STRINGIFY ](buffer);
4469
4497
  utlSetSessionStorage(logger, prefixedKey, bufferJson);
4470
4498
  }
@@ -4733,7 +4761,7 @@
4733
4761
  _a[_DYN_ONUNLOAD_DISABLE_FET5 ] = false,
4734
4762
  _a[_DYN_ONUNLOAD_DISABLE_BEA2 ] = false,
4735
4763
  _a[_DYN_INSTRUMENTATION_KEY ] = UNDEFINED_VALUE,
4736
- _a[_DYN_NAME_PREFIX ] = UNDEFINED_VALUE,
4764
+ _a.namePrefix = UNDEFINED_VALUE,
4737
4765
  _a[_DYN_SAMPLING_PERCENTAGE ] = 100,
4738
4766
  _a[_DYN_CUSTOM_HEADERS ] = UNDEFINED_VALUE,
4739
4767
  _a[_DYN_CONVERT_UNDEFINED ] = UNDEFINED_VALUE,
@@ -4777,6 +4805,8 @@
4777
4805
  var _convertUndefined;
4778
4806
  var _isRetryDisabled;
4779
4807
  var _maxBatchInterval;
4808
+ var _sessionStorageUsed;
4809
+ var _namePrefix;
4780
4810
  dynamicProto(Sender, _this, function (_self, _base) {
4781
4811
  _initDefaults();
4782
4812
  _self.pause = function () {
@@ -4787,9 +4817,7 @@
4787
4817
  if (_paused) {
4788
4818
  _paused = false;
4789
4819
  _retryAt = null;
4790
- if (_self[_DYN__BUFFER ].size() > _maxBatchSizeInBytes) {
4791
- _self[_DYN_TRIGGER_SEND ](true, null, 10 );
4792
- }
4820
+ _checkMaxSize();
4793
4821
  _setupTimer();
4794
4822
  }
4795
4823
  };
@@ -4838,7 +4866,8 @@
4838
4866
  var diagLog = _self[_DYN_DIAG_LOG ]();
4839
4867
  _evtNamespace = mergeEvtNamespace(createUniqueNamespace("Sender"), core.evtNamespace && core.evtNamespace());
4840
4868
  _offlineListener = createOfflineListener(_evtNamespace);
4841
- _self._addHook(onConfigChange(config, function () {
4869
+ _self._addHook(onConfigChange(config, function (details) {
4870
+ var config = details.cfg;
4842
4871
  var ctx = createProcessTelemetryContext(null, config, core);
4843
4872
  var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);
4844
4873
  objDefineProp(_self, "_senderConfig", {
@@ -4848,26 +4877,42 @@
4848
4877
  return senderConfig;
4849
4878
  }
4850
4879
  });
4880
+ if (_orgEndpointUrl !== senderConfig.endpointUrl) {
4881
+ _endpointUrl = _orgEndpointUrl = senderConfig.endpointUrl;
4882
+ }
4883
+ if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS ]) {
4884
+ arrForEach(_customHeaders, function (customHeader) {
4885
+ delete _headers[customHeader.header];
4886
+ });
4887
+ }
4851
4888
  _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 ];
4852
4889
  _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 ] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 ] === false) && isBeaconsSupported();
4853
- if (_self[_DYN__BUFFER ]) ;
4890
+ var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 ] && utlCanUseSessionStorage();
4891
+ var namePrefix = senderConfig.namePrefix;
4892
+ var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)
4893
+ || (canUseSessionStorage && (_namePrefix !== namePrefix));
4894
+ if (_self[_DYN__BUFFER ]) {
4895
+ if (shouldUpdate) {
4896
+ try {
4897
+ _self._buffer = _self._buffer[_DYN_CREATE_NEW ](diagLog, senderConfig, canUseSessionStorage);
4898
+ }
4899
+ catch (e) {
4900
+ _throwInternal(_self[_DYN_DIAG_LOG ](), 1 , 12 , "failed to transfer telemetry to different buffer storage, telemetry will be lost: " + getExceptionName(e), { exception: dumpObj(e) });
4901
+ }
4902
+ }
4903
+ _checkMaxSize();
4904
+ }
4854
4905
  else {
4855
- _self[_DYN__BUFFER ] = (senderConfig[_DYN_ENABLE_SESSION_STORA4 ] && utlCanUseSessionStorage())
4906
+ _self[_DYN__BUFFER ] = canUseSessionStorage
4856
4907
  ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);
4857
4908
  }
4909
+ _namePrefix = namePrefix;
4910
+ _sessionStorageUsed = canUseSessionStorage;
4858
4911
  _self._sample = new Sample(senderConfig[_DYN_SAMPLING_PERCENTAGE ], diagLog);
4859
4912
  _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY ];
4860
4913
  if (!_validateInstrumentationKey(_instrumentationKey, config)) {
4861
4914
  _throwInternal(diagLog, 1 , 100 , "Invalid Instrumentation key " + _instrumentationKey);
4862
4915
  }
4863
- if (_orgEndpointUrl !== senderConfig.endpointUrl) {
4864
- _endpointUrl = _orgEndpointUrl = senderConfig.endpointUrl;
4865
- }
4866
- if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS ]) {
4867
- arrForEach(_customHeaders, function (customHeader) {
4868
- delete _headers[customHeader.header];
4869
- });
4870
- }
4871
4916
  _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS ];
4872
4917
  if (!isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH ] > 0) {
4873
4918
  arrForEach(_customHeaders, function (customHeader) {
@@ -4968,10 +5013,7 @@
4968
5013
  }
4969
5014
  var payload = _serializer.serialize(aiEnvelope_1);
4970
5015
  var buffer = _self[_DYN__BUFFER ];
4971
- var bufferSize = buffer.size();
4972
- if ((bufferSize + payload[_DYN_LENGTH ]) > _maxBatchSizeInBytes) {
4973
- _self[_DYN_TRIGGER_SEND ](true, null, 10 );
4974
- }
5016
+ _checkMaxSize(payload);
4975
5017
  buffer[_DYN_ENQUEUE ](payload);
4976
5018
  _setupTimer();
4977
5019
  }
@@ -5075,6 +5117,14 @@
5075
5117
  function _isSampledIn(envelope) {
5076
5118
  return _self._sample.isSampledIn(envelope);
5077
5119
  }
5120
+ function _checkMaxSize(incomingPayload) {
5121
+ var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH ] : 0;
5122
+ if ((_self[_DYN__BUFFER ].size() + incomingSize) > _maxBatchSizeInBytes) {
5123
+ _self[_DYN_TRIGGER_SEND ](true, null, 10 );
5124
+ return true;
5125
+ }
5126
+ return false;
5127
+ }
5078
5128
  function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {
5079
5129
  var response = null;
5080
5130
  if (!_self._appId) {
@@ -5450,6 +5500,8 @@
5450
5500
  _instrumentationKey = null;
5451
5501
  _convertUndefined = UNDEFINED_VALUE;
5452
5502
  _isRetryDisabled = false;
5503
+ _sessionStorageUsed = null;
5504
+ _namePrefix = UNDEFINED_VALUE;
5453
5505
  objDefineProp(_self, "_senderConfig", {
5454
5506
  enumerable: true,
5455
5507
  configurable: true,