@microsoft/1ds-post-js 3.2.1 → 3.2.4

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 (69) hide show
  1. package/README.md +1 -1
  2. package/bundle/{ms.post-3.2.1.gbl.js → ms.post-3.2.4.gbl.js} +1071 -966
  3. package/bundle/ms.post-3.2.4.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.2.4.gbl.min.js +7 -0
  5. package/bundle/ms.post-3.2.4.gbl.min.js.map +1 -0
  6. package/bundle/ms.post-3.2.4.integrity.json +46 -0
  7. package/bundle/{ms.post-3.2.1.js → ms.post-3.2.4.js} +1071 -966
  8. package/bundle/ms.post-3.2.4.js.map +1 -0
  9. package/bundle/ms.post-3.2.4.min.js +7 -0
  10. package/bundle/ms.post-3.2.4.min.js.map +1 -0
  11. package/bundle/ms.post.gbl.js +1070 -965
  12. package/bundle/ms.post.gbl.js.map +1 -1
  13. package/bundle/ms.post.gbl.min.js +2 -2
  14. package/bundle/ms.post.gbl.min.js.map +1 -1
  15. package/bundle/ms.post.integrity.json +17 -17
  16. package/bundle/ms.post.js +1070 -965
  17. package/bundle/ms.post.js.map +1 -1
  18. package/bundle/ms.post.min.js +2 -2
  19. package/bundle/ms.post.min.js.map +1 -1
  20. package/dist/ms.post.js +251 -212
  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 +6 -1
  26. package/dist-esm/src/ClockSkewManager.js.map +1 -1
  27. package/dist-esm/src/DataModels.js +1 -1
  28. package/dist-esm/src/EventBatch.d.ts +0 -5
  29. package/dist-esm/src/EventBatch.js +9 -4
  30. package/dist-esm/src/EventBatch.js.map +1 -1
  31. package/dist-esm/src/HttpManager.d.ts +4 -8
  32. package/dist-esm/src/HttpManager.js +120 -112
  33. package/dist-esm/src/HttpManager.js.map +1 -1
  34. package/dist-esm/src/Index.js +1 -1
  35. package/dist-esm/src/InternalConstants.d.ts +27 -0
  36. package/dist-esm/src/InternalConstants.js +40 -0
  37. package/dist-esm/src/InternalConstants.js.map +1 -0
  38. package/dist-esm/src/KillSwitch.js +7 -2
  39. package/dist-esm/src/KillSwitch.js.map +1 -1
  40. package/dist-esm/src/PostChannel.d.ts +3 -6
  41. package/dist-esm/src/PostChannel.js +97 -73
  42. package/dist-esm/src/PostChannel.js.map +1 -1
  43. package/dist-esm/src/RetryPolicy.js +1 -1
  44. package/dist-esm/src/Serializer.d.ts +1 -1
  45. package/dist-esm/src/Serializer.js +9 -3
  46. package/dist-esm/src/Serializer.js.map +1 -1
  47. package/dist-esm/src/TimeoutOverrideWrapper.d.ts +18 -0
  48. package/dist-esm/src/TimeoutOverrideWrapper.js +28 -0
  49. package/dist-esm/src/TimeoutOverrideWrapper.js.map +1 -0
  50. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  51. package/package.json +5 -3
  52. package/src/EventBatch.ts +4 -4
  53. package/src/HttpManager.ts +74 -71
  54. package/src/InternalConstants.ts +41 -0
  55. package/src/KillSwitch.ts +1 -1
  56. package/src/PostChannel.ts +72 -44
  57. package/src/Serializer.ts +7 -5
  58. package/src/TimeoutOverrideWrapper.ts +29 -0
  59. package/bundle/ms.post-3.2.1.gbl.js.map +0 -1
  60. package/bundle/ms.post-3.2.1.gbl.min.js +0 -7
  61. package/bundle/ms.post-3.2.1.gbl.min.js.map +0 -1
  62. package/bundle/ms.post-3.2.1.integrity.json +0 -46
  63. package/bundle/ms.post-3.2.1.js.map +0 -1
  64. package/bundle/ms.post-3.2.1.min.js +0 -7
  65. package/bundle/ms.post-3.2.1.min.js.map +0 -1
  66. package/dist-esm/src/Constants.d.ts +0 -25
  67. package/dist-esm/src/Constants.js +0 -31
  68. package/dist-esm/src/Constants.js.map +0 -1
  69. package/src/Constants.ts +0 -28
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * 1DS JS SDK POST plugin, 3.2.1
2
+ * 1DS JS SDK POST plugin, 3.2.4
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -80,20 +80,309 @@
80
80
  d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
81
81
  }
82
82
 
83
- var strEmpty = "";
84
- var strSetNextPlugin = "setNextPlugin";
85
- var strIsInitialized = "isInitialized";
86
- var strTeardown = "teardown";
87
- var strCore = "core";
88
- var strUpdate = "update";
89
- var strDisabled = "disabled";
90
- var strDoTeardown = "_doTeardown";
83
+ /*!
84
+ * Microsoft Dynamic Proto Utility, 1.1.6
85
+ * Copyright (c) Microsoft and contributors. All rights reserved.
86
+ */
87
+ var Constructor = 'constructor';
88
+ var Prototype = 'prototype';
89
+ var strFunction = 'function';
90
+ var DynInstFuncTable = '_dynInstFuncs';
91
+ var DynProxyTag = '_isDynProxy';
92
+ var DynClassName = '_dynClass';
93
+ var DynClassNamePrefix = '_dynCls$';
94
+ var DynInstChkTag = '_dynInstChk';
95
+ var DynAllowInstChkTag = DynInstChkTag;
96
+ var DynProtoDefaultOptions = '_dfOpts';
97
+ var UnknownValue = '_unknown_';
98
+ var str__Proto$1 = "__proto__";
99
+ var DynProtoBaseProto = "_dyn" + str__Proto$1;
100
+ var DynProtoCurrent = "_dynInstProto";
101
+ var strUseBaseInst = 'useBaseInst';
102
+ var strSetInstFuncs = 'setInstFuncs';
103
+ var Obj = Object;
104
+ var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
105
+ var _objGetOwnProps = Obj["getOwnPropertyNames"];
106
+ var _dynamicNames = 0;
107
+ function _hasOwnProperty(obj, prop) {
108
+ return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
109
+ }
110
+ function _isObjectOrArrayPrototype(target) {
111
+ return target && (target === Obj[Prototype] || target === Array[Prototype]);
112
+ }
113
+ function _isObjectArrayOrFunctionPrototype(target) {
114
+ return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
115
+ }
116
+ function _getObjProto$1(target) {
117
+ var newProto;
118
+ if (target) {
119
+ if (_objGetPrototypeOf$1) {
120
+ return _objGetPrototypeOf$1(target);
121
+ }
122
+ var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
123
+ newProto = target[DynProtoBaseProto] || curProto;
124
+ if (!_hasOwnProperty(target, DynProtoBaseProto)) {
125
+ delete target[DynProtoCurrent];
126
+ newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
127
+ target[DynProtoCurrent] = curProto;
128
+ }
129
+ }
130
+ return newProto;
131
+ }
132
+ function _forEachProp(target, func) {
133
+ var props = [];
134
+ if (_objGetOwnProps) {
135
+ props = _objGetOwnProps(target);
136
+ }
137
+ else {
138
+ for (var name_1 in target) {
139
+ if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
140
+ props.push(name_1);
141
+ }
142
+ }
143
+ }
144
+ if (props && props.length > 0) {
145
+ for (var lp = 0; lp < props.length; lp++) {
146
+ func(props[lp]);
147
+ }
148
+ }
149
+ }
150
+ function _isDynamicCandidate(target, funcName, skipOwn) {
151
+ return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
152
+ }
153
+ function _throwTypeError(message) {
154
+ throw new TypeError("DynamicProto: " + message);
155
+ }
156
+ function _getInstanceFuncs(thisTarget) {
157
+ var instFuncs = {};
158
+ _forEachProp(thisTarget, function (name) {
159
+ if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
160
+ instFuncs[name] = thisTarget[name];
161
+ }
162
+ });
163
+ return instFuncs;
164
+ }
165
+ function _hasVisited(values, value) {
166
+ for (var lp = values.length - 1; lp >= 0; lp--) {
167
+ if (values[lp] === value) {
168
+ return true;
169
+ }
170
+ }
171
+ return false;
172
+ }
173
+ function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
174
+ function _instFuncProxy(target, funcHost, funcName) {
175
+ var theFunc = funcHost[funcName];
176
+ if (theFunc[DynProxyTag] && useBaseInst) {
177
+ var instFuncTable = target[DynInstFuncTable] || {};
178
+ if (instFuncTable[DynAllowInstChkTag] !== false) {
179
+ theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
180
+ }
181
+ }
182
+ return function () {
183
+ return theFunc.apply(target, arguments);
184
+ };
185
+ }
186
+ var baseFuncs = {};
187
+ _forEachProp(instFuncs, function (name) {
188
+ baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
189
+ });
190
+ var baseProto = _getObjProto$1(classProto);
191
+ var visited = [];
192
+ while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
193
+ _forEachProp(baseProto, function (name) {
194
+ if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
195
+ baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
196
+ }
197
+ });
198
+ visited.push(baseProto);
199
+ baseProto = _getObjProto$1(baseProto);
200
+ }
201
+ return baseFuncs;
202
+ }
203
+ function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
204
+ var instFunc = null;
205
+ if (target && _hasOwnProperty(proto, DynClassName)) {
206
+ var instFuncTable = target[DynInstFuncTable] || {};
207
+ instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
208
+ if (!instFunc) {
209
+ _throwTypeError("Missing [" + funcName + "] " + strFunction);
210
+ }
211
+ if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
212
+ var canAddInst = !_hasOwnProperty(target, funcName);
213
+ var objProto = _getObjProto$1(target);
214
+ var visited = [];
215
+ while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
216
+ var protoFunc = objProto[funcName];
217
+ if (protoFunc) {
218
+ canAddInst = (protoFunc === currentDynProtoProxy);
219
+ break;
220
+ }
221
+ visited.push(objProto);
222
+ objProto = _getObjProto$1(objProto);
223
+ }
224
+ try {
225
+ if (canAddInst) {
226
+ target[funcName] = instFunc;
227
+ }
228
+ instFunc[DynInstChkTag] = 1;
229
+ }
230
+ catch (e) {
231
+ instFuncTable[DynAllowInstChkTag] = false;
232
+ }
233
+ }
234
+ }
235
+ return instFunc;
236
+ }
237
+ function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
238
+ var protoFunc = proto[funcName];
239
+ if (protoFunc === currentDynProtoProxy) {
240
+ protoFunc = _getObjProto$1(proto)[funcName];
241
+ }
242
+ if (typeof protoFunc !== strFunction) {
243
+ _throwTypeError("[" + funcName + "] is not a " + strFunction);
244
+ }
245
+ return protoFunc;
246
+ }
247
+ function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
248
+ function _createDynamicPrototype(proto, funcName) {
249
+ var dynProtoProxy = function () {
250
+ var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
251
+ return instFunc.apply(this, arguments);
252
+ };
253
+ dynProtoProxy[DynProxyTag] = 1;
254
+ return dynProtoProxy;
255
+ }
256
+ if (!_isObjectOrArrayPrototype(proto)) {
257
+ var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
258
+ var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
259
+ if (instFuncTable[DynAllowInstChkTag] !== false) {
260
+ instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
261
+ }
262
+ _forEachProp(target, function (name) {
263
+ if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
264
+ instFuncs_1[name] = target[name];
265
+ delete target[name];
266
+ if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
267
+ proto[name] = _createDynamicPrototype(proto, name);
268
+ }
269
+ }
270
+ });
271
+ }
272
+ }
273
+ function _checkPrototype(classProto, thisTarget) {
274
+ if (_objGetPrototypeOf$1) {
275
+ var visited = [];
276
+ var thisProto = _getObjProto$1(thisTarget);
277
+ while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
278
+ if (thisProto === classProto) {
279
+ return true;
280
+ }
281
+ visited.push(thisProto);
282
+ thisProto = _getObjProto$1(thisProto);
283
+ }
284
+ return false;
285
+ }
286
+ return true;
287
+ }
288
+ function _getObjName(target, unknownValue) {
289
+ if (_hasOwnProperty(target, Prototype)) {
290
+ return target.name || unknownValue || UnknownValue;
291
+ }
292
+ return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
293
+ }
294
+ function dynamicProto(theClass, target, delegateFunc, options) {
295
+ if (!_hasOwnProperty(theClass, Prototype)) {
296
+ _throwTypeError("theClass is an invalid class definition.");
297
+ }
298
+ var classProto = theClass[Prototype];
299
+ if (!_checkPrototype(classProto, target)) {
300
+ _throwTypeError("[" + _getObjName(theClass) + "] is not in class hierarchy of [" + _getObjName(target) + "]");
301
+ }
302
+ var className = null;
303
+ if (_hasOwnProperty(classProto, DynClassName)) {
304
+ className = classProto[DynClassName];
305
+ }
306
+ else {
307
+ className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _dynamicNames;
308
+ _dynamicNames++;
309
+ classProto[DynClassName] = className;
310
+ }
311
+ var perfOptions = dynamicProto[DynProtoDefaultOptions];
312
+ var useBaseInst = !!perfOptions[strUseBaseInst];
313
+ if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
314
+ useBaseInst = !!options[strUseBaseInst];
315
+ }
316
+ var instFuncs = _getInstanceFuncs(target);
317
+ var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
318
+ delegateFunc(target, baseFuncs);
319
+ var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
320
+ if (setInstanceFunc && options) {
321
+ setInstanceFunc = !!options[strSetInstFuncs];
322
+ }
323
+ _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
324
+ }
325
+ var perfDefaults = {
326
+ setInstFuncs: true,
327
+ useBaseInst: true
328
+ };
329
+ dynamicProto[DynProtoDefaultOptions] = perfDefaults;
330
+
331
+ var _DYN_INITIALIZE = "initialize";
332
+ var _DYN_NAME = "name";
333
+ var _DYN_IDENTIFIER = "identifier";
334
+ var _DYN_PUSH = "push";
335
+ var _DYN_IS_INITIALIZED = "isInitialized";
336
+ var _DYN_CONFIG = "config";
337
+ var _DYN_LOGGER = "logger";
338
+ var _DYN_LENGTH = "length";
339
+ var _DYN_TIME = "time";
340
+ var _DYN_PROCESS_NEXT = "processNext";
341
+ var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
342
+ var _DYN_GET_PLUGIN = "getPlugin";
343
+ var _DYN_SPLICE = "splice";
344
+ var _DYN_TEARDOWN = "teardown";
345
+ var _DYN_MESSAGE_ID = "messageId";
346
+ var _DYN_MESSAGE = "message";
347
+ var _DYN_IS_ASYNC = "isAsync";
348
+ var _DYN__DO_TEARDOWN = "_doTeardown";
349
+ var _DYN_UPDATE = "update";
350
+ var _DYN_GET_NEXT = "getNext";
351
+ var _DYN_DIAG_LOG = "diagLog";
352
+ var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
353
+ var _DYN_CREATE_NEW = "createNew";
354
+ var _DYN_INDEX_OF = "indexOf";
355
+ var _DYN_USER_AGENT = "userAgent";
356
+ var _DYN_SPLIT = "split";
357
+ var _DYN_REPLACE = "replace";
358
+ var _DYN_NODE_TYPE = "nodeType";
359
+ var _DYN_APPLY = "apply";
360
+ var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
361
+ var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
362
+ var _DYN_TO_LOWER_CASE = "toLowerCase";
363
+ var _DYN_CALL = "call";
364
+ var _DYN_TYPE = "type";
365
+ var _DYN_HANDLER = "handler";
366
+ var _DYN_IS_CHILD_EVT = "isChildEvt";
367
+ var _DYN_GET_CTX = "getCtx";
368
+ var _DYN_SET_CTX = "setCtx";
369
+ var _DYN_COMPLETE = "complete";
370
+
371
+ var STR_EMPTY$1 = "";
372
+ var STR_CORE = "core";
373
+ var STR_DISABLED = "disabled";
374
+ var STR_EXTENSION_CONFIG = "extensionConfig";
375
+ var STR_PROCESS_TELEMETRY = "processTelemetry";
376
+ var STR_PRIORITY = "priority";
377
+ var STR_ERROR_TO_CONSOLE = "errorToConsole";
378
+ var STR_WARN_TO_CONSOLE = "warnToConsole";
379
+ var STR_GET_PERF_MGR = "getPerfMgr";
91
380
 
92
381
  var cStrStartsWith = "startsWith";
93
382
  var strIndexOf = "indexOf";
94
383
  var cStrTrim = "trim";
95
384
  var strToString = "toString";
96
- var str__Proto$1 = "__proto__";
385
+ var str__Proto = "__proto__";
97
386
  var strConstructor = "constructor";
98
387
  var _objDefineProperty$1 = ObjDefineProperty;
99
388
  var _objFreeze = ObjClass.freeze;
@@ -104,17 +393,17 @@
104
393
  var _isArray = Array.isArray;
105
394
  var _objToString = ObjProto[strToString];
106
395
  var _fnToString = ObjHasOwnProperty[strToString];
107
- var _objFunctionString = _fnToString.call(ObjClass);
396
+ var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
108
397
  var rCamelCase = /-([a-z])/g;
109
398
  var rNormalizeInvalid = /([^\w\d_$])/g;
110
399
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
111
- var _objGetPrototypeOf$1 = Object["getPrototypeOf"];
112
- function _getObjProto$1(target) {
400
+ var _objGetPrototypeOf = Object["getPrototypeOf"];
401
+ function _getObjProto(target) {
113
402
  if (target) {
114
- if (_objGetPrototypeOf$1) {
115
- return _objGetPrototypeOf$1(target);
403
+ if (_objGetPrototypeOf) {
404
+ return _objGetPrototypeOf(target);
116
405
  }
117
- var newProto = target[str__Proto$1] || target[strShimPrototype] || target[strConstructor];
406
+ var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
118
407
  if (newProto) {
119
408
  return newProto;
120
409
  }
@@ -128,7 +417,7 @@
128
417
  return (value === null || isUndefined(value));
129
418
  }
130
419
  function hasOwnProperty(obj, prop) {
131
- return !!(obj && ObjHasOwnProperty.call(obj, prop));
420
+ return !!(obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop));
132
421
  }
133
422
  function isObject(value) {
134
423
  return !!(value && typeof value === strShimObject);
@@ -139,11 +428,11 @@
139
428
  function normalizeJsName(name) {
140
429
  var value = name;
141
430
  if (value && isString(value)) {
142
- value = value.replace(rCamelCase, function (_all, letter) {
431
+ value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
143
432
  return letter.toUpperCase();
144
433
  });
145
- value = value.replace(rNormalizeInvalid, "_");
146
- value = value.replace(rLeadingNumeric, function (_all, match) {
434
+ value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
435
+ value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
147
436
  return "_" + match;
148
437
  });
149
438
  }
@@ -152,8 +441,8 @@
152
441
  function objForEachKey(target, callbackfn) {
153
442
  if (target) {
154
443
  for (var prop in target) {
155
- if (ObjHasOwnProperty.call(target, prop)) {
156
- callbackfn.call(target, prop, target[prop]);
444
+ if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
445
+ callbackfn[_DYN_CALL ](target, prop, target[prop]);
157
446
  }
158
447
  }
159
448
  }
@@ -167,8 +456,8 @@
167
456
  }
168
457
  function _strStartsWithPoly(value, checkValue) {
169
458
  var result = false;
170
- var chkLen = checkValue ? checkValue.length : 0;
171
- if (value && chkLen && value.length >= chkLen && !(result = value === checkValue)) {
459
+ var chkLen = checkValue ? checkValue[_DYN_LENGTH ] : 0;
460
+ if (value && chkLen && value[_DYN_LENGTH ] >= chkLen && !(result = value === checkValue)) {
172
461
  for (var lp = 0; lp < chkLen; lp++) {
173
462
  if (value[lp] !== checkValue[lp]) {
174
463
  return false;
@@ -180,13 +469,13 @@
180
469
  }
181
470
  function strContains(value, search) {
182
471
  if (value && search) {
183
- return value.indexOf(search) !== -1;
472
+ return value[_DYN_INDEX_OF ](search) !== -1;
184
473
  }
185
474
  return false;
186
475
  }
187
476
  var isArray = _isArray || _isArrayPoly;
188
477
  function _isArrayPoly(obj) {
189
- return !!(obj && _objToString.call(obj) === "[object Array]");
478
+ return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
190
479
  }
191
480
  function isString(value) {
192
481
  return typeof value === "string";
@@ -200,25 +489,25 @@
200
489
  function isPlainObject(value) {
201
490
  var result = false;
202
491
  if (value && typeof value === "object") {
203
- var proto = _objGetPrototypeOf$1 ? _objGetPrototypeOf$1(value) : _getObjProto$1(value);
492
+ var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
204
493
  if (!proto) {
205
494
  result = true;
206
495
  }
207
496
  else {
208
- if (proto[strConstructor] && ObjHasOwnProperty.call(proto, strConstructor)) {
497
+ if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
209
498
  proto = proto[strConstructor];
210
499
  }
211
- result = typeof proto === strShimFunction && _fnToString.call(proto) === _objFunctionString;
500
+ result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
212
501
  }
213
502
  }
214
503
  return result;
215
504
  }
216
505
  function arrForEach(arr, callbackfn, thisArg) {
217
- var len = arr.length;
506
+ var len = arr[_DYN_LENGTH ];
218
507
  try {
219
508
  for (var idx = 0; idx < len; idx++) {
220
509
  if (idx in arr) {
221
- if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {
510
+ if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
222
511
  break;
223
512
  }
224
513
  }
@@ -232,7 +521,7 @@
232
521
  if (arr[strIndexOf]) {
233
522
  return arr[strIndexOf](searchElement, fromIndex);
234
523
  }
235
- var len = arr.length;
524
+ var len = arr[_DYN_LENGTH ];
236
525
  var from = fromIndex || 0;
237
526
  try {
238
527
  for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
@@ -248,7 +537,7 @@
248
537
  }
249
538
  function strTrim(str) {
250
539
  if (str) {
251
- str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str.replace ? str.replace(/^\s+|\s+$/g, "") : str);
540
+ str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|\s+$/g, STR_EMPTY$1) : str);
252
541
  }
253
542
  return str;
254
543
  }
@@ -272,15 +561,15 @@
272
561
  }
273
562
  var result = [];
274
563
  for (var prop in obj) {
275
- if (obj && ObjHasOwnProperty.call(obj, prop)) {
276
- result.push(prop);
564
+ if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
565
+ result[_DYN_PUSH ](prop);
277
566
  }
278
567
  }
279
568
  if (_objKeysHasDontEnumBug) {
280
- var dontEnumsLength = _objKeysDontEnums.length;
569
+ var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH ];
281
570
  for (var lp = 0; lp < dontEnumsLength; lp++) {
282
- if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {
283
- result.push(_objKeysDontEnums[lp]);
571
+ if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
572
+ result[_DYN_PUSH ](_objKeysDontEnums[lp]);
284
573
  }
285
574
  }
286
575
  }
@@ -336,6 +625,9 @@
336
625
  }
337
626
  return theValue;
338
627
  }
628
+ function getCfgValue(theValue, defaultValue) {
629
+ return !isNullOrUndefined(theValue) ? theValue : defaultValue;
630
+ }
339
631
  function _createProxyFunction(source, funcName) {
340
632
  var srcFunc = null;
341
633
  var src = null;
@@ -351,7 +643,7 @@
351
643
  src = srcFunc();
352
644
  }
353
645
  if (src) {
354
- return src[funcName].apply(src, originalArguments);
646
+ return src[funcName][_DYN_APPLY ](src, originalArguments);
355
647
  }
356
648
  };
357
649
  }
@@ -371,7 +663,7 @@
371
663
  function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
372
664
  var theArgs = arguments;
373
665
  var extended = theArgs[0] || {};
374
- var argLen = theArgs.length;
666
+ var argLen = theArgs[_DYN_LENGTH ];
375
667
  var deep = false;
376
668
  var idx = 1;
377
669
  if (argLen > 0 && isBoolean(extended)) {
@@ -387,7 +679,7 @@
387
679
  var isArgArray = isArray(arg);
388
680
  var isArgObj = isObject(arg);
389
681
  for (var prop in arg) {
390
- var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty.call(arg, prop)));
682
+ var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
391
683
  if (!propOk) {
392
684
  continue;
393
685
  }
@@ -431,247 +723,6 @@
431
723
  QueueFull: 5
432
724
  });
433
725
 
434
- /*!
435
- * Microsoft Dynamic Proto Utility, 1.1.4
436
- * Copyright (c) Microsoft and contributors. All rights reserved.
437
- */
438
- var Constructor = 'constructor';
439
- var Prototype = 'prototype';
440
- var strFunction = 'function';
441
- var DynInstFuncTable = '_dynInstFuncs';
442
- var DynProxyTag = '_isDynProxy';
443
- var DynClassName = '_dynClass';
444
- var DynClassNamePrefix = '_dynCls$';
445
- var DynInstChkTag = '_dynInstChk';
446
- var DynAllowInstChkTag = DynInstChkTag;
447
- var DynProtoDefaultOptions = '_dfOpts';
448
- var UnknownValue = '_unknown_';
449
- var str__Proto = "__proto__";
450
- var strUseBaseInst = 'useBaseInst';
451
- var strSetInstFuncs = 'setInstFuncs';
452
- var Obj = Object;
453
- var _objGetPrototypeOf = Obj["getPrototypeOf"];
454
- var _dynamicNames = 0;
455
- function _hasOwnProperty(obj, prop) {
456
- return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
457
- }
458
- function _isObjectOrArrayPrototype(target) {
459
- return target && (target === Obj[Prototype] || target === Array[Prototype]);
460
- }
461
- function _isObjectArrayOrFunctionPrototype(target) {
462
- return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
463
- }
464
- function _getObjProto(target) {
465
- if (target) {
466
- if (_objGetPrototypeOf) {
467
- return _objGetPrototypeOf(target);
468
- }
469
- var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
470
- if (newProto) {
471
- return newProto;
472
- }
473
- }
474
- return null;
475
- }
476
- function _forEachProp(target, func) {
477
- var props = [];
478
- var getOwnProps = Obj["getOwnPropertyNames"];
479
- if (getOwnProps) {
480
- props = getOwnProps(target);
481
- }
482
- else {
483
- for (var name_1 in target) {
484
- if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
485
- props.push(name_1);
486
- }
487
- }
488
- }
489
- if (props && props.length > 0) {
490
- for (var lp = 0; lp < props.length; lp++) {
491
- func(props[lp]);
492
- }
493
- }
494
- }
495
- function _isDynamicCandidate(target, funcName, skipOwn) {
496
- return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
497
- }
498
- function _throwTypeError(message) {
499
- throw new TypeError("DynamicProto: " + message);
500
- }
501
- function _getInstanceFuncs(thisTarget) {
502
- var instFuncs = {};
503
- _forEachProp(thisTarget, function (name) {
504
- if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
505
- instFuncs[name] = thisTarget[name];
506
- }
507
- });
508
- return instFuncs;
509
- }
510
- function _hasVisited(values, value) {
511
- for (var lp = values.length - 1; lp >= 0; lp--) {
512
- if (values[lp] === value) {
513
- return true;
514
- }
515
- }
516
- return false;
517
- }
518
- function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
519
- function _instFuncProxy(target, funcHost, funcName) {
520
- var theFunc = funcHost[funcName];
521
- if (theFunc[DynProxyTag] && useBaseInst) {
522
- var instFuncTable = target[DynInstFuncTable] || {};
523
- if (instFuncTable[DynAllowInstChkTag] !== false) {
524
- theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
525
- }
526
- }
527
- return function () {
528
- return theFunc.apply(target, arguments);
529
- };
530
- }
531
- var baseFuncs = {};
532
- _forEachProp(instFuncs, function (name) {
533
- baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
534
- });
535
- var baseProto = _getObjProto(classProto);
536
- var visited = [];
537
- while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
538
- _forEachProp(baseProto, function (name) {
539
- if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {
540
- baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
541
- }
542
- });
543
- visited.push(baseProto);
544
- baseProto = _getObjProto(baseProto);
545
- }
546
- return baseFuncs;
547
- }
548
- function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
549
- var instFunc = null;
550
- if (target && _hasOwnProperty(proto, DynClassName)) {
551
- var instFuncTable = target[DynInstFuncTable] || {};
552
- instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
553
- if (!instFunc) {
554
- _throwTypeError("Missing [" + funcName + "] " + strFunction);
555
- }
556
- if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
557
- var canAddInst = !_hasOwnProperty(target, funcName);
558
- var objProto = _getObjProto(target);
559
- var visited = [];
560
- while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
561
- var protoFunc = objProto[funcName];
562
- if (protoFunc) {
563
- canAddInst = (protoFunc === currentDynProtoProxy);
564
- break;
565
- }
566
- visited.push(objProto);
567
- objProto = _getObjProto(objProto);
568
- }
569
- try {
570
- if (canAddInst) {
571
- target[funcName] = instFunc;
572
- }
573
- instFunc[DynInstChkTag] = 1;
574
- }
575
- catch (e) {
576
- instFuncTable[DynAllowInstChkTag] = false;
577
- }
578
- }
579
- }
580
- return instFunc;
581
- }
582
- function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
583
- var protoFunc = proto[funcName];
584
- if (protoFunc === currentDynProtoProxy) {
585
- protoFunc = _getObjProto(proto)[funcName];
586
- }
587
- if (typeof protoFunc !== strFunction) {
588
- _throwTypeError("[" + funcName + "] is not a " + strFunction);
589
- }
590
- return protoFunc;
591
- }
592
- function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
593
- function _createDynamicPrototype(proto, funcName) {
594
- var dynProtoProxy = function () {
595
- var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
596
- return instFunc.apply(this, arguments);
597
- };
598
- dynProtoProxy[DynProxyTag] = 1;
599
- return dynProtoProxy;
600
- }
601
- if (!_isObjectOrArrayPrototype(proto)) {
602
- var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
603
- var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
604
- if (instFuncTable[DynAllowInstChkTag] !== false) {
605
- instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
606
- }
607
- _forEachProp(target, function (name) {
608
- if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
609
- instFuncs_1[name] = target[name];
610
- delete target[name];
611
- if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
612
- proto[name] = _createDynamicPrototype(proto, name);
613
- }
614
- }
615
- });
616
- }
617
- }
618
- function _checkPrototype(classProto, thisTarget) {
619
- if (_objGetPrototypeOf) {
620
- var visited = [];
621
- var thisProto = _getObjProto(thisTarget);
622
- while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
623
- if (thisProto === classProto) {
624
- return true;
625
- }
626
- visited.push(thisProto);
627
- thisProto = _getObjProto(thisProto);
628
- }
629
- }
630
- return false;
631
- }
632
- function _getObjName(target, unknownValue) {
633
- if (_hasOwnProperty(target, Prototype)) {
634
- return target.name || unknownValue || UnknownValue;
635
- }
636
- return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
637
- }
638
- function dynamicProto(theClass, target, delegateFunc, options) {
639
- if (!_hasOwnProperty(theClass, Prototype)) {
640
- _throwTypeError("theClass is an invalid class definition.");
641
- }
642
- var classProto = theClass[Prototype];
643
- if (!_checkPrototype(classProto, target)) {
644
- _throwTypeError("[" + _getObjName(theClass) + "] is not in class hierarchy of [" + _getObjName(target) + "]");
645
- }
646
- var className = null;
647
- if (_hasOwnProperty(classProto, DynClassName)) {
648
- className = classProto[DynClassName];
649
- }
650
- else {
651
- className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _dynamicNames;
652
- _dynamicNames++;
653
- classProto[DynClassName] = className;
654
- }
655
- var perfOptions = dynamicProto[DynProtoDefaultOptions];
656
- var useBaseInst = !!perfOptions[strUseBaseInst];
657
- if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
658
- useBaseInst = !!options[strUseBaseInst];
659
- }
660
- var instFuncs = _getInstanceFuncs(target);
661
- var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
662
- delegateFunc(target, baseFuncs);
663
- var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];
664
- if (setInstanceFunc && options) {
665
- setInstanceFunc = !!options[strSetInstFuncs];
666
- }
667
- _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
668
- }
669
- var perfDefaults = {
670
- setInstFuncs: true,
671
- useBaseInst: true
672
- };
673
- dynamicProto[DynProtoDefaultOptions] = perfDefaults;
674
-
675
726
  var strWindow = "window";
676
727
  var strDocument = "document";
677
728
  var strNavigator = "navigator";
@@ -797,18 +848,18 @@
797
848
  }
798
849
  function isIE() {
799
850
  var nav = getNavigator();
800
- if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {
801
- _navUserAgentCheck = nav.userAgent;
802
- var userAgent = (_navUserAgentCheck || strEmpty).toLowerCase();
851
+ if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
852
+ _navUserAgentCheck = nav[_DYN_USER_AGENT ];
853
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE ]();
803
854
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
804
855
  }
805
856
  return _isTrident;
806
857
  }
807
858
  function dumpObj(object) {
808
- var objectTypeDump = Object[strShimPrototype].toString.call(object);
809
- var propertyValueDump = strEmpty;
859
+ var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
860
+ var propertyValueDump = STR_EMPTY$1;
810
861
  if (objectTypeDump === "[object Error]") {
811
- propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
862
+ propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME ] + "'";
812
863
  }
813
864
  else if (hasJSON()) {
814
865
  propertyValueDump = getJSON().stringify(object);
@@ -873,13 +924,11 @@
873
924
  var AiNonUserActionablePrefix = "AI (Internal): ";
874
925
  var AiUserActionablePrefix = "AI: ";
875
926
  var AIInternalMessagePrefix = "AITR_";
876
- var strErrorToConsole = "errorToConsole";
877
- var strWarnToConsole = "warnToConsole";
878
927
  function _sanitizeDiagnosticText(text) {
879
928
  if (text) {
880
- return "\"" + text.replace(/\"/g, strEmpty) + "\"";
929
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
881
930
  }
882
- return strEmpty;
931
+ return STR_EMPTY$1;
883
932
  }
884
933
  function _logToConsole(func, message) {
885
934
  var theConsole = getConsole();
@@ -897,23 +946,23 @@
897
946
  function _InternalLogMessage(msgId, msg, isUserAct, properties) {
898
947
  if (isUserAct === void 0) { isUserAct = false; }
899
948
  var _self = this;
900
- _self.messageId = msgId;
901
- _self.message =
949
+ _self[_DYN_MESSAGE_ID ] = msgId;
950
+ _self[_DYN_MESSAGE ] =
902
951
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
903
952
  msgId;
904
- var strProps = strEmpty;
953
+ var strProps = STR_EMPTY$1;
905
954
  if (hasJSON()) {
906
955
  strProps = getJSON().stringify(properties);
907
956
  }
908
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : strEmpty) +
909
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : strEmpty);
910
- _self.message += diagnosticText;
957
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
958
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
959
+ _self[_DYN_MESSAGE ] += diagnosticText;
911
960
  }
912
961
  _InternalLogMessage.dataType = "MessageData";
913
962
  return _InternalLogMessage;
914
963
  }());
915
964
  function safeGetLogger(core, config) {
916
- return (core || {}).logger || new DiagnosticLogger(config);
965
+ return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
917
966
  }
918
967
  var DiagnosticLogger = /** @class */ (function () {
919
968
  function DiagnosticLogger(config) {
@@ -921,48 +970,49 @@
921
970
  this.queue = [];
922
971
  var _messageCount = 0;
923
972
  var _messageLogged = {};
973
+ var _loggingLevelConsole;
974
+ var _loggingLevelTelemetry;
975
+ var _maxInternalMessageLimit;
976
+ var _enableDebugExceptions;
924
977
  dynamicProto(DiagnosticLogger, this, function (_self) {
925
- if (isNullOrUndefined(config)) {
926
- config = {};
927
- }
928
- _self.consoleLoggingLevel = function () { return _getConfigValue("loggingLevelConsole", 0); };
929
- _self.telemetryLoggingLevel = function () { return _getConfigValue("loggingLevelTelemetry", 1); };
930
- _self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
931
- _self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
978
+ _setDefaultsFromConfig(config || {});
979
+ _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
980
+ _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
981
+ _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
982
+ _self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebugExceptions; };
932
983
  _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
933
984
  if (isUserAct === void 0) { isUserAct = false; }
934
985
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
935
- if (_self.enableDebugExceptions()) {
936
- throw message;
986
+ if (_enableDebugExceptions) {
987
+ throw dumpObj(message);
937
988
  }
938
989
  else {
939
- var logFunc = severity === 1 ? strErrorToConsole : strWarnToConsole;
940
- if (!isUndefined(message.message)) {
941
- var logLevel = _self.consoleLoggingLevel();
990
+ var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
991
+ if (!isUndefined(message[_DYN_MESSAGE ])) {
942
992
  if (isUserAct) {
943
- var messageKey = +message.messageId;
944
- if (!_messageLogged[messageKey] && logLevel >= severity) {
945
- _self[logFunc](message.message);
993
+ var messageKey = +message[_DYN_MESSAGE_ID ];
994
+ if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
995
+ _self[logFunc](message[_DYN_MESSAGE ]);
946
996
  _messageLogged[messageKey] = true;
947
997
  }
948
998
  }
949
999
  else {
950
- if (logLevel >= severity) {
951
- _self[logFunc](message.message);
1000
+ if (_loggingLevelConsole >= severity) {
1001
+ _self[logFunc](message[_DYN_MESSAGE ]);
952
1002
  }
953
1003
  }
954
- _self.logInternalMessage(severity, message);
1004
+ _logInternalMessage(severity, message);
955
1005
  }
956
1006
  else {
957
1007
  _debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
958
1008
  }
959
1009
  }
960
1010
  };
961
- _self.warnToConsole = function (message) {
1011
+ _self[STR_WARN_TO_CONSOLE ] = function (message) {
962
1012
  _logToConsole("warn", message);
963
1013
  _debugExtMsg("warning", message);
964
1014
  };
965
- _self.errorToConsole = function (message) {
1015
+ _self[STR_ERROR_TO_CONSOLE ] = function (message) {
966
1016
  _logToConsole("error", message);
967
1017
  _debugExtMsg("error", message);
968
1018
  };
@@ -970,12 +1020,13 @@
970
1020
  _messageCount = 0;
971
1021
  _messageLogged = {};
972
1022
  };
973
- _self.logInternalMessage = function (severity, message) {
1023
+ _self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
1024
+ function _logInternalMessage(severity, message) {
974
1025
  if (_areInternalMessagesThrottled()) {
975
1026
  return;
976
1027
  }
977
1028
  var logMessage = true;
978
- var messageKey = AIInternalMessagePrefix + message.messageId;
1029
+ var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
979
1030
  if (_messageLogged[messageKey]) {
980
1031
  logMessage = false;
981
1032
  }
@@ -983,58 +1034,66 @@
983
1034
  _messageLogged[messageKey] = true;
984
1035
  }
985
1036
  if (logMessage) {
986
- if (severity <= _self.telemetryLoggingLevel()) {
987
- _self.queue.push(message);
1037
+ if (severity <= _loggingLevelTelemetry) {
1038
+ _self.queue[_DYN_PUSH ](message);
988
1039
  _messageCount++;
989
1040
  _debugExtMsg((severity === 1 ? "error" : "warn"), message);
990
1041
  }
991
- if (_messageCount === _self.maxInternalMessageLimit()) {
1042
+ if (_messageCount === _maxInternalMessageLimit) {
992
1043
  var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
993
1044
  var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
994
- _self.queue.push(throttleMessage);
1045
+ _self.queue[_DYN_PUSH ](throttleMessage);
995
1046
  if (severity === 1 ) {
996
- _self.errorToConsole(throttleLimitMessage);
1047
+ _self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
997
1048
  }
998
1049
  else {
999
- _self.warnToConsole(throttleLimitMessage);
1050
+ _self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
1000
1051
  }
1001
1052
  }
1002
1053
  }
1003
- };
1004
- function _getConfigValue(name, defValue) {
1005
- var value = config[name];
1006
- if (!isNullOrUndefined(value)) {
1007
- return value;
1008
- }
1009
- return defValue;
1054
+ }
1055
+ function _setDefaultsFromConfig(config) {
1056
+ _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
1057
+ _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
1058
+ _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
1059
+ _enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false);
1010
1060
  }
1011
1061
  function _areInternalMessagesThrottled() {
1012
- return _messageCount >= _self.maxInternalMessageLimit();
1062
+ return _messageCount >= _maxInternalMessageLimit;
1013
1063
  }
1014
1064
  function _debugExtMsg(name, data) {
1015
- var dbgExt = getDebugExt(config);
1016
- if (dbgExt && dbgExt.diagLog) {
1017
- dbgExt.diagLog(name, data);
1065
+ var dbgExt = getDebugExt(config || {});
1066
+ if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
1067
+ dbgExt[_DYN_DIAG_LOG ](name, data);
1018
1068
  }
1019
1069
  }
1020
1070
  });
1021
1071
  }
1072
+ DiagnosticLogger.__ieDyn=1;
1022
1073
  return DiagnosticLogger;
1023
1074
  }());
1075
+ function _getLogger(logger) {
1076
+ return (logger || new DiagnosticLogger());
1077
+ }
1024
1078
  function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1025
1079
  if (isUserAct === void 0) { isUserAct = false; }
1026
- (logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
1080
+ _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
1081
+ }
1082
+ function _warnToConsole(logger, message) {
1083
+ _getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
1027
1084
  }
1028
1085
 
1029
1086
  var strExecutionContextKey = "ctx";
1087
+ var strParentContextKey = "ParentContextKey";
1088
+ var strChildrenContextKey = "ChildrenContextKey";
1030
1089
  var PerfEvent = /** @class */ (function () {
1031
1090
  function PerfEvent(name, payloadDetails, isAsync) {
1032
1091
  var _self = this;
1033
1092
  var accessorDefined = false;
1034
1093
  _self.start = dateNow();
1035
- _self.name = name;
1036
- _self.isAsync = isAsync;
1037
- _self.isChildEvt = function () { return false; };
1094
+ _self[_DYN_NAME ] = name;
1095
+ _self[_DYN_IS_ASYNC ] = isAsync;
1096
+ _self[_DYN_IS_CHILD_EVT ] = function () { return false; };
1038
1097
  if (isFunction(payloadDetails)) {
1039
1098
  var theDetails_1;
1040
1099
  accessorDefined = objDefineAccessors(_self, "payload", function () {
@@ -1045,24 +1104,24 @@
1045
1104
  return theDetails_1;
1046
1105
  });
1047
1106
  }
1048
- _self.getCtx = function (key) {
1107
+ _self[_DYN_GET_CTX ] = function (key) {
1049
1108
  if (key) {
1050
- if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {
1109
+ if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
1051
1110
  return _self[key];
1052
1111
  }
1053
1112
  return (_self[strExecutionContextKey] || {})[key];
1054
1113
  }
1055
1114
  return null;
1056
1115
  };
1057
- _self.setCtx = function (key, value) {
1116
+ _self[_DYN_SET_CTX ] = function (key, value) {
1058
1117
  if (key) {
1059
- if (key === PerfEvent.ParentContextKey) {
1118
+ if (key === PerfEvent[strParentContextKey]) {
1060
1119
  if (!_self[key]) {
1061
- _self.isChildEvt = function () { return true; };
1120
+ _self[_DYN_IS_CHILD_EVT ] = function () { return true; };
1062
1121
  }
1063
1122
  _self[key] = value;
1064
1123
  }
1065
- else if (key === PerfEvent.ChildrenContextKey) {
1124
+ else if (key === PerfEvent[strChildrenContextKey]) {
1066
1125
  _self[key] = value;
1067
1126
  }
1068
1127
  else {
@@ -1071,20 +1130,20 @@
1071
1130
  }
1072
1131
  }
1073
1132
  };
1074
- _self.complete = function () {
1133
+ _self[_DYN_COMPLETE ] = function () {
1075
1134
  var childTime = 0;
1076
- var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);
1135
+ var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
1077
1136
  if (isArray(childEvts)) {
1078
- for (var lp = 0; lp < childEvts.length; lp++) {
1137
+ for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
1079
1138
  var childEvt = childEvts[lp];
1080
1139
  if (childEvt) {
1081
- childTime += childEvt.time;
1140
+ childTime += childEvt[_DYN_TIME ];
1082
1141
  }
1083
1142
  }
1084
1143
  }
1085
- _self.time = dateNow() - _self.start;
1086
- _self.exTime = _self.time - childTime;
1087
- _self.complete = function () { };
1144
+ _self[_DYN_TIME ] = dateNow() - _self.start;
1145
+ _self.exTime = _self[_DYN_TIME ] - childTime;
1146
+ _self[_DYN_COMPLETE ] = function () { };
1088
1147
  if (!accessorDefined && isFunction(payloadDetails)) {
1089
1148
  _self.payload = payloadDetails();
1090
1149
  }
@@ -1098,40 +1157,40 @@
1098
1157
  function doPerf(mgrSource, getSource, func, details, isAsync) {
1099
1158
  if (mgrSource) {
1100
1159
  var perfMgr = mgrSource;
1101
- if (isFunction(perfMgr["getPerfMgr"])) {
1102
- perfMgr = perfMgr["getPerfMgr"]();
1160
+ if (perfMgr[STR_GET_PERF_MGR]) {
1161
+ perfMgr = perfMgr[STR_GET_PERF_MGR]();
1103
1162
  }
1104
1163
  if (perfMgr) {
1105
1164
  var perfEvt = void 0;
1106
- var currentActive = perfMgr.getCtx(doPerfActiveKey);
1165
+ var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
1107
1166
  try {
1108
1167
  perfEvt = perfMgr.create(getSource(), details, isAsync);
1109
1168
  if (perfEvt) {
1110
- if (currentActive && perfEvt.setCtx) {
1111
- perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);
1112
- if (currentActive.getCtx && currentActive.setCtx) {
1113
- var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);
1169
+ if (currentActive && perfEvt[_DYN_SET_CTX ]) {
1170
+ perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
1171
+ if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
1172
+ var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
1114
1173
  if (!children) {
1115
1174
  children = [];
1116
- currentActive.setCtx(PerfEvent.ChildrenContextKey, children);
1175
+ currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
1117
1176
  }
1118
- children.push(perfEvt);
1177
+ children[_DYN_PUSH ](perfEvt);
1119
1178
  }
1120
1179
  }
1121
- perfMgr.setCtx(doPerfActiveKey, perfEvt);
1180
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
1122
1181
  return func(perfEvt);
1123
1182
  }
1124
1183
  }
1125
1184
  catch (ex) {
1126
- if (perfEvt && perfEvt.setCtx) {
1127
- perfEvt.setCtx("exception", ex);
1185
+ if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
1186
+ perfEvt[_DYN_SET_CTX ]("exception", ex);
1128
1187
  }
1129
1188
  }
1130
1189
  finally {
1131
1190
  if (perfEvt) {
1132
1191
  perfMgr.fire(perfEvt);
1133
1192
  }
1134
- perfMgr.setCtx(doPerfActiveKey, currentActive);
1193
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
1135
1194
  }
1136
1195
  }
1137
1196
  }
@@ -1193,8 +1252,8 @@
1193
1252
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1194
1253
  var number = random32() >>> 0;
1195
1254
  var chars = 0;
1196
- var result = strEmpty;
1197
- while (result.length < maxLength) {
1255
+ var result = STR_EMPTY$1;
1256
+ while (result[_DYN_LENGTH ] < maxLength) {
1198
1257
  chars++;
1199
1258
  result += base64chars.charAt(number & 0x3F);
1200
1259
  number >>>= 6;
@@ -1207,7 +1266,7 @@
1207
1266
  }
1208
1267
 
1209
1268
  var _objDefineProperty = ObjDefineProperty;
1210
- var version = "2.8.1";
1269
+ var version = '2.8.5';
1211
1270
  var instanceName = "." + newId(6);
1212
1271
  var _dataUid = 0;
1213
1272
  function _createAccessor(target, prop, value) {
@@ -1226,7 +1285,7 @@
1226
1285
  return false;
1227
1286
  }
1228
1287
  function _canAcceptData(target) {
1229
- return target.nodeType === 1 || target.nodeType === 9 || !(+target.nodeType);
1288
+ return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
1230
1289
  }
1231
1290
  function _getCache(data, target) {
1232
1291
  var theCache = target[data.id];
@@ -1246,11 +1305,11 @@
1246
1305
  }
1247
1306
  function createUniqueNamespace(name, includeVersion) {
1248
1307
  if (includeVersion === void 0) { includeVersion = false; }
1249
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : "") + instanceName);
1308
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
1250
1309
  }
1251
1310
  function createElmNodeData(name) {
1252
1311
  var data = {
1253
- id: createUniqueNamespace("_aiData-" + (name || "") + "." + version),
1312
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
1254
1313
  accept: function (target) {
1255
1314
  return _canAcceptData(target);
1256
1315
  },
@@ -1278,6 +1337,297 @@
1278
1337
  return data;
1279
1338
  }
1280
1339
 
1340
+ var strOnPrefix = "on";
1341
+ var strAttachEvent = "attachEvent";
1342
+ var strAddEventHelper = "addEventListener";
1343
+ var strDetachEvent = "detachEvent";
1344
+ var strRemoveEventListener = "removeEventListener";
1345
+ var strEvents = "events";
1346
+ var strVisibilityChangeEvt = "visibilitychange";
1347
+ var strPageHide = "pagehide";
1348
+ var strPageShow = "pageshow";
1349
+ var strUnload = "unload";
1350
+ var strBeforeUnload = "beforeunload";
1351
+ var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
1352
+ var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
1353
+ var rRemoveEmptyNs = /\.[\.]+/g;
1354
+ var rRemoveTrailingEmptyNs = /[\.]+$/;
1355
+ var _guid = 1;
1356
+ var elmNodeData = createElmNodeData("events");
1357
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1358
+ function _normalizeNamespace(name) {
1359
+ if (name && name[_DYN_REPLACE ]) {
1360
+ return name.replace(/^\s*\.*|\.*\s*$/g, STR_EMPTY$1);
1361
+ }
1362
+ return name;
1363
+ }
1364
+ function _getEvtNamespace(eventName, evtNamespace) {
1365
+ var _a;
1366
+ if (evtNamespace) {
1367
+ var theNamespace_1 = STR_EMPTY$1;
1368
+ if (isArray(evtNamespace)) {
1369
+ theNamespace_1 = STR_EMPTY$1;
1370
+ arrForEach(evtNamespace, function (name) {
1371
+ name = _normalizeNamespace(name);
1372
+ if (name) {
1373
+ if (name[0] !== ".") {
1374
+ name = "." + name;
1375
+ }
1376
+ theNamespace_1 += name;
1377
+ }
1378
+ });
1379
+ }
1380
+ else {
1381
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
1382
+ }
1383
+ if (theNamespace_1) {
1384
+ if (theNamespace_1[0] !== ".") {
1385
+ theNamespace_1 = "." + theNamespace_1;
1386
+ }
1387
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
1388
+ }
1389
+ }
1390
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
1391
+ return _a = {},
1392
+ _a[_DYN_TYPE ] = parsedEvent[1],
1393
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT ](".").sort()).join("."),
1394
+ _a;
1395
+ }
1396
+ function _getRegisteredEvents(target, evtName, addDefault) {
1397
+ if (addDefault === void 0) { addDefault = true; }
1398
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1399
+ var registeredEvents = aiEvts[evtName];
1400
+ if (!registeredEvents) {
1401
+ registeredEvents = aiEvts[evtName] = [];
1402
+ }
1403
+ return registeredEvents;
1404
+ }
1405
+ function _doDetach(obj, evtName, handlerRef, useCapture) {
1406
+ if (obj && evtName && evtName[_DYN_TYPE ]) {
1407
+ if (obj[strRemoveEventListener]) {
1408
+ obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
1409
+ }
1410
+ else if (obj[strDetachEvent]) {
1411
+ obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
1412
+ }
1413
+ }
1414
+ }
1415
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
1416
+ var result = false;
1417
+ if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
1418
+ if (obj[strAddEventHelper]) {
1419
+ obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
1420
+ result = true;
1421
+ }
1422
+ else if (obj[strAttachEvent]) {
1423
+ obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
1424
+ result = true;
1425
+ }
1426
+ }
1427
+ return result;
1428
+ }
1429
+ function _doUnregister(target, events, evtName, unRegFn) {
1430
+ var idx = events[_DYN_LENGTH ];
1431
+ while (idx--) {
1432
+ var theEvent = events[idx];
1433
+ if (theEvent) {
1434
+ if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
1435
+ if (!unRegFn || unRegFn(theEvent)) {
1436
+ _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
1437
+ events[_DYN_SPLICE ](idx, 1);
1438
+ }
1439
+ }
1440
+ }
1441
+ }
1442
+ }
1443
+ function _unregisterEvents(target, evtName, unRegFn) {
1444
+ if (evtName[_DYN_TYPE ]) {
1445
+ _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
1446
+ }
1447
+ else {
1448
+ var eventCache = elmNodeData.get(target, strEvents, {});
1449
+ objForEachKey(eventCache, function (evtType, events) {
1450
+ _doUnregister(target, events, evtName, unRegFn);
1451
+ });
1452
+ if (objKeys(eventCache)[_DYN_LENGTH ] === 0) {
1453
+ elmNodeData.kill(target, strEvents);
1454
+ }
1455
+ }
1456
+ }
1457
+ function mergeEvtNamespace(theNamespace, namespaces) {
1458
+ var newNamespaces;
1459
+ if (namespaces) {
1460
+ if (isArray(namespaces)) {
1461
+ newNamespaces = [theNamespace].concat(namespaces);
1462
+ }
1463
+ else {
1464
+ newNamespaces = [theNamespace, namespaces];
1465
+ }
1466
+ newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT ](".");
1467
+ }
1468
+ else {
1469
+ newNamespaces = theNamespace;
1470
+ }
1471
+ return newNamespaces;
1472
+ }
1473
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1474
+ var _a;
1475
+ if (useCapture === void 0) { useCapture = false; }
1476
+ var result = false;
1477
+ if (target) {
1478
+ try {
1479
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
1480
+ result = _doAttach(target, evtName, handlerRef, useCapture);
1481
+ if (result && elmNodeData.accept(target)) {
1482
+ var registeredEvent = (_a = {
1483
+ guid: _guid++,
1484
+ evtName: evtName
1485
+ },
1486
+ _a[_DYN_HANDLER ] = handlerRef,
1487
+ _a.capture = useCapture,
1488
+ _a);
1489
+ _getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
1490
+ }
1491
+ }
1492
+ catch (e) {
1493
+ }
1494
+ }
1495
+ return result;
1496
+ }
1497
+ function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
1498
+ if (useCapture === void 0) { useCapture = false; }
1499
+ if (target) {
1500
+ try {
1501
+ var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
1502
+ var found_1 = false;
1503
+ _unregisterEvents(target, evtName_1, function (regEvent) {
1504
+ if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
1505
+ found_1 = true;
1506
+ return true;
1507
+ }
1508
+ return false;
1509
+ });
1510
+ if (!found_1) {
1511
+ _doDetach(target, evtName_1, handlerRef, useCapture);
1512
+ }
1513
+ }
1514
+ catch (e) {
1515
+ }
1516
+ }
1517
+ }
1518
+ function addEventHandler(eventName, callback, evtNamespace) {
1519
+ var result = false;
1520
+ var w = getWindow();
1521
+ if (w) {
1522
+ result = eventOn(w, eventName, callback, evtNamespace);
1523
+ result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
1524
+ }
1525
+ var doc = getDocument();
1526
+ if (doc) {
1527
+ result = eventOn(doc, eventName, callback, evtNamespace) || result;
1528
+ }
1529
+ return result;
1530
+ }
1531
+ function removeEventHandler(eventName, callback, evtNamespace) {
1532
+ var w = getWindow();
1533
+ if (w) {
1534
+ eventOff(w, eventName, callback, evtNamespace);
1535
+ eventOff(w["body"], eventName, callback, evtNamespace);
1536
+ }
1537
+ var doc = getDocument();
1538
+ if (doc) {
1539
+ eventOff(doc, eventName, callback, evtNamespace);
1540
+ }
1541
+ }
1542
+ function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
1543
+ var added = false;
1544
+ if (listener && events && events[_DYN_LENGTH ] > 0) {
1545
+ arrForEach(events, function (name) {
1546
+ if (name) {
1547
+ if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
1548
+ added = addEventHandler(name, listener, evtNamespace) || added;
1549
+ }
1550
+ }
1551
+ });
1552
+ }
1553
+ return added;
1554
+ }
1555
+ function addEventListeners(events, listener, excludeEvents, evtNamespace) {
1556
+ var added = false;
1557
+ if (listener && events && isArray(events)) {
1558
+ added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
1559
+ if (!added && excludeEvents && excludeEvents[_DYN_LENGTH ] > 0) {
1560
+ added = _addEventListeners(events, listener, null, evtNamespace);
1561
+ }
1562
+ }
1563
+ return added;
1564
+ }
1565
+ function removeEventListeners(events, listener, evtNamespace) {
1566
+ if (events && isArray(events)) {
1567
+ arrForEach(events, function (name) {
1568
+ if (name) {
1569
+ removeEventHandler(name, listener, evtNamespace);
1570
+ }
1571
+ });
1572
+ }
1573
+ }
1574
+ function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
1575
+ return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
1576
+ }
1577
+ function removePageUnloadEventListener(listener, evtNamespace) {
1578
+ removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
1579
+ }
1580
+ function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
1581
+ function _handlePageVisibility(evt) {
1582
+ var doc = getDocument();
1583
+ if (listener && doc && doc.visibilityState === "hidden") {
1584
+ listener(evt);
1585
+ }
1586
+ }
1587
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
1588
+ var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
1589
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1590
+ pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
1591
+ }
1592
+ if (!pageUnloadAdded && excludeEvents) {
1593
+ pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
1594
+ }
1595
+ return pageUnloadAdded;
1596
+ }
1597
+ function removePageHideEventListener(listener, evtNamespace) {
1598
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
1599
+ removeEventListeners([strPageHide], listener, newNamespaces);
1600
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
1601
+ }
1602
+ function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
1603
+ function _handlePageVisibility(evt) {
1604
+ var doc = getDocument();
1605
+ if (listener && doc && doc.visibilityState === "visible") {
1606
+ listener(evt);
1607
+ }
1608
+ }
1609
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
1610
+ var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
1611
+ pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
1612
+ if (!pageShowAdded && excludeEvents) {
1613
+ pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
1614
+ }
1615
+ return pageShowAdded;
1616
+ }
1617
+ function removePageShowEventListener(listener, evtNamespace) {
1618
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
1619
+ removeEventListeners([strPageShow], listener, newNamespaces);
1620
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
1621
+ }
1622
+
1623
+ function perfNow() {
1624
+ var perf = getPerformance();
1625
+ if (perf && perf.now) {
1626
+ return perf.now();
1627
+ }
1628
+ return dateNow();
1629
+ }
1630
+
1281
1631
  var pluginStateData = createElmNodeData("plugin");
1282
1632
  function _getPluginState(plugin) {
1283
1633
  return pluginStateData.get(plugin, "state", {}, true);
@@ -1289,12 +1639,12 @@
1289
1639
  var _chainId = 0;
1290
1640
  function _getNextProxyStart(proxy, core, startAt) {
1291
1641
  while (proxy) {
1292
- if (proxy.getPlugin() === startAt) {
1642
+ if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
1293
1643
  return proxy;
1294
1644
  }
1295
- proxy = proxy.getNext();
1645
+ proxy = proxy[_DYN_GET_NEXT ]();
1296
1646
  }
1297
- return createTelemetryProxyChain([startAt], core.config || {}, core);
1647
+ return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
1298
1648
  }
1299
1649
  function _createInternalContext(telemetryChain, config, core, startAt) {
1300
1650
  var _nextProxy = null;
@@ -1335,7 +1685,7 @@
1335
1685
  args[_i - 2] = arguments[_i];
1336
1686
  }
1337
1687
  if (onComplete) {
1338
- _onComplete.push({
1688
+ _onComplete[_DYN_PUSH ]({
1339
1689
  func: onComplete,
1340
1690
  self: !isUndefined(that) ? that : context.ctx,
1341
1691
  args: args
@@ -1344,16 +1694,16 @@
1344
1694
  }
1345
1695
  function _moveNext() {
1346
1696
  var nextProxy = _nextProxy;
1347
- _nextProxy = nextProxy ? nextProxy.getNext() : null;
1697
+ _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
1348
1698
  if (!nextProxy) {
1349
1699
  var onComplete = _onComplete;
1350
- if (onComplete && onComplete.length > 0) {
1700
+ if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
1351
1701
  arrForEach(onComplete, function (completeDetails) {
1352
1702
  try {
1353
- completeDetails.func.call(completeDetails.self, completeDetails.args);
1703
+ completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
1354
1704
  }
1355
1705
  catch (e) {
1356
- _throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1706
+ _throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1357
1707
  }
1358
1708
  });
1359
1709
  _onComplete = [];
@@ -1366,7 +1716,7 @@
1366
1716
  if (mergeDefault === void 0) { mergeDefault = 0 ; }
1367
1717
  var theConfig;
1368
1718
  if (config) {
1369
- var extConfig = config.extensionConfig;
1719
+ var extConfig = config[STR_EXTENSION_CONFIG ];
1370
1720
  if (extConfig && identifier) {
1371
1721
  theConfig = extConfig[identifier];
1372
1722
  }
@@ -1407,7 +1757,7 @@
1407
1757
  function _iterateChain(cb) {
1408
1758
  var nextPlugin;
1409
1759
  while (!!(nextPlugin = context._next())) {
1410
- var plugin = nextPlugin.getPlugin();
1760
+ var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
1411
1761
  if (plugin) {
1412
1762
  cb(plugin);
1413
1763
  }
@@ -1420,7 +1770,7 @@
1420
1770
  var context = internalContext.ctx;
1421
1771
  function _processNext(env) {
1422
1772
  var nextPlugin = internalContext._next();
1423
- nextPlugin && nextPlugin.processTelemetry(env, context);
1773
+ nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
1424
1774
  return !nextPlugin;
1425
1775
  }
1426
1776
  function _createNew(plugins, startAt) {
@@ -1428,14 +1778,14 @@
1428
1778
  if (isArray(plugins)) {
1429
1779
  plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1430
1780
  }
1431
- return createProcessTelemetryContext(plugins || context.getNext(), config, core, startAt);
1781
+ return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
1432
1782
  }
1433
- context.processNext = _processNext;
1434
- context.createNew = _createNew;
1783
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1784
+ context[_DYN_CREATE_NEW ] = _createNew;
1435
1785
  return context;
1436
1786
  }
1437
1787
  function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
1438
- var config = core.config || {};
1788
+ var config = core[_DYN_CONFIG ] || {};
1439
1789
  var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1440
1790
  var context = internalContext.ctx;
1441
1791
  function _processNext(unloadState) {
@@ -1448,20 +1798,20 @@
1448
1798
  if (isArray(plugins)) {
1449
1799
  plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1450
1800
  }
1451
- return createProcessTelemetryUnloadContext(plugins || context.getNext(), core, startAt);
1801
+ return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1452
1802
  }
1453
- context.processNext = _processNext;
1454
- context.createNew = _createNew;
1803
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1804
+ context[_DYN_CREATE_NEW ] = _createNew;
1455
1805
  return context;
1456
1806
  }
1457
1807
  function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
1458
- var config = core.config || {};
1808
+ var config = core[_DYN_CONFIG ] || {};
1459
1809
  var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1460
1810
  var context = internalContext.ctx;
1461
1811
  function _processNext(updateState) {
1462
1812
  return context.iterate(function (plugin) {
1463
- if (isFunction(plugin.update)) {
1464
- plugin.update(context, updateState);
1813
+ if (isFunction(plugin[_DYN_UPDATE ])) {
1814
+ plugin[_DYN_UPDATE ](context, updateState);
1465
1815
  }
1466
1816
  });
1467
1817
  }
@@ -1470,22 +1820,22 @@
1470
1820
  if (isArray(plugins)) {
1471
1821
  plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1472
1822
  }
1473
- return createProcessTelemetryUpdateContext(plugins || context.getNext(), core, startAt);
1823
+ return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1474
1824
  }
1475
- context.processNext = _processNext;
1476
- context.createNew = _createNew;
1825
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1826
+ context[_DYN_CREATE_NEW ] = _createNew;
1477
1827
  return context;
1478
1828
  }
1479
1829
  function createTelemetryProxyChain(plugins, config, core, startAt) {
1480
1830
  var firstProxy = null;
1481
1831
  var add = startAt ? false : true;
1482
- if (isArray(plugins) && plugins.length > 0) {
1832
+ if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
1483
1833
  var lastProxy_1 = null;
1484
1834
  arrForEach(plugins, function (thePlugin) {
1485
1835
  if (!add && startAt === thePlugin) {
1486
1836
  add = true;
1487
1837
  }
1488
- if (add && thePlugin && isFunction(thePlugin.processTelemetry)) {
1838
+ if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
1489
1839
  var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
1490
1840
  if (!firstProxy) {
1491
1841
  firstProxy = newProxy;
@@ -1504,11 +1854,11 @@
1504
1854
  }
1505
1855
  function createTelemetryPluginProxy(plugin, config, core) {
1506
1856
  var nextProxy = null;
1507
- var hasProcessTelemetry = isFunction(plugin.processTelemetry);
1508
- var hasSetNext = isFunction(plugin.setNextPlugin);
1857
+ var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
1858
+ var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
1509
1859
  var chainId;
1510
1860
  if (plugin) {
1511
- chainId = plugin.identifier + "-" + plugin.priority + "-" + _chainId++;
1861
+ chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
1512
1862
  }
1513
1863
  else {
1514
1864
  chainId = "Unknown-0-" + _chainId++;
@@ -1540,17 +1890,17 @@
1540
1890
  }
1541
1891
  function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
1542
1892
  var hasRun = false;
1543
- var identifier = plugin ? plugin.identifier : strTelemetryPluginChain;
1893
+ var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
1544
1894
  var hasRunContext = itemCtx[strHasRunFlags];
1545
1895
  if (!hasRunContext) {
1546
1896
  hasRunContext = itemCtx[strHasRunFlags] = {};
1547
1897
  }
1548
1898
  itemCtx.setNext(nextProxy);
1549
1899
  if (plugin) {
1550
- doPerf(itemCtx[strCore](), function () { return identifier + ":" + name; }, function () {
1900
+ doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
1551
1901
  hasRunContext[chainId] = true;
1552
1902
  try {
1553
- var nextId = nextProxy ? nextProxy._id : strEmpty;
1903
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
1554
1904
  if (nextId) {
1555
1905
  hasRunContext[nextId] = false;
1556
1906
  }
@@ -1562,7 +1912,7 @@
1562
1912
  hasRun = true;
1563
1913
  }
1564
1914
  if (!nextProxy || !hasNextRun) {
1565
- _throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1915
+ _throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1566
1916
  }
1567
1917
  }
1568
1918
  }, details, isAsync);
@@ -1576,17 +1926,17 @@
1576
1926
  return false;
1577
1927
  }
1578
1928
  var pluginState = _getPluginState(plugin);
1579
- if (pluginState.teardown || pluginState[strDisabled]) {
1929
+ if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
1580
1930
  return false;
1581
1931
  }
1582
1932
  if (hasSetNext) {
1583
- plugin.setNextPlugin(nextProxy);
1933
+ plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
1584
1934
  }
1585
- plugin.processTelemetry(env, itemCtx);
1935
+ plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
1586
1936
  return true;
1587
1937
  }
1588
1938
  if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
1589
- itemCtx.processNext(env);
1939
+ itemCtx[_DYN_PROCESS_NEXT ](env);
1590
1940
  }
1591
1941
  }
1592
1942
  function _unloadPlugin(unloadCtx, unloadState) {
@@ -1594,20 +1944,20 @@
1594
1944
  var hasRun = false;
1595
1945
  if (plugin) {
1596
1946
  var pluginState = _getPluginState(plugin);
1597
- var pluginCore = plugin[strCore] || pluginState.core;
1598
- if (plugin && (!pluginCore || pluginCore === unloadCtx[strCore]()) && !pluginState[strTeardown]) {
1599
- pluginState[strCore] = null;
1600
- pluginState[strTeardown] = true;
1601
- pluginState[strIsInitialized] = false;
1602
- if (plugin[strTeardown] && plugin[strTeardown](unloadCtx, unloadState) === true) {
1947
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
1948
+ if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
1949
+ pluginState[STR_CORE ] = null;
1950
+ pluginState[_DYN_TEARDOWN ] = true;
1951
+ pluginState[_DYN_IS_INITIALIZED ] = false;
1952
+ if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
1603
1953
  hasRun = true;
1604
1954
  }
1605
1955
  }
1606
1956
  }
1607
1957
  return hasRun;
1608
1958
  }
1609
- if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState.isAsync)) {
1610
- unloadCtx.processNext(unloadState);
1959
+ if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
1960
+ unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
1611
1961
  }
1612
1962
  }
1613
1963
  function _updatePlugin(updateCtx, updateState) {
@@ -1615,9 +1965,9 @@
1615
1965
  var hasRun = false;
1616
1966
  if (plugin) {
1617
1967
  var pluginState = _getPluginState(plugin);
1618
- var pluginCore = plugin[strCore] || pluginState.core;
1619
- if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
1620
- if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
1968
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
1969
+ if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
1970
+ if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
1621
1971
  hasRun = true;
1622
1972
  }
1623
1973
  }
@@ -1625,19 +1975,17 @@
1625
1975
  return hasRun;
1626
1976
  }
1627
1977
  if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
1628
- updateCtx.processNext(updateState);
1978
+ updateCtx[_DYN_PROCESS_NEXT ](updateState);
1629
1979
  }
1630
1980
  }
1631
1981
  return objFreeze(proxyChain);
1632
1982
  }
1633
1983
 
1634
- var strExtensionConfig = "extensionConfig";
1635
-
1636
1984
  function createUnloadHandlerContainer() {
1637
1985
  var handlers = [];
1638
1986
  function _addHandler(handler) {
1639
1987
  if (handler) {
1640
- handlers.push(handler);
1988
+ handlers[_DYN_PUSH ](handler);
1641
1989
  }
1642
1990
  }
1643
1991
  function _runHandlers(unloadCtx, unloadState) {
@@ -1646,7 +1994,7 @@
1646
1994
  handler(unloadCtx, unloadState);
1647
1995
  }
1648
1996
  catch (e) {
1649
- _throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1997
+ _throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1650
1998
  }
1651
1999
  });
1652
2000
  handlers = [];
@@ -1668,37 +2016,40 @@
1668
2016
  var _hooks;
1669
2017
  _initDefaults();
1670
2018
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
1671
- _self.initialize = function (config, core, extensions, pluginChain) {
2019
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
1672
2020
  _setDefaults(config, core, pluginChain);
1673
2021
  _isinitialized = true;
1674
2022
  };
1675
- _self.teardown = function (unloadCtx, unloadState) {
1676
- var core = _self.core;
1677
- if (!core || (unloadCtx && core !== unloadCtx.core())) {
2023
+ _self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
2024
+ var _a;
2025
+ var core = _self[STR_CORE ];
2026
+ if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
1678
2027
  return;
1679
2028
  }
1680
2029
  var result;
1681
2030
  var unloadDone = false;
1682
2031
  var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
1683
- var theUnloadState = unloadState || {
1684
- reason: 0 ,
1685
- isAsync: false
1686
- };
2032
+ var theUnloadState = unloadState || (_a = {
2033
+ reason: 0
2034
+ },
2035
+ _a[_DYN_IS_ASYNC ] = false,
2036
+ _a);
1687
2037
  function _unloadCallback() {
1688
2038
  if (!unloadDone) {
1689
2039
  unloadDone = true;
1690
2040
  _unloadHandlerContainer.run(theUnloadCtx, unloadState);
1691
- arrForEach(_hooks, function (fn) {
2041
+ var oldHooks = _hooks;
2042
+ _hooks = [];
2043
+ arrForEach(oldHooks, function (fn) {
1692
2044
  fn.rm();
1693
2045
  });
1694
- _hooks = [];
1695
2046
  if (result === true) {
1696
- theUnloadCtx.processNext(theUnloadState);
2047
+ theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
1697
2048
  }
1698
2049
  _initDefaults();
1699
2050
  }
1700
2051
  }
1701
- if (!_self[strDoTeardown] || _self[strDoTeardown](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
2052
+ if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
1702
2053
  _unloadCallback();
1703
2054
  }
1704
2055
  else {
@@ -1706,9 +2057,9 @@
1706
2057
  }
1707
2058
  return result;
1708
2059
  };
1709
- _self.update = function (updateCtx, updateState) {
1710
- var core = _self.core;
1711
- if (!core || (updateCtx && core !== updateCtx.core())) {
2060
+ _self[_DYN_UPDATE ] = function (updateCtx, updateState) {
2061
+ var core = _self[STR_CORE ];
2062
+ if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
1712
2063
  return;
1713
2064
  }
1714
2065
  var result;
@@ -1720,7 +2071,7 @@
1720
2071
  function _updateCallback() {
1721
2072
  if (!updateDone) {
1722
2073
  updateDone = true;
1723
- _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
2074
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
1724
2075
  }
1725
2076
  }
1726
2077
  if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
@@ -1737,30 +2088,30 @@
1737
2088
  _hooks = _hooks.concat(hooks);
1738
2089
  }
1739
2090
  else {
1740
- _hooks.push(hooks);
2091
+ _hooks[_DYN_PUSH ](hooks);
1741
2092
  }
1742
2093
  }
1743
2094
  };
1744
2095
  proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
1745
2096
  });
1746
- _self.diagLog = function (itemCtx) {
1747
- return _getTelCtx(itemCtx).diagLog();
2097
+ _self[_DYN_DIAG_LOG ] = function (itemCtx) {
2098
+ return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
1748
2099
  };
1749
- _self[strIsInitialized] = function () {
2100
+ _self[_DYN_IS_INITIALIZED ] = function () {
1750
2101
  return _isinitialized;
1751
2102
  };
1752
2103
  _self.setInitialized = function (isInitialized) {
1753
2104
  _isinitialized = isInitialized;
1754
2105
  };
1755
- _self[strSetNextPlugin] = function (next) {
2106
+ _self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
1756
2107
  _nextPlugin = next;
1757
2108
  };
1758
- _self.processNext = function (env, itemCtx) {
2109
+ _self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
1759
2110
  if (itemCtx) {
1760
- itemCtx.processNext(env);
2111
+ itemCtx[_DYN_PROCESS_NEXT ](env);
1761
2112
  }
1762
- else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {
1763
- _nextPlugin.processTelemetry(env, null);
2113
+ else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
2114
+ _nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
1764
2115
  }
1765
2116
  };
1766
2117
  _self._getTelCtx = _getTelCtx;
@@ -1768,332 +2119,47 @@
1768
2119
  if (currentCtx === void 0) { currentCtx = null; }
1769
2120
  var itemCtx = currentCtx;
1770
2121
  if (!itemCtx) {
1771
- var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self.core);
2122
+ var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
1772
2123
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
1773
- itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);
2124
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
1774
2125
  }
1775
2126
  else {
1776
- itemCtx = rootCtx.createNew(null, _nextPlugin);
2127
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
1777
2128
  }
1778
2129
  }
1779
2130
  return itemCtx;
1780
2131
  }
1781
2132
  function _setDefaults(config, core, pluginChain) {
1782
2133
  if (config) {
1783
- setValue(config, strExtensionConfig, [], null, isNullOrUndefined);
2134
+ setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
1784
2135
  }
1785
2136
  if (!pluginChain && core) {
1786
- pluginChain = core.getProcessTelContext().getNext();
2137
+ pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
1787
2138
  }
1788
2139
  var nextPlugin = _nextPlugin;
1789
2140
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
1790
2141
  nextPlugin = _nextPlugin[strGetPlugin]();
1791
2142
  }
1792
- _self.core = core;
2143
+ _self[STR_CORE ] = core;
1793
2144
  _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
1794
2145
  }
1795
2146
  function _initDefaults() {
1796
2147
  _isinitialized = false;
1797
- _self.core = null;
2148
+ _self[STR_CORE ] = null;
1798
2149
  _rootCtx = null;
1799
2150
  _nextPlugin = null;
1800
2151
  _hooks = [];
1801
2152
  _unloadHandlerContainer = createUnloadHandlerContainer();
1802
- }
1803
- }
1804
- return BaseTelemetryPlugin;
1805
- }());
1806
-
1807
- var strOnPrefix = "on";
1808
- var strAttachEvent = "attachEvent";
1809
- var strAddEventHelper = "addEventListener";
1810
- var strDetachEvent = "detachEvent";
1811
- var strRemoveEventListener = "removeEventListener";
1812
- var strEvents = "events";
1813
- var strVisibilityChangeEvt = "visibilitychange";
1814
- var strPageHide = "pagehide";
1815
- var strPageShow = "pageshow";
1816
- var strUnload = "unload";
1817
- var strBeforeUnload = "beforeunload";
1818
- var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
1819
- var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
1820
- var rRemoveEmptyNs = /\.[\.]+/g;
1821
- var rRemoveTrailingEmptyNs = /[\.]+$/;
1822
- var _guid = 1;
1823
- var elmNodeData = createElmNodeData("events");
1824
- var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1825
- function _normalizeNamespace(name) {
1826
- if (name && name.replace) {
1827
- return name.replace(/^\s*\.*|\.*\s*$/g, "");
1828
- }
1829
- return name;
1830
- }
1831
- function _getEvtNamespace(eventName, evtNamespace) {
1832
- if (evtNamespace) {
1833
- var theNamespace_1 = "";
1834
- if (isArray(evtNamespace)) {
1835
- theNamespace_1 = "";
1836
- arrForEach(evtNamespace, function (name) {
1837
- name = _normalizeNamespace(name);
1838
- if (name) {
1839
- if (name[0] !== ".") {
1840
- name = "." + name;
1841
- }
1842
- theNamespace_1 += name;
1843
- }
1844
- });
1845
- }
1846
- else {
1847
- theNamespace_1 = _normalizeNamespace(evtNamespace);
1848
- }
1849
- if (theNamespace_1) {
1850
- if (theNamespace_1[0] !== ".") {
1851
- theNamespace_1 = "." + theNamespace_1;
1852
- }
1853
- eventName = (eventName || "") + theNamespace_1;
1854
- }
1855
- }
1856
- var parsedEvent = (eventNamespace.exec(eventName || "") || []);
1857
- return {
1858
- type: parsedEvent[1],
1859
- ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
1860
- };
1861
- }
1862
- function _getRegisteredEvents(target, evtName, addDefault) {
1863
- if (addDefault === void 0) { addDefault = true; }
1864
- var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1865
- var registeredEvents = aiEvts[evtName];
1866
- if (!registeredEvents) {
1867
- registeredEvents = aiEvts[evtName] = [];
1868
- }
1869
- return registeredEvents;
1870
- }
1871
- function _doDetach(obj, evtName, handlerRef, useCapture) {
1872
- if (obj && evtName && evtName.type) {
1873
- if (obj[strRemoveEventListener]) {
1874
- obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
1875
- }
1876
- else if (obj[strDetachEvent]) {
1877
- obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
1878
- }
1879
- }
1880
- }
1881
- function _doAttach(obj, evtName, handlerRef, useCapture) {
1882
- var result = false;
1883
- if (obj && evtName && evtName.type && handlerRef) {
1884
- if (obj[strAddEventHelper]) {
1885
- obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
1886
- result = true;
1887
- }
1888
- else if (obj[strAttachEvent]) {
1889
- obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
1890
- result = true;
1891
- }
1892
- }
1893
- return result;
1894
- }
1895
- function _doUnregister(target, events, evtName, unRegFn) {
1896
- var idx = events.length;
1897
- while (idx--) {
1898
- var theEvent = events[idx];
1899
- if (theEvent) {
1900
- if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
1901
- if (!unRegFn || unRegFn(theEvent)) {
1902
- _doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
1903
- events.splice(idx, 1);
1904
- }
1905
- }
1906
- }
1907
- }
1908
- }
1909
- function _unregisterEvents(target, evtName, unRegFn) {
1910
- if (evtName.type) {
1911
- _doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
1912
- }
1913
- else {
1914
- var eventCache = elmNodeData.get(target, strEvents, {});
1915
- objForEachKey(eventCache, function (evtType, events) {
1916
- _doUnregister(target, events, evtName, unRegFn);
1917
- });
1918
- if (objKeys(eventCache).length === 0) {
1919
- elmNodeData.kill(target, strEvents);
1920
- }
1921
- }
1922
- }
1923
- function mergeEvtNamespace(theNamespace, namespaces) {
1924
- var newNamespaces;
1925
- if (namespaces) {
1926
- if (isArray(namespaces)) {
1927
- newNamespaces = [theNamespace].concat(namespaces);
1928
- }
1929
- else {
1930
- newNamespaces = [theNamespace, namespaces];
1931
- }
1932
- newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
1933
- }
1934
- else {
1935
- newNamespaces = theNamespace;
1936
- }
1937
- return newNamespaces;
1938
- }
1939
- function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1940
- if (useCapture === void 0) { useCapture = false; }
1941
- var result = false;
1942
- if (target) {
1943
- try {
1944
- var evtName = _getEvtNamespace(eventName, evtNamespace);
1945
- result = _doAttach(target, evtName, handlerRef, useCapture);
1946
- if (result && elmNodeData.accept(target)) {
1947
- var registeredEvent = {
1948
- guid: _guid++,
1949
- evtName: evtName,
1950
- handler: handlerRef,
1951
- capture: useCapture
1952
- };
1953
- _getRegisteredEvents(target, evtName.type).push(registeredEvent);
1954
- }
1955
- }
1956
- catch (e) {
1957
- }
1958
- }
1959
- return result;
1960
- }
1961
- function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
1962
- if (useCapture === void 0) { useCapture = false; }
1963
- if (target) {
1964
- try {
1965
- var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
1966
- var found_1 = false;
1967
- _unregisterEvents(target, evtName_1, function (regEvent) {
1968
- if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
1969
- found_1 = true;
1970
- return true;
1971
- }
1972
- return false;
1973
- });
1974
- if (!found_1) {
1975
- _doDetach(target, evtName_1, handlerRef, useCapture);
1976
- }
1977
- }
1978
- catch (e) {
1979
- }
1980
- }
1981
- }
1982
- function addEventHandler(eventName, callback, evtNamespace) {
1983
- var result = false;
1984
- var w = getWindow();
1985
- if (w) {
1986
- result = eventOn(w, eventName, callback, evtNamespace);
1987
- result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
1988
- }
1989
- var doc = getDocument();
1990
- if (doc) {
1991
- result = eventOn(doc, eventName, callback, evtNamespace) || result;
1992
- }
1993
- return result;
1994
- }
1995
- function removeEventHandler(eventName, callback, evtNamespace) {
1996
- var w = getWindow();
1997
- if (w) {
1998
- eventOff(w, eventName, callback, evtNamespace);
1999
- eventOff(w["body"], eventName, callback, evtNamespace);
2000
- }
2001
- var doc = getDocument();
2002
- if (doc) {
2003
- eventOff(doc, eventName, callback, evtNamespace);
2004
- }
2005
- }
2006
- function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
2007
- var added = false;
2008
- if (listener && events && events.length > 0) {
2009
- arrForEach(events, function (name) {
2010
- if (name) {
2011
- if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
2012
- added = addEventHandler(name, listener, evtNamespace) || added;
2013
- }
2014
- }
2015
- });
2016
- }
2017
- return added;
2018
- }
2019
- function addEventListeners(events, listener, excludeEvents, evtNamespace) {
2020
- var added = false;
2021
- if (listener && events && isArray(events)) {
2022
- added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
2023
- if (!added && excludeEvents && excludeEvents.length > 0) {
2024
- added = _addEventListeners(events, listener, null, evtNamespace);
2025
- }
2026
- }
2027
- return added;
2028
- }
2029
- function removeEventListeners(events, listener, evtNamespace) {
2030
- if (events && isArray(events)) {
2031
- arrForEach(events, function (name) {
2032
- if (name) {
2033
- removeEventHandler(name, listener, evtNamespace);
2034
- }
2035
- });
2036
- }
2037
- }
2038
- function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
2039
- return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
2040
- }
2041
- function removePageUnloadEventListener(listener, evtNamespace) {
2042
- removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
2043
- }
2044
- function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
2045
- function _handlePageVisibility(evt) {
2046
- var doc = getDocument();
2047
- if (listener && doc && doc.visibilityState === "hidden") {
2048
- listener(evt);
2049
- }
2050
- }
2051
- var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2052
- var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
2053
- if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
2054
- pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
2055
- }
2056
- if (!pageUnloadAdded && excludeEvents) {
2057
- pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
2058
- }
2059
- return pageUnloadAdded;
2060
- }
2061
- function removePageHideEventListener(listener, evtNamespace) {
2062
- var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2063
- removeEventListeners([strPageHide], listener, newNamespaces);
2064
- removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2065
- }
2066
- function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
2067
- function _handlePageVisibility(evt) {
2068
- var doc = getDocument();
2069
- if (listener && doc && doc.visibilityState === "visible") {
2070
- listener(evt);
2071
- }
2072
- }
2073
- var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2074
- var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
2075
- pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
2076
- if (!pageShowAdded && excludeEvents) {
2077
- pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
2153
+ }
2078
2154
  }
2079
- return pageShowAdded;
2080
- }
2081
- function removePageShowEventListener(listener, evtNamespace) {
2082
- var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2083
- removeEventListeners([strPageShow], listener, newNamespaces);
2084
- removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2085
- }
2155
+ BaseTelemetryPlugin.__ieDyn=1;
2156
+ return BaseTelemetryPlugin;
2157
+ }());
2086
2158
 
2087
- function perfNow() {
2088
- var perf = getPerformance();
2089
- if (perf && perf.now) {
2090
- return perf.now();
2091
- }
2092
- return dateNow();
2093
- }
2159
+ var STR_EMPTY = "";
2094
2160
 
2095
2161
  var _a$1;
2096
- var Version = '3.2.1';
2162
+ var Version = '3.2.4';
2097
2163
  var FullVersionString = "1DS-Web-JS-" + Version;
2098
2164
  var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2099
2165
  var strWithCredentials = "withCredentials";
@@ -2108,9 +2174,9 @@
2108
2174
  _a$1[4096 | 3 ] = 7 ,
2109
2175
  _a$1);
2110
2176
  Boolean(getDocument());
2111
- var isWindowObjectAvailable = Boolean(getWindow());
2177
+ Boolean(getWindow());
2112
2178
  function isValueAssigned(value) {
2113
- return !(value === "" || isNullOrUndefined(value));
2179
+ return !(value === STR_EMPTY || isNullOrUndefined(value));
2114
2180
  }
2115
2181
  function getTenantId(apiKey) {
2116
2182
  if (apiKey) {
@@ -2119,7 +2185,7 @@
2119
2185
  return apiKey.substring(0, indexTenantId);
2120
2186
  }
2121
2187
  }
2122
- return "";
2188
+ return STR_EMPTY;
2123
2189
  }
2124
2190
  function sanitizeProperty(name, property, stringifyObjects) {
2125
2191
  if ((!property && !isValueAssigned(property)) || typeof name !== "string") {
@@ -2129,11 +2195,11 @@
2129
2195
  if (propType === "string" || propType === "number" || propType === "boolean" || isArray(property)) {
2130
2196
  property = { value: property };
2131
2197
  }
2132
- else if (propType === "object" && !property.hasOwnProperty("value")) {
2198
+ else if (propType === "object" && !ObjHasOwnProperty.call(property, "value")) {
2133
2199
  property = { value: stringifyObjects ? JSON.stringify(property) : property };
2134
2200
  }
2135
2201
  else if (isNullOrUndefined(property.value)
2136
- || property.value === "" || (!isString(property.value)
2202
+ || property.value === STR_EMPTY || (!isString(property.value)
2137
2203
  && !isNumber(property.value) && !isBoolean(property.value)
2138
2204
  && !isArray(property.value))) {
2139
2205
  return null;
@@ -2259,7 +2325,7 @@
2259
2325
  theType |= getFieldValueType(value[0]);
2260
2326
  }
2261
2327
  }
2262
- else if (hasOwnProperty(value, "value")) {
2328
+ else if (ObjHasOwnProperty.call(value, "value")) {
2263
2329
  theType = 8192 | getFieldValueType(value.value);
2264
2330
  }
2265
2331
  }
@@ -2300,35 +2366,37 @@
2300
2366
  var NRT_PROFILE = "NEAR_REAL_TIME";
2301
2367
  var BE_PROFILE = "BEST_EFFORT";
2302
2368
 
2303
- var Method = "POST";
2304
- var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2305
- var strDropped = "drop";
2306
- var strSending = "send";
2307
- var strRequeue = "requeue";
2308
- var strResponseFail = "rspFail";
2309
- var strOther = "oth";
2310
- var defaultCacheControl = "no-cache, no-store";
2311
- var defaultContentType = "application/x-json-stream";
2312
- var strCacheControl = "cache-control";
2313
- var strContentTypeHeader = "content-type";
2314
- var strKillTokensHeader = "kill-tokens";
2315
- var strKillDurationHeader = "kill-duration";
2316
- var strKillDurationSecondsHeader = "kill-duration-seconds";
2317
- var strTimeDeltaHeader = "time-delta-millis";
2318
- var strClientVersion = "client-version";
2319
- var strClientId = "client-id";
2320
- var strTimeDeltaToApply = "time-delta-to-apply-millis";
2321
- var strUploadTime = "upload-time";
2322
- var strApiKey = "apikey";
2323
- var strMsaDeviceTicket = "AuthMsaDeviceTicket";
2324
- var strAuthXToken = "AuthXToken";
2325
- var strNoResponseBody = "NoResponseBody";
2326
- var strMsfpc = "msfpc";
2369
+ var STR_POST_METHOD = "POST";
2370
+ var STR_DISABLED_PROPERTY_NAME = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2371
+ var STR_DROPPED = "drop";
2372
+ var STR_SENDING = "send";
2373
+ var STR_REQUEUE = "requeue";
2374
+ var STR_RESPONSE_FAIL = "rspFail";
2375
+ var STR_OTHER = "oth";
2376
+ var DEFAULT_CACHE_CONTROL = "no-cache, no-store";
2377
+ var DEFAULT_CONTENT_TYPE = "application/x-json-stream";
2378
+ var STR_CACHE_CONTROL = "cache-control";
2379
+ var STR_CONTENT_TYPE_HEADER = "content-type";
2380
+ var STR_KILL_TOKENS_HEADER = "kill-tokens";
2381
+ var STR_KILL_DURATION_HEADER = "kill-duration";
2382
+ var STR_KILL_DURATION_SECONDS_HEADER = "kill-duration-seconds";
2383
+ var STR_TIME_DELTA_HEADER = "time-delta-millis";
2384
+ var STR_CLIENT_VERSION = "client-version";
2385
+ var STR_CLIENT_ID = "client-id";
2386
+ var STR_TIME_DELTA_TO_APPLY = "time-delta-to-apply-millis";
2387
+ var STR_UPLOAD_TIME = "upload-time";
2388
+ var STR_API_KEY = "apikey";
2389
+ var STR_MSA_DEVICE_TICKET = "AuthMsaDeviceTicket";
2390
+ var STR_AUTH_XTOKEN = "AuthXToken";
2391
+ var STR_NO_RESPONSE_BODY = "NoResponseBody";
2392
+ var STR_MSFPC = "msfpc";
2393
+ var STR_TRACE = "trace";
2394
+ var STR_USER = "user";
2327
2395
 
2328
2396
  function _getEventMsfpc(theEvent) {
2329
2397
  var intWeb = ((theEvent.ext || {})["intweb"]);
2330
- if (intWeb && isValueAssigned(intWeb[strMsfpc])) {
2331
- return intWeb[strMsfpc];
2398
+ if (intWeb && isValueAssigned(intWeb[STR_MSFPC])) {
2399
+ return intWeb[STR_MSFPC];
2332
2400
  }
2333
2401
  return null;
2334
2402
  }
@@ -2385,6 +2453,117 @@
2385
2453
  return EventBatch;
2386
2454
  }());
2387
2455
 
2456
+ var ClockSkewManager = /** @class */ (function () {
2457
+ function ClockSkewManager() {
2458
+ var _allowRequestSending = true;
2459
+ var _shouldAddClockSkewHeaders = true;
2460
+ var _isFirstRequest = true;
2461
+ var _clockSkewHeaderValue = "use-collector-delta";
2462
+ var _clockSkewSet = false;
2463
+ dynamicProto(ClockSkewManager, this, function (_self) {
2464
+ _self.allowRequestSending = function () {
2465
+ return _allowRequestSending;
2466
+ };
2467
+ _self.firstRequestSent = function () {
2468
+ if (_isFirstRequest) {
2469
+ _isFirstRequest = false;
2470
+ if (!_clockSkewSet) {
2471
+ _allowRequestSending = false;
2472
+ }
2473
+ }
2474
+ };
2475
+ _self.shouldAddClockSkewHeaders = function () {
2476
+ return _shouldAddClockSkewHeaders;
2477
+ };
2478
+ _self.getClockSkewHeaderValue = function () {
2479
+ return _clockSkewHeaderValue;
2480
+ };
2481
+ _self.setClockSkew = function (timeDeltaInMillis) {
2482
+ if (!_clockSkewSet) {
2483
+ if (timeDeltaInMillis) {
2484
+ _clockSkewHeaderValue = timeDeltaInMillis;
2485
+ _shouldAddClockSkewHeaders = true;
2486
+ _clockSkewSet = true;
2487
+ }
2488
+ else {
2489
+ _shouldAddClockSkewHeaders = false;
2490
+ }
2491
+ _allowRequestSending = true;
2492
+ }
2493
+ };
2494
+ });
2495
+ }
2496
+ ClockSkewManager.__ieDyn=1;
2497
+ return ClockSkewManager;
2498
+ }());
2499
+ var EVTClockSkewManager = ClockSkewManager;
2500
+
2501
+ var SecToMsMultiplier = 1000;
2502
+ var KillSwitch = /** @class */ (function () {
2503
+ function KillSwitch() {
2504
+ var _killedTokenDictionary = {};
2505
+ function _normalizeTenants(values) {
2506
+ var result = [];
2507
+ if (values) {
2508
+ arrForEach(values, function (value) {
2509
+ result.push(strTrim(value));
2510
+ });
2511
+ }
2512
+ return result;
2513
+ }
2514
+ dynamicProto(KillSwitch, this, function (_self) {
2515
+ _self.setKillSwitchTenants = function (killTokens, killDuration) {
2516
+ if (killTokens && killDuration) {
2517
+ try {
2518
+ var killedTokens = _normalizeTenants(killTokens.split(","));
2519
+ if (killDuration === "this-request-only") {
2520
+ return killedTokens;
2521
+ }
2522
+ var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
2523
+ for (var i = 0; i < killedTokens.length; ++i) {
2524
+ _killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
2525
+ }
2526
+ }
2527
+ catch (ex) {
2528
+ return [];
2529
+ }
2530
+ }
2531
+ return [];
2532
+ };
2533
+ _self.isTenantKilled = function (tenantToken) {
2534
+ var killDictionary = _killedTokenDictionary;
2535
+ var name = strTrim(tenantToken);
2536
+ if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
2537
+ return true;
2538
+ }
2539
+ delete killDictionary[name];
2540
+ return false;
2541
+ };
2542
+ });
2543
+ }
2544
+ KillSwitch.__ieDyn=1;
2545
+ return KillSwitch;
2546
+ }());
2547
+ var EVTKillSwitch = KillSwitch;
2548
+
2549
+ var RandomizationLowerThreshold = 0.8;
2550
+ var RandomizationUpperThreshold = 1.2;
2551
+ var BaseBackoff = 3000;
2552
+ var MaxBackoff = 600000;
2553
+ function retryPolicyShouldRetryForStatus(httpStatusCode) {
2554
+ return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
2555
+ || (httpStatusCode == 501)
2556
+ || (httpStatusCode == 505));
2557
+ }
2558
+ function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
2559
+ var waitDuration = 0;
2560
+ var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2561
+ var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2562
+ var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2563
+ waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2564
+ return Math.min(waitDuration, MaxBackoff);
2565
+ }
2566
+
2388
2567
  var _MAX_STRING_JOINS = 20;
2389
2568
  var RequestSizeLimitBytes = 3984588;
2390
2569
  var BeaconRequestSizeLimitBytes = 65000;
@@ -2590,6 +2769,7 @@
2590
2769
  }
2591
2770
  });
2592
2771
  }
2772
+ Serializer.__ieDyn=1;
2593
2773
  return Serializer;
2594
2774
  }());
2595
2775
  function _addJSONPropertyMetaData(json, propKeys, name, propertyValue) {
@@ -2630,124 +2810,15 @@
2630
2810
  }
2631
2811
  }
2632
2812
 
2633
- var RandomizationLowerThreshold = 0.8;
2634
- var RandomizationUpperThreshold = 1.2;
2635
- var BaseBackoff = 3000;
2636
- var MaxBackoff = 600000;
2637
- function retryPolicyShouldRetryForStatus(httpStatusCode) {
2638
- return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
2639
- || (httpStatusCode == 501)
2640
- || (httpStatusCode == 505));
2641
- }
2642
- function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
2643
- var waitDuration = 0;
2644
- var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2645
- var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2646
- var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2647
- waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2648
- return Math.min(waitDuration, MaxBackoff);
2649
- }
2650
-
2651
- var SecToMsMultiplier = 1000;
2652
- var KillSwitch = /** @class */ (function () {
2653
- function KillSwitch() {
2654
- var _killedTokenDictionary = {};
2655
- function _normalizeTenants(values) {
2656
- var result = [];
2657
- if (values) {
2658
- arrForEach(values, function (value) {
2659
- result.push(strTrim(value));
2660
- });
2661
- }
2662
- return result;
2663
- }
2664
- dynamicProto(KillSwitch, this, function (_self) {
2665
- _self.setKillSwitchTenants = function (killTokens, killDuration) {
2666
- if (killTokens && killDuration) {
2667
- try {
2668
- var killedTokens = _normalizeTenants(killTokens.split(","));
2669
- if (killDuration === "this-request-only") {
2670
- return killedTokens;
2671
- }
2672
- var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
2673
- for (var i = 0; i < killedTokens.length; ++i) {
2674
- _killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
2675
- }
2676
- }
2677
- catch (ex) {
2678
- return [];
2679
- }
2680
- }
2681
- return [];
2682
- };
2683
- _self.isTenantKilled = function (tenantToken) {
2684
- var killDictionary = _killedTokenDictionary;
2685
- var name = strTrim(tenantToken);
2686
- if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
2687
- return true;
2688
- }
2689
- delete killDictionary[name];
2690
- return false;
2691
- };
2692
- });
2693
- }
2694
- return KillSwitch;
2695
- }());
2696
- var EVTKillSwitch = KillSwitch;
2697
-
2698
- var ClockSkewManager = /** @class */ (function () {
2699
- function ClockSkewManager() {
2700
- var _allowRequestSending = true;
2701
- var _shouldAddClockSkewHeaders = true;
2702
- var _isFirstRequest = true;
2703
- var _clockSkewHeaderValue = "use-collector-delta";
2704
- var _clockSkewSet = false;
2705
- dynamicProto(ClockSkewManager, this, function (_self) {
2706
- _self.allowRequestSending = function () {
2707
- return _allowRequestSending;
2708
- };
2709
- _self.firstRequestSent = function () {
2710
- if (_isFirstRequest) {
2711
- _isFirstRequest = false;
2712
- if (!_clockSkewSet) {
2713
- _allowRequestSending = false;
2714
- }
2715
- }
2716
- };
2717
- _self.shouldAddClockSkewHeaders = function () {
2718
- return _shouldAddClockSkewHeaders;
2719
- };
2720
- _self.getClockSkewHeaderValue = function () {
2721
- return _clockSkewHeaderValue;
2722
- };
2723
- _self.setClockSkew = function (timeDeltaInMillis) {
2724
- if (!_clockSkewSet) {
2725
- if (timeDeltaInMillis) {
2726
- _clockSkewHeaderValue = timeDeltaInMillis;
2727
- _shouldAddClockSkewHeaders = true;
2728
- _clockSkewSet = true;
2729
- }
2730
- else {
2731
- _shouldAddClockSkewHeaders = false;
2732
- }
2733
- _allowRequestSending = true;
2734
- }
2735
- };
2736
- });
2737
- }
2738
- return ClockSkewManager;
2739
- }());
2740
- var EVTClockSkewManager = ClockSkewManager;
2741
-
2742
2813
  var _a;
2743
2814
  var strSendAttempt = "sendAttempt";
2744
- var _noResponseQs = "&" + strNoResponseBody + "=true";
2815
+ var _noResponseQs = "&" + STR_NO_RESPONSE_BODY + "=true";
2745
2816
  var _eventActionMap = (_a = {},
2746
- _a[1 ] = strRequeue,
2747
- _a[100 ] = strRequeue,
2817
+ _a[1 ] = STR_REQUEUE,
2818
+ _a[100 ] = STR_REQUEUE,
2748
2819
  _a[200 ] = "sent",
2749
- _a[8004 ] = strDropped,
2750
- _a[8003 ] = strDropped,
2820
+ _a[8004 ] = STR_DROPPED,
2821
+ _a[8003 ] = STR_DROPPED,
2751
2822
  _a);
2752
2823
  var _collectorQsHeaders = {};
2753
2824
  var _collectorHeaderToQs = {};
@@ -2757,13 +2828,13 @@
2757
2828
  _collectorHeaderToQs[headerName] = qsName;
2758
2829
  }
2759
2830
  }
2760
- _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket, false);
2761
- _addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
2762
- _addCollectorHeaderQsMapping(strClientId, "Client-Id");
2763
- _addCollectorHeaderQsMapping(strApiKey, strApiKey);
2764
- _addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
2765
- _addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
2766
- _addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
2831
+ _addCollectorHeaderQsMapping(STR_MSA_DEVICE_TICKET, STR_MSA_DEVICE_TICKET, false);
2832
+ _addCollectorHeaderQsMapping(STR_CLIENT_VERSION, STR_CLIENT_VERSION);
2833
+ _addCollectorHeaderQsMapping(STR_CLIENT_ID, "Client-Id");
2834
+ _addCollectorHeaderQsMapping(STR_API_KEY, STR_API_KEY);
2835
+ _addCollectorHeaderQsMapping(STR_TIME_DELTA_TO_APPLY, STR_TIME_DELTA_TO_APPLY);
2836
+ _addCollectorHeaderQsMapping(STR_UPLOAD_TIME, STR_UPLOAD_TIME);
2837
+ _addCollectorHeaderQsMapping(STR_AUTH_XTOKEN, STR_AUTH_XTOKEN);
2767
2838
  function _getResponseText(xhr) {
2768
2839
  try {
2769
2840
  return xhr.responseText;
@@ -2802,15 +2873,16 @@
2802
2873
  }
2803
2874
  }
2804
2875
  var HttpManager = /** @class */ (function () {
2805
- function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions) {
2876
+ function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
2806
2877
  this._responseHandlers = [];
2807
- var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
2878
+ var _urlString = "?cors=true&" + STR_CONTENT_TYPE_HEADER.toLowerCase() + "=" + DEFAULT_CONTENT_TYPE;
2808
2879
  var _killSwitch = new EVTKillSwitch();
2809
2880
  var _paused = false;
2810
2881
  var _clockSkewManager = new EVTClockSkewManager();
2811
2882
  var _useBeacons = false;
2812
2883
  var _outstandingRequests = 0;
2813
2884
  var _postManager;
2885
+ var _logger;
2814
2886
  var _sendInterfaces;
2815
2887
  var _core;
2816
2888
  var _customHttpInterface = true;
@@ -2838,6 +2910,7 @@
2838
2910
  _enableEventTimings = !_core.config.disableEventTimings;
2839
2911
  var enableCompoundKey = !!_core.config.enableCompoundKey;
2840
2912
  _postManager = postChannel;
2913
+ _logger = _postManager.diagLog();
2841
2914
  var valueSanitizer = channelConfig.valueSanitizer;
2842
2915
  var stringifyObjects = channelConfig.stringifyObjects;
2843
2916
  if (!isUndefined(channelConfig.enableCompoundKey)) {
@@ -2875,7 +2948,7 @@
2875
2948
  httpInterface = _getSenderInterface(theTransports, false);
2876
2949
  syncHttpInterface = _getSenderInterface(theTransports, true);
2877
2950
  if (!httpInterface) {
2878
- _postManager.diagLog().warnToConsole("No available transport to send events");
2951
+ _warnToConsole(_logger, "No available transport to send events");
2879
2952
  }
2880
2953
  }
2881
2954
  _sendInterfaces = (_a = {},
@@ -2921,7 +2994,7 @@
2921
2994
  };
2922
2995
  function _xdrSendPost(payload, oncomplete, sync) {
2923
2996
  var xdr = new XDomainRequest();
2924
- xdr.open(Method, payload.urlString);
2997
+ xdr.open(STR_POST_METHOD, payload.urlString);
2925
2998
  if (payload.timeout) {
2926
2999
  xdr.timeout = payload.timeout;
2927
3000
  }
@@ -2941,7 +3014,7 @@
2941
3014
  xdr.send(payload.data);
2942
3015
  }
2943
3016
  else {
2944
- _postManager._setTimeoutOverride(function () {
3017
+ timeoutOverride.set(function () {
2945
3018
  xdr.send(payload.data);
2946
3019
  }, 0);
2947
3020
  }
@@ -2953,9 +3026,9 @@
2953
3026
  var responseHandled = false;
2954
3027
  var requestInit = (_a = {
2955
3028
  body: payload.data,
2956
- method: Method
3029
+ method: STR_POST_METHOD
2957
3030
  },
2958
- _a[DisabledPropertyName] = true,
3031
+ _a[STR_DISABLED_PROPERTY_NAME] = true,
2959
3032
  _a);
2960
3033
  if (sync) {
2961
3034
  requestInit.keepalive = true;
@@ -2973,8 +3046,9 @@
2973
3046
  fetch(theUrl, requestInit).then(function (response) {
2974
3047
  var headerMap = {};
2975
3048
  var responseText = "";
2976
- if (response.headers) {
2977
- response.headers.forEach(function (value, name) {
3049
+ var headers = response.headers;
3050
+ if (headers) {
3051
+ headers["forEach"](function (value, name) {
2978
3052
  headerMap[name] = value;
2979
3053
  });
2980
3054
  }
@@ -2999,7 +3073,7 @@
2999
3073
  _doOnComplete(oncomplete, 200, {});
3000
3074
  }
3001
3075
  if (!responseHandled && payload.timeout > 0) {
3002
- _postManager._setTimeoutOverride(function () {
3076
+ timeoutOverride.set(function () {
3003
3077
  if (!responseHandled) {
3004
3078
  responseHandled = true;
3005
3079
  _doOnComplete(oncomplete, 500, {});
@@ -3021,9 +3095,9 @@
3021
3095
  function _getAllResponseHeaders(xhr) {
3022
3096
  var theHeaders = {};
3023
3097
  if (!xhr.getAllResponseHeaders) {
3024
- theHeaders = _appendHeader(theHeaders, xhr, strTimeDeltaHeader);
3025
- theHeaders = _appendHeader(theHeaders, xhr, strKillDurationHeader);
3026
- theHeaders = _appendHeader(theHeaders, xhr, strKillDurationSecondsHeader);
3098
+ theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);
3099
+ theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);
3100
+ theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);
3027
3101
  }
3028
3102
  else {
3029
3103
  theHeaders = _convertAllHeadersToMap(xhr.getAllResponseHeaders());
@@ -3036,7 +3110,7 @@
3036
3110
  if (sync && payload.disableXhrSync) {
3037
3111
  sync = false;
3038
3112
  }
3039
- var xhrRequest = openXhr(Method, theUrl, _sendCredentials, true, sync, payload.timeout);
3113
+ var xhrRequest = openXhr(STR_POST_METHOD, theUrl, _sendCredentials, true, sync, payload.timeout);
3040
3114
  objForEachKey(payload.headers, function (name, value) {
3041
3115
  xhrRequest.setRequestHeader(name, value);
3042
3116
  });
@@ -3058,7 +3132,7 @@
3058
3132
  oncomplete(status, headers, response);
3059
3133
  }
3060
3134
  catch (e) {
3061
- _throwInternal(_postManager.diagLog(), 2 , 518 , dumpObj(e));
3135
+ _throwInternal(_logger, 2 , 518 , dumpObj(e));
3062
3136
  }
3063
3137
  }
3064
3138
  function _beaconSendPost(payload, oncomplete, sync) {
@@ -3093,7 +3167,7 @@
3093
3167
  }
3094
3168
  }
3095
3169
  catch (ex) {
3096
- _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
3170
+ _warnToConsole(_logger, "Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
3097
3171
  status = 0;
3098
3172
  }
3099
3173
  finally {
@@ -3257,7 +3331,7 @@
3257
3331
  }, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
3258
3332
  }
3259
3333
  catch (ex) {
3260
- _throwInternal(_postManager.diagLog(), 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
3334
+ _throwInternal(_logger, 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
3261
3335
  }
3262
3336
  }
3263
3337
  function _buildRequestDetails(thePayload, useHeaders) {
@@ -3281,8 +3355,8 @@
3281
3355
  requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
3282
3356
  requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
3283
3357
  }
3284
- _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
3285
- _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
3358
+ _addRequestDetails(requestDetails, STR_CLIENT_ID, "NO_AUTH", useHeaders);
3359
+ _addRequestDetails(requestDetails, STR_CLIENT_VERSION, FullVersionString, useHeaders);
3286
3360
  var apiQsKeys = "";
3287
3361
  arrForEach(thePayload.apiKeys, function (apiKey) {
3288
3362
  if (apiQsKeys.length > 0) {
@@ -3290,14 +3364,14 @@
3290
3364
  }
3291
3365
  apiQsKeys += apiKey;
3292
3366
  });
3293
- _addRequestDetails(requestDetails, strApiKey, apiQsKeys, useHeaders);
3294
- _addRequestDetails(requestDetails, strUploadTime, dateNow().toString(), useHeaders);
3367
+ _addRequestDetails(requestDetails, STR_API_KEY, apiQsKeys, useHeaders);
3368
+ _addRequestDetails(requestDetails, STR_UPLOAD_TIME, dateNow().toString(), useHeaders);
3295
3369
  var msfpc = _getMsfpc(thePayload);
3296
3370
  if (isValueAssigned(msfpc)) {
3297
3371
  requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
3298
3372
  }
3299
3373
  if (_clockSkewManager.shouldAddClockSkewHeaders()) {
3300
- _addRequestDetails(requestDetails, strTimeDeltaToApply, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
3374
+ _addRequestDetails(requestDetails, STR_TIME_DELTA_TO_APPLY, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
3301
3375
  }
3302
3376
  if (_core.getWParam) {
3303
3377
  var wParam = _core.getWParam();
@@ -3359,11 +3433,11 @@
3359
3433
  orgPayloadData.disableXhrSync = !!_disableXhrSync;
3360
3434
  }
3361
3435
  if (useHeaders_1) {
3362
- if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
3363
- orgPayloadData.headers[strCacheControl] = defaultCacheControl;
3436
+ if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
3437
+ orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
3364
3438
  }
3365
- if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
3366
- orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
3439
+ if (!_hasHeader(orgPayloadData.headers, STR_CONTENT_TYPE_HEADER)) {
3440
+ orgPayloadData.headers[STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;
3367
3441
  }
3368
3442
  }
3369
3443
  var sender = null;
@@ -3381,7 +3455,7 @@
3381
3455
  }
3382
3456
  }
3383
3457
  catch (ex) {
3384
- _postManager.diagLog().warnToConsole("Unexpected exception sending payload. Ex:" + dumpObj(ex));
3458
+ _warnToConsole(_logger, "Unexpected exception sending payload. Ex:" + dumpObj(ex));
3385
3459
  _doOnComplete(onComplete, 0, {});
3386
3460
  }
3387
3461
  };
@@ -3449,9 +3523,9 @@
3449
3523
  var shouldRetry = true;
3450
3524
  if (typeof status !== strShimUndefined) {
3451
3525
  if (headers) {
3452
- _clockSkewManager.setClockSkew(headers[strTimeDeltaHeader]);
3453
- var killDuration = headers[strKillDurationHeader] || headers["kill-duration-seconds"];
3454
- arrForEach(_killSwitch.setKillSwitchTenants(headers[strKillTokensHeader], killDuration), function (killToken) {
3526
+ _clockSkewManager.setClockSkew(headers[STR_TIME_DELTA_HEADER]);
3527
+ var killDuration = headers[STR_KILL_DURATION_HEADER] || headers["kill-duration-seconds"];
3528
+ arrForEach(_killSwitch.setKillSwitchTenants(headers[STR_KILL_TOKENS_HEADER], killDuration), function (killToken) {
3455
3529
  arrForEach(thePayload.batches, function (theBatch) {
3456
3530
  if (theBatch.iKey() === killToken) {
3457
3531
  droppedBatches = droppedBatches || [];
@@ -3538,7 +3612,7 @@
3538
3612
  cb();
3539
3613
  }
3540
3614
  else {
3541
- _postManager._setTimeoutOverride(cb, interval);
3615
+ timeoutOverride.set(cb, interval);
3542
3616
  }
3543
3617
  }
3544
3618
  function _convertAllHeadersToMap(headersString) {
@@ -3578,13 +3652,13 @@
3578
3652
  responseHandlers[i](responseText);
3579
3653
  }
3580
3654
  catch (e) {
3581
- _throwInternal(_postManager.diagLog(), 1 , 519 , "Response handler failed: " + e);
3655
+ _throwInternal(_logger, 1 , 519 , "Response handler failed: " + e);
3582
3656
  }
3583
3657
  }
3584
3658
  if (responseText) {
3585
3659
  var response = JSON.parse(responseText);
3586
- if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[strMsfpc])) {
3587
- _cookieMgr.set("MSFPC", response.webResult[strMsfpc], 365 * 86400);
3660
+ if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[STR_MSFPC])) {
3661
+ _cookieMgr.set("MSFPC", response.webResult[STR_MSFPC], 365 * 86400);
3588
3662
  }
3589
3663
  }
3590
3664
  }
@@ -3602,7 +3676,7 @@
3602
3676
  theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
3603
3677
  }
3604
3678
  catch (e) {
3605
- _throwInternal(_postManager.diagLog(), 1 , 74 , "send request notification failed: " + e);
3679
+ _throwInternal(_logger, 1 , 74 , "send request notification failed: " + e);
3606
3680
  }
3607
3681
  }, sendSync || isSyncRequest_1, 0);
3608
3682
  }, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
@@ -3612,31 +3686,48 @@
3612
3686
  function _getNotificationAction(reason) {
3613
3687
  var action = _eventActionMap[reason];
3614
3688
  if (!isValueAssigned(action)) {
3615
- action = strOther;
3689
+ action = STR_OTHER;
3616
3690
  if (reason >= 9000 && reason <= 9999 ) {
3617
- action = strResponseFail;
3691
+ action = STR_RESPONSE_FAIL;
3618
3692
  }
3619
3693
  else if (reason >= 8000 && reason <= 8999 ) {
3620
- action = strDropped;
3694
+ action = STR_DROPPED;
3621
3695
  }
3622
3696
  else if (reason >= 1000 && reason <= 1999 ) {
3623
- action = strSending;
3697
+ action = STR_SENDING;
3624
3698
  }
3625
3699
  }
3626
3700
  return action;
3627
3701
  }
3628
3702
  });
3629
3703
  }
3704
+ HttpManager.__ieDyn=1;
3630
3705
  return HttpManager;
3631
3706
  }());
3632
3707
 
3708
+ function defaultSetTimeout(callback, ms) {
3709
+ var args = [];
3710
+ for (var _i = 2; _i < arguments.length; _i++) {
3711
+ args[_i - 2] = arguments[_i];
3712
+ }
3713
+ return setTimeout(callback, ms, args);
3714
+ }
3715
+ function defaultClearTimeout(timeoutId) {
3716
+ clearTimeout(timeoutId);
3717
+ }
3718
+ function createTimeoutWrapper(argSetTimeout, argClearTimeout) {
3719
+ return {
3720
+ set: argSetTimeout || defaultSetTimeout,
3721
+ clear: argClearTimeout || defaultClearTimeout
3722
+ };
3723
+ }
3724
+
3633
3725
  var FlushCheckTimer = 0.250;
3634
3726
  var MaxNumberEventPerBatch = 500;
3635
3727
  var EventsDroppedAtOneTime = 20;
3636
3728
  var MaxSendAttempts = 6;
3637
3729
  var MaxSyncUnloadSendAttempts = 2;
3638
3730
  var MaxBackoffCount = 4;
3639
- var globalContext = isWindowObjectAvailable ? window : undefined;
3640
3731
  var MaxConnections = 2;
3641
3732
  var MaxRequestRetriesBeforeBackoff = 1;
3642
3733
  var strEventsDiscarded = "eventsDiscarded";
@@ -3650,7 +3741,7 @@
3650
3741
  var _this = _super.call(this) || this;
3651
3742
  _this.identifier = "PostChannel";
3652
3743
  _this.priority = 1011;
3653
- _this.version = '3.2.1';
3744
+ _this.version = '3.2.4';
3654
3745
  var _config;
3655
3746
  var _isTeardownCalled = false;
3656
3747
  var _flushCallbackQueue = [];
@@ -3675,10 +3766,10 @@
3675
3766
  var _delayedBatchReason;
3676
3767
  var _optimizeObject = true;
3677
3768
  var _isPageUnloadTriggered = false;
3678
- var _disableXhrSync = false;
3679
3769
  var _maxEventSendAttempts = MaxSendAttempts;
3680
3770
  var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
3681
3771
  var _evtNamespace;
3772
+ var _timeoutWrapper;
3682
3773
  dynamicProto(PostChannel, _this, function (_self, _base) {
3683
3774
  _initDefaults();
3684
3775
  _self["_getDbgPlgTargets"] = function () {
@@ -3694,8 +3785,7 @@
3694
3785
  var ctx = _self._getTelCtx();
3695
3786
  coreConfig.extensionConfig[_self.identifier] = coreConfig.extensionConfig[_self.identifier] || {};
3696
3787
  _config = ctx.getExtCfg(_self.identifier);
3697
- _self._setTimeoutOverride = _config.setTimeoutOverride ? _config.setTimeoutOverride : setTimeout.bind(globalContext);
3698
- _self._clearTimeoutOverride = _config.clearTimeoutOverride ? _config.clearTimeoutOverride : clearTimeout.bind(globalContext);
3788
+ _timeoutWrapper = createTimeoutWrapper(_config.setTimeoutOverride, _config.clearTimeoutOverride);
3699
3789
  _optimizeObject = !_config.disableOptimizeObj && isChromium();
3700
3790
  _hookWParam(extendedCore);
3701
3791
  if (_config.eventsLimitInMem > 0) {
@@ -3707,7 +3797,6 @@
3707
3797
  if (_config.autoFlushEventsLimit > 0) {
3708
3798
  _autoFlushEventsLimit = _config.autoFlushEventsLimit;
3709
3799
  }
3710
- _disableXhrSync = _config.disableXhrSync;
3711
3800
  if (isNumber(_config[strMaxEventRetryAttempts])) {
3712
3801
  _maxEventSendAttempts = _config[strMaxEventRetryAttempts];
3713
3802
  }
@@ -3801,11 +3890,11 @@
3801
3890
  if (!event.latency) {
3802
3891
  event.latency = 1 ;
3803
3892
  }
3804
- if (event.ext && event.ext["trace"]) {
3805
- delete (event.ext["trace"]);
3893
+ if (event.ext && event.ext[STR_TRACE]) {
3894
+ delete (event.ext[STR_TRACE]);
3806
3895
  }
3807
- if (event.ext && event.ext["user"] && event.ext["user"]["id"]) {
3808
- delete (event.ext["user"]["id"]);
3896
+ if (event.ext && event.ext[STR_USER] && event.ext[STR_USER]["id"]) {
3897
+ delete (event.ext[STR_USER]["id"]);
3809
3898
  }
3810
3899
  if (_optimizeObject) {
3811
3900
  event.ext = optimizeObject(event.ext);
@@ -3915,13 +4004,13 @@
3915
4004
  _self.flush = function (async, callback, sendReason) {
3916
4005
  if (async === void 0) { async = true; }
3917
4006
  if (!_paused) {
3918
- _clearScheduledTimer();
3919
4007
  sendReason = sendReason || 1 ;
3920
4008
  if (async) {
3921
- _queueBatches(1 , 0 , sendReason);
3922
- _resetQueueCounts();
3923
4009
  if (_flushCallbackTimerId == null) {
4010
+ _clearScheduledTimer();
4011
+ _queueBatches(1 , 0 , sendReason);
3924
4012
  _flushCallbackTimerId = _createTimer(function () {
4013
+ _flushCallbackTimerId = null;
3925
4014
  _flushImpl(callback, sendReason);
3926
4015
  }, 0);
3927
4016
  }
@@ -3930,15 +4019,19 @@
3930
4019
  }
3931
4020
  }
3932
4021
  else {
4022
+ var cleared = _clearScheduledTimer();
3933
4023
  _sendEventsForLatencyAndAbove(1 , 1 , sendReason);
3934
4024
  if (callback !== null && callback !== undefined) {
3935
4025
  callback();
3936
4026
  }
4027
+ if (cleared) {
4028
+ _scheduleTimer();
4029
+ }
3937
4030
  }
3938
4031
  }
3939
4032
  };
3940
4033
  _self.setMsaAuthTicket = function (ticket) {
3941
- _httpManager.addHeader(strMsaDeviceTicket, ticket);
4034
+ _httpManager.addHeader(STR_MSA_DEVICE_TICKET, ticket);
3942
4035
  };
3943
4036
  _self.hasEvents = _hasEvents;
3944
4037
  _self._setTransmitProfile = function (profileName) {
@@ -4024,10 +4117,10 @@
4024
4117
  _delayedBatchReason = null;
4025
4118
  _optimizeObject = true;
4026
4119
  _isPageUnloadTriggered = false;
4027
- _disableXhrSync = false;
4028
4120
  _maxEventSendAttempts = MaxSendAttempts;
4029
4121
  _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
4030
4122
  _evtNamespace = null;
4123
+ _timeoutWrapper = createTimeoutWrapper();
4031
4124
  _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
4032
4125
  requeue: _requeueEvents,
4033
4126
  send: _sendingEvent,
@@ -4035,7 +4128,7 @@
4035
4128
  drop: _eventsDropped,
4036
4129
  rspFail: _eventsResponseFail,
4037
4130
  oth: _otherEvent
4038
- });
4131
+ }, _timeoutWrapper);
4039
4132
  _initializeProfiles();
4040
4133
  _clearQueues();
4041
4134
  _setAutoLimits();
@@ -4048,19 +4141,21 @@
4048
4141
  if (_currentBackoffCount) {
4049
4142
  timerMultiplier = retryPolicyGetMillisToBackoffForRetry(_currentBackoffCount - 1);
4050
4143
  }
4051
- return _self._setTimeoutOverride(theTimerFunc, timeOut * timerMultiplier);
4144
+ return _timeoutWrapper.set(theTimerFunc, timeOut * timerMultiplier);
4052
4145
  }
4053
4146
  function _clearScheduledTimer() {
4054
4147
  if (_scheduledTimerId !== null) {
4055
- _self._clearTimeoutOverride(_scheduledTimerId);
4148
+ _timeoutWrapper.clear(_scheduledTimerId);
4056
4149
  _scheduledTimerId = null;
4057
4150
  _timerCount = 0;
4151
+ return true;
4058
4152
  }
4153
+ return false;
4059
4154
  }
4060
4155
  function _releaseAllQueues(sendType, sendReason) {
4061
4156
  _clearScheduledTimer();
4062
4157
  if (_flushCallbackTimerId) {
4063
- _self._clearTimeoutOverride(_flushCallbackTimerId);
4158
+ _timeoutWrapper.clear(_flushCallbackTimerId);
4064
4159
  _flushCallbackTimerId = null;
4065
4160
  }
4066
4161
  if (!_paused) {
@@ -4219,18 +4314,20 @@
4219
4314
  }
4220
4315
  function _flushImpl(callback, sendReason) {
4221
4316
  _sendEventsForLatencyAndAbove(1 , 0 , sendReason);
4317
+ _resetQueueCounts();
4222
4318
  _waitForIdleManager(function () {
4223
4319
  if (callback) {
4224
4320
  callback();
4225
4321
  }
4226
4322
  if (_flushCallbackQueue.length > 0) {
4227
- _flushCallbackTimerId = _createTimer(function () { return _flushImpl(_flushCallbackQueue.shift(), sendReason); }, 0);
4323
+ _flushCallbackTimerId = _createTimer(function () {
4324
+ _flushCallbackTimerId = null;
4325
+ _flushImpl(_flushCallbackQueue.shift(), sendReason);
4326
+ }, 0);
4228
4327
  }
4229
4328
  else {
4230
4329
  _flushCallbackTimerId = null;
4231
- if (_hasEvents()) {
4232
- _scheduleTimer();
4233
- }
4330
+ _scheduleTimer();
4234
4331
  }
4235
4332
  });
4236
4333
  }
@@ -4240,6 +4337,7 @@
4240
4337
  }
4241
4338
  else {
4242
4339
  _flushCallbackTimerId = _createTimer(function () {
4340
+ _flushCallbackTimerId = null;
4243
4341
  _waitForIdleManager(callback);
4244
4342
  }, FlushCheckTimer);
4245
4343
  }
@@ -4354,9 +4452,16 @@
4354
4452
  _autoFlushBatchLimit = 0;
4355
4453
  }
4356
4454
  }
4455
+ objDefineAccessors(_self, "_setTimeoutOverride", function () { return _timeoutWrapper.set; }, function (value) {
4456
+ _timeoutWrapper = createTimeoutWrapper(value, _timeoutWrapper.clear);
4457
+ });
4458
+ objDefineAccessors(_self, "_clearTimeoutOverride", function () { return _timeoutWrapper.clear; }, function (value) {
4459
+ _timeoutWrapper = createTimeoutWrapper(_timeoutWrapper.set, value);
4460
+ });
4357
4461
  });
4358
4462
  return _this;
4359
4463
  }
4464
+ PostChannel.__ieDyn=1;
4360
4465
  return PostChannel;
4361
4466
  }(BaseTelemetryPlugin));
4362
4467
  var PostChannel$1 = PostChannel;