@microsoft/applicationinsights-common 3.1.1-nightly3.2403-01 → 3.1.1-nightly3.2403-03

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 (111) hide show
  1. package/browser/es5/applicationinsights-common.cjs.js +876 -29
  2. package/browser/es5/applicationinsights-common.cjs.js.map +1 -1
  3. package/browser/es5/applicationinsights-common.cjs.min.js +2 -2
  4. package/browser/es5/applicationinsights-common.cjs.min.js.map +1 -1
  5. package/browser/es5/applicationinsights-common.gbl.js +878 -31
  6. package/browser/es5/applicationinsights-common.gbl.js.map +1 -1
  7. package/browser/es5/applicationinsights-common.gbl.min.js +2 -2
  8. package/browser/es5/applicationinsights-common.gbl.min.js.map +1 -1
  9. package/browser/es5/applicationinsights-common.integrity.json +25 -25
  10. package/browser/es5/applicationinsights-common.js +878 -31
  11. package/browser/es5/applicationinsights-common.js.map +1 -1
  12. package/browser/es5/applicationinsights-common.min.js +2 -2
  13. package/browser/es5/applicationinsights-common.min.js.map +1 -1
  14. package/dist/es5/applicationinsights-common.js +876 -29
  15. package/dist/es5/applicationinsights-common.js.map +1 -1
  16. package/dist/es5/applicationinsights-common.min.js +2 -2
  17. package/dist/es5/applicationinsights-common.min.js.map +1 -1
  18. package/dist-es5/ConnectionStringParser.js +5 -5
  19. package/dist-es5/ConnectionStringParser.js.map +1 -1
  20. package/dist-es5/Constants.js +1 -1
  21. package/dist-es5/DomHelperFuncs.js +1 -1
  22. package/dist-es5/Enums.js +1 -1
  23. package/dist-es5/HelperFuncs.js +1 -1
  24. package/dist-es5/Interfaces/ConnectionString.js +1 -1
  25. package/dist-es5/Interfaces/Context/IApplication.js +1 -1
  26. package/dist-es5/Interfaces/Context/IDevice.js +1 -1
  27. package/dist-es5/Interfaces/Context/IInternal.js +1 -1
  28. package/dist-es5/Interfaces/Context/ILocation.js +1 -1
  29. package/dist-es5/Interfaces/Context/IOperatingSystem.js +1 -1
  30. package/dist-es5/Interfaces/Context/ISample.js +1 -1
  31. package/dist-es5/Interfaces/Context/ISession.js +1 -1
  32. package/dist-es5/Interfaces/Context/ISessionManager.js +1 -1
  33. package/dist-es5/Interfaces/Context/ITelemetryTrace.js +1 -1
  34. package/dist-es5/Interfaces/Context/IUser.js +1 -1
  35. package/dist-es5/Interfaces/Context/IWeb.js +1 -1
  36. package/dist-es5/Interfaces/Contracts/AvailabilityData.js +1 -1
  37. package/dist-es5/Interfaces/Contracts/ContextTagKeys.js +1 -1
  38. package/dist-es5/Interfaces/Contracts/DataPointType.js +1 -1
  39. package/dist-es5/Interfaces/Contracts/DependencyKind.js +1 -1
  40. package/dist-es5/Interfaces/Contracts/DependencySourceType.js +1 -1
  41. package/dist-es5/Interfaces/Contracts/IBase.js +1 -1
  42. package/dist-es5/Interfaces/Contracts/IData.js +1 -1
  43. package/dist-es5/Interfaces/Contracts/IDataPoint.js +1 -1
  44. package/dist-es5/Interfaces/Contracts/IDomain.js +1 -1
  45. package/dist-es5/Interfaces/Contracts/IEnvelope.js +1 -1
  46. package/dist-es5/Interfaces/Contracts/IEventData.js +1 -1
  47. package/dist-es5/Interfaces/Contracts/IExceptionData.js +1 -1
  48. package/dist-es5/Interfaces/Contracts/IExceptionDetails.js +1 -1
  49. package/dist-es5/Interfaces/Contracts/IMessageData.js +1 -1
  50. package/dist-es5/Interfaces/Contracts/IMetricData.js +1 -1
  51. package/dist-es5/Interfaces/Contracts/IPageViewData.js +1 -1
  52. package/dist-es5/Interfaces/Contracts/IPageViewPerfData.js +1 -1
  53. package/dist-es5/Interfaces/Contracts/IRemoteDependencyData.js +1 -1
  54. package/dist-es5/Interfaces/Contracts/IStackFrame.js +1 -1
  55. package/dist-es5/Interfaces/Contracts/RequestData.js +1 -1
  56. package/dist-es5/Interfaces/Contracts/SeverityLevel.js +1 -1
  57. package/dist-es5/Interfaces/IAppInsights.js +1 -1
  58. package/dist-es5/Interfaces/IConfig.js +1 -1
  59. package/dist-es5/Interfaces/ICorrelationConfig.js +1 -1
  60. package/dist-es5/Interfaces/IDependencyTelemetry.js +1 -1
  61. package/dist-es5/Interfaces/IEventTelemetry.js +1 -1
  62. package/dist-es5/Interfaces/IExceptionTelemetry.js +1 -1
  63. package/dist-es5/Interfaces/IMetricTelemetry.js +1 -1
  64. package/dist-es5/Interfaces/IPageViewPerformanceTelemetry.js +1 -1
  65. package/dist-es5/Interfaces/IPageViewTelemetry.js +1 -1
  66. package/dist-es5/Interfaces/IPartC.js +1 -1
  67. package/dist-es5/Interfaces/IPropertiesPlugin.js +1 -1
  68. package/dist-es5/Interfaces/IRequestContext.js +1 -1
  69. package/dist-es5/Interfaces/ISenderPostManager.js +6 -0
  70. package/dist-es5/Interfaces/ISenderPostManager.js.map +1 -0
  71. package/dist-es5/Interfaces/IStorageBuffer.js +1 -1
  72. package/dist-es5/Interfaces/ITelemetryContext.js +1 -1
  73. package/dist-es5/Interfaces/IThrottleMgr.js +1 -1
  74. package/dist-es5/Interfaces/ITraceTelemetry.js +1 -1
  75. package/dist-es5/Interfaces/IXDomainRequest.js +6 -0
  76. package/dist-es5/Interfaces/IXDomainRequest.js.map +1 -0
  77. package/dist-es5/Interfaces/PartAExtensions.js +1 -1
  78. package/dist-es5/Interfaces/Telemetry/IEnvelope.js +1 -1
  79. package/dist-es5/Interfaces/Telemetry/ISerializable.js +1 -1
  80. package/dist-es5/Offline.js +1 -1
  81. package/dist-es5/RequestResponseHeaders.js +1 -1
  82. package/dist-es5/SenderPostManager.js +456 -0
  83. package/dist-es5/SenderPostManager.js.map +1 -0
  84. package/dist-es5/StorageHelperFuncs.js +1 -1
  85. package/dist-es5/Telemetry/Common/Data.js +1 -1
  86. package/dist-es5/Telemetry/Common/DataPoint.js +1 -1
  87. package/dist-es5/Telemetry/Common/DataSanitizer.js +1 -1
  88. package/dist-es5/Telemetry/Common/Envelope.js +3 -3
  89. package/dist-es5/Telemetry/Common/Envelope.js.map +1 -1
  90. package/dist-es5/Telemetry/Event.js +1 -1
  91. package/dist-es5/Telemetry/Exception.js +4 -4
  92. package/dist-es5/Telemetry/Exception.js.map +1 -1
  93. package/dist-es5/Telemetry/Metric.js +1 -1
  94. package/dist-es5/Telemetry/PageView.js +1 -1
  95. package/dist-es5/Telemetry/PageViewPerformance.js +1 -1
  96. package/dist-es5/Telemetry/RemoteDependencyData.js +3 -3
  97. package/dist-es5/Telemetry/RemoteDependencyData.js.map +1 -1
  98. package/dist-es5/Telemetry/Trace.js +1 -1
  99. package/dist-es5/TelemetryItemCreator.js +3 -3
  100. package/dist-es5/TelemetryItemCreator.js.map +1 -1
  101. package/dist-es5/ThrottleMgr.js +1 -1
  102. package/dist-es5/UrlHelperFuncs.js +1 -1
  103. package/dist-es5/Util.js +57 -4
  104. package/dist-es5/Util.js.map +1 -1
  105. package/dist-es5/__DynamicConstants.js +10 -4
  106. package/dist-es5/__DynamicConstants.js.map +1 -1
  107. package/dist-es5/applicationinsights-common.js +3 -2
  108. package/dist-es5/applicationinsights-common.js.map +1 -1
  109. package/package.json +4 -3
  110. package/types/applicationinsights-common.d.ts +173 -1
  111. package/types/applicationinsights-common.namespaced.d.ts +205 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Common, 3.1.1-nightly3.2403-01
2
+ * Application Insights JavaScript SDK - Common, 3.1.1-nightly3.2403-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -83,7 +83,12 @@ function isObject(value) {
83
83
  return !!value && typeof value === OBJECT;
84
84
  }
85
85
  var isArray = ArrCls.isArray;
86
+ var isNumber = ( /*#__PURE__*/_createIs(NUMBER));
86
87
  var isError = ( /*#__PURE__*/_createObjIs("Error"));
88
+ /*#__NO_SIDE_EFFECTS__*/
89
+ function isPromiseLike(value) {
90
+ return !!(value && value.then && isFunction(value.then));
91
+ }
87
92
 
88
93
  var objGetOwnPropertyDescriptor = ObjClass$1.getOwnPropertyDescriptor;
89
94
 
@@ -155,6 +160,10 @@ function createEnum(values) {
155
160
  return _createKeyValueMap(values, 1 , 0 , objDeepFreeze);
156
161
  }
157
162
  /*#__NO_SIDE_EFFECTS__*/
163
+ function createEnumKeyMap(values) {
164
+ return _createKeyValueMap(values, 0 , 0 , objDeepFreeze);
165
+ }
166
+ /*#__NO_SIDE_EFFECTS__*/
158
167
  function createSimpleMap(values) {
159
168
  var mapClass = {};
160
169
  objForEachKey(values, function (key, value) {
@@ -168,6 +177,22 @@ function createTypeMap(values) {
168
177
  return createSimpleMap(values);
169
178
  }
170
179
 
180
+ var _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({
181
+ asyncIterator: 0 ,
182
+ hasInstance: 1 ,
183
+ isConcatSpreadable: 2 ,
184
+ iterator: 3 ,
185
+ match: 4 ,
186
+ matchAll: 5 ,
187
+ replace: 6 ,
188
+ search: 7 ,
189
+ species: 8 ,
190
+ split: 9 ,
191
+ toPrimitive: 10 ,
192
+ toStringTag: 11 ,
193
+ unscopables: 12
194
+ });
195
+
171
196
  var asString = StrCls;
172
197
 
173
198
  var GLOBAL_CONFIG_KEY = "__tsUtils$gblCfg";
@@ -270,6 +295,7 @@ function _globalSymbolRegistry() {
270
295
  }
271
296
  return _polySymbols;
272
297
  }
298
+ var _wellKnownSymbolCache;
273
299
  /*#__NO_SIDE_EFFECTS__*/
274
300
  function polyNewSymbol(description) {
275
301
  var theSymbol = {
@@ -291,6 +317,16 @@ function polySymbolFor(key) {
291
317
  }
292
318
  return registry.k[key];
293
319
  }
320
+ /*#__NO_SIDE_EFFECTS__*/
321
+ function polyGetKnownSymbol(name) {
322
+ !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});
323
+ var result;
324
+ var knownName = _wellKnownSymbolMap[name];
325
+ if (knownName) {
326
+ result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + "." + knownName);
327
+ }
328
+ return result;
329
+ }
294
330
 
295
331
  var propMap = {
296
332
  e: "enumerable",
@@ -368,6 +404,7 @@ var _cachedGlobal;
368
404
  var _cachedWindow;
369
405
  var _cachedDocument;
370
406
  var _cachedNavigator;
407
+ var _isNode;
371
408
  /*#__NO_SIDE_EFFECTS__*/
372
409
  function lazySafeGetInst(name) {
373
410
  return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });
@@ -415,6 +452,10 @@ function getNavigator() {
415
452
  (!_cachedNavigator || _globalLazyTestHooks.lzy) && (_cachedNavigator = createCachedValue(safe((getInst), ["navigator"]).v));
416
453
  return _cachedNavigator.v;
417
454
  }
455
+ function isNode() {
456
+ !_isNode && (_isNode = createCachedValue(!!safe(function () { return (process && (process.versions || {}).node); }).v));
457
+ return _isNode.v;
458
+ }
418
459
 
419
460
  var _symbol;
420
461
  var _symbolFor;
@@ -425,6 +466,23 @@ function _initSymbol() {
425
466
  }
426
467
  }
427
468
  /*#__NO_SIDE_EFFECTS__*/
469
+ function hasSymbol() {
470
+ return !!getSymbol();
471
+ }
472
+ /*#__NO_SIDE_EFFECTS__*/
473
+ function getSymbol() {
474
+ !_globalLazyTestHooks && _initTestHooks();
475
+ (!_symbol || _globalLazyTestHooks.lzy) && _initSymbol();
476
+ return _symbol.v;
477
+ }
478
+ /*#__NO_SIDE_EFFECTS__*/
479
+ function getKnownSymbol(name, noPoly) {
480
+ var knownName = _wellKnownSymbolMap[name];
481
+ !_globalLazyTestHooks && _initTestHooks();
482
+ (!_symbol || _globalLazyTestHooks.lzy) && _initSymbol();
483
+ return _symbol.v ? _symbol.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);
484
+ }
485
+ /*#__NO_SIDE_EFFECTS__*/
428
486
  function newSymbol(description, noPoly) {
429
487
  !_globalLazyTestHooks && _initTestHooks();
430
488
  (!_symbol || _globalLazyTestHooks.lzy) && _initSymbol();
@@ -456,6 +514,8 @@ var arrIndexOf = ( /*#__PURE__*/_unwrapFunction(INDEX_OF, ArrProto));
456
514
 
457
515
  var arrMap = ( /*#__PURE__*/_unwrapFunction("map", ArrProto));
458
516
 
517
+ var arrSlice = ( /*#__PURE__*/_unwrapFunction(SLICE, ArrProto));
518
+
459
519
  var arrReduce = ( /*#__PURE__*/_unwrapFunction("reduce", ArrProto));
460
520
 
461
521
  var objCreate = ObjClass$1["create"] || polyObjCreate;
@@ -1041,8 +1101,308 @@ function dynamicProto(theClass, target, delegateFunc, options) {
1041
1101
  }
1042
1102
  dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
1043
1103
 
1104
+ function doAwaitResponse(value, cb) {
1105
+ return doAwait(value, function (value) {
1106
+ return cb ? cb({
1107
+ value: value,
1108
+ rejected: false
1109
+ }) : value;
1110
+ }, function (reason) {
1111
+ return cb ? cb({
1112
+ rejected: true,
1113
+ reason: reason
1114
+ }) : reason;
1115
+ });
1116
+ }
1117
+ function doAwait(value, resolveFn, rejectFn, finallyFn) {
1118
+ var result = value;
1119
+ if (isPromiseLike(value)) {
1120
+ if (resolveFn || rejectFn) {
1121
+ result = value.then(resolveFn, rejectFn);
1122
+ }
1123
+ }
1124
+ else {
1125
+ if (resolveFn) {
1126
+ result = resolveFn(value);
1127
+ }
1128
+ }
1129
+ if (finallyFn) {
1130
+ doFinally(result, finallyFn);
1131
+ }
1132
+ return result;
1133
+ }
1134
+ function doFinally(value, finallyFn) {
1135
+ var result = value;
1136
+ if (finallyFn) {
1137
+ if (isPromiseLike(value)) {
1138
+ if (value.finally) {
1139
+ result = value.finally(finallyFn);
1140
+ }
1141
+ else {
1142
+ result = value.then(function (value) {
1143
+ finallyFn();
1144
+ return value;
1145
+ }, function (reason) {
1146
+ finallyFn();
1147
+ throw reason;
1148
+ });
1149
+ }
1150
+ }
1151
+ else {
1152
+ finallyFn();
1153
+ }
1154
+ }
1155
+ return result;
1156
+ }
1157
+
1158
+ var STRING_STATES = [
1159
+ "pending", "resolving", "resolved", "rejected"
1160
+ ];
1161
+
1162
+ var DISPATCH_EVENT = "dispatchEvent";
1163
+ var _hasInitEvent;
1164
+ function emitEvent(target, evtName, populateEvent, useNewEvent) {
1165
+ var doc = getDocument();
1166
+ !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {
1167
+ var evt;
1168
+ if (doc && doc.createEvent) {
1169
+ evt = doc.createEvent("Event");
1170
+ }
1171
+ return (!!evt && evt.initEvent);
1172
+ }, null));
1173
+ var theEvt = _hasInitEvent.v ? doc.createEvent("Event") : (useNewEvent ? new Event(evtName) : {});
1174
+ populateEvent && populateEvent(theEvt);
1175
+ if (_hasInitEvent.v) {
1176
+ theEvt.initEvent(evtName, false, true);
1177
+ }
1178
+ if (theEvt && target[DISPATCH_EVENT]) {
1179
+ target[DISPATCH_EVENT](theEvt);
1180
+ }
1181
+ else {
1182
+ var handler = target["on" + evtName];
1183
+ if (handler) {
1184
+ handler(theEvt);
1185
+ }
1186
+ else {
1187
+ var theConsole = getInst("console");
1188
+ theConsole && (theConsole["error"] || theConsole["log"])(evtName, dumpObj(theEvt));
1189
+ }
1190
+ }
1191
+ }
1192
+
1193
+ var STR_PROMISE = "Promise";
1194
+
1195
+ var NODE_UNHANDLED_REJECTION = "unhandledRejection";
1196
+ var UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();
1197
+ var _unhandledRejectionTimeout = 10;
1198
+ var _hasPromiseRejectionEvent;
1199
+ function dumpFnObj(value) {
1200
+ if (isFunction(value)) {
1201
+ return value.toString();
1202
+ }
1203
+ return dumpObj(value);
1204
+ }
1205
+ function _createPromise(newPromise, processor, executor) {
1206
+ var additionalArgs = arrSlice(arguments, 3);
1207
+ var _state = 0 ;
1208
+ var _hasResolved = false;
1209
+ var _settledValue;
1210
+ var _queue = [];
1211
+ var _handled = false;
1212
+ var _unHandledRejectionHandler = null;
1213
+ var _thePromise;
1214
+ !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + "RejectionEvent"));
1215
+ var _then = function (onResolved, onRejected) {
1216
+ try {
1217
+ _handled = true;
1218
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1219
+ _unHandledRejectionHandler = null;
1220
+ var thenPromise = newPromise(function (resolve, reject) {
1221
+ _queue.push(function () {
1222
+ try {
1223
+ var handler = _state === 2 ? onResolved : onRejected;
1224
+ var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);
1225
+ if (isPromiseLike(value)) {
1226
+ value.then(resolve, reject);
1227
+ }
1228
+ else if (handler) {
1229
+ resolve(value);
1230
+ }
1231
+ else if (_state === 3 ) {
1232
+ reject(value);
1233
+ }
1234
+ else {
1235
+ resolve(value);
1236
+ }
1237
+ }
1238
+ catch (e) {
1239
+ reject(e);
1240
+ }
1241
+ });
1242
+ if (_hasResolved) {
1243
+ _processQueue();
1244
+ }
1245
+ }, additionalArgs);
1246
+ return thenPromise;
1247
+ }
1248
+ finally {
1249
+ }
1250
+ };
1251
+ var _catch = function (onRejected) {
1252
+ return _then(undefined, onRejected);
1253
+ };
1254
+ var _finally = function (onFinally) {
1255
+ var thenFinally = onFinally;
1256
+ var catchFinally = onFinally;
1257
+ if (isFunction(onFinally)) {
1258
+ thenFinally = function (value) {
1259
+ onFinally && onFinally();
1260
+ return value;
1261
+ };
1262
+ catchFinally = function (reason) {
1263
+ onFinally && onFinally();
1264
+ throw reason;
1265
+ };
1266
+ }
1267
+ return _then(thenFinally, catchFinally);
1268
+ };
1269
+ var _strState = function () {
1270
+ return STRING_STATES[_state];
1271
+ };
1272
+ var _processQueue = function () {
1273
+ if (_queue.length > 0) {
1274
+ var pending = _queue.slice();
1275
+ _queue = [];
1276
+ _handled = true;
1277
+ processor(pending);
1278
+ _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();
1279
+ _unHandledRejectionHandler = null;
1280
+ }
1281
+ };
1282
+ var _createSettleIfFn = function (newState, allowState) {
1283
+ return function (theValue) {
1284
+ if (_state === allowState) {
1285
+ if (newState === 2 && isPromiseLike(theValue)) {
1286
+ _state = 1 ;
1287
+ theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));
1288
+ return;
1289
+ }
1290
+ _state = newState;
1291
+ _hasResolved = true;
1292
+ _settledValue = theValue;
1293
+ _processQueue();
1294
+ if (!_handled && newState === 3 && !_unHandledRejectionHandler) {
1295
+ _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);
1296
+ }
1297
+ }
1298
+ };
1299
+ };
1300
+ var _notifyUnhandledRejection = function () {
1301
+ if (!_handled) {
1302
+ if (isNode()) {
1303
+ process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);
1304
+ }
1305
+ else {
1306
+ var gbl = getWindow() || getGlobal();
1307
+ emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {
1308
+ objDefine(theEvt, "promise", { g: function () { return _thePromise; } });
1309
+ theEvt.reason = _settledValue;
1310
+ return theEvt;
1311
+ }, !!_hasPromiseRejectionEvent.v);
1312
+ }
1313
+ }
1314
+ };
1315
+ _thePromise = {
1316
+ then: _then,
1317
+ "catch": _catch,
1318
+ finally: _finally
1319
+ };
1320
+ objDefineProp(_thePromise, "state", {
1321
+ get: _strState
1322
+ });
1323
+ if (hasSymbol()) {
1324
+ _thePromise[getKnownSymbol(11 )] = "IPromise";
1325
+ }
1326
+ var _toString = function () {
1327
+ return "IPromise" + ("") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "");
1328
+ };
1329
+ _thePromise.toString = _toString;
1330
+ (function _initialize() {
1331
+ if (!isFunction(executor)) {
1332
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpFnObj(executor));
1333
+ }
1334
+ var _rejectFn = _createSettleIfFn(3 , 0 );
1335
+ try {
1336
+ executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);
1337
+ }
1338
+ catch (e) {
1339
+ _rejectFn(e);
1340
+ }
1341
+ })();
1342
+ return _thePromise;
1343
+ }
1344
+
1345
+ var _processPendingItems = function (pending) {
1346
+ arrForEach(pending, function (fn) {
1347
+ try {
1348
+ fn();
1349
+ }
1350
+ catch (e) {
1351
+ }
1352
+ });
1353
+ };
1354
+ function timeoutItemProcessor(timeout) {
1355
+ var callbackTimeout = isNumber(timeout) ? timeout : 0;
1356
+ return function (pending) {
1357
+ scheduleTimeout(function () {
1358
+ _processPendingItems(pending);
1359
+ }, callbackTimeout);
1360
+ };
1361
+ }
1362
+
1363
+ function createAsyncPromise(executor, timeout) {
1364
+ return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);
1365
+ }
1366
+
1367
+ var _isPromiseSupported;
1368
+ function createNativePromise(executor, timeout) {
1369
+ !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));
1370
+ var PrmCls = _isPromiseSupported.v;
1371
+ if (!PrmCls) {
1372
+ return createAsyncPromise(executor);
1373
+ }
1374
+ if (!isFunction(executor)) {
1375
+ throwTypeError(STR_PROMISE + ": executor is not a function - " + dumpObj(executor));
1376
+ }
1377
+ var _state = 0 ;
1378
+ function _strState() {
1379
+ return STRING_STATES[_state];
1380
+ }
1381
+ var thePromise = new PrmCls(function (resolve, reject) {
1382
+ function _resolve(value) {
1383
+ _state = 2 ;
1384
+ resolve(value);
1385
+ }
1386
+ function _reject(reason) {
1387
+ _state = 3 ;
1388
+ reject(reason);
1389
+ }
1390
+ executor(_resolve, _reject);
1391
+ });
1392
+ objDefineProp(thePromise, "state", {
1393
+ get: _strState
1394
+ });
1395
+ return thePromise;
1396
+ }
1397
+
1398
+ var _promiseCreator;
1399
+ function createPromise(executor, timeout) {
1400
+ !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));
1401
+ return _promiseCreator.v.call(this, executor, timeout);
1402
+ }
1403
+
1044
1404
  var UNDEFINED_VALUE = undefined;
1045
- var STR_EMPTY = "";
1405
+ var STR_EMPTY$1 = "";
1046
1406
  var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
1047
1407
 
1048
1408
  var rCamelCase = /-([a-z])/g;
@@ -1077,7 +1437,7 @@ function getExceptionName(object) {
1077
1437
  if (isError(object)) {
1078
1438
  return object[_DYN_NAME$1 ];
1079
1439
  }
1080
- return STR_EMPTY;
1440
+ return STR_EMPTY$1;
1081
1441
  }
1082
1442
  function createClassFromInterface(defaults) {
1083
1443
  return /** @class */ (function () {
@@ -1093,15 +1453,56 @@ function createClassFromInterface(defaults) {
1093
1453
  }());
1094
1454
  }
1095
1455
 
1456
+ var strLocation = "location";
1096
1457
  var strConsole = "console";
1097
1458
  var strJSON = "JSON";
1098
1459
  var strCrypto = "crypto";
1099
1460
  var strMsCrypto = "msCrypto";
1100
1461
  var strMsie = "msie";
1101
1462
  var strTrident = "trident/";
1463
+ var strXMLHttpRequest = "XMLHttpRequest";
1102
1464
  var _isTrident = null;
1103
1465
  var _navUserAgentCheck = null;
1466
+ var _enableMocks = false;
1467
+ var _useXDomainRequest = null;
1104
1468
  var _beaconsSupported = null;
1469
+ function _hasProperty(theClass, property) {
1470
+ var supported = false;
1471
+ if (theClass) {
1472
+ try {
1473
+ supported = property in theClass;
1474
+ if (!supported) {
1475
+ var proto = theClass[strShimPrototype];
1476
+ if (proto) {
1477
+ supported = property in proto;
1478
+ }
1479
+ }
1480
+ }
1481
+ catch (e) {
1482
+ }
1483
+ if (!supported) {
1484
+ try {
1485
+ var tmp = new theClass();
1486
+ supported = !isUndefined(tmp[property]);
1487
+ }
1488
+ catch (e) {
1489
+ }
1490
+ }
1491
+ }
1492
+ return supported;
1493
+ }
1494
+ function getLocation(checkForMock) {
1495
+ if (checkForMock && _enableMocks) {
1496
+ var mockLocation = getInst("__mockLocation");
1497
+ if (mockLocation) {
1498
+ return mockLocation;
1499
+ }
1500
+ }
1501
+ if (typeof location === strShimObject && location) {
1502
+ return location;
1503
+ }
1504
+ return getInst(strLocation);
1505
+ }
1105
1506
  function getConsole() {
1106
1507
  if (typeof console !== strShimUndefined) {
1107
1508
  return console;
@@ -1127,7 +1528,7 @@ function isIE() {
1127
1528
  var nav = getNavigator();
1128
1529
  if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1129
1530
  _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1130
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1531
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]();
1131
1532
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1132
1533
  }
1133
1534
  return _isTrident;
@@ -1138,6 +1539,38 @@ function isBeaconsSupported(useCached) {
1138
1539
  }
1139
1540
  return _beaconsSupported;
1140
1541
  }
1542
+ function isFetchSupported(withKeepAlive) {
1543
+ var isSupported = false;
1544
+ try {
1545
+ isSupported = !!getInst("fetch");
1546
+ var request = getInst("Request");
1547
+ if (isSupported && withKeepAlive && request) {
1548
+ isSupported = _hasProperty(request, "keepalive");
1549
+ }
1550
+ }
1551
+ catch (e) {
1552
+ }
1553
+ return isSupported;
1554
+ }
1555
+ function useXDomainRequest() {
1556
+ if (_useXDomainRequest === null) {
1557
+ _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);
1558
+ if (_useXDomainRequest && isXhrSupported()) {
1559
+ _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), "withCredentials");
1560
+ }
1561
+ }
1562
+ return _useXDomainRequest;
1563
+ }
1564
+ function isXhrSupported() {
1565
+ var isSupported = false;
1566
+ try {
1567
+ var xmlHttpRequest = getInst(strXMLHttpRequest);
1568
+ isSupported = !!xmlHttpRequest;
1569
+ }
1570
+ catch (e) {
1571
+ }
1572
+ return isSupported;
1573
+ }
1141
1574
  function _getNamedValue(values, name) {
1142
1575
  if (values) {
1143
1576
  for (var i = 0; i < values[_DYN_LENGTH$1 ]; i++) {
@@ -1231,7 +1664,7 @@ function newId(maxLength) {
1231
1664
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1232
1665
  var number = random32() >>> 0;
1233
1666
  var chars = 0;
1234
- var result = STR_EMPTY;
1667
+ var result = STR_EMPTY$1;
1235
1668
  while (result[_DYN_LENGTH$1 ] < maxLength) {
1236
1669
  chars++;
1237
1670
  result += base64chars.charAt(number & 0x3F);
@@ -1269,11 +1702,11 @@ function _getCache(data, target) {
1269
1702
  }
1270
1703
  function createUniqueNamespace(name, includeVersion) {
1271
1704
  if (includeVersion === void 0) { includeVersion = false; }
1272
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1705
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
1273
1706
  }
1274
1707
  function createElmNodeData(name) {
1275
1708
  var data = {
1276
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1709
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
1277
1710
  accept: function (target) {
1278
1711
  return _canAcceptData(target);
1279
1712
  },
@@ -1948,9 +2381,9 @@ var _logFuncs = (_a = {},
1948
2381
  _a);
1949
2382
  function _sanitizeDiagnosticText(text) {
1950
2383
  if (text) {
1951
- return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
2384
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
1952
2385
  }
1953
- return STR_EMPTY;
2386
+ return STR_EMPTY$1;
1954
2387
  }
1955
2388
  function _logToConsole(func, message) {
1956
2389
  var theConsole = getConsole();
@@ -1972,12 +2405,12 @@ var _InternalLogMessage = /** @class */ (function () {
1972
2405
  _self[_DYN_MESSAGE$1 ] =
1973
2406
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
1974
2407
  msgId;
1975
- var strProps = STR_EMPTY;
2408
+ var strProps = STR_EMPTY$1;
1976
2409
  if (hasJSON()) {
1977
2410
  strProps = getJSON().stringify(properties);
1978
2411
  }
1979
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
1980
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
2412
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
2413
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
1981
2414
  _self[_DYN_MESSAGE$1 ] += diagnosticText;
1982
2415
  }
1983
2416
  _InternalLogMessage.dataType = "MessageData";
@@ -2113,7 +2546,7 @@ function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
2113
2546
 
2114
2547
  function generateW3CId() {
2115
2548
  var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
2116
- var oct = STR_EMPTY, tmp;
2549
+ var oct = STR_EMPTY$1, tmp;
2117
2550
  for (var a = 0; a < 4; a++) {
2118
2551
  tmp = random32();
2119
2552
  oct +=
@@ -2190,9 +2623,9 @@ function parseTraceParent(value, selectIdx) {
2190
2623
  return null;
2191
2624
  }
2192
2625
  return _a = {
2193
- version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
2194
- traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ](),
2195
- spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]()
2626
+ version: (match[1] || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ](),
2627
+ traceId: (match[2] || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ](),
2628
+ spanId: (match[3] || STR_EMPTY$1)[_DYN_TO_LOWER_CASE$1 ]()
2196
2629
  },
2197
2630
  _a[_DYN_TRACE_FLAGS ] = parseInt(match[4], 16),
2198
2631
  _a;
@@ -2257,16 +2690,16 @@ var elmNodeData = createElmNodeData("events");
2257
2690
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
2258
2691
  function _normalizeNamespace(name) {
2259
2692
  if (name && name[_DYN_REPLACE ]) {
2260
- return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
2693
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$1);
2261
2694
  }
2262
2695
  return name;
2263
2696
  }
2264
2697
  function _getEvtNamespace(eventName, evtNamespace) {
2265
2698
  var _a;
2266
2699
  if (evtNamespace) {
2267
- var theNamespace_1 = STR_EMPTY;
2700
+ var theNamespace_1 = STR_EMPTY$1;
2268
2701
  if (isArray(evtNamespace)) {
2269
- theNamespace_1 = STR_EMPTY;
2702
+ theNamespace_1 = STR_EMPTY$1;
2270
2703
  arrForEach(evtNamespace, function (name) {
2271
2704
  name = _normalizeNamespace(name);
2272
2705
  if (name) {
@@ -2284,13 +2717,13 @@ function _getEvtNamespace(eventName, evtNamespace) {
2284
2717
  if (theNamespace_1[0] !== ".") {
2285
2718
  theNamespace_1 = "." + theNamespace_1;
2286
2719
  }
2287
- eventName = (eventName || STR_EMPTY) + theNamespace_1;
2720
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
2288
2721
  }
2289
2722
  }
2290
- var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
2723
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
2291
2724
  return _a = {},
2292
2725
  _a[_DYN_TYPE ] = parsedEvent[1],
2293
- _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
2726
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT$1 ](".").sort()).join("."),
2294
2727
  _a;
2295
2728
  }
2296
2729
  function _getRegisteredEvents(target, evtName, addDefault) {
@@ -2440,12 +2873,17 @@ var RequestHeaders = createValueMap({
2440
2873
  var _DYN_SPLIT = "split";
2441
2874
  var _DYN_LENGTH = "length";
2442
2875
  var _DYN_TO_LOWER_CASE = "toLowerCase";
2876
+ var _DYN_LOCATION = "location";
2443
2877
  var _DYN_INGESTIONENDPOINT = "ingestionendpoint";
2444
2878
  var _DYN_TO_STRING = "toString";
2445
2879
  var _DYN_PUSH = "push";
2880
+ var _DYN_URL_STRING = "urlString";
2881
+ var _DYN_DATA = "data";
2882
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
2883
+ var _DYN_REASON = "reason";
2884
+ var _DYN_MESSAGE = "message";
2446
2885
  var _DYN_REMOVE_ITEM = "removeItem";
2447
2886
  var _DYN_NAME = "name";
2448
- var _DYN_MESSAGE = "message";
2449
2887
  var _DYN_COUNT = "count";
2450
2888
  var _DYN_PRE_TRIGGER_DATE = "preTriggerDate";
2451
2889
  var _DYN_DISABLED = "disabled";
@@ -2456,6 +2894,7 @@ var _DYN_GET_UTCDATE = "getUTCDate";
2456
2894
  var _DYN_STRINGIFY = "stringify";
2457
2895
  var _DYN_PATHNAME = "pathname";
2458
2896
  var _DYN_CORRELATION_HEADER_E0 = "correlationHeaderExcludePatterns";
2897
+ var _DYN_ITEMS_RECEIVED = "itemsReceived";
2459
2898
  var _DYN_EXTENSION_CONFIG = "extensionConfig";
2460
2899
  var _DYN_EXCEPTIONS = "exceptions";
2461
2900
  var _DYN_PARSED_STACK = "parsedStack";
@@ -2821,6 +3260,54 @@ function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
2821
3260
  }
2822
3261
  };
2823
3262
  }
3263
+ function getResponseText(xhr) {
3264
+ try {
3265
+ return xhr.responseText;
3266
+ }
3267
+ catch (e) {
3268
+ }
3269
+ return null;
3270
+ }
3271
+ function formatErrorMessageXdr(xdr, message) {
3272
+ if (xdr) {
3273
+ return "XDomainRequest,Response:" + getResponseText(xdr) || "";
3274
+ }
3275
+ return message;
3276
+ }
3277
+ function formatErrorMessageXhr(xhr, message) {
3278
+ if (xhr) {
3279
+ return "XMLHttpRequest,Status:" + xhr.status + ",Response:" + getResponseText(xhr) || xhr.response || "";
3280
+ }
3281
+ return message;
3282
+ }
3283
+ function prependTransports(theTransports, newTransports) {
3284
+ if (newTransports) {
3285
+ if (isNumber(newTransports)) {
3286
+ theTransports = [newTransports].concat(theTransports);
3287
+ }
3288
+ else if (isArray(newTransports)) {
3289
+ theTransports = newTransports.concat(theTransports);
3290
+ }
3291
+ }
3292
+ return theTransports;
3293
+ }
3294
+ function parseResponse(response, diagLog) {
3295
+ try {
3296
+ if (response && response !== "") {
3297
+ var result = getJSON().parse(response);
3298
+ if (result && result[_DYN_ITEMS_RECEIVED ] && result[_DYN_ITEMS_RECEIVED ] >= result.itemsAccepted &&
3299
+ result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH ]) {
3300
+ return result;
3301
+ }
3302
+ }
3303
+ }
3304
+ catch (e) {
3305
+ _throwInternal(diagLog, 1 , 43 , "Cannot parse the response. " + getExceptionName(e), {
3306
+ response: response
3307
+ });
3308
+ }
3309
+ return null;
3310
+ }
2824
3311
 
2825
3312
  var StorageType = createEnumStyle({
2826
3313
  LocalStorage: 0 ,
@@ -3327,7 +3814,7 @@ function parseConnectionString(connectionString) {
3327
3814
  }, {});
3328
3815
  if (objKeys(result)[_DYN_LENGTH ] > 0) {
3329
3816
  if (result.endpointsuffix) {
3330
- var locationPrefix = result.location ? result.location + "." : "";
3817
+ var locationPrefix = result[_DYN_LOCATION ] ? result[_DYN_LOCATION ] + "." : "";
3331
3818
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || ("https://" + locationPrefix + "dc." + result.endpointsuffix);
3332
3819
  }
3333
3820
  result[_DYN_INGESTIONENDPOINT ] = result[_DYN_INGESTIONENDPOINT ] || DEFAULT_BREEZE_ENDPOINT;
@@ -3349,7 +3836,7 @@ var Envelope = /** @class */ (function () {
3349
3836
  _self.sampleRate = 100.0;
3350
3837
  _self.tags = {};
3351
3838
  _self[_DYN_NAME ] = dataSanitizeString(logger, name) || strNotSpecified;
3352
- _self.data = data;
3839
+ _self[_DYN_DATA ] = data;
3353
3840
  _self.time = toISOString(new Date());
3354
3841
  _self.aiDataContract = {
3355
3842
  time: 1 ,
@@ -3506,8 +3993,8 @@ function _getStackFromErrorObj(errorObj) {
3506
3993
  else if (getWindow() && getWindow()["opera"] && errorObj[strMessage]) {
3507
3994
  details = _getOperaStack(errorObj[_DYN_MESSAGE ]);
3508
3995
  }
3509
- else if (errorObj["reason"] && errorObj.reason[strStack]) {
3510
- details = _convertStackObj(errorObj.reason[strStack]);
3996
+ else if (errorObj["reason"] && errorObj[_DYN_REASON ][strStack]) {
3997
+ details = _convertStackObj(errorObj[_DYN_REASON ][strStack]);
3511
3998
  }
3512
3999
  else if (isString(errorObj)) {
3513
4000
  details = _convertStackObj(errorObj);
@@ -3998,7 +4485,7 @@ var RemoteDependencyData = /** @class */ (function () {
3998
4485
  _self.resultCode = resultCode + "";
3999
4486
  _self.type = dataSanitizeString(logger, requestAPI);
4000
4487
  var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
4001
- _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
4488
+ _self[_DYN_DATA ] = dataSanitizeUrl(logger, commandName) || dependencyFields[_DYN_DATA ];
4002
4489
  _self.target = dataSanitizeString(logger, dependencyFields.target);
4003
4490
  if (correlationContext) {
4004
4491
  _self.target = "".concat(_self.target, " | ").concat(correlationContext);
@@ -4213,7 +4700,7 @@ function createTelemetryItem(item, baseType, envelopeName, logger, customPropert
4213
4700
  _a);
4214
4701
  if (!isNullOrUndefined(customProperties)) {
4215
4702
  objForEachKey(customProperties, function (prop, value) {
4216
- telemetryItem.data[prop] = value;
4703
+ telemetryItem[_DYN_DATA ][prop] = value;
4217
4704
  });
4218
4705
  }
4219
4706
  return telemetryItem;
@@ -4237,6 +4724,360 @@ var Extensions = {
4237
4724
  };
4238
4725
  var CtxTagKeys = new ContextTagKeys();
4239
4726
 
4727
+ var STR_EMPTY = "";
4728
+ var SenderPostManager = /** @class */ (function () {
4729
+ function SenderPostManager() {
4730
+ var _syncFetchPayload = 0;
4731
+ var _enableSendPromise;
4732
+ var _isInitialized;
4733
+ var _diagLog;
4734
+ var _isOneDs;
4735
+ var _onCompleteFuncs;
4736
+ var _disableCredentials;
4737
+ var _fallbackInst;
4738
+ var _disableXhr;
4739
+ var _disableBeacon;
4740
+ var _disableBeaconSync;
4741
+ dynamicProto(SenderPostManager, this, function (_self, _base) {
4742
+ var _sendCredentials = true;
4743
+ _initDefaults();
4744
+ _self.initialize = function (config, diagLog) {
4745
+ _diagLog = diagLog;
4746
+ if (_isInitialized) {
4747
+ _throwInternal(_diagLog, 1 , 28 , "Sender is already initialized");
4748
+ }
4749
+ _self.SetConfig(config);
4750
+ _isInitialized = true;
4751
+ };
4752
+ _self["_getDbgPlgTargets"] = function () {
4753
+ return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];
4754
+ };
4755
+ _self.SetConfig = function (config) {
4756
+ try {
4757
+ _onCompleteFuncs = config.senderOnCompleteCallBack || {};
4758
+ _disableCredentials = !!config.disableCredentials;
4759
+ _isOneDs = !!config.isOneDs;
4760
+ _enableSendPromise = !!config.enableSendPromise;
4761
+ _disableXhr = !!config.disableXhr;
4762
+ _disableBeacon = !!config.disableBeacon;
4763
+ _disableBeaconSync = !!config.disableBeaconSync;
4764
+ _fallbackInst = { sendPOST: _xhrSender };
4765
+ if (_disableCredentials) {
4766
+ var location_1 = getLocation();
4767
+ if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE ]() === "file:") {
4768
+ _sendCredentials = false;
4769
+ }
4770
+ }
4771
+ return true;
4772
+ }
4773
+ catch (e) {
4774
+ }
4775
+ return false;
4776
+ };
4777
+ _self.getSyncFetchPayload = function () {
4778
+ return _syncFetchPayload;
4779
+ };
4780
+ _self.getXhrInst = function (transports, sync) {
4781
+ if (transports && transports[_DYN_LENGTH ]) {
4782
+ return _getSenderInterface(transports, sync);
4783
+ }
4784
+ return null;
4785
+ };
4786
+ _self.getFallbackInst = function () {
4787
+ return _fallbackInst;
4788
+ };
4789
+ _self._doTeardown = function (unloadCtx, unloadState) {
4790
+ _initDefaults();
4791
+ };
4792
+ function _onSuccess(res, onComplete) {
4793
+ _doOnComplete(onComplete, 200, {}, res);
4794
+ }
4795
+ function _onError(message, onComplete) {
4796
+ _throwInternal(_diagLog, 2 , 26 , "Failed to send telemetry.", { message: message });
4797
+ _doOnComplete(onComplete, 400, {});
4798
+ }
4799
+ function _onNoPayloadUrl(onComplete) {
4800
+ _onError("No endpoint url is provided for the batch", onComplete);
4801
+ }
4802
+ function _getSenderInterface(transports, syncSupport) {
4803
+ var transportType = null;
4804
+ var sendPostFunc = null;
4805
+ var lp = 0;
4806
+ while (sendPostFunc == null && lp < transports[_DYN_LENGTH ]) {
4807
+ transportType = transports[lp];
4808
+ if (!_disableXhr && transportType === 1 ) {
4809
+ if (useXDomainRequest()) {
4810
+ sendPostFunc = _xdrSender;
4811
+ }
4812
+ else if (isXhrSupported()) {
4813
+ sendPostFunc = _xhrSender;
4814
+ }
4815
+ }
4816
+ else if (transportType === 2 && isFetchSupported(syncSupport)) {
4817
+ sendPostFunc = _doFetchSender;
4818
+ }
4819
+ else if (transportType === 3 && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {
4820
+ sendPostFunc = _beaconSender;
4821
+ }
4822
+ lp++;
4823
+ }
4824
+ if (sendPostFunc) {
4825
+ return {
4826
+ sendPOST: sendPostFunc
4827
+ };
4828
+ }
4829
+ return null;
4830
+ }
4831
+ function _doOnComplete(oncomplete, status, headers, response) {
4832
+ try {
4833
+ oncomplete && oncomplete(status, headers, response);
4834
+ }
4835
+ catch (e) {
4836
+ }
4837
+ }
4838
+ function _doBeaconSend(payload, oncomplete) {
4839
+ var nav = getNavigator();
4840
+ var url = payload[_DYN_URL_STRING ];
4841
+ if (!url) {
4842
+ _onNoPayloadUrl(oncomplete);
4843
+ return true;
4844
+ }
4845
+ var data = payload[_DYN_DATA ];
4846
+ var plainTextBatch = new Blob([data], { type: "text/plain;charset=UTF-8" });
4847
+ var queued = nav.sendBeacon(url, plainTextBatch);
4848
+ return queued;
4849
+ }
4850
+ function _beaconSender(payload, oncomplete, sync) {
4851
+ var data = payload[_DYN_DATA ];
4852
+ if (data) {
4853
+ if (!_doBeaconSend(payload, oncomplete)) {
4854
+ var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;
4855
+ if (onRetry && isFunction(onRetry)) {
4856
+ onRetry(payload, oncomplete, _doBeaconSend);
4857
+ }
4858
+ else {
4859
+ _fallbackInst && _fallbackInst.sendPOST(payload, oncomplete, true);
4860
+ _throwInternal(_diagLog, 2 , 40 , ". " + "Failed to send telemetry with Beacon API, retried with normal sender.");
4861
+ }
4862
+ }
4863
+ else {
4864
+ _onSuccess(null, oncomplete);
4865
+ }
4866
+ }
4867
+ return;
4868
+ }
4869
+ function _xhrSender(payload, oncomplete, sync) {
4870
+ var thePromise;
4871
+ var resolveFunc;
4872
+ var rejectFunc;
4873
+ var headers = payload.headers || {};
4874
+ if (!sync && _enableSendPromise) {
4875
+ thePromise = createPromise(function (resolve, reject) {
4876
+ resolveFunc = resolve;
4877
+ rejectFunc = reject;
4878
+ });
4879
+ }
4880
+ var xhr = new XMLHttpRequest();
4881
+ var endPointUrl = payload[_DYN_URL_STRING ];
4882
+ if (!endPointUrl) {
4883
+ _onNoPayloadUrl(oncomplete);
4884
+ resolveFunc && resolveFunc(false);
4885
+ return;
4886
+ }
4887
+ try {
4888
+ xhr[DisabledPropertyName] = true;
4889
+ }
4890
+ catch (e) {
4891
+ }
4892
+ xhr.open("POST", endPointUrl, !sync);
4893
+ xhr[_DYN_SET_REQUEST_HEADER ]("Content-type", "application/json");
4894
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4895
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[6 ], RequestHeaders[7 ]);
4896
+ }
4897
+ arrForEach(objKeys(headers), function (headerName) {
4898
+ xhr[_DYN_SET_REQUEST_HEADER ](headerName, headers[headerName]);
4899
+ });
4900
+ xhr.onreadystatechange = function () {
4901
+ var response = getResponseText(xhr);
4902
+ var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;
4903
+ var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);
4904
+ if (onReadyFuncExist) {
4905
+ onReadyFunc(xhr, oncomplete, payload);
4906
+ }
4907
+ if (xhr.readyState === 4) {
4908
+ if (!onReadyFuncExist) {
4909
+ _doOnComplete(oncomplete, xhr.status, {}, response);
4910
+ }
4911
+ resolveFunc && resolveFunc(true);
4912
+ }
4913
+ };
4914
+ xhr.onerror = function (event) {
4915
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXhr(xhr));
4916
+ rejectFunc && rejectFunc(event);
4917
+ };
4918
+ xhr.ontimeout = function () {
4919
+ _doOnComplete(oncomplete, 500, {}, formatErrorMessageXhr(xhr));
4920
+ resolveFunc && resolveFunc(false);
4921
+ };
4922
+ xhr.send(payload[_DYN_DATA ]);
4923
+ return thePromise;
4924
+ }
4925
+ function _doFetchSender(payload, oncomplete, sync) {
4926
+ var _a;
4927
+ var endPointUrl = payload[_DYN_URL_STRING ];
4928
+ var batch = payload[_DYN_DATA ];
4929
+ var plainTextBatch = new Blob([batch], { type: "application/json" });
4930
+ var thePromise;
4931
+ var resolveFunc;
4932
+ var rejectFunc;
4933
+ var requestHeaders = new Headers();
4934
+ var batchLength = batch[_DYN_LENGTH ];
4935
+ var ignoreResponse = false;
4936
+ var responseHandled = false;
4937
+ var headers = payload.headers || {};
4938
+ if (isInternalApplicationInsightsEndpoint(endPointUrl)) {
4939
+ requestHeaders.append(RequestHeaders[6 ], RequestHeaders[7 ]);
4940
+ }
4941
+ arrForEach(objKeys(headers), function (headerName) {
4942
+ requestHeaders.append(headerName, headers[headerName]);
4943
+ });
4944
+ var init = (_a = {
4945
+ method: "POST",
4946
+ headers: requestHeaders,
4947
+ body: plainTextBatch
4948
+ },
4949
+ _a[DisabledPropertyName] = true
4950
+ ,
4951
+ _a);
4952
+ if (_sendCredentials && _isOneDs) {
4953
+ init.credentials = "include";
4954
+ }
4955
+ if (sync) {
4956
+ init.keepalive = true;
4957
+ ignoreResponse = true;
4958
+ _syncFetchPayload += batchLength;
4959
+ }
4960
+ var request = new Request(endPointUrl, init);
4961
+ try {
4962
+ request[DisabledPropertyName] = true;
4963
+ }
4964
+ catch (e) {
4965
+ }
4966
+ if (!sync && _enableSendPromise) {
4967
+ thePromise = createPromise(function (resolve, reject) {
4968
+ resolveFunc = resolve;
4969
+ rejectFunc = reject;
4970
+ });
4971
+ }
4972
+ if (!endPointUrl) {
4973
+ _onNoPayloadUrl(oncomplete);
4974
+ resolveFunc && resolveFunc(false);
4975
+ return;
4976
+ }
4977
+ try {
4978
+ doAwaitResponse(fetch(request), function (result) {
4979
+ if (sync) {
4980
+ _syncFetchPayload -= batchLength;
4981
+ batchLength = 0;
4982
+ }
4983
+ if (!responseHandled) {
4984
+ responseHandled = true;
4985
+ if (!result.rejected) {
4986
+ var response_1 = result.value;
4987
+ if (!response_1.ok) {
4988
+ _doOnComplete(oncomplete, 400, {}, response_1.statusText);
4989
+ resolveFunc && resolveFunc(false);
4990
+ }
4991
+ else {
4992
+ doAwaitResponse(response_1.text(), function (resp) {
4993
+ var status = response_1.status;
4994
+ var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;
4995
+ if (onCompleteFunc && isFunction(onCompleteFunc)) {
4996
+ onCompleteFunc(response_1, oncomplete, resp.value || STR_EMPTY, payload);
4997
+ }
4998
+ else {
4999
+ _doOnComplete(oncomplete, status, {}, resp.value || STR_EMPTY);
5000
+ }
5001
+ resolveFunc && resolveFunc(true);
5002
+ });
5003
+ }
5004
+ }
5005
+ else {
5006
+ _doOnComplete(oncomplete, 400, {}, result[_DYN_REASON ] && result[_DYN_REASON ][_DYN_MESSAGE ]);
5007
+ rejectFunc && rejectFunc(result[_DYN_REASON ]);
5008
+ }
5009
+ }
5010
+ });
5011
+ }
5012
+ catch (e) {
5013
+ if (!responseHandled) {
5014
+ _doOnComplete(oncomplete, 400, {}, dumpObj(e));
5015
+ rejectFunc && rejectFunc(e);
5016
+ }
5017
+ }
5018
+ if (ignoreResponse && !responseHandled) {
5019
+ responseHandled = true;
5020
+ _doOnComplete(oncomplete, 200, {});
5021
+ resolveFunc && resolveFunc(true);
5022
+ }
5023
+ return thePromise;
5024
+ }
5025
+ function _xdrSender(payload, oncomplete, sync) {
5026
+ var _window = getWindow();
5027
+ var xdr = new XDomainRequest();
5028
+ var data = payload[_DYN_DATA ];
5029
+ xdr.onload = function () {
5030
+ var response = getResponseText(xdr);
5031
+ var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;
5032
+ if (onloadFunc && isFunction(onloadFunc)) {
5033
+ onloadFunc(xdr, oncomplete, payload);
5034
+ }
5035
+ else {
5036
+ _doOnComplete(oncomplete, 200, {}, response);
5037
+ }
5038
+ };
5039
+ xdr.onerror = function () {
5040
+ _doOnComplete(oncomplete, 400, {}, formatErrorMessageXdr(xdr));
5041
+ };
5042
+ xdr.ontimeout = function () {
5043
+ _doOnComplete(oncomplete, 500, {});
5044
+ };
5045
+ xdr.onprogress = function () { };
5046
+ var hostingProtocol = _window && _window[_DYN_LOCATION ] && _window[_DYN_LOCATION ].protocol || "";
5047
+ var endpoint = payload[_DYN_URL_STRING ];
5048
+ if (!endpoint) {
5049
+ _onNoPayloadUrl(oncomplete);
5050
+ return;
5051
+ }
5052
+ if (endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {
5053
+ var msg = "Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.";
5054
+ _throwInternal(_diagLog, 2 , 40 , ". " + msg);
5055
+ _onError(msg, oncomplete);
5056
+ return;
5057
+ }
5058
+ var endpointUrl = endpoint.replace(/^(https?:)/, "");
5059
+ xdr.open("POST", endpointUrl);
5060
+ xdr.send(data);
5061
+ }
5062
+ function _initDefaults() {
5063
+ _syncFetchPayload = 0;
5064
+ _isInitialized = false;
5065
+ _enableSendPromise = false;
5066
+ _diagLog = null;
5067
+ _isOneDs = null;
5068
+ _onCompleteFuncs = null;
5069
+ _disableCredentials = null;
5070
+ _fallbackInst = null;
5071
+ _disableXhr = false;
5072
+ _disableBeacon = false;
5073
+ _disableBeaconSync = false;
5074
+ }
5075
+ });
5076
+ }
5077
+ SenderPostManager.__ieDyn=1;
5078
+ return SenderPostManager;
5079
+ }());
5080
+
4240
5081
  function createDomEvent(eventName) {
4241
5082
  var event = null;
4242
5083
  if (isFunction(Event)) {
@@ -4397,6 +5238,7 @@ exports.PropertiesPluginIdentifier = PropertiesPluginIdentifier;
4397
5238
  exports.RemoteDependencyData = RemoteDependencyData;
4398
5239
  exports.RequestHeaders = RequestHeaders;
4399
5240
  exports.SampleRate = SampleRate;
5241
+ exports.SenderPostManager = SenderPostManager;
4400
5242
  exports.SeverityLevel = SeverityLevel;
4401
5243
  exports.TelemetryItemCreator = TelemetryItemCreator;
4402
5244
  exports.ThrottleMgr = ThrottleMgr;
@@ -4425,8 +5267,11 @@ exports.dateTimeUtilsDuration = dateTimeUtilsDuration;
4425
5267
  exports.dateTimeUtilsNow = dateTimeUtilsNow;
4426
5268
  exports.dsPadNumber = dsPadNumber;
4427
5269
  exports.findW3cTraceParent = findW3cTraceParent;
5270
+ exports.formatErrorMessageXdr = formatErrorMessageXdr;
5271
+ exports.formatErrorMessageXhr = formatErrorMessageXhr;
4428
5272
  exports.formatTraceParent = formatTraceParent;
4429
5273
  exports.getExtensionByName = getExtensionByName;
5274
+ exports.getResponseText = getResponseText;
4430
5275
  exports.isBeaconApiSupported = isBeaconsSupported;
4431
5276
  exports.isCrossOriginError = isCrossOriginError;
4432
5277
  exports.isInternalApplicationInsightsEndpoint = isInternalApplicationInsightsEndpoint;
@@ -4436,7 +5281,9 @@ exports.isValidTraceId = isValidTraceId;
4436
5281
  exports.isValidTraceParent = isValidTraceParent;
4437
5282
  exports.msToTimeSpan = msToTimeSpan;
4438
5283
  exports.parseConnectionString = parseConnectionString;
5284
+ exports.parseResponse = parseResponse;
4439
5285
  exports.parseTraceParent = parseTraceParent;
5286
+ exports.prependTransports = prependTransports;
4440
5287
  exports.strNotSpecified = strNotSpecified;
4441
5288
  exports.stringToBoolOrDefault = stringToBoolOrDefault;
4442
5289
  exports.urlGetAbsoluteUrl = urlGetAbsoluteUrl;