@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
  */
@@ -7,7 +7,7 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
8
8
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.oneDS = global.oneDS || {}));
10
- }(this, (function (exports) { 'use strict';
10
+ })(this, (function (exports) { 'use strict';
11
11
 
12
12
  var strShimFunction = "function";
13
13
  var strShimObject = "object";
@@ -21,20 +21,24 @@
21
21
  var ObjDefineProperty = ObjClass["defineProperty"];
22
22
  var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];
23
23
 
24
- function getGlobal() {
25
- if (typeof globalThis !== strShimUndefined && globalThis) {
26
- return globalThis;
27
- }
28
- if (typeof self !== strShimUndefined && self) {
29
- return self;
30
- }
31
- if (typeof window !== strShimUndefined && window) {
32
- return window;
33
- }
34
- if (typeof global !== strShimUndefined && global) {
35
- return global;
24
+ var _cachedGlobal = null;
25
+ function getGlobal(useCached) {
26
+ if (useCached === void 0) { useCached = true; }
27
+ if (!_cachedGlobal || !useCached) {
28
+ if (typeof globalThis !== strShimUndefined && globalThis) {
29
+ _cachedGlobal = globalThis;
30
+ }
31
+ if (typeof self !== strShimUndefined && self) {
32
+ _cachedGlobal = self;
33
+ }
34
+ if (typeof window !== strShimUndefined && window) {
35
+ _cachedGlobal = window;
36
+ }
37
+ if (typeof global !== strShimUndefined && global) {
38
+ _cachedGlobal = global;
39
+ }
36
40
  }
37
- return null;
41
+ return _cachedGlobal;
38
42
  }
39
43
  function throwTypeError(message) {
40
44
  throw new TypeError(message);
@@ -49,7 +53,7 @@
49
53
  }
50
54
  var type = typeof obj;
51
55
  if (type !== strShimObject && type !== strShimFunction) {
52
- throwTypeError('Object prototype may only be an Object:' + obj);
56
+ throwTypeError("Object prototype may only be an Object:" + obj);
53
57
  }
54
58
  function tmpFunc() { }
55
59
  tmpFunc[strShimPrototype] = obj;
@@ -427,7 +431,8 @@
427
431
  CannotParseAiBlobValue: 101,
428
432
  InvalidContentBlob: 102,
429
433
  TrackPageActionEventFailed: 103,
430
- FailedAddingCustomDefinedRequestContext: 104
434
+ FailedAddingCustomDefinedRequestContext: 104,
435
+ InMemoryStorageBufferFull: 105
431
436
  };
432
437
 
433
438
  var strOnPrefix = "on";
@@ -544,20 +549,20 @@
544
549
  }
545
550
  return str.replace(/^\s+|\s+$/g, "");
546
551
  }
547
- var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');
552
+ var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
548
553
  var _objKeysDontEnums = [
549
- 'toString',
550
- 'toLocaleString',
551
- 'valueOf',
552
- 'hasOwnProperty',
553
- 'isPrototypeOf',
554
- 'propertyIsEnumerable',
555
- 'constructor'
554
+ "toString",
555
+ "toLocaleString",
556
+ "valueOf",
557
+ "hasOwnProperty",
558
+ "isPrototypeOf",
559
+ "propertyIsEnumerable",
560
+ "constructor"
556
561
  ];
557
562
  function objKeys(obj) {
558
563
  var objType = typeof obj;
559
564
  if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
560
- throwTypeError('objKeys called on non-object');
565
+ throwTypeError("objKeys called on non-object");
561
566
  }
562
567
  var result = [];
563
568
  for (var prop in obj) {
@@ -764,7 +769,7 @@
764
769
  }
765
770
  function useXDomainRequest() {
766
771
  if (_useXDomainRequest === null) {
767
- _useXDomainRequest = (typeof XDomainRequest !== undefined);
772
+ _useXDomainRequest = (typeof XDomainRequest !== "undefined");
768
773
  if (_useXDomainRequest && isXhrSupported()) {
769
774
  _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst("XMLHttpRequest"), "withCredentials");
770
775
  }
@@ -782,15 +787,45 @@
782
787
  return isSupported;
783
788
  }
784
789
 
790
+ var _aiNamespace = null;
791
+ function _getExtensionNamespace() {
792
+ var target = getGlobalInst("Microsoft");
793
+ if (target) {
794
+ _aiNamespace = target["ApplicationInsights"];
795
+ }
796
+ return _aiNamespace;
797
+ }
798
+ function getDebugExt(config) {
799
+ var ns = _aiNamespace;
800
+ if (!ns && config.disableDbgExt !== true) {
801
+ ns = _aiNamespace || _getExtensionNamespace();
802
+ }
803
+ return ns ? ns["ChromeDbgExt"] : null;
804
+ }
805
+
785
806
  var AiNonUserActionablePrefix = "AI (Internal): ";
786
807
  var AiUserActionablePrefix = "AI: ";
787
808
  var AIInternalMessagePrefix = "AITR_";
809
+ var strErrorToConsole = "errorToConsole";
810
+ var strWarnToConsole = "warnToConsole";
788
811
  function _sanitizeDiagnosticText(text) {
789
812
  if (text) {
790
813
  return "\"" + text.replace(/\"/g, "") + "\"";
791
814
  }
792
815
  return "";
793
816
  }
817
+ function _logToConsole(func, message) {
818
+ var theConsole = getConsole();
819
+ if (!!theConsole) {
820
+ var logFunc = "log";
821
+ if (theConsole[func]) {
822
+ logFunc = func;
823
+ }
824
+ if (isFunction(theConsole[logFunc])) {
825
+ theConsole[logFunc](message);
826
+ }
827
+ }
828
+ }
794
829
  var _InternalLogMessage = /** @class */ (function () {
795
830
  function _InternalLogMessage(msgId, msg, isUserAct, properties) {
796
831
  if (isUserAct === void 0) { isUserAct = false; }
@@ -815,7 +850,7 @@
815
850
  }
816
851
  var DiagnosticLogger = /** @class */ (function () {
817
852
  function DiagnosticLogger(config) {
818
- this.identifier = 'DiagnosticLogger';
853
+ this.identifier = "DiagnosticLogger";
819
854
  this.queue = [];
820
855
  var _messageCount = 0;
821
856
  var _messageLogged = {};
@@ -823,10 +858,10 @@
823
858
  if (isNullOrUndefined(config)) {
824
859
  config = {};
825
860
  }
826
- _self.consoleLoggingLevel = function () { return _getConfigValue('loggingLevelConsole', 0); };
827
- _self.telemetryLoggingLevel = function () { return _getConfigValue('loggingLevelTelemetry', 1); };
828
- _self.maxInternalMessageLimit = function () { return _getConfigValue('maxMessageLimit', 25); };
829
- _self.enableDebugExceptions = function () { return _getConfigValue('enableDebugExceptions', false); };
861
+ _self.consoleLoggingLevel = function () { return _getConfigValue("loggingLevelConsole", 0); };
862
+ _self.telemetryLoggingLevel = function () { return _getConfigValue("loggingLevelTelemetry", 1); };
863
+ _self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
864
+ _self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
830
865
  _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
831
866
  if (isUserAct === void 0) { isUserAct = false; }
832
867
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
@@ -834,35 +869,35 @@
834
869
  throw message;
835
870
  }
836
871
  else {
872
+ var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;
837
873
  if (!isUndefined(message.message)) {
838
874
  var logLevel = _self.consoleLoggingLevel();
839
875
  if (isUserAct) {
840
876
  var messageKey = +message.messageId;
841
- if (!_messageLogged[messageKey] && logLevel >= LoggingSeverity.WARNING) {
842
- _self.warnToConsole(message.message);
877
+ if (!_messageLogged[messageKey] && logLevel >= severity) {
878
+ _self[logFunc](message.message);
843
879
  _messageLogged[messageKey] = true;
844
880
  }
845
881
  }
846
882
  else {
847
- if (logLevel >= LoggingSeverity.WARNING) {
848
- _self.warnToConsole(message.message);
883
+ if (logLevel >= severity) {
884
+ _self[logFunc](message.message);
849
885
  }
850
886
  }
851
887
  _self.logInternalMessage(severity, message);
852
888
  }
889
+ else {
890
+ _debugExtMsg("throw" + (severity === LoggingSeverity.CRITICAL ? "Critical" : "Warning"), message);
891
+ }
853
892
  }
854
893
  };
855
894
  _self.warnToConsole = function (message) {
856
- var theConsole = getConsole();
857
- if (!!theConsole) {
858
- var logFunc = 'log';
859
- if (theConsole.warn) {
860
- logFunc = 'warn';
861
- }
862
- if (isFunction(theConsole[logFunc])) {
863
- theConsole[logFunc](message);
864
- }
865
- }
895
+ _logToConsole("warn", message);
896
+ _debugExtMsg("warning", message);
897
+ };
898
+ _self.errorToConsole = function (message) {
899
+ _logToConsole("error", message);
900
+ _debugExtMsg("error", message);
866
901
  };
867
902
  _self.resetInternalMessageCount = function () {
868
903
  _messageCount = 0;
@@ -884,12 +919,18 @@
884
919
  if (severity <= _self.telemetryLoggingLevel()) {
885
920
  _self.queue.push(message);
886
921
  _messageCount++;
922
+ _debugExtMsg((severity === LoggingSeverity.CRITICAL ? "error" : "warn"), message);
887
923
  }
888
924
  if (_messageCount === _self.maxInternalMessageLimit()) {
889
925
  var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
890
926
  var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);
891
927
  _self.queue.push(throttleMessage);
892
- _self.warnToConsole(throttleLimitMessage);
928
+ if (severity === LoggingSeverity.CRITICAL) {
929
+ _self.errorToConsole(throttleLimitMessage);
930
+ }
931
+ else {
932
+ _self.warnToConsole(throttleLimitMessage);
933
+ }
893
934
  }
894
935
  }
895
936
  };
@@ -903,6 +944,12 @@
903
944
  function _areInternalMessagesThrottled() {
904
945
  return _messageCount >= _self.maxInternalMessageLimit();
905
946
  }
947
+ function _debugExtMsg(name, data) {
948
+ var dbgExt = getDebugExt(config);
949
+ if (dbgExt && dbgExt.diagLog) {
950
+ dbgExt.diagLog(name, data);
951
+ }
952
+ }
906
953
  });
907
954
  }
908
955
  return DiagnosticLogger;
@@ -919,7 +966,7 @@
919
966
  _self.isChildEvt = function () { return false; };
920
967
  if (isFunction(payloadDetails)) {
921
968
  var theDetails_1;
922
- accessorDefined = objDefineAccessors(_self, 'payload', function () {
969
+ accessorDefined = objDefineAccessors(_self, "payload", function () {
923
970
  if (!theDetails_1 && isFunction(payloadDetails)) {
924
971
  theDetails_1 = payloadDetails();
925
972
  payloadDetails = null;
@@ -1267,6 +1314,9 @@
1267
1314
  return BaseTelemetryPlugin;
1268
1315
  }());
1269
1316
 
1317
+ var strVisibilityChangeEvt = "visibilitychange";
1318
+ var strPageHide = "pagehide";
1319
+ var strPageShow = "pageshow";
1270
1320
  function addEventHandler(eventName, callback) {
1271
1321
  var result = false;
1272
1322
  var w = getWindow();
@@ -1280,6 +1330,67 @@
1280
1330
  }
1281
1331
  return result;
1282
1332
  }
1333
+ function addEventListeners(events, listener, excludeEvents) {
1334
+ var added = false;
1335
+ if (listener && events && isArray(events)) {
1336
+ var excluded_1 = [];
1337
+ arrForEach(events, function (name) {
1338
+ if (isString(name)) {
1339
+ if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
1340
+ added = addEventHandler(name, listener) || added;
1341
+ }
1342
+ else {
1343
+ excluded_1.push(name);
1344
+ }
1345
+ }
1346
+ });
1347
+ if (!added && excluded_1.length > 0) {
1348
+ added = addEventListeners(excluded_1, listener);
1349
+ }
1350
+ }
1351
+ return added;
1352
+ }
1353
+ function addPageUnloadEventListener(listener, excludeEvents) {
1354
+ return addEventListeners(["beforeunload", "unload", "pagehide"], listener, excludeEvents);
1355
+ }
1356
+ function addPageHideEventListener(listener, excludeEvents) {
1357
+ function _handlePageVisibility(evt) {
1358
+ var doc = getDocument();
1359
+ if (listener && doc && doc.visibilityState === "hidden") {
1360
+ listener(evt);
1361
+ }
1362
+ }
1363
+ var pageUnloadAdded = false;
1364
+ if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {
1365
+ pageUnloadAdded = addEventHandler(strPageHide, listener);
1366
+ }
1367
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1368
+ pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;
1369
+ }
1370
+ if (!pageUnloadAdded && excludeEvents) {
1371
+ pageUnloadAdded = addPageHideEventListener(listener);
1372
+ }
1373
+ return pageUnloadAdded;
1374
+ }
1375
+ function addPageShowEventListener(listener, excludeEvents) {
1376
+ function _handlePageVisibility(evt) {
1377
+ var doc = getDocument();
1378
+ if (listener && doc && doc.visibilityState === "visible") {
1379
+ listener(evt);
1380
+ }
1381
+ }
1382
+ var pageShowAdded = false;
1383
+ if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {
1384
+ pageShowAdded = addEventHandler(strPageShow, listener);
1385
+ }
1386
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1387
+ pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;
1388
+ }
1389
+ if (!pageShowAdded && excludeEvents) {
1390
+ pageShowAdded = addPageShowEventListener(listener);
1391
+ }
1392
+ return pageShowAdded;
1393
+ }
1283
1394
  function perfNow() {
1284
1395
  var perf = getPerformance();
1285
1396
  if (perf && perf.now) {
@@ -1326,8 +1437,10 @@
1326
1437
  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 });
1327
1438
 
1328
1439
  var _a$1;
1329
- var Version = '3.1.6';
1440
+ var Version = '3.1.10';
1330
1441
  var FullVersionString = "1DS-Web-JS-" + Version;
1442
+ var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1443
+ var strWithCredentials = "withCredentials";
1331
1444
  var _fieldTypeEventPropMap = (_a$1 = {},
1332
1445
  _a$1[0 ] = EventPropertyType.Unspecified,
1333
1446
  _a$1[2 ] = EventPropertyType.Double,
@@ -1462,31 +1575,6 @@
1462
1575
  function isArrayValid(value) {
1463
1576
  return value.length > 0;
1464
1577
  }
1465
- function addPageHideEventListener(listener) {
1466
- function _handlePageVisibility(evt) {
1467
- var doc = getDocument();
1468
- if (listener && doc && doc.visibilityState === 'hidden') {
1469
- listener(evt);
1470
- }
1471
- }
1472
- var pageUnloadAdded = addEventHandler("pagehide", listener);
1473
- return addEventHandler("visibilitychange", _handlePageVisibility) || pageUnloadAdded;
1474
- }
1475
- function addPageShowEventListener(listener) {
1476
- function _handlePageVisibility(evt) {
1477
- var doc = getDocument();
1478
- if (listener && doc && doc.visibilityState === 'visible') {
1479
- listener(evt);
1480
- }
1481
- }
1482
- var pageUnloadAdded = addEventHandler("pageshow", listener);
1483
- return addEventHandler("visibilitychange", _handlePageVisibility) || pageUnloadAdded;
1484
- }
1485
- function addPageUnloadEventListener(listener) {
1486
- var pageUnloadAdded = addEventHandler("beforeunload", listener);
1487
- pageUnloadAdded = addEventHandler("unload", listener) || pageUnloadAdded;
1488
- return addEventHandler("pagehide", listener) || pageUnloadAdded;
1489
- }
1490
1578
  function setProcessTelemetryTimings(event, identifier) {
1491
1579
  var evt = event;
1492
1580
  evt.timings = evt.timings || {};
@@ -1524,47 +1612,109 @@
1524
1612
  function isChromium() {
1525
1613
  return !!getGlobalInst("chrome");
1526
1614
  }
1615
+ function openXhr(method, urlString, withCredentials, disabled, isSync) {
1616
+ if (disabled === void 0) { disabled = false; }
1617
+ if (isSync === void 0) { isSync = false; }
1618
+ function _wrapSetXhrProp(xhr, prop, value) {
1619
+ try {
1620
+ xhr[prop] = value;
1621
+ }
1622
+ catch (e) {
1623
+ }
1624
+ }
1625
+ var xhr = new XMLHttpRequest();
1626
+ if (disabled) {
1627
+ _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);
1628
+ }
1629
+ if (withCredentials) {
1630
+ _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
1631
+ }
1632
+ xhr.open(method, urlString, !isSync);
1633
+ if (withCredentials) {
1634
+ _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
1635
+ }
1636
+ return xhr;
1637
+ }
1527
1638
 
1528
1639
  var RT_PROFILE = "REAL_TIME";
1529
1640
  var NRT_PROFILE = "NEAR_REAL_TIME";
1530
1641
  var BE_PROFILE = "BEST_EFFORT";
1531
1642
 
1643
+ var Method = "POST";
1644
+ var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1645
+ var strDropped = "drop";
1646
+ var strSending = "send";
1647
+ var strRequeue = "requeue";
1648
+ var strResponseFail = "rspFail";
1649
+ var strOther = "oth";
1650
+ var defaultCacheControl = "no-cache, no-store";
1651
+ var defaultContentType = "application/x-json-stream";
1652
+ var strCacheControl = "cache-control";
1653
+ var strContentTypeHeader = "content-type";
1654
+ var strKillTokensHeader = "kill-tokens";
1655
+ var strKillDurationHeader = "kill-duration";
1656
+ var strKillDurationSecondsHeader = "kill-duration-seconds";
1657
+ var strTimeDeltaHeader = "time-delta-millis";
1658
+ var strClientVersion = "client-version";
1659
+ var strClientId = "client-id";
1660
+ var strTimeDeltaToApply = "time-delta-to-apply-millis";
1661
+ var strUploadTime = "upload-time";
1662
+ var strApiKey = "apikey";
1663
+ var strMsaDeviceTicket = "AuthMsaDeviceTicket";
1664
+ var strMsfpc = "msfpc";
1665
+
1666
+ function _getEventMsfpc(theEvent) {
1667
+ var intWeb = ((theEvent.ext || {})["intweb"]);
1668
+ if (intWeb && isValueAssigned(intWeb[strMsfpc])) {
1669
+ return intWeb[strMsfpc];
1670
+ }
1671
+ return null;
1672
+ }
1673
+ function _getMsfpc(theEvents) {
1674
+ var msfpc = null;
1675
+ for (var lp = 0; msfpc === null && lp < theEvents.length; lp++) {
1676
+ msfpc = _getEventMsfpc(theEvents[lp]);
1677
+ }
1678
+ return msfpc;
1679
+ }
1532
1680
  var EventBatch = /** @class */ (function () {
1533
1681
  function EventBatch(iKey, addEvents) {
1534
1682
  var events = addEvents ? [].concat(addEvents) : [];
1535
1683
  var _self = this;
1684
+ var _msfpc = _getMsfpc(events);
1536
1685
  _self.iKey = function () {
1537
1686
  return iKey;
1538
1687
  };
1688
+ _self.Msfpc = function () {
1689
+ return _msfpc || "";
1690
+ };
1539
1691
  _self.count = function () {
1540
1692
  return events.length;
1541
1693
  };
1542
1694
  _self.events = function () {
1543
1695
  return events;
1544
1696
  };
1545
- _self.addEvents = function (theEvents, append) {
1546
- if (append === void 0) { append = true; }
1547
- if (theEvents && theEvents.length > 0) {
1548
- if (append) {
1549
- events = events.concat(theEvents);
1550
- }
1551
- else {
1552
- events = theEvents.concat(events);
1697
+ _self.addEvent = function (theEvent) {
1698
+ if (theEvent) {
1699
+ events.push(theEvent);
1700
+ if (!_msfpc) {
1701
+ _msfpc = _getEventMsfpc(theEvent);
1553
1702
  }
1554
- return theEvents.length;
1703
+ return true;
1555
1704
  }
1556
- return 0;
1705
+ return false;
1557
1706
  };
1558
1707
  _self.split = function (fromEvent, numEvents) {
1559
- var newBatch = new EventBatch(iKey);
1708
+ var theEvents;
1560
1709
  if (fromEvent < events.length) {
1561
1710
  var cnt = events.length - fromEvent;
1562
1711
  if (!isNullOrUndefined(numEvents)) {
1563
1712
  cnt = numEvents < cnt ? numEvents : cnt;
1564
1713
  }
1565
- newBatch.addEvents(events.splice(fromEvent, cnt), true);
1714
+ theEvents = events.splice(fromEvent, cnt);
1715
+ _msfpc = _getMsfpc(events);
1566
1716
  }
1567
- return newBatch;
1717
+ return new EventBatch(iKey, theEvents);
1568
1718
  };
1569
1719
  }
1570
1720
  EventBatch.create = function (iKey, theEvents) {
@@ -1934,21 +2084,6 @@
1934
2084
  var EVTClockSkewManager = ClockSkewManager;
1935
2085
 
1936
2086
  var _a;
1937
- var Method = "POST";
1938
- var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1939
- var strDropped = "drop";
1940
- var strSending = "send";
1941
- var strRequeue = "requeue";
1942
- var strResponseFail = "rspFail";
1943
- var strOther = "oth";
1944
- var defaultCacheControl = "no-cache, no-store";
1945
- var defaultContentType = "application/x-json-stream";
1946
- var strCacheControl = "cache-control";
1947
- var strContentTypeHeader = "content-type";
1948
- var strKillTokensHeader = "kill-tokens";
1949
- var strKillDurationHeader = "kill-duration";
1950
- var strKillDurationSecondsHeader = "kill-duration-seconds";
1951
- var strTimeDeltaHeader = "time-delta-millis";
1952
2087
  var _eventActionMap = (_a = {},
1953
2088
  _a[1 ] = strRequeue,
1954
2089
  _a[100 ] = strRequeue,
@@ -1956,6 +2091,13 @@
1956
2091
  _a[8004 ] = strDropped,
1957
2092
  _a[8003 ] = strDropped,
1958
2093
  _a);
2094
+ var _collectorQsHeaders = {};
2095
+ var _collectorHeaderToQs = {};
2096
+ function _addCollectorHeaderQsMapping(qsName, headerName) {
2097
+ _collectorQsHeaders[qsName] = headerName;
2098
+ _collectorHeaderToQs[headerName] = qsName;
2099
+ }
2100
+ _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket);
1959
2101
  function _getResponseText(xhr) {
1960
2102
  try {
1961
2103
  return xhr.responseText;
@@ -1982,11 +2124,21 @@
1982
2124
  }
1983
2125
  return hasHeader;
1984
2126
  }
2127
+ function _addRequestDetails(details, name, value, useHeaders) {
2128
+ if (name && value && value.length > 0) {
2129
+ if (useHeaders && _collectorQsHeaders[name]) {
2130
+ details.hdrs[_collectorQsHeaders[name]] = value;
2131
+ details.useHdrs = true;
2132
+ }
2133
+ else {
2134
+ details.url += "&" + name + "=" + value;
2135
+ }
2136
+ }
2137
+ }
1985
2138
  var HttpManager = /** @class */ (function () {
1986
2139
  function HttpManager(maxEventsPerBatch, maxConnections, maxRetries, actions) {
1987
2140
  this._responseHandlers = [];
1988
- var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType + "&client-id=NO_AUTH&client-version="
1989
- + FullVersionString;
2141
+ var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
1990
2142
  var _killSwitch = new EVTKillSwitch();
1991
2143
  var _paused = false;
1992
2144
  var _clockSkewManager = new EVTClockSkewManager();
@@ -2003,6 +2155,7 @@
2003
2155
  var _enableEventTimings = false;
2004
2156
  var _cookieMgr;
2005
2157
  var _isUnloading = false;
2158
+ var _useHeaders = false;
2006
2159
  dynamicProto(HttpManager, this, function (_self) {
2007
2160
  var _sendCredentials = true;
2008
2161
  _self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
@@ -2011,6 +2164,7 @@
2011
2164
  channelConfig = {};
2012
2165
  }
2013
2166
  _urlString = endpointUrl + _urlString;
2167
+ _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : false;
2014
2168
  _core = core;
2015
2169
  _cookieMgr = core.getCookieMgr();
2016
2170
  _enableEventTimings = !_core.config.disableEventTimings;
@@ -2119,6 +2273,8 @@
2119
2273
  }
2120
2274
  function _fetchSendPost(payload, oncomplete, sync) {
2121
2275
  var _a;
2276
+ var ignoreResponse = false;
2277
+ var responseHandled = false;
2122
2278
  var requestInit = (_a = {
2123
2279
  body: payload.data,
2124
2280
  method: Method
@@ -2127,6 +2283,9 @@
2127
2283
  _a);
2128
2284
  if (sync) {
2129
2285
  requestInit.keepalive = true;
2286
+ if (payload._sendReason === 2 ) {
2287
+ ignoreResponse = true;
2288
+ }
2130
2289
  }
2131
2290
  if (_sendCredentials) {
2132
2291
  requestInit.credentials = "include";
@@ -2147,11 +2306,21 @@
2147
2306
  responseText = text;
2148
2307
  });
2149
2308
  }
2150
- _doOnComplete(oncomplete, response.status, headerMap, responseText);
2151
- _handleCollectorResponse(responseText);
2309
+ if (!responseHandled) {
2310
+ responseHandled = true;
2311
+ _doOnComplete(oncomplete, response.status, headerMap, responseText);
2312
+ _handleCollectorResponse(responseText);
2313
+ }
2152
2314
  })["catch"](function (error) {
2153
- _doOnComplete(oncomplete, 0, {});
2315
+ if (!responseHandled) {
2316
+ responseHandled = true;
2317
+ _doOnComplete(oncomplete, 0, {});
2318
+ }
2154
2319
  });
2320
+ if (ignoreResponse && !responseHandled) {
2321
+ responseHandled = true;
2322
+ _doOnComplete(oncomplete, 200, {});
2323
+ }
2155
2324
  }
2156
2325
  function _xhrSendPost(payload, oncomplete, sync) {
2157
2326
  function _appendHeader(theHeaders, xhr, name) {
@@ -2178,16 +2347,7 @@
2178
2347
  function xhrComplete(xhr, responseTxt) {
2179
2348
  _doOnComplete(oncomplete, xhr.status, _getAllResponseHeaders(xhr), responseTxt);
2180
2349
  }
2181
- var xhRequest = new XMLHttpRequest();
2182
- try {
2183
- xhRequest[DisabledPropertyName] = true;
2184
- }
2185
- catch (e) {
2186
- }
2187
- if (_sendCredentials) {
2188
- xhRequest.withCredentials = true;
2189
- }
2190
- xhRequest.open(Method, payload.urlString, !sync);
2350
+ var xhRequest = openXhr(Method, payload.urlString, _sendCredentials, true, sync);
2191
2351
  objForEachKey(payload.headers, function (name, value) {
2192
2352
  xhRequest.setRequestHeader(name, value);
2193
2353
  });
@@ -2410,8 +2570,16 @@
2410
2570
  _postManager.diagLog().throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.CannotSerializeObject, "Unexpected Exception sending batch: " + dumpObj(ex));
2411
2571
  }
2412
2572
  }
2413
- function _buildQueryString(thePayload) {
2414
- var urlString = _urlString;
2573
+ function _buildRequestDetails(thePayload, useHeaders) {
2574
+ var requestDetails = {
2575
+ url: _urlString,
2576
+ hdrs: {},
2577
+ useHdrs: false
2578
+ };
2579
+ requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
2580
+ requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
2581
+ _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
2582
+ _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
2415
2583
  var apiQsKeys = "";
2416
2584
  arrForEach(thePayload.apiKeys, function (apiKey) {
2417
2585
  if (apiQsKeys.length > 0) {
@@ -2419,27 +2587,25 @@
2419
2587
  }
2420
2588
  apiQsKeys += apiKey;
2421
2589
  });
2422
- if (apiQsKeys.length > 0) {
2423
- urlString += "&apikey=" + apiQsKeys;
2424
- }
2425
- urlString += "&upload-time=" + dateNow().toString();
2590
+ _addRequestDetails(requestDetails, strApiKey, apiQsKeys, useHeaders);
2591
+ _addRequestDetails(requestDetails, strUploadTime, dateNow().toString(), useHeaders);
2426
2592
  var msfpc = _getMsfpc(thePayload);
2427
2593
  if (isValueAssigned(msfpc)) {
2428
- urlString = urlString + "&ext.intweb.msfpc=" + msfpc;
2594
+ requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
2429
2595
  }
2430
2596
  if (_clockSkewManager.shouldAddClockSkewHeaders()) {
2431
- urlString += "&time-delta-to-apply-millis=" + _clockSkewManager.getClockSkewHeaderValue();
2597
+ _addRequestDetails(requestDetails, strTimeDeltaToApply, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
2432
2598
  }
2433
2599
  if (_core.getWParam) {
2434
2600
  var wParam = _core.getWParam();
2435
2601
  if (wParam >= 0) {
2436
- urlString += "&w=" + wParam;
2602
+ requestDetails.url += "&w=" + wParam;
2437
2603
  }
2438
2604
  }
2439
2605
  for (var i = 0; i < _queryStringParameters.length; i++) {
2440
- urlString += "&" + _queryStringParameters[i].name + "=" + _queryStringParameters[i].value;
2606
+ requestDetails.url += "&" + _queryStringParameters[i].name + "=" + _queryStringParameters[i].value;
2441
2607
  }
2442
- return urlString;
2608
+ return requestDetails;
2443
2609
  }
2444
2610
  function _canUseSendBeaconApi() {
2445
2611
  return !_customHttpInterface && _useBeacons && isBeaconsSupported();
@@ -2450,7 +2616,17 @@
2450
2616
  }
2451
2617
  function _doPayloadSend(thePayload, serializationStart, serializationCompleted, sendReason) {
2452
2618
  if (thePayload && thePayload.payloadBlob && thePayload.payloadBlob.length > 0) {
2453
- var urlString_1 = _buildQueryString(thePayload);
2619
+ var useSendHook_1 = !!_self.sendHook;
2620
+ var sendInterface_1 = _sendInterfaces[thePayload.sendType];
2621
+ if (!_isBeaconPayload(thePayload.sendType) && thePayload.isBeacon && thePayload.sendReason === 2 ) {
2622
+ sendInterface_1 = _sendInterfaces[2 ] || _sendInterfaces[3 ] || sendInterface_1;
2623
+ }
2624
+ var useHeaders_1 = _useHeaders;
2625
+ if (thePayload.isBeacon || sendInterface_1._transport === 3 ) {
2626
+ useHeaders_1 = false;
2627
+ }
2628
+ var requestDetails_1 = _buildRequestDetails(thePayload, useHeaders_1);
2629
+ useHeaders_1 = useHeaders_1 || requestDetails_1.useHdrs;
2454
2630
  var sendEventStart_1 = getTime();
2455
2631
  var strSendAttempt_1 = "sendAttempt";
2456
2632
  doPerf(_core, function () { return "HttpManager:_doPayloadSend"; }, function () {
@@ -2471,24 +2647,21 @@
2471
2647
  _sendBatchesNotification(thePayload.batches, (1000 + (sendReason || 0 )), thePayload.sendType, true);
2472
2648
  var orgPayloadData = {
2473
2649
  data: thePayload.payloadBlob,
2474
- urlString: urlString_1,
2475
- headers: extend({}, _headers),
2650
+ urlString: requestDetails_1.url,
2651
+ headers: requestDetails_1.hdrs,
2476
2652
  _thePayload: thePayload,
2477
2653
  _sendReason: sendReason
2478
2654
  };
2479
- if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
2480
- orgPayloadData.headers[strCacheControl] = defaultCacheControl;
2481
- }
2482
- if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
2483
- orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
2655
+ if (useHeaders_1) {
2656
+ if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
2657
+ orgPayloadData.headers[strCacheControl] = defaultCacheControl;
2658
+ }
2659
+ if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
2660
+ orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
2661
+ }
2484
2662
  }
2485
2663
  var sender = null;
2486
- var useSendHook = !!_self.sendHook;
2487
- var sendInterface = _sendInterfaces[thePayload.sendType];
2488
- if (!_isBeaconPayload(thePayload.sendType) && thePayload.isBeacon && thePayload.sendReason === 2 ) {
2489
- sendInterface = _sendInterfaces[2 ] || _sendInterfaces[3 ] || sendInterface;
2490
- }
2491
- if (sendInterface) {
2664
+ if (sendInterface_1) {
2492
2665
  sender = function (payload) {
2493
2666
  _clockSkewManager.firstRequestSent();
2494
2667
  var onComplete = function (status, headers) {
@@ -2496,7 +2669,7 @@
2496
2669
  };
2497
2670
  var isSync = thePayload.isTeardown || thePayload.isSync;
2498
2671
  try {
2499
- sendInterface.sendPOST(payload, onComplete, isSync);
2672
+ sendInterface_1.sendPOST(payload, onComplete, isSync);
2500
2673
  if (_self.sendListener) {
2501
2674
  _self.sendListener(orgPayloadData, payload, isSync, thePayload.isBeacon);
2502
2675
  }
@@ -2512,11 +2685,11 @@
2512
2685
  if (thePayload.sendType === 0 ) {
2513
2686
  _outstandingRequests++;
2514
2687
  }
2515
- if (useSendHook && !thePayload.isBeacon && sendInterface._transport !== 3 ) {
2688
+ if (useSendHook_1 && !thePayload.isBeacon && sendInterface_1._transport !== 3 ) {
2516
2689
  var hookData_1 = {
2517
2690
  data: orgPayloadData.data,
2518
2691
  urlString: orgPayloadData.urlString,
2519
- headers: orgPayloadData.headers
2692
+ headers: extend({}, orgPayloadData.headers)
2520
2693
  };
2521
2694
  var senderCalled_1 = false;
2522
2695
  doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
@@ -2679,12 +2852,9 @@
2679
2852
  }
2680
2853
  function _getMsfpc(thePayload) {
2681
2854
  for (var lp = 0; lp < thePayload.batches.length; lp++) {
2682
- var batchEvents = thePayload.batches[lp].events();
2683
- for (var evtLp = 0; evtLp < batchEvents.length; evtLp++) {
2684
- var intWeb = ((batchEvents[evtLp].ext || {})["intweb"] || {});
2685
- if (isValueAssigned(intWeb["msfpc"])) {
2686
- return encodeURIComponent(intWeb["msfpc"]);
2687
- }
2855
+ var msfpc = thePayload.batches[lp].Msfpc();
2856
+ if (msfpc) {
2857
+ return encodeURIComponent(msfpc);
2688
2858
  }
2689
2859
  }
2690
2860
  return "";
@@ -2702,8 +2872,8 @@
2702
2872
  }
2703
2873
  if (responseText) {
2704
2874
  var response = JSON.parse(responseText);
2705
- if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult.msfpc)) {
2706
- _cookieMgr.set("MSFPC", response.webResult.msfpc, 365 * 86400);
2875
+ if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[strMsfpc])) {
2876
+ _cookieMgr.set("MSFPC", response.webResult[strMsfpc], 365 * 86400);
2707
2877
  }
2708
2878
  }
2709
2879
  }
@@ -2748,7 +2918,6 @@
2748
2918
  }
2749
2919
  return HttpManager;
2750
2920
  }());
2751
- var HttpManager$1 = HttpManager;
2752
2921
 
2753
2922
  var FlushCheckTimer = 0.250;
2754
2923
  var MaxNumberEventPerBatch = 500;
@@ -2766,7 +2935,7 @@
2766
2935
  var _this = _super.call(this) || this;
2767
2936
  _this.identifier = "PostChannel";
2768
2937
  _this.priority = 1011;
2769
- _this.version = '3.1.6';
2938
+ _this.version = '3.1.10';
2770
2939
  var _config;
2771
2940
  var _isTeardownCalled = false;
2772
2941
  var _flushCallbackQueue = [];
@@ -2795,7 +2964,7 @@
2795
2964
  _initializeProfiles();
2796
2965
  _clearQueues();
2797
2966
  _setAutoLimits();
2798
- _httpManager = new HttpManager$1(MaxNumberEventPerBatch, MaxConnections, MaxRetries, {
2967
+ _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRetries, {
2799
2968
  requeue: _requeueEvents,
2800
2969
  send: _sendingEvent,
2801
2970
  sent: _eventsSentEvent,
@@ -2854,12 +3023,13 @@
2854
3023
  }
2855
3024
  _releaseAllQueues(2 , 2 );
2856
3025
  }
2857
- addPageUnloadEventListener(_handleUnloadEvents);
2858
- addPageHideEventListener(_handleUnloadEvents);
3026
+ var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
3027
+ addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents);
3028
+ addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents);
2859
3029
  addPageShowEventListener(function (evt) {
2860
3030
  _isPageUnloadTriggered = false;
2861
3031
  _httpManager.setUnloading(_isPageUnloadTriggered);
2862
- });
3032
+ }, coreConfig.disablePageShowEvents);
2863
3033
  _self.setInitialized(true);
2864
3034
  }, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
2865
3035
  };
@@ -3038,7 +3208,7 @@
3038
3208
  }
3039
3209
  };
3040
3210
  _self.setMsaAuthTicket = function (ticket) {
3041
- _httpManager.addHeader("AuthMsaDeviceTicket", ticket);
3211
+ _httpManager.addHeader(strMsaDeviceTicket, ticket);
3042
3212
  };
3043
3213
  _self.hasEvents = _hasEvents;
3044
3214
  _self._setTransmitProfile = function (profileName) {
@@ -3175,7 +3345,7 @@
3175
3345
  }
3176
3346
  var latency = event.latency;
3177
3347
  var eventBatch = _getEventBatch(event.iKey, latency, true);
3178
- if (eventBatch.addEvents([event], append)) {
3348
+ if (eventBatch.addEvent(event)) {
3179
3349
  if (latency !== EventLatency.Immediate) {
3180
3350
  _queueSize++;
3181
3351
  if (append && event.sendAttempt === 0) {
@@ -3424,5 +3594,5 @@
3424
3594
 
3425
3595
  (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 });
3426
3596
 
3427
- })));
3428
- //# sourceMappingURL=ms.post-test.js.map
3597
+ }));
3598
+ //# sourceMappingURL=ms.post-3.1.10.js.map