@microsoft/1ds-post-js 3.1.6 → 3.1.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 (60) hide show
  1. package/README.md +2 -1
  2. package/bundle/ms.post-3.1.10.gbl.js +3595 -0
  3. package/bundle/ms.post-3.1.10.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.1.10.gbl.min.js +7 -0
  5. package/bundle/ms.post-3.1.10.gbl.min.js.map +1 -0
  6. package/bundle/ms.post-3.1.10.integrity.json +46 -0
  7. package/bundle/{ms.post-test.js → ms.post-3.1.10.js} +333 -163
  8. package/bundle/ms.post-3.1.10.js.map +1 -0
  9. package/bundle/ms.post-3.1.10.min.js +7 -0
  10. package/bundle/ms.post-3.1.10.min.js.map +1 -0
  11. package/bundle/{ms.post-3.1.6.gbl.js → ms.post.gbl.js} +332 -162
  12. package/bundle/ms.post.gbl.js.map +1 -0
  13. package/bundle/ms.post.gbl.min.js +7 -0
  14. package/bundle/ms.post.gbl.min.js.map +1 -0
  15. package/bundle/ms.post.integrity.json +46 -0
  16. package/bundle/{ms.post-3.1.6.js → ms.post.js} +333 -163
  17. package/bundle/ms.post.js.map +1 -0
  18. package/bundle/ms.post.min.js +7 -0
  19. package/bundle/ms.post.min.js.map +1 -0
  20. package/dist/ms.post.js +149 -89
  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.d.ts +24 -0
  27. package/dist-esm/src/Constants.js +30 -0
  28. package/dist-esm/src/Constants.js.map +1 -0
  29. package/dist-esm/src/DataModels.d.ts +11 -2
  30. package/dist-esm/src/DataModels.js +1 -1
  31. package/dist-esm/src/EventBatch.d.ts +5 -2
  32. package/dist-esm/src/EventBatch.js +35 -15
  33. package/dist-esm/src/EventBatch.js.map +1 -1
  34. package/dist-esm/src/HttpManager.d.ts +1 -1
  35. package/dist-esm/src/HttpManager.js +121 -79
  36. package/dist-esm/src/HttpManager.js.map +1 -1
  37. package/dist-esm/src/Index.js +1 -1
  38. package/dist-esm/src/KillSwitch.js +1 -1
  39. package/dist-esm/src/PostChannel.js +10 -8
  40. package/dist-esm/src/PostChannel.js.map +1 -1
  41. package/dist-esm/src/RetryPolicy.js +1 -1
  42. package/dist-esm/src/Serializer.js +1 -1
  43. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  44. package/package.json +3 -3
  45. package/src/Constants.ts +27 -0
  46. package/src/DataModels.ts +13 -3
  47. package/src/EventBatch.ts +47 -14
  48. package/src/HttpManager.ts +155 -85
  49. package/src/PostChannel.ts +9 -6
  50. package/bundle/ms.post-3.1.6.gbl.js.map +0 -1
  51. package/bundle/ms.post-3.1.6.gbl.min.js +0 -7
  52. package/bundle/ms.post-3.1.6.gbl.min.js.map +0 -1
  53. package/bundle/ms.post-3.1.6.integrity.json +0 -46
  54. package/bundle/ms.post-3.1.6.js.map +0 -1
  55. package/bundle/ms.post-3.1.6.min.js +0 -7
  56. package/bundle/ms.post-3.1.6.min.js.map +0 -1
  57. package/bundle/ms.post-test.integrity.json +0 -26
  58. package/bundle/ms.post-test.js.map +0 -1
  59. package/bundle/ms.post-test.min.js +0 -7
  60. package/bundle/ms.post-test.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * 1DS JS SDK POST plugin, 3.1.6
2
+ * 1DS JS SDK POST plugin, 3.1.10
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -18,20 +18,24 @@
18
18
  var ObjDefineProperty = ObjClass["defineProperty"];
19
19
  var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];
20
20
 
21
- function getGlobal() {
22
- if (typeof globalThis !== strShimUndefined && globalThis) {
23
- return globalThis;
24
- }
25
- if (typeof self !== strShimUndefined && self) {
26
- return self;
27
- }
28
- if (typeof window !== strShimUndefined && window) {
29
- return window;
30
- }
31
- if (typeof global !== strShimUndefined && global) {
32
- return global;
21
+ var _cachedGlobal = null;
22
+ function getGlobal(useCached) {
23
+ if (useCached === void 0) { useCached = true; }
24
+ if (!_cachedGlobal || !useCached) {
25
+ if (typeof globalThis !== strShimUndefined && globalThis) {
26
+ _cachedGlobal = globalThis;
27
+ }
28
+ if (typeof self !== strShimUndefined && self) {
29
+ _cachedGlobal = self;
30
+ }
31
+ if (typeof window !== strShimUndefined && window) {
32
+ _cachedGlobal = window;
33
+ }
34
+ if (typeof global !== strShimUndefined && global) {
35
+ _cachedGlobal = global;
36
+ }
33
37
  }
34
- return null;
38
+ return _cachedGlobal;
35
39
  }
36
40
  function throwTypeError(message) {
37
41
  throw new TypeError(message);
@@ -46,7 +50,7 @@
46
50
  }
47
51
  var type = typeof obj;
48
52
  if (type !== strShimObject && type !== strShimFunction) {
49
- throwTypeError('Object prototype may only be an Object:' + obj);
53
+ throwTypeError("Object prototype may only be an Object:" + obj);
50
54
  }
51
55
  function tmpFunc() { }
52
56
  tmpFunc[strShimPrototype] = obj;
@@ -424,7 +428,8 @@
424
428
  CannotParseAiBlobValue: 101,
425
429
  InvalidContentBlob: 102,
426
430
  TrackPageActionEventFailed: 103,
427
- FailedAddingCustomDefinedRequestContext: 104
431
+ FailedAddingCustomDefinedRequestContext: 104,
432
+ InMemoryStorageBufferFull: 105
428
433
  };
429
434
 
430
435
  var strOnPrefix = "on";
@@ -541,20 +546,20 @@
541
546
  }
542
547
  return str.replace(/^\s+|\s+$/g, "");
543
548
  }
544
- var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');
549
+ var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
545
550
  var _objKeysDontEnums = [
546
- 'toString',
547
- 'toLocaleString',
548
- 'valueOf',
549
- 'hasOwnProperty',
550
- 'isPrototypeOf',
551
- 'propertyIsEnumerable',
552
- 'constructor'
551
+ "toString",
552
+ "toLocaleString",
553
+ "valueOf",
554
+ "hasOwnProperty",
555
+ "isPrototypeOf",
556
+ "propertyIsEnumerable",
557
+ "constructor"
553
558
  ];
554
559
  function objKeys(obj) {
555
560
  var objType = typeof obj;
556
561
  if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
557
- throwTypeError('objKeys called on non-object');
562
+ throwTypeError("objKeys called on non-object");
558
563
  }
559
564
  var result = [];
560
565
  for (var prop in obj) {
@@ -761,7 +766,7 @@
761
766
  }
762
767
  function useXDomainRequest() {
763
768
  if (_useXDomainRequest === null) {
764
- _useXDomainRequest = (typeof XDomainRequest !== undefined);
769
+ _useXDomainRequest = (typeof XDomainRequest !== "undefined");
765
770
  if (_useXDomainRequest && isXhrSupported()) {
766
771
  _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst("XMLHttpRequest"), "withCredentials");
767
772
  }
@@ -779,15 +784,45 @@
779
784
  return isSupported;
780
785
  }
781
786
 
787
+ var _aiNamespace = null;
788
+ function _getExtensionNamespace() {
789
+ var target = getGlobalInst("Microsoft");
790
+ if (target) {
791
+ _aiNamespace = target["ApplicationInsights"];
792
+ }
793
+ return _aiNamespace;
794
+ }
795
+ function getDebugExt(config) {
796
+ var ns = _aiNamespace;
797
+ if (!ns && config.disableDbgExt !== true) {
798
+ ns = _aiNamespace || _getExtensionNamespace();
799
+ }
800
+ return ns ? ns["ChromeDbgExt"] : null;
801
+ }
802
+
782
803
  var AiNonUserActionablePrefix = "AI (Internal): ";
783
804
  var AiUserActionablePrefix = "AI: ";
784
805
  var AIInternalMessagePrefix = "AITR_";
806
+ var strErrorToConsole = "errorToConsole";
807
+ var strWarnToConsole = "warnToConsole";
785
808
  function _sanitizeDiagnosticText(text) {
786
809
  if (text) {
787
810
  return "\"" + text.replace(/\"/g, "") + "\"";
788
811
  }
789
812
  return "";
790
813
  }
814
+ function _logToConsole(func, message) {
815
+ var theConsole = getConsole();
816
+ if (!!theConsole) {
817
+ var logFunc = "log";
818
+ if (theConsole[func]) {
819
+ logFunc = func;
820
+ }
821
+ if (isFunction(theConsole[logFunc])) {
822
+ theConsole[logFunc](message);
823
+ }
824
+ }
825
+ }
791
826
  var _InternalLogMessage = /** @class */ (function () {
792
827
  function _InternalLogMessage(msgId, msg, isUserAct, properties) {
793
828
  if (isUserAct === void 0) { isUserAct = false; }
@@ -812,7 +847,7 @@
812
847
  }
813
848
  var DiagnosticLogger = /** @class */ (function () {
814
849
  function DiagnosticLogger(config) {
815
- this.identifier = 'DiagnosticLogger';
850
+ this.identifier = "DiagnosticLogger";
816
851
  this.queue = [];
817
852
  var _messageCount = 0;
818
853
  var _messageLogged = {};
@@ -820,10 +855,10 @@
820
855
  if (isNullOrUndefined(config)) {
821
856
  config = {};
822
857
  }
823
- _self.consoleLoggingLevel = function () { return _getConfigValue('loggingLevelConsole', 0); };
824
- _self.telemetryLoggingLevel = function () { return _getConfigValue('loggingLevelTelemetry', 1); };
825
- _self.maxInternalMessageLimit = function () { return _getConfigValue('maxMessageLimit', 25); };
826
- _self.enableDebugExceptions = function () { return _getConfigValue('enableDebugExceptions', false); };
858
+ _self.consoleLoggingLevel = function () { return _getConfigValue("loggingLevelConsole", 0); };
859
+ _self.telemetryLoggingLevel = function () { return _getConfigValue("loggingLevelTelemetry", 1); };
860
+ _self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
861
+ _self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
827
862
  _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
828
863
  if (isUserAct === void 0) { isUserAct = false; }
829
864
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
@@ -831,35 +866,35 @@
831
866
  throw message;
832
867
  }
833
868
  else {
869
+ var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;
834
870
  if (!isUndefined(message.message)) {
835
871
  var logLevel = _self.consoleLoggingLevel();
836
872
  if (isUserAct) {
837
873
  var messageKey = +message.messageId;
838
- if (!_messageLogged[messageKey] && logLevel >= LoggingSeverity.WARNING) {
839
- _self.warnToConsole(message.message);
874
+ if (!_messageLogged[messageKey] && logLevel >= severity) {
875
+ _self[logFunc](message.message);
840
876
  _messageLogged[messageKey] = true;
841
877
  }
842
878
  }
843
879
  else {
844
- if (logLevel >= LoggingSeverity.WARNING) {
845
- _self.warnToConsole(message.message);
880
+ if (logLevel >= severity) {
881
+ _self[logFunc](message.message);
846
882
  }
847
883
  }
848
884
  _self.logInternalMessage(severity, message);
849
885
  }
886
+ else {
887
+ _debugExtMsg("throw" + (severity === LoggingSeverity.CRITICAL ? "Critical" : "Warning"), message);
888
+ }
850
889
  }
851
890
  };
852
891
  _self.warnToConsole = function (message) {
853
- var theConsole = getConsole();
854
- if (!!theConsole) {
855
- var logFunc = 'log';
856
- if (theConsole.warn) {
857
- logFunc = 'warn';
858
- }
859
- if (isFunction(theConsole[logFunc])) {
860
- theConsole[logFunc](message);
861
- }
862
- }
892
+ _logToConsole("warn", message);
893
+ _debugExtMsg("warning", message);
894
+ };
895
+ _self.errorToConsole = function (message) {
896
+ _logToConsole("error", message);
897
+ _debugExtMsg("error", message);
863
898
  };
864
899
  _self.resetInternalMessageCount = function () {
865
900
  _messageCount = 0;
@@ -881,12 +916,18 @@
881
916
  if (severity <= _self.telemetryLoggingLevel()) {
882
917
  _self.queue.push(message);
883
918
  _messageCount++;
919
+ _debugExtMsg((severity === LoggingSeverity.CRITICAL ? "error" : "warn"), message);
884
920
  }
885
921
  if (_messageCount === _self.maxInternalMessageLimit()) {
886
922
  var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
887
923
  var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);
888
924
  _self.queue.push(throttleMessage);
889
- _self.warnToConsole(throttleLimitMessage);
925
+ if (severity === LoggingSeverity.CRITICAL) {
926
+ _self.errorToConsole(throttleLimitMessage);
927
+ }
928
+ else {
929
+ _self.warnToConsole(throttleLimitMessage);
930
+ }
890
931
  }
891
932
  }
892
933
  };
@@ -900,6 +941,12 @@
900
941
  function _areInternalMessagesThrottled() {
901
942
  return _messageCount >= _self.maxInternalMessageLimit();
902
943
  }
944
+ function _debugExtMsg(name, data) {
945
+ var dbgExt = getDebugExt(config);
946
+ if (dbgExt && dbgExt.diagLog) {
947
+ dbgExt.diagLog(name, data);
948
+ }
949
+ }
903
950
  });
904
951
  }
905
952
  return DiagnosticLogger;
@@ -916,7 +963,7 @@
916
963
  _self.isChildEvt = function () { return false; };
917
964
  if (isFunction(payloadDetails)) {
918
965
  var theDetails_1;
919
- accessorDefined = objDefineAccessors(_self, 'payload', function () {
966
+ accessorDefined = objDefineAccessors(_self, "payload", function () {
920
967
  if (!theDetails_1 && isFunction(payloadDetails)) {
921
968
  theDetails_1 = payloadDetails();
922
969
  payloadDetails = null;
@@ -1264,6 +1311,9 @@
1264
1311
  return BaseTelemetryPlugin;
1265
1312
  }());
1266
1313
 
1314
+ var strVisibilityChangeEvt = "visibilitychange";
1315
+ var strPageHide = "pagehide";
1316
+ var strPageShow = "pageshow";
1267
1317
  function addEventHandler(eventName, callback) {
1268
1318
  var result = false;
1269
1319
  var w = getWindow();
@@ -1277,6 +1327,67 @@
1277
1327
  }
1278
1328
  return result;
1279
1329
  }
1330
+ function addEventListeners(events, listener, excludeEvents) {
1331
+ var added = false;
1332
+ if (listener && events && isArray(events)) {
1333
+ var excluded_1 = [];
1334
+ arrForEach(events, function (name) {
1335
+ if (isString(name)) {
1336
+ if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
1337
+ added = addEventHandler(name, listener) || added;
1338
+ }
1339
+ else {
1340
+ excluded_1.push(name);
1341
+ }
1342
+ }
1343
+ });
1344
+ if (!added && excluded_1.length > 0) {
1345
+ added = addEventListeners(excluded_1, listener);
1346
+ }
1347
+ }
1348
+ return added;
1349
+ }
1350
+ function addPageUnloadEventListener(listener, excludeEvents) {
1351
+ return addEventListeners(["beforeunload", "unload", "pagehide"], listener, excludeEvents);
1352
+ }
1353
+ function addPageHideEventListener(listener, excludeEvents) {
1354
+ function _handlePageVisibility(evt) {
1355
+ var doc = getDocument();
1356
+ if (listener && doc && doc.visibilityState === "hidden") {
1357
+ listener(evt);
1358
+ }
1359
+ }
1360
+ var pageUnloadAdded = false;
1361
+ if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {
1362
+ pageUnloadAdded = addEventHandler(strPageHide, listener);
1363
+ }
1364
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1365
+ pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;
1366
+ }
1367
+ if (!pageUnloadAdded && excludeEvents) {
1368
+ pageUnloadAdded = addPageHideEventListener(listener);
1369
+ }
1370
+ return pageUnloadAdded;
1371
+ }
1372
+ function addPageShowEventListener(listener, excludeEvents) {
1373
+ function _handlePageVisibility(evt) {
1374
+ var doc = getDocument();
1375
+ if (listener && doc && doc.visibilityState === "visible") {
1376
+ listener(evt);
1377
+ }
1378
+ }
1379
+ var pageShowAdded = false;
1380
+ if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {
1381
+ pageShowAdded = addEventHandler(strPageShow, listener);
1382
+ }
1383
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1384
+ pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;
1385
+ }
1386
+ if (!pageShowAdded && excludeEvents) {
1387
+ pageShowAdded = addPageShowEventListener(listener);
1388
+ }
1389
+ return pageShowAdded;
1390
+ }
1280
1391
  function perfNow() {
1281
1392
  var perf = getPerformance();
1282
1393
  if (perf && perf.now) {
@@ -1323,8 +1434,10 @@
1323
1434
  var _ExtendedInternalMessageId = __assignFn(__assignFn({}, _InternalMessageId), { AuthHandShakeError: 501, AuthRedirectFail: 502, BrowserCannotReadLocalStorage: 503, BrowserCannotWriteLocalStorage: 504, BrowserDoesNotSupportLocalStorage: 505, CannotParseBiBlobValue: 506, CannotParseDataAttribute: 507, CVPluginNotAvailable: 508, DroppedEvent: 509, ErrorParsingAISessionCookie: 510, ErrorProvidedChannels: 511, FailedToGetCookies: 512, FailedToInitializeCorrelationVector: 513, FailedToInitializeSDK: 514, InvalidContentBlob: 515, InvalidCorrelationValue: 516, SessionRenewalDateIsZero: 517, SendPostOnCompleteFailure: 518, PostResponseHandler: 519, SDKNotInitialized: 520 });
1324
1435
 
1325
1436
  var _a$1;
1326
- var Version = '3.1.6';
1437
+ var Version = '3.1.10';
1327
1438
  var FullVersionString = "1DS-Web-JS-" + Version;
1439
+ var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1440
+ var strWithCredentials = "withCredentials";
1328
1441
  var _fieldTypeEventPropMap = (_a$1 = {},
1329
1442
  _a$1[0 ] = EventPropertyType.Unspecified,
1330
1443
  _a$1[2 ] = EventPropertyType.Double,
@@ -1459,31 +1572,6 @@
1459
1572
  function isArrayValid(value) {
1460
1573
  return value.length > 0;
1461
1574
  }
1462
- function addPageHideEventListener(listener) {
1463
- function _handlePageVisibility(evt) {
1464
- var doc = getDocument();
1465
- if (listener && doc && doc.visibilityState === 'hidden') {
1466
- listener(evt);
1467
- }
1468
- }
1469
- var pageUnloadAdded = addEventHandler("pagehide", listener);
1470
- return addEventHandler("visibilitychange", _handlePageVisibility) || pageUnloadAdded;
1471
- }
1472
- function addPageShowEventListener(listener) {
1473
- function _handlePageVisibility(evt) {
1474
- var doc = getDocument();
1475
- if (listener && doc && doc.visibilityState === 'visible') {
1476
- listener(evt);
1477
- }
1478
- }
1479
- var pageUnloadAdded = addEventHandler("pageshow", listener);
1480
- return addEventHandler("visibilitychange", _handlePageVisibility) || pageUnloadAdded;
1481
- }
1482
- function addPageUnloadEventListener(listener) {
1483
- var pageUnloadAdded = addEventHandler("beforeunload", listener);
1484
- pageUnloadAdded = addEventHandler("unload", listener) || pageUnloadAdded;
1485
- return addEventHandler("pagehide", listener) || pageUnloadAdded;
1486
- }
1487
1575
  function setProcessTelemetryTimings(event, identifier) {
1488
1576
  var evt = event;
1489
1577
  evt.timings = evt.timings || {};
@@ -1521,47 +1609,109 @@
1521
1609
  function isChromium() {
1522
1610
  return !!getGlobalInst("chrome");
1523
1611
  }
1612
+ function openXhr(method, urlString, withCredentials, disabled, isSync) {
1613
+ if (disabled === void 0) { disabled = false; }
1614
+ if (isSync === void 0) { isSync = false; }
1615
+ function _wrapSetXhrProp(xhr, prop, value) {
1616
+ try {
1617
+ xhr[prop] = value;
1618
+ }
1619
+ catch (e) {
1620
+ }
1621
+ }
1622
+ var xhr = new XMLHttpRequest();
1623
+ if (disabled) {
1624
+ _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);
1625
+ }
1626
+ if (withCredentials) {
1627
+ _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
1628
+ }
1629
+ xhr.open(method, urlString, !isSync);
1630
+ if (withCredentials) {
1631
+ _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
1632
+ }
1633
+ return xhr;
1634
+ }
1524
1635
 
1525
1636
  var RT_PROFILE = "REAL_TIME";
1526
1637
  var NRT_PROFILE = "NEAR_REAL_TIME";
1527
1638
  var BE_PROFILE = "BEST_EFFORT";
1528
1639
 
1640
+ var Method = "POST";
1641
+ var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1642
+ var strDropped = "drop";
1643
+ var strSending = "send";
1644
+ var strRequeue = "requeue";
1645
+ var strResponseFail = "rspFail";
1646
+ var strOther = "oth";
1647
+ var defaultCacheControl = "no-cache, no-store";
1648
+ var defaultContentType = "application/x-json-stream";
1649
+ var strCacheControl = "cache-control";
1650
+ var strContentTypeHeader = "content-type";
1651
+ var strKillTokensHeader = "kill-tokens";
1652
+ var strKillDurationHeader = "kill-duration";
1653
+ var strKillDurationSecondsHeader = "kill-duration-seconds";
1654
+ var strTimeDeltaHeader = "time-delta-millis";
1655
+ var strClientVersion = "client-version";
1656
+ var strClientId = "client-id";
1657
+ var strTimeDeltaToApply = "time-delta-to-apply-millis";
1658
+ var strUploadTime = "upload-time";
1659
+ var strApiKey = "apikey";
1660
+ var strMsaDeviceTicket = "AuthMsaDeviceTicket";
1661
+ var strMsfpc = "msfpc";
1662
+
1663
+ function _getEventMsfpc(theEvent) {
1664
+ var intWeb = ((theEvent.ext || {})["intweb"]);
1665
+ if (intWeb && isValueAssigned(intWeb[strMsfpc])) {
1666
+ return intWeb[strMsfpc];
1667
+ }
1668
+ return null;
1669
+ }
1670
+ function _getMsfpc(theEvents) {
1671
+ var msfpc = null;
1672
+ for (var lp = 0; msfpc === null && lp < theEvents.length; lp++) {
1673
+ msfpc = _getEventMsfpc(theEvents[lp]);
1674
+ }
1675
+ return msfpc;
1676
+ }
1529
1677
  var EventBatch = /** @class */ (function () {
1530
1678
  function EventBatch(iKey, addEvents) {
1531
1679
  var events = addEvents ? [].concat(addEvents) : [];
1532
1680
  var _self = this;
1681
+ var _msfpc = _getMsfpc(events);
1533
1682
  _self.iKey = function () {
1534
1683
  return iKey;
1535
1684
  };
1685
+ _self.Msfpc = function () {
1686
+ return _msfpc || "";
1687
+ };
1536
1688
  _self.count = function () {
1537
1689
  return events.length;
1538
1690
  };
1539
1691
  _self.events = function () {
1540
1692
  return events;
1541
1693
  };
1542
- _self.addEvents = function (theEvents, append) {
1543
- if (append === void 0) { append = true; }
1544
- if (theEvents && theEvents.length > 0) {
1545
- if (append) {
1546
- events = events.concat(theEvents);
1547
- }
1548
- else {
1549
- events = theEvents.concat(events);
1694
+ _self.addEvent = function (theEvent) {
1695
+ if (theEvent) {
1696
+ events.push(theEvent);
1697
+ if (!_msfpc) {
1698
+ _msfpc = _getEventMsfpc(theEvent);
1550
1699
  }
1551
- return theEvents.length;
1700
+ return true;
1552
1701
  }
1553
- return 0;
1702
+ return false;
1554
1703
  };
1555
1704
  _self.split = function (fromEvent, numEvents) {
1556
- var newBatch = new EventBatch(iKey);
1705
+ var theEvents;
1557
1706
  if (fromEvent < events.length) {
1558
1707
  var cnt = events.length - fromEvent;
1559
1708
  if (!isNullOrUndefined(numEvents)) {
1560
1709
  cnt = numEvents < cnt ? numEvents : cnt;
1561
1710
  }
1562
- newBatch.addEvents(events.splice(fromEvent, cnt), true);
1711
+ theEvents = events.splice(fromEvent, cnt);
1712
+ _msfpc = _getMsfpc(events);
1563
1713
  }
1564
- return newBatch;
1714
+ return new EventBatch(iKey, theEvents);
1565
1715
  };
1566
1716
  }
1567
1717
  EventBatch.create = function (iKey, theEvents) {
@@ -1931,21 +2081,6 @@
1931
2081
  var EVTClockSkewManager = ClockSkewManager;
1932
2082
 
1933
2083
  var _a;
1934
- var Method = "POST";
1935
- var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1936
- var strDropped = "drop";
1937
- var strSending = "send";
1938
- var strRequeue = "requeue";
1939
- var strResponseFail = "rspFail";
1940
- var strOther = "oth";
1941
- var defaultCacheControl = "no-cache, no-store";
1942
- var defaultContentType = "application/x-json-stream";
1943
- var strCacheControl = "cache-control";
1944
- var strContentTypeHeader = "content-type";
1945
- var strKillTokensHeader = "kill-tokens";
1946
- var strKillDurationHeader = "kill-duration";
1947
- var strKillDurationSecondsHeader = "kill-duration-seconds";
1948
- var strTimeDeltaHeader = "time-delta-millis";
1949
2084
  var _eventActionMap = (_a = {},
1950
2085
  _a[1 ] = strRequeue,
1951
2086
  _a[100 ] = strRequeue,
@@ -1953,6 +2088,13 @@
1953
2088
  _a[8004 ] = strDropped,
1954
2089
  _a[8003 ] = strDropped,
1955
2090
  _a);
2091
+ var _collectorQsHeaders = {};
2092
+ var _collectorHeaderToQs = {};
2093
+ function _addCollectorHeaderQsMapping(qsName, headerName) {
2094
+ _collectorQsHeaders[qsName] = headerName;
2095
+ _collectorHeaderToQs[headerName] = qsName;
2096
+ }
2097
+ _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket);
1956
2098
  function _getResponseText(xhr) {
1957
2099
  try {
1958
2100
  return xhr.responseText;
@@ -1979,11 +2121,21 @@
1979
2121
  }
1980
2122
  return hasHeader;
1981
2123
  }
2124
+ function _addRequestDetails(details, name, value, useHeaders) {
2125
+ if (name && value && value.length > 0) {
2126
+ if (useHeaders && _collectorQsHeaders[name]) {
2127
+ details.hdrs[_collectorQsHeaders[name]] = value;
2128
+ details.useHdrs = true;
2129
+ }
2130
+ else {
2131
+ details.url += "&" + name + "=" + value;
2132
+ }
2133
+ }
2134
+ }
1982
2135
  var HttpManager = /** @class */ (function () {
1983
2136
  function HttpManager(maxEventsPerBatch, maxConnections, maxRetries, actions) {
1984
2137
  this._responseHandlers = [];
1985
- var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType + "&client-id=NO_AUTH&client-version="
1986
- + FullVersionString;
2138
+ var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
1987
2139
  var _killSwitch = new EVTKillSwitch();
1988
2140
  var _paused = false;
1989
2141
  var _clockSkewManager = new EVTClockSkewManager();
@@ -2000,6 +2152,7 @@
2000
2152
  var _enableEventTimings = false;
2001
2153
  var _cookieMgr;
2002
2154
  var _isUnloading = false;
2155
+ var _useHeaders = false;
2003
2156
  dynamicProto(HttpManager, this, function (_self) {
2004
2157
  var _sendCredentials = true;
2005
2158
  _self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
@@ -2008,6 +2161,7 @@
2008
2161
  channelConfig = {};
2009
2162
  }
2010
2163
  _urlString = endpointUrl + _urlString;
2164
+ _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : false;
2011
2165
  _core = core;
2012
2166
  _cookieMgr = core.getCookieMgr();
2013
2167
  _enableEventTimings = !_core.config.disableEventTimings;
@@ -2116,6 +2270,8 @@
2116
2270
  }
2117
2271
  function _fetchSendPost(payload, oncomplete, sync) {
2118
2272
  var _a;
2273
+ var ignoreResponse = false;
2274
+ var responseHandled = false;
2119
2275
  var requestInit = (_a = {
2120
2276
  body: payload.data,
2121
2277
  method: Method
@@ -2124,6 +2280,9 @@
2124
2280
  _a);
2125
2281
  if (sync) {
2126
2282
  requestInit.keepalive = true;
2283
+ if (payload._sendReason === 2 ) {
2284
+ ignoreResponse = true;
2285
+ }
2127
2286
  }
2128
2287
  if (_sendCredentials) {
2129
2288
  requestInit.credentials = "include";
@@ -2144,11 +2303,21 @@
2144
2303
  responseText = text;
2145
2304
  });
2146
2305
  }
2147
- _doOnComplete(oncomplete, response.status, headerMap, responseText);
2148
- _handleCollectorResponse(responseText);
2306
+ if (!responseHandled) {
2307
+ responseHandled = true;
2308
+ _doOnComplete(oncomplete, response.status, headerMap, responseText);
2309
+ _handleCollectorResponse(responseText);
2310
+ }
2149
2311
  })["catch"](function (error) {
2150
- _doOnComplete(oncomplete, 0, {});
2312
+ if (!responseHandled) {
2313
+ responseHandled = true;
2314
+ _doOnComplete(oncomplete, 0, {});
2315
+ }
2151
2316
  });
2317
+ if (ignoreResponse && !responseHandled) {
2318
+ responseHandled = true;
2319
+ _doOnComplete(oncomplete, 200, {});
2320
+ }
2152
2321
  }
2153
2322
  function _xhrSendPost(payload, oncomplete, sync) {
2154
2323
  function _appendHeader(theHeaders, xhr, name) {
@@ -2175,16 +2344,7 @@
2175
2344
  function xhrComplete(xhr, responseTxt) {
2176
2345
  _doOnComplete(oncomplete, xhr.status, _getAllResponseHeaders(xhr), responseTxt);
2177
2346
  }
2178
- var xhRequest = new XMLHttpRequest();
2179
- try {
2180
- xhRequest[DisabledPropertyName] = true;
2181
- }
2182
- catch (e) {
2183
- }
2184
- if (_sendCredentials) {
2185
- xhRequest.withCredentials = true;
2186
- }
2187
- xhRequest.open(Method, payload.urlString, !sync);
2347
+ var xhRequest = openXhr(Method, payload.urlString, _sendCredentials, true, sync);
2188
2348
  objForEachKey(payload.headers, function (name, value) {
2189
2349
  xhRequest.setRequestHeader(name, value);
2190
2350
  });
@@ -2407,8 +2567,16 @@
2407
2567
  _postManager.diagLog().throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.CannotSerializeObject, "Unexpected Exception sending batch: " + dumpObj(ex));
2408
2568
  }
2409
2569
  }
2410
- function _buildQueryString(thePayload) {
2411
- var urlString = _urlString;
2570
+ function _buildRequestDetails(thePayload, useHeaders) {
2571
+ var requestDetails = {
2572
+ url: _urlString,
2573
+ hdrs: {},
2574
+ useHdrs: false
2575
+ };
2576
+ requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
2577
+ requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
2578
+ _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
2579
+ _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
2412
2580
  var apiQsKeys = "";
2413
2581
  arrForEach(thePayload.apiKeys, function (apiKey) {
2414
2582
  if (apiQsKeys.length > 0) {
@@ -2416,27 +2584,25 @@
2416
2584
  }
2417
2585
  apiQsKeys += apiKey;
2418
2586
  });
2419
- if (apiQsKeys.length > 0) {
2420
- urlString += "&apikey=" + apiQsKeys;
2421
- }
2422
- urlString += "&upload-time=" + dateNow().toString();
2587
+ _addRequestDetails(requestDetails, strApiKey, apiQsKeys, useHeaders);
2588
+ _addRequestDetails(requestDetails, strUploadTime, dateNow().toString(), useHeaders);
2423
2589
  var msfpc = _getMsfpc(thePayload);
2424
2590
  if (isValueAssigned(msfpc)) {
2425
- urlString = urlString + "&ext.intweb.msfpc=" + msfpc;
2591
+ requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
2426
2592
  }
2427
2593
  if (_clockSkewManager.shouldAddClockSkewHeaders()) {
2428
- urlString += "&time-delta-to-apply-millis=" + _clockSkewManager.getClockSkewHeaderValue();
2594
+ _addRequestDetails(requestDetails, strTimeDeltaToApply, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
2429
2595
  }
2430
2596
  if (_core.getWParam) {
2431
2597
  var wParam = _core.getWParam();
2432
2598
  if (wParam >= 0) {
2433
- urlString += "&w=" + wParam;
2599
+ requestDetails.url += "&w=" + wParam;
2434
2600
  }
2435
2601
  }
2436
2602
  for (var i = 0; i < _queryStringParameters.length; i++) {
2437
- urlString += "&" + _queryStringParameters[i].name + "=" + _queryStringParameters[i].value;
2603
+ requestDetails.url += "&" + _queryStringParameters[i].name + "=" + _queryStringParameters[i].value;
2438
2604
  }
2439
- return urlString;
2605
+ return requestDetails;
2440
2606
  }
2441
2607
  function _canUseSendBeaconApi() {
2442
2608
  return !_customHttpInterface && _useBeacons && isBeaconsSupported();
@@ -2447,7 +2613,17 @@
2447
2613
  }
2448
2614
  function _doPayloadSend(thePayload, serializationStart, serializationCompleted, sendReason) {
2449
2615
  if (thePayload && thePayload.payloadBlob && thePayload.payloadBlob.length > 0) {
2450
- var urlString_1 = _buildQueryString(thePayload);
2616
+ var useSendHook_1 = !!_self.sendHook;
2617
+ var sendInterface_1 = _sendInterfaces[thePayload.sendType];
2618
+ if (!_isBeaconPayload(thePayload.sendType) && thePayload.isBeacon && thePayload.sendReason === 2 ) {
2619
+ sendInterface_1 = _sendInterfaces[2 ] || _sendInterfaces[3 ] || sendInterface_1;
2620
+ }
2621
+ var useHeaders_1 = _useHeaders;
2622
+ if (thePayload.isBeacon || sendInterface_1._transport === 3 ) {
2623
+ useHeaders_1 = false;
2624
+ }
2625
+ var requestDetails_1 = _buildRequestDetails(thePayload, useHeaders_1);
2626
+ useHeaders_1 = useHeaders_1 || requestDetails_1.useHdrs;
2451
2627
  var sendEventStart_1 = getTime();
2452
2628
  var strSendAttempt_1 = "sendAttempt";
2453
2629
  doPerf(_core, function () { return "HttpManager:_doPayloadSend"; }, function () {
@@ -2468,24 +2644,21 @@
2468
2644
  _sendBatchesNotification(thePayload.batches, (1000 + (sendReason || 0 )), thePayload.sendType, true);
2469
2645
  var orgPayloadData = {
2470
2646
  data: thePayload.payloadBlob,
2471
- urlString: urlString_1,
2472
- headers: extend({}, _headers),
2647
+ urlString: requestDetails_1.url,
2648
+ headers: requestDetails_1.hdrs,
2473
2649
  _thePayload: thePayload,
2474
2650
  _sendReason: sendReason
2475
2651
  };
2476
- if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
2477
- orgPayloadData.headers[strCacheControl] = defaultCacheControl;
2478
- }
2479
- if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
2480
- orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
2652
+ if (useHeaders_1) {
2653
+ if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
2654
+ orgPayloadData.headers[strCacheControl] = defaultCacheControl;
2655
+ }
2656
+ if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
2657
+ orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
2658
+ }
2481
2659
  }
2482
2660
  var sender = null;
2483
- var useSendHook = !!_self.sendHook;
2484
- var sendInterface = _sendInterfaces[thePayload.sendType];
2485
- if (!_isBeaconPayload(thePayload.sendType) && thePayload.isBeacon && thePayload.sendReason === 2 ) {
2486
- sendInterface = _sendInterfaces[2 ] || _sendInterfaces[3 ] || sendInterface;
2487
- }
2488
- if (sendInterface) {
2661
+ if (sendInterface_1) {
2489
2662
  sender = function (payload) {
2490
2663
  _clockSkewManager.firstRequestSent();
2491
2664
  var onComplete = function (status, headers) {
@@ -2493,7 +2666,7 @@
2493
2666
  };
2494
2667
  var isSync = thePayload.isTeardown || thePayload.isSync;
2495
2668
  try {
2496
- sendInterface.sendPOST(payload, onComplete, isSync);
2669
+ sendInterface_1.sendPOST(payload, onComplete, isSync);
2497
2670
  if (_self.sendListener) {
2498
2671
  _self.sendListener(orgPayloadData, payload, isSync, thePayload.isBeacon);
2499
2672
  }
@@ -2509,11 +2682,11 @@
2509
2682
  if (thePayload.sendType === 0 ) {
2510
2683
  _outstandingRequests++;
2511
2684
  }
2512
- if (useSendHook && !thePayload.isBeacon && sendInterface._transport !== 3 ) {
2685
+ if (useSendHook_1 && !thePayload.isBeacon && sendInterface_1._transport !== 3 ) {
2513
2686
  var hookData_1 = {
2514
2687
  data: orgPayloadData.data,
2515
2688
  urlString: orgPayloadData.urlString,
2516
- headers: orgPayloadData.headers
2689
+ headers: extend({}, orgPayloadData.headers)
2517
2690
  };
2518
2691
  var senderCalled_1 = false;
2519
2692
  doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
@@ -2676,12 +2849,9 @@
2676
2849
  }
2677
2850
  function _getMsfpc(thePayload) {
2678
2851
  for (var lp = 0; lp < thePayload.batches.length; lp++) {
2679
- var batchEvents = thePayload.batches[lp].events();
2680
- for (var evtLp = 0; evtLp < batchEvents.length; evtLp++) {
2681
- var intWeb = ((batchEvents[evtLp].ext || {})["intweb"] || {});
2682
- if (isValueAssigned(intWeb["msfpc"])) {
2683
- return encodeURIComponent(intWeb["msfpc"]);
2684
- }
2852
+ var msfpc = thePayload.batches[lp].Msfpc();
2853
+ if (msfpc) {
2854
+ return encodeURIComponent(msfpc);
2685
2855
  }
2686
2856
  }
2687
2857
  return "";
@@ -2699,8 +2869,8 @@
2699
2869
  }
2700
2870
  if (responseText) {
2701
2871
  var response = JSON.parse(responseText);
2702
- if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult.msfpc)) {
2703
- _cookieMgr.set("MSFPC", response.webResult.msfpc, 365 * 86400);
2872
+ if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[strMsfpc])) {
2873
+ _cookieMgr.set("MSFPC", response.webResult[strMsfpc], 365 * 86400);
2704
2874
  }
2705
2875
  }
2706
2876
  }
@@ -2745,7 +2915,6 @@
2745
2915
  }
2746
2916
  return HttpManager;
2747
2917
  }());
2748
- var HttpManager$1 = HttpManager;
2749
2918
 
2750
2919
  var FlushCheckTimer = 0.250;
2751
2920
  var MaxNumberEventPerBatch = 500;
@@ -2763,7 +2932,7 @@
2763
2932
  var _this = _super.call(this) || this;
2764
2933
  _this.identifier = "PostChannel";
2765
2934
  _this.priority = 1011;
2766
- _this.version = '3.1.6';
2935
+ _this.version = '3.1.10';
2767
2936
  var _config;
2768
2937
  var _isTeardownCalled = false;
2769
2938
  var _flushCallbackQueue = [];
@@ -2792,7 +2961,7 @@
2792
2961
  _initializeProfiles();
2793
2962
  _clearQueues();
2794
2963
  _setAutoLimits();
2795
- _httpManager = new HttpManager$1(MaxNumberEventPerBatch, MaxConnections, MaxRetries, {
2964
+ _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRetries, {
2796
2965
  requeue: _requeueEvents,
2797
2966
  send: _sendingEvent,
2798
2967
  sent: _eventsSentEvent,
@@ -2851,12 +3020,13 @@
2851
3020
  }
2852
3021
  _releaseAllQueues(2 , 2 );
2853
3022
  }
2854
- addPageUnloadEventListener(_handleUnloadEvents);
2855
- addPageHideEventListener(_handleUnloadEvents);
3023
+ var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
3024
+ addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents);
3025
+ addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents);
2856
3026
  addPageShowEventListener(function (evt) {
2857
3027
  _isPageUnloadTriggered = false;
2858
3028
  _httpManager.setUnloading(_isPageUnloadTriggered);
2859
- });
3029
+ }, coreConfig.disablePageShowEvents);
2860
3030
  _self.setInitialized(true);
2861
3031
  }, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
2862
3032
  };
@@ -3035,7 +3205,7 @@
3035
3205
  }
3036
3206
  };
3037
3207
  _self.setMsaAuthTicket = function (ticket) {
3038
- _httpManager.addHeader("AuthMsaDeviceTicket", ticket);
3208
+ _httpManager.addHeader(strMsaDeviceTicket, ticket);
3039
3209
  };
3040
3210
  _self.hasEvents = _hasEvents;
3041
3211
  _self._setTransmitProfile = function (profileName) {
@@ -3172,7 +3342,7 @@
3172
3342
  }
3173
3343
  var latency = event.latency;
3174
3344
  var eventBatch = _getEventBatch(event.iKey, latency, true);
3175
- if (eventBatch.addEvents([event], append)) {
3345
+ if (eventBatch.addEvent(event)) {
3176
3346
  if (latency !== EventLatency.Immediate) {
3177
3347
  _queueSize++;
3178
3348
  if (append && event.sendAttempt === 0) {
@@ -3421,5 +3591,5 @@
3421
3591
 
3422
3592
  (function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
3423
3593
 
3424
- }(this.oneDS = this.oneDS || {}));
3425
- //# sourceMappingURL=ms.post-3.1.6.gbl.js.map
3594
+ })(this.oneDS = this.oneDS || {});
3595
+ //# sourceMappingURL=ms.post.gbl.js.map