@microsoft/1ds-post-js 3.1.11 → 3.2.0

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 (51) hide show
  1. package/README.md +2 -2
  2. package/bundle/{ms.post-3.1.11.gbl.js → ms.post-3.2.0.gbl.js} +1486 -786
  3. package/bundle/ms.post-3.2.0.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.2.0.gbl.min.js +7 -0
  5. package/bundle/ms.post-3.2.0.gbl.min.js.map +1 -0
  6. package/bundle/ms.post-3.2.0.integrity.json +46 -0
  7. package/bundle/{ms.post-3.1.11.js → ms.post-3.2.0.js} +1486 -786
  8. package/bundle/ms.post-3.2.0.js.map +1 -0
  9. package/bundle/ms.post-3.2.0.min.js +7 -0
  10. package/bundle/ms.post-3.2.0.min.js.map +1 -0
  11. package/bundle/ms.post.gbl.js +1485 -785
  12. package/bundle/ms.post.gbl.js.map +1 -1
  13. package/bundle/ms.post.gbl.min.js +2 -2
  14. package/bundle/ms.post.gbl.min.js.map +1 -1
  15. package/bundle/ms.post.integrity.json +17 -17
  16. package/bundle/ms.post.js +1485 -785
  17. package/bundle/ms.post.js.map +1 -1
  18. package/bundle/ms.post.min.js +2 -2
  19. package/bundle/ms.post.min.js.map +1 -1
  20. package/dist/ms.post.js +177 -116
  21. package/dist/ms.post.js.map +1 -1
  22. package/dist/ms.post.min.js +2 -2
  23. package/dist/ms.post.min.js.map +1 -1
  24. package/dist-esm/src/BatchNotificationActions.js +1 -1
  25. package/dist-esm/src/ClockSkewManager.js +1 -1
  26. package/dist-esm/src/Constants.js +1 -1
  27. package/dist-esm/src/DataModels.js +1 -1
  28. package/dist-esm/src/EventBatch.js +1 -1
  29. package/dist-esm/src/HttpManager.js +41 -36
  30. package/dist-esm/src/HttpManager.js.map +1 -1
  31. package/dist-esm/src/Index.js +1 -1
  32. package/dist-esm/src/KillSwitch.js +1 -1
  33. package/dist-esm/src/PostChannel.d.ts +0 -4
  34. package/dist-esm/src/PostChannel.js +136 -92
  35. package/dist-esm/src/PostChannel.js.map +1 -1
  36. package/dist-esm/src/RetryPolicy.d.ts +20 -25
  37. package/dist-esm/src/RetryPolicy.js +35 -44
  38. package/dist-esm/src/RetryPolicy.js.map +1 -1
  39. package/dist-esm/src/Serializer.js +1 -1
  40. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  41. package/package.json +2 -2
  42. package/src/HttpManager.ts +43 -47
  43. package/src/PostChannel.ts +162 -114
  44. package/src/RetryPolicy.ts +33 -38
  45. package/bundle/ms.post-3.1.11.gbl.js.map +0 -1
  46. package/bundle/ms.post-3.1.11.gbl.min.js +0 -7
  47. package/bundle/ms.post-3.1.11.gbl.min.js.map +0 -1
  48. package/bundle/ms.post-3.1.11.integrity.json +0 -46
  49. package/bundle/ms.post-3.1.11.js.map +0 -1
  50. package/bundle/ms.post-3.1.11.min.js +0 -7
  51. package/bundle/ms.post-3.1.11.min.js.map +0 -1
@@ -6,9 +6,9 @@
6
6
  import {
7
7
  isReactNative, isValueAssigned, isString, getTime, arrForEach, getLocation, strTrim, isFetchSupported, isXhrSupported,
8
8
  isBeaconsSupported, FullVersionString, useXDomainRequest, IExtendedAppInsightsCore, IExtendedConfiguration,
9
- LoggingSeverity, _ExtendedInternalMessageId, SendRequestReason, strUndefined, getNavigator, doPerf, IPerfEvent,
9
+ eLoggingSeverity, _eExtendedInternalMessageId, SendRequestReason, strUndefined, getNavigator, doPerf, IPerfEvent,
10
10
  dateNow, isUndefined, isNullOrUndefined, objForEachKey, ICookieMgr, isNumber, isArray, TransportType, dumpObj, objKeys, extend,
11
- EventSendType, hasOwnProperty, openXhr
11
+ EventSendType, hasOwnProperty, openXhr, _throwInternal, _eInternalMessageId
12
12
  } from "@microsoft/1ds-core-js";
13
13
  import {
14
14
  IXHROverride, IPostTransmissionTelemetryItem, ICollectorResult,
@@ -18,7 +18,7 @@ import {
18
18
  import { BatchNotificationAction, BatchNotificationActions } from "./BatchNotificationActions";
19
19
  import { EventBatch } from "./EventBatch";
20
20
  import { Serializer, ISerializedPayload } from "./Serializer";
21
- import RetryPolicy from "./RetryPolicy";
21
+ import { retryPolicyGetMillisToBackoffForRetry, retryPolicyShouldRetryForStatus } from "./RetryPolicy";
22
22
  import EVTKillSwitch from "./KillSwitch";
23
23
  import EVTClockSkewManager from "./ClockSkewManager";
24
24
  import dynamicProto from "@microsoft/dynamicproto-js";
@@ -61,23 +61,20 @@ const _eventActionMap: any = {
61
61
  const _collectorQsHeaders = { };
62
62
  const _collectorHeaderToQs = { };
63
63
 
64
- function _addCollectorHeaderQsMapping(qsName: string, headerName: string) {
64
+ function _addCollectorHeaderQsMapping(qsName: string, headerName: string, allowQs?: boolean) {
65
65
  _collectorQsHeaders[qsName] = headerName;
66
- _collectorHeaderToQs[headerName] = qsName;
66
+ if (allowQs !== false) {
67
+ _collectorHeaderToQs[headerName] = qsName;
68
+ }
67
69
  }
68
70
 
69
- _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket);
70
-
71
- // ----------------------------------------------------------------------------------------------------------------
72
- // Task 12886642: Need to wait until an updated version of the collector is released to return these as allowed in the OPTIONS call
73
- // ----------------------------------------------------------------------------------------------------------------
74
- //_addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
75
- //_addCollectorHeaderQsMapping(strClientId, "Client-Id");
76
- //_addCollectorHeaderQsMapping(strApiKey, strApiKey);
77
- //_addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
78
- //_addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
79
- //_addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
80
- // ----------------------------------------------------------------------------------------------------------------
71
+ _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket, false);
72
+ _addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
73
+ _addCollectorHeaderQsMapping(strClientId, "Client-Id");
74
+ _addCollectorHeaderQsMapping(strApiKey, strApiKey);
75
+ _addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
76
+ _addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
77
+ _addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
81
78
 
82
79
  type OnCompleteCallback = (status: number, headers: { [headerName: string]: string }, response?: string) => void;
83
80
 
@@ -182,8 +179,7 @@ export class HttpManager {
182
179
 
183
180
  _urlString = endpointUrl + _urlString;
184
181
 
185
- // Task 12886642: Defaulting to 'false' until the Collector handles sending upload-time header in the OPTIONS call
186
- _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : false;
182
+ _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : true;
187
183
  _core = core;
188
184
  _cookieMgr = core.getCookieMgr();
189
185
  _enableEventTimings = !(_core.config as IExtendedConfiguration).disableEventTimings;
@@ -461,8 +457,9 @@ export class HttpManager {
461
457
  try {
462
458
  oncomplete(status, headers, response);
463
459
  } catch (e) {
464
- _postManager.diagLog().throwInternal(LoggingSeverity.WARNING,
465
- _ExtendedInternalMessageId.SendPostOnCompleteFailure, dumpObj(e));
460
+ _throwInternal(_postManager.diagLog(),
461
+ eLoggingSeverity.WARNING,
462
+ _eExtendedInternalMessageId.SendPostOnCompleteFailure, dumpObj(e));
466
463
  }
467
464
  }
468
465
 
@@ -502,7 +499,7 @@ export class HttpManager {
502
499
  }
503
500
 
504
501
  } catch (ex) {
505
- _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + ex);
502
+ _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
506
503
  status = 0;
507
504
  } finally {
508
505
  _doOnComplete(oncomplete, status, {}, "");
@@ -740,8 +737,9 @@ export class HttpManager {
740
737
  _sendBatchesNotification(droppedBatches, EventBatchNotificationReason.KillSwitch, sendType);
741
738
  }, () => ({ batches: _createDebugBatches(orgBatches), retryCount, isTeardown, isSynchronous, sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType }), !isSynchronous);
742
739
  } catch (ex) {
743
- _postManager.diagLog().throwInternal(LoggingSeverity.WARNING,
744
- _ExtendedInternalMessageId.CannotSerializeObject, "Unexpected Exception sending batch: " + dumpObj(ex));
740
+ _throwInternal(_postManager.diagLog(),
741
+ eLoggingSeverity.WARNING,
742
+ _eInternalMessageId.CannotSerializeObject, "Unexpected Exception sending batch: " + dumpObj(ex));
745
743
  }
746
744
  }
747
745
 
@@ -752,26 +750,22 @@ export class HttpManager {
752
750
  useHdrs: false // Assume no headers
753
751
  };
754
752
 
755
- // ----------------------------------------------------------------------------------------------------------------
756
- // Task 12886642: Need to wait until an updated version of the collector is released to return these as allowed in the OPTIONS call
757
- // ----------------------------------------------------------------------------------------------------------------
758
- // if (!useHeaders) {
759
- // // Attempt to map headers to a query string if possible
760
- // objForEachKey(_headers, (name, value) => {
761
- // if (_collectorHeaderToQs[name]) {
762
- // _addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);
763
- // } else {
764
- // // No mapping, so just include in the headers anyway (may not get sent if using sendBeacon())
765
- // requestDetails.hdrs[name] = value;
766
- // requestDetails.useHdrs = true;
767
- // }
768
- // });
769
- // } else {
753
+ if (!useHeaders) {
754
+ // Attempt to map headers to a query string if possible
755
+ objForEachKey(_headers, (name, value) => {
756
+ if (_collectorHeaderToQs[name]) {
757
+ _addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);
758
+ } else {
759
+ // No mapping, so just include in the headers anyway (may not get sent if using sendBeacon())
760
+ requestDetails.hdrs[name] = value;
761
+ requestDetails.useHdrs = true;
762
+ }
763
+ });
764
+ } else {
770
765
  // Copy the pre-defined headers into the payload headers
771
766
  requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
772
767
  requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
773
- // }
774
- // ----------------------------------------------------------------------------------------------------------------
768
+ }
775
769
 
776
770
  _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
777
771
  _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
@@ -1033,7 +1027,7 @@ export class HttpManager {
1033
1027
  return;
1034
1028
  }
1035
1029
 
1036
- if (!RetryPolicy.shouldRetryForStatus(status) || thePayload.numEvents <= 0) {
1030
+ if (!retryPolicyShouldRetryForStatus(status) || thePayload.numEvents <= 0) {
1037
1031
  // Only retry for specific response codes and if there is still events after kill switch processing
1038
1032
  shouldRetry = false;
1039
1033
  }
@@ -1060,7 +1054,7 @@ export class HttpManager {
1060
1054
  }
1061
1055
 
1062
1056
  _sendBatches(thePayload.batches, retryCount + 1, thePayload.isTeardown, _isUnloading ? EventSendType.SendBeacon : thePayload.sendType, SendRequestReason.Retry);
1063
- }, _isUnloading, RetryPolicy.getMillisToBackoffForRetry(retryCount));
1057
+ }, _isUnloading, retryPolicyGetMillisToBackoffForRetry(retryCount));
1064
1058
  } else {
1065
1059
  backOffTrans = true;
1066
1060
  if (_isUnloading) {
@@ -1189,8 +1183,9 @@ export class HttpManager {
1189
1183
  try {
1190
1184
  responseHandlers[i](responseText);
1191
1185
  } catch (e) {
1192
- _postManager.diagLog().throwInternal(LoggingSeverity.CRITICAL,
1193
- _ExtendedInternalMessageId.PostResponseHandler,
1186
+ _throwInternal(_postManager.diagLog(),
1187
+ eLoggingSeverity.CRITICAL,
1188
+ _eExtendedInternalMessageId.PostResponseHandler,
1194
1189
  "Response handler failed: " + e);
1195
1190
  }
1196
1191
  }
@@ -1217,8 +1212,9 @@ export class HttpManager {
1217
1212
  try {
1218
1213
  theAction.call(actions, theBatches, batchReason, isSyncRequest, sendType);
1219
1214
  } catch (e) {
1220
- _postManager.diagLog().throwInternal(LoggingSeverity.CRITICAL,
1221
- _ExtendedInternalMessageId.NotificationException,
1215
+ _throwInternal(_postManager.diagLog(),
1216
+ eLoggingSeverity.CRITICAL,
1217
+ _eInternalMessageId.NotificationException,
1222
1218
  "send request notification failed: " + e);
1223
1219
  }
1224
1220
  }, sendSync || isSyncRequest, 0);