@microsoft/applicationinsights-dependencies-js 3.0.0-beta.2303-11 → 3.0.0-nightly3.2304-28

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 (64) hide show
  1. package/browser/es5/applicationinsights-dependencies-js.cjs.js +4892 -0
  2. package/browser/es5/applicationinsights-dependencies-js.cjs.js.map +1 -0
  3. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js +6 -0
  4. package/browser/es5/applicationinsights-dependencies-js.cjs.min.js.map +1 -0
  5. package/browser/es5/applicationinsights-dependencies-js.gbl.js +4896 -0
  6. package/browser/es5/applicationinsights-dependencies-js.gbl.js.map +1 -0
  7. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js +6 -0
  8. package/browser/es5/applicationinsights-dependencies-js.gbl.min.js.map +1 -0
  9. package/browser/es5/applicationinsights-dependencies-js.integrity.json +66 -0
  10. package/browser/{applicationinsights-dependencies-js.js → es5/applicationinsights-dependencies-js.js} +864 -839
  11. package/browser/es5/applicationinsights-dependencies-js.js.map +1 -0
  12. package/browser/es5/applicationinsights-dependencies-js.min.js +6 -0
  13. package/browser/es5/applicationinsights-dependencies-js.min.js.map +1 -0
  14. package/dist/{applicationinsights-dependencies-js.js → es5/applicationinsights-dependencies-js.js} +864 -839
  15. package/dist/es5/applicationinsights-dependencies-js.js.map +1 -0
  16. package/dist/es5/applicationinsights-dependencies-js.min.js +6 -0
  17. package/dist/es5/applicationinsights-dependencies-js.min.js.map +1 -0
  18. package/{dist-esm → dist-es5}/DependencyInitializer.js +1 -1
  19. package/{dist-esm → dist-es5}/DependencyListener.js +1 -1
  20. package/{dist-esm → dist-es5}/InternalConstants.js +1 -1
  21. package/{dist-esm → dist-es5}/__DynamicConstants.js +1 -1
  22. package/{dist-esm → dist-es5}/ajax.js +5 -5
  23. package/dist-es5/ajax.js.map +1 -0
  24. package/{dist-esm → dist-es5}/ajaxRecord.js +1 -1
  25. package/{dist-esm → dist-es5}/ajaxUtils.js +1 -1
  26. package/{dist-esm → dist-es5}/applicationinsights-dependencies-js.js +1 -1
  27. package/package.json +19 -18
  28. package/tsconfig.json +5 -4
  29. package/types/applicationinsights-dependencies-js.d.ts +284 -4
  30. package/{dist/applicationinsights-dependencies-js.d.ts → types/applicationinsights-dependencies-js.namespaced.d.ts} +1 -1
  31. package/browser/applicationinsights-dependencies-js.integrity.json +0 -26
  32. package/browser/applicationinsights-dependencies-js.js.map +0 -1
  33. package/browser/applicationinsights-dependencies-js.min.js +0 -6
  34. package/browser/applicationinsights-dependencies-js.min.js.map +0 -1
  35. package/dist/applicationinsights-dependencies-js.api.json +0 -2904
  36. package/dist/applicationinsights-dependencies-js.api.md +0 -197
  37. package/dist/applicationinsights-dependencies-js.js.map +0 -1
  38. package/dist/applicationinsights-dependencies-js.min.js +0 -6
  39. package/dist/applicationinsights-dependencies-js.min.js.map +0 -1
  40. package/dist/applicationinsights-dependencies-js.rollup.d.ts +0 -285
  41. package/dist-esm/ajax.js.map +0 -1
  42. package/src/DependencyInitializer.ts +0 -49
  43. package/src/DependencyListener.ts +0 -82
  44. package/src/InternalConstants.ts +0 -13
  45. package/src/__DynamicConstants.ts +0 -68
  46. package/src/ajax.ts +0 -1290
  47. package/src/ajaxRecord.ts +0 -436
  48. package/src/ajaxUtils.ts +0 -23
  49. package/src/applicationinsights-dependencies-js.ts +0 -9
  50. package/types/DependencyInitializer.d.ts +0 -45
  51. package/types/DependencyListener.d.ts +0 -69
  52. package/types/InternalConstants.d.ts +0 -2
  53. package/types/__DynamicConstants.d.ts +0 -56
  54. package/types/ajax.d.ts +0 -63
  55. package/types/ajaxRecord.d.ts +0 -80
  56. package/types/ajaxUtils.d.ts +0 -3
  57. package/types/tsdoc-metadata.json +0 -11
  58. /package/{dist-esm → dist-es5}/DependencyInitializer.js.map +0 -0
  59. /package/{dist-esm → dist-es5}/DependencyListener.js.map +0 -0
  60. /package/{dist-esm → dist-es5}/InternalConstants.js.map +0 -0
  61. /package/{dist-esm → dist-es5}/__DynamicConstants.js.map +0 -0
  62. /package/{dist-esm → dist-es5}/ajaxRecord.js.map +0 -0
  63. /package/{dist-esm → dist-es5}/ajaxUtils.js.map +0 -0
  64. /package/{dist-esm → dist-es5}/applicationinsights-dependencies-js.js.map +0 -0
@@ -0,0 +1,4892 @@
1
+ /*!
2
+ * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.0-nightly3.2304-28
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ */
5
+ 'use strict';
6
+
7
+ var strShimFunction = "function";
8
+ var strShimObject = "object";
9
+ var strShimUndefined = "undefined";
10
+ var strShimPrototype = "prototype";
11
+ var ObjClass$1 = Object;
12
+ var ObjProto$1 = ObjClass$1[strShimPrototype];
13
+
14
+ var UNDEF_VALUE = undefined;
15
+ var EMPTY = "";
16
+ var FUNCTION = "function";
17
+ var NUMBER = "number";
18
+ var OBJECT = "object";
19
+ var PROTOTYPE = "prototype";
20
+ var STRING = "string";
21
+ var UNDEFINED = "undefined";
22
+ var CONSTRUCTOR = "constructor";
23
+ var SYMBOL = "Symbol";
24
+ var POLYFILL_TAG = "_polyfill";
25
+ var INDEX_OF = "indexOf";
26
+ var LENGTH = "length";
27
+ var DONE = "done";
28
+ var VALUE = "value";
29
+ var NAME = "name";
30
+ var SLICE = "slice";
31
+ var ObjClass = Object;
32
+ var ObjProto = ObjClass[PROTOTYPE];
33
+ var StrCls = String;
34
+ var StrProto = StrCls[PROTOTYPE];
35
+ var MathCls = Math;
36
+ var ArrCls = Array;
37
+ var ArrProto = ArrCls[PROTOTYPE];
38
+
39
+ function _safeGet(cb, defValue) {
40
+ var result = defValue;
41
+ try {
42
+ result = cb();
43
+ }
44
+ catch (e) {
45
+ }
46
+ return result;
47
+ }
48
+
49
+ function _createIs(theType) {
50
+ return function (value) {
51
+ return typeof value === theType;
52
+ };
53
+ }
54
+ function _createObjIs(theName) {
55
+ var theType = "[object " + theName + "]";
56
+ return function (value) {
57
+ return !!(value && objToString(value) === theType);
58
+ };
59
+ }
60
+ function objToString(value) {
61
+ return ObjProto.toString.call(value);
62
+ }
63
+ function isUndefined(value) {
64
+ return typeof value === UNDEFINED || value === UNDEFINED;
65
+ }
66
+ function isNullOrUndefined(value) {
67
+ return value === null || isUndefined(value);
68
+ }
69
+ function isStrictNullOrUndefined(value) {
70
+ return value === null || !isDefined(value);
71
+ }
72
+ function isDefined(arg) {
73
+ return !!arg || arg !== UNDEF_VALUE;
74
+ }
75
+ var isString = _createIs(STRING);
76
+ var isFunction = _createIs(FUNCTION);
77
+ function isObject(value) {
78
+ if (!value && isNullOrUndefined(value)) {
79
+ return false;
80
+ }
81
+ return !!value && typeof value === OBJECT;
82
+ }
83
+ var isArray = ArrCls.isArray;
84
+ var isNumber = _createIs(NUMBER);
85
+ var isError = _createObjIs("Error");
86
+
87
+ var objGetOwnPropertyDescriptor = ObjClass.getOwnPropertyDescriptor;
88
+
89
+ function objHasOwnProperty(obj, prop) {
90
+ return obj && ObjProto.hasOwnProperty.call(obj, prop);
91
+ }
92
+
93
+ var objHasOwn = ObjClass["hasOwn"] || polyObjHasOwn;
94
+ function polyObjHasOwn(obj, prop) {
95
+ return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);
96
+ }
97
+
98
+ function objForEachKey(theObject, callbackfn, thisArg) {
99
+ if (theObject && isObject(theObject)) {
100
+ for (var prop in theObject) {
101
+ if (objHasOwn(theObject, prop)) {
102
+ if (callbackfn.call(thisArg || theObject, prop, theObject[prop]) === -1) {
103
+ break;
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ function _createKeyValueMap(values, keyType, valueType, completeFn) {
111
+ var theMap = {};
112
+ objForEachKey(values, function (key, value) {
113
+ theMap[key] = keyType ? value : key;
114
+ theMap[value] = valueType ? value : key;
115
+ });
116
+ return completeFn(theMap);
117
+ }
118
+
119
+ function throwError(message) {
120
+ throw new Error(message);
121
+ }
122
+ function throwTypeError(message) {
123
+ throw new TypeError(message);
124
+ }
125
+
126
+ var _objFreeze = ObjClass["freeze"];
127
+ var _doNothing = function (value) { return value; };
128
+ var objAssign = ObjClass["assign"];
129
+ function objKeys(value) {
130
+ if (!isObject(value) || value === null) {
131
+ throwTypeError("objKeys called on non-object");
132
+ }
133
+ return ObjClass.keys(value);
134
+ }
135
+ function objDeepFreeze(value) {
136
+ if (_objFreeze) {
137
+ objForEachKey(value, function (key, value) {
138
+ if (isArray(value) || isObject(value)) {
139
+ _objFreeze(value);
140
+ }
141
+ });
142
+ }
143
+ return objFreeze(value);
144
+ }
145
+ var objFreeze = _objFreeze || _doNothing;
146
+ var objGetPrototypeOf = ObjClass["getPrototypeOf"] || _doNothing;
147
+
148
+ function createEnumKeyMap(values) {
149
+ return _createKeyValueMap(values, 0 , 0 , objDeepFreeze);
150
+ }
151
+ function createSimpleMap(values) {
152
+ var mapClass = {};
153
+ objForEachKey(values, function (key, value) {
154
+ mapClass[key] = value[1];
155
+ mapClass[value[0]] = value[1];
156
+ });
157
+ return objDeepFreeze(mapClass);
158
+ }
159
+ function createTypeMap(values) {
160
+ return createSimpleMap(values);
161
+ }
162
+
163
+ var _wellKnownSymbolMap = createEnumKeyMap({
164
+ asyncIterator: 0 ,
165
+ hasInstance: 1 ,
166
+ isConcatSpreadable: 2 ,
167
+ iterator: 3 ,
168
+ match: 4 ,
169
+ matchAll: 5 ,
170
+ replace: 6 ,
171
+ search: 7 ,
172
+ species: 8 ,
173
+ split: 9 ,
174
+ toPrimitive: 10 ,
175
+ toStringTag: 11 ,
176
+ unscopables: 12
177
+ });
178
+
179
+ var asString = StrCls;
180
+
181
+ var GLOBAL_CONFIG_KEY = "__tsUtils$gblCfg";
182
+ var _globalCfg;
183
+ function _getGlobalValue() {
184
+ var result;
185
+ if (typeof globalThis !== UNDEFINED) {
186
+ result = globalThis;
187
+ }
188
+ if (!result && typeof self !== UNDEFINED) {
189
+ result = self;
190
+ }
191
+ if (!result && typeof window !== UNDEFINED) {
192
+ result = window;
193
+ }
194
+ if (!result && typeof global !== UNDEFINED) {
195
+ result = global;
196
+ }
197
+ return result;
198
+ }
199
+ function _getGlobalConfig() {
200
+ if (!_globalCfg) {
201
+ var gbl = _getGlobalValue() || {};
202
+ _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};
203
+ }
204
+ return _globalCfg;
205
+ }
206
+
207
+ function dumpObj(object, format) {
208
+ var propertyValueDump = EMPTY;
209
+ if (isError(object)) {
210
+ propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
211
+ }
212
+ else {
213
+ try {
214
+ propertyValueDump = JSON.stringify(object, null, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);
215
+ }
216
+ catch (e) {
217
+ propertyValueDump = " - " + dumpObj(e, format);
218
+ }
219
+ }
220
+ return objToString(object) + ": " + propertyValueDump;
221
+ }
222
+
223
+ function _unwrapFunction(funcName, target, polyFunc) {
224
+ return function (thisArg) {
225
+ var theFunc = (thisArg && thisArg[funcName]) || (target && target[funcName]);
226
+ if (theFunc || polyFunc) {
227
+ var theArgs = arguments;
228
+ return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrProto[SLICE].call(theArgs, 1) : theArgs);
229
+ }
230
+ throwTypeError("'" + asString(funcName) + "' not defined for " + dumpObj(thisArg));
231
+ };
232
+ }
233
+
234
+ var mathMax = MathCls.max;
235
+
236
+ var strSlice = _unwrapFunction(SLICE, StrProto);
237
+
238
+ var strSubstring = _unwrapFunction("substring", StrProto);
239
+ var strSubstr = _unwrapFunction("substr", StrProto, polyStrSubstr);
240
+ function polyStrSubstr(value, start, length) {
241
+ if (isNullOrUndefined(value)) {
242
+ throwTypeError("'polyStrSubstr called with invalid " + dumpObj(value));
243
+ }
244
+ if (length < 0) {
245
+ return EMPTY;
246
+ }
247
+ start = start || 0;
248
+ if (start < 0) {
249
+ start = mathMax(start + value[LENGTH], 0);
250
+ }
251
+ if (isUndefined(length)) {
252
+ return strSlice(value, start);
253
+ }
254
+ return strSlice(value, start, start + length);
255
+ }
256
+ function strLeft(value, count) {
257
+ return strSubstring(value, 0, count);
258
+ }
259
+
260
+ var _polySymbols;
261
+ function _globalSymbolRegistry() {
262
+ if (!_polySymbols) {
263
+ var gblCfg = _getGlobalConfig();
264
+ _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };
265
+ }
266
+ return _polySymbols;
267
+ }
268
+ var _wellKnownSymbolCache = {};
269
+ function polyNewSymbol(description) {
270
+ var theSymbol = {
271
+ description: asString(description),
272
+ toString: function () { return SYMBOL + "(" + description + ")"; }
273
+ };
274
+ theSymbol[POLYFILL_TAG] = true;
275
+ return theSymbol;
276
+ }
277
+ function polySymbolFor(key) {
278
+ var registry = _globalSymbolRegistry();
279
+ if (!objHasOwn(registry, key)) {
280
+ var newSymbol = polyNewSymbol(key);
281
+ registry.k[key] = newSymbol;
282
+ registry.s[newSymbol] = asString(key);
283
+ }
284
+ return registry.k[key];
285
+ }
286
+ function polyGetKnownSymbol(name) {
287
+ var result;
288
+ var knownName = _wellKnownSymbolMap[name];
289
+ if (knownName) {
290
+ result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + "." + knownName);
291
+ }
292
+ return result;
293
+ }
294
+
295
+ var propMap = {
296
+ e: "enumerable",
297
+ c: "configurable",
298
+ v: VALUE,
299
+ w: "writable",
300
+ g: "get",
301
+ s: "set"
302
+ };
303
+ function _createProp(value) {
304
+ var prop = {};
305
+ prop[propMap["c"]] = true;
306
+ prop[propMap["e"]] = true;
307
+ if (value.l) {
308
+ prop.get = function () { return value.l.v; };
309
+ var desc = objGetOwnPropertyDescriptor(value.l, "v");
310
+ if (desc && desc.set) {
311
+ prop.set = function (newValue) {
312
+ value.l.v = newValue;
313
+ };
314
+ }
315
+ }
316
+ objForEachKey(value, function (key, value) {
317
+ prop[propMap[key]] = isUndefined(value) ? prop[propMap[key]] : value;
318
+ });
319
+ return prop;
320
+ }
321
+ var objDefineProp = ObjClass["defineProperty"];
322
+ function objDefine(target, key, propDesc) {
323
+ return objDefineProp(target, key, _createProp(propDesc));
324
+ }
325
+
326
+ var _globalLazyTestHooks;
327
+ var _fetchLazyTestHooks = function () {
328
+ _globalLazyTestHooks = _getGlobalConfig();
329
+ _fetchLazyTestHooks = null;
330
+ };
331
+ function getLazy(cb) {
332
+ var lazyValue = {};
333
+ _fetchLazyTestHooks && _fetchLazyTestHooks();
334
+ lazyValue.b = _globalLazyTestHooks.lzy;
335
+ objDefineProp(lazyValue, "v", {
336
+ configurable: true,
337
+ get: function () {
338
+ var result = cb();
339
+ if (!_globalLazyTestHooks.lzy) {
340
+ objDefineProp(lazyValue, "v", {
341
+ value: result
342
+ });
343
+ if (lazyValue.b) {
344
+ delete lazyValue.b;
345
+ }
346
+ }
347
+ if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {
348
+ lazyValue.b = _globalLazyTestHooks.lzy;
349
+ }
350
+ return result;
351
+ }
352
+ });
353
+ return lazyValue;
354
+ }
355
+
356
+ function _lazySafeGet(cb, defValue) {
357
+ return getLazy(function () { return _safeGet(cb, defValue); });
358
+ }
359
+
360
+ var WINDOW = "window";
361
+ var _cachedGlobal;
362
+ var _cachedWindow;
363
+ var _cachedDocument;
364
+ var _cachedNavigator;
365
+ var _isWebWorker;
366
+ function _lazySafeGetInst(name) {
367
+ return _lazySafeGet(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE);
368
+ }
369
+ function getGlobal(useCached) {
370
+ (!_cachedGlobal || useCached === false || (_globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = _lazySafeGet(_getGlobalValue, null));
371
+ return _cachedGlobal.v;
372
+ }
373
+ function getInst(name, useCached) {
374
+ var gbl = getGlobal(useCached);
375
+ if (gbl && gbl[name]) {
376
+ return gbl[name];
377
+ }
378
+ if (name === WINDOW && _cachedWindow) {
379
+ return _cachedWindow.v;
380
+ }
381
+ return null;
382
+ }
383
+ function getDocument() {
384
+ (!_cachedDocument || (_globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = _lazySafeGetInst("document"));
385
+ return _cachedDocument.v;
386
+ }
387
+ function hasWindow() {
388
+ return !!getWindow();
389
+ }
390
+ function getWindow() {
391
+ (!_cachedWindow || (_globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = _lazySafeGetInst(WINDOW));
392
+ return _cachedWindow.v;
393
+ }
394
+ function getNavigator() {
395
+ (!_cachedNavigator || (_globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = _lazySafeGetInst("navigator"));
396
+ return _cachedNavigator.v;
397
+ }
398
+ function isWebWorker() {
399
+ !_isWebWorker && (_isWebWorker = _lazySafeGet(function () { return !!(self && self instanceof WorkerGlobalScope); }, false));
400
+ return _isWebWorker.v;
401
+ }
402
+
403
+ var _symbol;
404
+ var _symbolFor;
405
+ var _symbolKeyFor;
406
+ function _getSymbolValue(name) {
407
+ return _lazySafeGet(function () {
408
+ return (_symbol.v ? _symbol[name] : UNDEF_VALUE);
409
+ }, UNDEF_VALUE);
410
+ }
411
+ function getSymbol() {
412
+ var resetCache = !_symbol || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_symbol.b);
413
+ resetCache && (_symbol = _lazySafeGetInst(SYMBOL));
414
+ (!_symbolFor || resetCache) && (_symbolFor = _getSymbolValue("for"));
415
+ (!_symbolKeyFor || resetCache) && (_symbolKeyFor = _getSymbolValue("keyFor"));
416
+ return _symbol.v;
417
+ }
418
+ function getKnownSymbol(name, noPoly) {
419
+ var knownName = _wellKnownSymbolMap[name];
420
+ (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();
421
+ return _symbol.v ? _symbol.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);
422
+ }
423
+ function newSymbol(description, noPoly) {
424
+ (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();
425
+ return _symbol.v ? _symbol.v(description) : (!noPoly ? polyNewSymbol(description) : null);
426
+ }
427
+ function symbolFor(key) {
428
+ (!_symbolFor || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();
429
+ return (_symbolFor.v || polySymbolFor)(key);
430
+ }
431
+
432
+ function isIterator(value) {
433
+ return !!value && isFunction(value.next);
434
+ }
435
+ function isIterable(value) {
436
+ return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);
437
+ }
438
+
439
+ function iterForOf(iter, callbackfn, thisArg) {
440
+ if (iter) {
441
+ if (!isIterator(iter)) {
442
+ var itSymbol = getKnownSymbol(3 );
443
+ iter = iter[itSymbol] ? iter[itSymbol]() : null;
444
+ }
445
+ if (isIterator(iter)) {
446
+ try {
447
+ var count = 0;
448
+ var value = iter.next();
449
+ while (!value[DONE]) {
450
+ if (callbackfn.call(thisArg || iter, value[VALUE], count, iter) === -1) {
451
+ break;
452
+ }
453
+ count++;
454
+ value = iter.next();
455
+ }
456
+ iter.return && iter.return(value);
457
+ }
458
+ catch (e) {
459
+ iter.throw && iter.throw(e);
460
+ }
461
+ }
462
+ }
463
+ }
464
+
465
+ function arrAppend(target, elms) {
466
+ if (!isUndefined(elms) && target) {
467
+ if (isArray(elms)) {
468
+ target.push.apply(target, elms);
469
+ }
470
+ else if (isIterator(elms) || isIterable(elms)) {
471
+ iterForOf(elms, function (elm) {
472
+ target.push(elm);
473
+ });
474
+ }
475
+ else {
476
+ target.push(elms);
477
+ }
478
+ }
479
+ return target;
480
+ }
481
+
482
+ function arrForEach(theArray, callbackfn, thisArg) {
483
+ if (theArray) {
484
+ var len = theArray[LENGTH] >>> 0;
485
+ for (var idx = 0; idx < len; idx++) {
486
+ if (idx in theArray) {
487
+ if (callbackfn.call(thisArg || theArray, theArray[idx], idx, theArray) === -1) {
488
+ break;
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+
495
+ var arrIndexOf = _unwrapFunction(INDEX_OF, ArrProto);
496
+
497
+ var arrSlice = _unwrapFunction(SLICE, ArrProto);
498
+
499
+ function objSetPrototypeOf(obj, proto) {
500
+ var fn = ObjClass["setPrototypeOf"] ||
501
+ ({ __proto__: [] } instanceof Array && function (d, b) {
502
+ d.__proto__ = b;
503
+ }) ||
504
+ function (d, b) {
505
+ objForEachKey(b, function (key, value) { return d[key] = value; });
506
+ };
507
+ return fn(obj, proto);
508
+ }
509
+
510
+ function _createCustomError(name, d, baseClass) {
511
+ objSetPrototypeOf(d, baseClass);
512
+ function __() {
513
+ this.constructor = d;
514
+ this[NAME] = name;
515
+ }
516
+ __[PROTOTYPE] = baseClass[PROTOTYPE];
517
+ d[PROTOTYPE] = new __();
518
+ return d;
519
+ }
520
+ var _safeSetName = function (baseClass, name) {
521
+ try {
522
+ baseClass[PROTOTYPE][NAME] = name;
523
+ }
524
+ catch (e) {
525
+ }
526
+ };
527
+ function createCustomError(name, constructCb) {
528
+ var baseClass = Error;
529
+ var orgName = baseClass[PROTOTYPE][NAME];
530
+ var customError = _createCustomError(name, function () {
531
+ var _this = this;
532
+ try {
533
+ _safeSetName(baseClass, name);
534
+ _this = baseClass.apply(_this, arguments) || _this;
535
+ _this[NAME] = name;
536
+ constructCb && constructCb(_this, arguments);
537
+ }
538
+ finally {
539
+ _safeSetName(baseClass, orgName);
540
+ }
541
+ return _this;
542
+ }, baseClass);
543
+ return customError;
544
+ }
545
+
546
+ function utcNow() {
547
+ return (Date.now || polyUtcNow)();
548
+ }
549
+ function polyUtcNow() {
550
+ return new Date().getTime();
551
+ }
552
+
553
+ function _createTrimFn(exp) {
554
+ return function _doTrim(value) {
555
+ if (isNullOrUndefined(value)) {
556
+ throwTypeError("strTrim called [" + dumpObj(value) + "]");
557
+ }
558
+ if (value && value.replace) {
559
+ value = value.replace(exp, EMPTY);
560
+ }
561
+ return value;
562
+ };
563
+ }
564
+ var polyStrTrim = _createTrimFn(/^\s+|(?=\s)\s+$/g);
565
+
566
+ var strTrim = _unwrapFunction("trim", StrProto, polyStrTrim);
567
+
568
+ var _fnToString;
569
+ var _objCtrFnString;
570
+ var _gblWindow;
571
+ function isPlainObject(value) {
572
+ if (!value || typeof value !== OBJECT) {
573
+ return false;
574
+ }
575
+ if (!_gblWindow) {
576
+ _gblWindow = hasWindow() ? getWindow() : true;
577
+ }
578
+ var result = false;
579
+ if (value !== _gblWindow) {
580
+ if (!_objCtrFnString) {
581
+ _fnToString = Function[PROTOTYPE].toString;
582
+ _objCtrFnString = _fnToString.call(ObjClass);
583
+ }
584
+ try {
585
+ var proto = objGetPrototypeOf(value);
586
+ result = !proto;
587
+ if (!result) {
588
+ if (objHasOwnProperty(proto, CONSTRUCTOR)) {
589
+ proto = proto[CONSTRUCTOR];
590
+ }
591
+ result = proto && typeof proto === FUNCTION && _fnToString.call(proto) === _objCtrFnString;
592
+ }
593
+ }
594
+ catch (ex) {
595
+ }
596
+ }
597
+ return result;
598
+ }
599
+
600
+ var _perf;
601
+ function getPerformance() {
602
+ (!_perf || (_globalLazyTestHooks.lzy && !_perf.b)) && (_perf = _lazySafeGetInst("performance"));
603
+ return _perf.v;
604
+ }
605
+
606
+ var _objCreate = ObjClass["create"];
607
+ var objCreate = _objCreate || polyObjCreate;
608
+ function polyObjCreate(obj) {
609
+ if (!obj) {
610
+ return {};
611
+ }
612
+ var type = typeof obj;
613
+ if (type !== OBJECT && type !== FUNCTION) {
614
+ throw new TypeError("Prototype must be an Object or function: " + dumpObj(obj));
615
+ }
616
+ function tempFunc() { }
617
+ tempFunc[PROTOTYPE] = obj;
618
+ return new tempFunc();
619
+ }
620
+
621
+ var strIndexOf = _unwrapFunction(INDEX_OF, StrProto);
622
+
623
+ var REF = "ref";
624
+ var UNREF = "un" + REF;
625
+ var HAS_REF = "hasRef";
626
+ var ENABLED = "enabled";
627
+ function _createTimerHandler(startTimer, refreshFn, cancelFn) {
628
+ var _a;
629
+ var ref = true;
630
+ var timerId = startTimer ? refreshFn(null) : null;
631
+ var theTimerHandler;
632
+ var _unref = function () {
633
+ ref = false;
634
+ timerId && timerId[UNREF] && timerId[UNREF]();
635
+ return theTimerHandler;
636
+ };
637
+ var _ref = function () {
638
+ ref = true;
639
+ timerId && timerId[REF] && timerId[REF]();
640
+ return theTimerHandler;
641
+ };
642
+ var _hasRef = function () {
643
+ if (timerId && timerId[HAS_REF]) {
644
+ return timerId[HAS_REF]();
645
+ }
646
+ return ref;
647
+ };
648
+ var _refresh = function () {
649
+ timerId = refreshFn(timerId);
650
+ if (!ref) {
651
+ _unref();
652
+ }
653
+ return theTimerHandler;
654
+ };
655
+ var _cancel = function () {
656
+ timerId && cancelFn(timerId);
657
+ timerId = null;
658
+ };
659
+ var _setEnabled = function (value) {
660
+ !value && timerId && _cancel();
661
+ value && !timerId && _refresh();
662
+ };
663
+ theTimerHandler = (_a = {
664
+ cancel: _cancel,
665
+ refresh: _refresh
666
+ },
667
+ _a[HAS_REF] = _hasRef,
668
+ _a[REF] = _ref,
669
+ _a[UNREF] = _unref,
670
+ _a[ENABLED] = false,
671
+ _a);
672
+ objDefineProp(theTimerHandler, ENABLED, {
673
+ get: function () { return !!timerId; },
674
+ set: _setEnabled
675
+ });
676
+ return {
677
+ h: theTimerHandler,
678
+ dn: function () {
679
+ timerId = null;
680
+ }
681
+ };
682
+ }
683
+
684
+ function _createTimeoutWith(self, startTimer, overrideFn, theArgs) {
685
+ var isArr = isArray(overrideFn);
686
+ var len = isArr ? overrideFn.length : 0;
687
+ var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;
688
+ var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;
689
+ var timerFn = theArgs[0];
690
+ theArgs[0] = function () {
691
+ handler.dn();
692
+ timerFn.apply(self, arguments);
693
+ };
694
+ var handler = _createTimerHandler(startTimer, function (timerId) {
695
+ if (timerId) {
696
+ if (timerId.refresh) {
697
+ timerId.refresh();
698
+ return timerId;
699
+ }
700
+ clearFn.call(self, timerId);
701
+ }
702
+ return setFn.apply(self, theArgs);
703
+ }, function (timerId) {
704
+ clearFn.call(self, timerId);
705
+ });
706
+ return handler.h;
707
+ }
708
+ function scheduleTimeout(callback, timeout) {
709
+ return _createTimeoutWith(this, true, UNDEF_VALUE, arrSlice(arguments));
710
+ }
711
+
712
+ (getGlobal() || {})["Symbol"];
713
+ (getGlobal() || {})["Reflect"];
714
+ var strHasOwnProperty = "hasOwnProperty";
715
+ var __objAssignFnImpl = function (t) {
716
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
717
+ s = arguments[i];
718
+ for (var p in s) {
719
+ if (ObjProto$1[strHasOwnProperty].call(s, p)) {
720
+ t[p] = s[p];
721
+ }
722
+ }
723
+ }
724
+ return t;
725
+ };
726
+ var __assignFn = objAssign || __objAssignFnImpl;
727
+ var extendStaticsFn = function (d, b) {
728
+ extendStaticsFn = ObjClass$1["setPrototypeOf"] ||
729
+ ({ __proto__: [] } instanceof Array && function (d, b) {
730
+ d.__proto__ = b;
731
+ }) ||
732
+ function (d, b) {
733
+ for (var p in b) {
734
+ if (b[strHasOwnProperty](p)) {
735
+ d[p] = b[p];
736
+ }
737
+ }
738
+ };
739
+ return extendStaticsFn(d, b);
740
+ };
741
+ function __extendsFn(d, b) {
742
+ if (typeof b !== strShimFunction && b !== null) {
743
+ throwTypeError("Class extends value " + String(b) + " is not a constructor or null");
744
+ }
745
+ extendStaticsFn(d, b);
746
+ function __() {
747
+ this.constructor = d;
748
+ }
749
+ d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
750
+ }
751
+
752
+ var _a$2;
753
+ var Constructor = 'constructor';
754
+ var Prototype = 'prototype';
755
+ var strFunction = 'function';
756
+ var DynInstFuncTable = '_dynInstFuncs';
757
+ var DynProxyTag = '_isDynProxy';
758
+ var DynClassName = '_dynClass';
759
+ var DynClassNamePrefix = '_dynCls$';
760
+ var DynInstChkTag = '_dynInstChk';
761
+ var DynAllowInstChkTag = DynInstChkTag;
762
+ var DynProtoDefaultOptions = '_dfOpts';
763
+ var UnknownValue = '_unknown_';
764
+ var str__Proto = "__proto__";
765
+ var DynProtoBaseProto = "_dyn" + str__Proto;
766
+ var DynProtoGlobalSettings = "__dynProto$Gbl";
767
+ var DynProtoCurrent = "_dynInstProto";
768
+ var strUseBaseInst = 'useBaseInst';
769
+ var strSetInstFuncs = 'setInstFuncs';
770
+ var Obj = Object;
771
+ var _objGetPrototypeOf = Obj["getPrototypeOf"];
772
+ var _objGetOwnProps = Obj["getOwnPropertyNames"];
773
+ var _gbl = getGlobal();
774
+ var _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {
775
+ o: (_a$2 = {},
776
+ _a$2[strSetInstFuncs] = true,
777
+ _a$2[strUseBaseInst] = true,
778
+ _a$2),
779
+ n: 1000
780
+ });
781
+ function _isObjectOrArrayPrototype(target) {
782
+ return target && (target === Obj[Prototype] || target === Array[Prototype]);
783
+ }
784
+ function _isObjectArrayOrFunctionPrototype(target) {
785
+ return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
786
+ }
787
+ function _getObjProto$1(target) {
788
+ var newProto;
789
+ if (target) {
790
+ if (_objGetPrototypeOf) {
791
+ return _objGetPrototypeOf(target);
792
+ }
793
+ var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
794
+ newProto = target[DynProtoBaseProto] || curProto;
795
+ if (!objHasOwnProperty(target, DynProtoBaseProto)) {
796
+ delete target[DynProtoCurrent];
797
+ newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
798
+ target[DynProtoCurrent] = curProto;
799
+ }
800
+ }
801
+ return newProto;
802
+ }
803
+ function _forEachProp(target, func) {
804
+ var props = [];
805
+ if (_objGetOwnProps) {
806
+ props = _objGetOwnProps(target);
807
+ }
808
+ else {
809
+ for (var name_1 in target) {
810
+ if (typeof name_1 === "string" && objHasOwnProperty(target, name_1)) {
811
+ props.push(name_1);
812
+ }
813
+ }
814
+ }
815
+ if (props && props.length > 0) {
816
+ for (var lp = 0; lp < props.length; lp++) {
817
+ func(props[lp]);
818
+ }
819
+ }
820
+ }
821
+ function _isDynamicCandidate(target, funcName, skipOwn) {
822
+ return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)));
823
+ }
824
+ function _throwTypeError(message) {
825
+ throwTypeError("DynamicProto: " + message);
826
+ }
827
+ function _getInstanceFuncs(thisTarget) {
828
+ var instFuncs = {};
829
+ _forEachProp(thisTarget, function (name) {
830
+ if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
831
+ instFuncs[name] = thisTarget[name];
832
+ }
833
+ });
834
+ return instFuncs;
835
+ }
836
+ function _hasVisited(values, value) {
837
+ for (var lp = values.length - 1; lp >= 0; lp--) {
838
+ if (values[lp] === value) {
839
+ return true;
840
+ }
841
+ }
842
+ return false;
843
+ }
844
+ function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
845
+ function _instFuncProxy(target, funcHost, funcName) {
846
+ var theFunc = funcHost[funcName];
847
+ if (theFunc[DynProxyTag] && useBaseInst) {
848
+ var instFuncTable = target[DynInstFuncTable] || {};
849
+ if (instFuncTable[DynAllowInstChkTag] !== false) {
850
+ theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
851
+ }
852
+ }
853
+ return function () {
854
+ return theFunc.apply(target, arguments);
855
+ };
856
+ }
857
+ var baseFuncs = {};
858
+ _forEachProp(instFuncs, function (name) {
859
+ baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
860
+ });
861
+ var baseProto = _getObjProto$1(classProto);
862
+ var visited = [];
863
+ while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
864
+ _forEachProp(baseProto, function (name) {
865
+ if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {
866
+ baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
867
+ }
868
+ });
869
+ visited.push(baseProto);
870
+ baseProto = _getObjProto$1(baseProto);
871
+ }
872
+ return baseFuncs;
873
+ }
874
+ function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
875
+ var instFunc = null;
876
+ if (target && objHasOwnProperty(proto, DynClassName)) {
877
+ var instFuncTable = target[DynInstFuncTable] || {};
878
+ instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
879
+ if (!instFunc) {
880
+ _throwTypeError("Missing [" + funcName + "] " + strFunction);
881
+ }
882
+ if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
883
+ var canAddInst = !objHasOwnProperty(target, funcName);
884
+ var objProto = _getObjProto$1(target);
885
+ var visited = [];
886
+ while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
887
+ var protoFunc = objProto[funcName];
888
+ if (protoFunc) {
889
+ canAddInst = (protoFunc === currentDynProtoProxy);
890
+ break;
891
+ }
892
+ visited.push(objProto);
893
+ objProto = _getObjProto$1(objProto);
894
+ }
895
+ try {
896
+ if (canAddInst) {
897
+ target[funcName] = instFunc;
898
+ }
899
+ instFunc[DynInstChkTag] = 1;
900
+ }
901
+ catch (e) {
902
+ instFuncTable[DynAllowInstChkTag] = false;
903
+ }
904
+ }
905
+ }
906
+ return instFunc;
907
+ }
908
+ function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
909
+ var protoFunc = proto[funcName];
910
+ if (protoFunc === currentDynProtoProxy) {
911
+ protoFunc = _getObjProto$1(proto)[funcName];
912
+ }
913
+ if (typeof protoFunc !== strFunction) {
914
+ _throwTypeError("[" + funcName + "] is not a " + strFunction);
915
+ }
916
+ return protoFunc;
917
+ }
918
+ function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
919
+ function _createDynamicPrototype(proto, funcName) {
920
+ var dynProtoProxy = function () {
921
+ var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
922
+ return instFunc.apply(this, arguments);
923
+ };
924
+ dynProtoProxy[DynProxyTag] = 1;
925
+ return dynProtoProxy;
926
+ }
927
+ if (!_isObjectOrArrayPrototype(proto)) {
928
+ var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
929
+ var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
930
+ if (instFuncTable[DynAllowInstChkTag] !== false) {
931
+ instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
932
+ }
933
+ _forEachProp(target, function (name) {
934
+ if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
935
+ instFuncs_1[name] = target[name];
936
+ delete target[name];
937
+ if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
938
+ proto[name] = _createDynamicPrototype(proto, name);
939
+ }
940
+ }
941
+ });
942
+ }
943
+ }
944
+ function _checkPrototype(classProto, thisTarget) {
945
+ if (_objGetPrototypeOf) {
946
+ var visited = [];
947
+ var thisProto = _getObjProto$1(thisTarget);
948
+ while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
949
+ if (thisProto === classProto) {
950
+ return true;
951
+ }
952
+ visited.push(thisProto);
953
+ thisProto = _getObjProto$1(thisProto);
954
+ }
955
+ return false;
956
+ }
957
+ return true;
958
+ }
959
+ function _getObjName(target, unknownValue) {
960
+ if (objHasOwnProperty(target, Prototype)) {
961
+ return target.name || unknownValue || UnknownValue;
962
+ }
963
+ return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
964
+ }
965
+ function dynamicProto(theClass, target, delegateFunc, options) {
966
+ if (!objHasOwnProperty(theClass, Prototype)) {
967
+ _throwTypeError("theClass is an invalid class definition.");
968
+ }
969
+ var classProto = theClass[Prototype];
970
+ if (!_checkPrototype(classProto, target)) {
971
+ _throwTypeError("[" + _getObjName(theClass) + "] not in hierarchy of [" + _getObjName(target) + "]");
972
+ }
973
+ var className = null;
974
+ if (objHasOwnProperty(classProto, DynClassName)) {
975
+ className = classProto[DynClassName];
976
+ }
977
+ else {
978
+ className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _gblInst.n;
979
+ _gblInst.n++;
980
+ classProto[DynClassName] = className;
981
+ }
982
+ var perfOptions = dynamicProto[DynProtoDefaultOptions];
983
+ var useBaseInst = !!perfOptions[strUseBaseInst];
984
+ if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
985
+ useBaseInst = !!options[strUseBaseInst];
986
+ }
987
+ var instFuncs = _getInstanceFuncs(target);
988
+ var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
989
+ delegateFunc(target, baseFuncs);
990
+ var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];
991
+ if (setInstanceFunc && options) {
992
+ setInstanceFunc = !!options[strSetInstFuncs];
993
+ }
994
+ _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
995
+ }
996
+ dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
997
+
998
+ var createValueMap = createTypeMap;
999
+
1000
+ var _DYN_TO_LOWER_CASE$2 = "toLowerCase";
1001
+ var _DYN_LENGTH$2 = "length";
1002
+ var _DYN_RD_ONLY = "rdOnly";
1003
+ var _DYN_NOTIFY = "notify";
1004
+ var _DYN_THROW_INTERNAL = "throwInternal";
1005
+ var _DYN_SET_DF = "setDf";
1006
+ var _DYN_WATCH = "watch";
1007
+ var _DYN_LOGGER = "logger";
1008
+ var _DYN_APPLY = "apply";
1009
+ var _DYN_PUSH = "push";
1010
+ var _DYN_SPLICE = "splice";
1011
+ var _DYN_CANCEL = "cancel";
1012
+ var _DYN_INITIALIZE = "initialize";
1013
+ var _DYN_IDENTIFIER = "identifier";
1014
+ var _DYN_IS_INITIALIZED = "isInitialized";
1015
+ var _DYN_GET_PLUGIN = "getPlugin";
1016
+ var _DYN_NAME$2 = "name";
1017
+ var _DYN_TIME = "time";
1018
+ var _DYN_PROCESS_NEXT = "processNext";
1019
+ var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
1020
+ var _DYN_VERSION = "version";
1021
+ var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
1022
+ var _DYN_CREATE_NEW = "createNew";
1023
+ var _DYN_TEARDOWN = "teardown";
1024
+ var _DYN_MESSAGE_ID = "messageId";
1025
+ var _DYN_MESSAGE = "message";
1026
+ var _DYN_IS_ASYNC = "isAsync";
1027
+ var _DYN_DIAG_LOG = "diagLog";
1028
+ var _DYN__DO_TEARDOWN = "_doTeardown";
1029
+ var _DYN_UPDATE = "update";
1030
+ var _DYN_GET_NEXT = "getNext";
1031
+ var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
1032
+ var _DYN_USER_AGENT = "userAgent";
1033
+ var _DYN_SPLIT$1 = "split";
1034
+ var _DYN_NODE_TYPE = "nodeType";
1035
+ var _DYN_REPLACE = "replace";
1036
+ var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
1037
+ var _DYN_TYPE = "type";
1038
+ var _DYN_HANDLER = "handler";
1039
+ var _DYN_IS_CHILD_EVT = "isChildEvt";
1040
+ var _DYN_GET_CTX = "getCtx";
1041
+ var _DYN_SET_CTX = "setCtx";
1042
+ var _DYN_COMPLETE = "complete";
1043
+ var _DYN_TRACE_ID$1 = "traceId";
1044
+ var _DYN_SPAN_ID$1 = "spanId";
1045
+ var _DYN_TRACE_FLAGS$1 = "traceFlags";
1046
+
1047
+ var aggregationErrorType;
1048
+ function throwAggregationError(message, sourceErrors) {
1049
+ if (!aggregationErrorType) {
1050
+ aggregationErrorType = createCustomError("AggregationError", function (self, args) {
1051
+ if (args[_DYN_LENGTH$2 ] > 1) {
1052
+ self.errors = args[1];
1053
+ }
1054
+ });
1055
+ }
1056
+ var theMessage = message || "One or more errors occurred.";
1057
+ arrForEach(sourceErrors, function (srcError, idx) {
1058
+ theMessage += "\n".concat(idx, " > ").concat(dumpObj(srcError));
1059
+ });
1060
+ throw new aggregationErrorType(theMessage, sourceErrors || []);
1061
+ }
1062
+
1063
+ var UNDEFINED_VALUE = undefined;
1064
+ var STR_EMPTY = "";
1065
+ var STR_CORE = "core";
1066
+ var STR_DISABLED = "disabled";
1067
+ var STR_EXTENSION_CONFIG = "extensionConfig";
1068
+ var STR_PROCESS_TELEMETRY = "processTelemetry";
1069
+ var STR_PRIORITY = "priority";
1070
+ var STR_ERROR_TO_CONSOLE = "errorToConsole";
1071
+ var STR_WARN_TO_CONSOLE = "warnToConsole";
1072
+ var STR_GET_PERF_MGR = "getPerfMgr";
1073
+ var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
1074
+
1075
+ var strGetPrototypeOf = "getPrototypeOf";
1076
+ var rCamelCase = /-([a-z])/g;
1077
+ var rNormalizeInvalid = /([^\w\d_$])/g;
1078
+ var rLeadingNumeric = /^(\d+[\w\d_$])/;
1079
+ var _getObjProto = Object[strGetPrototypeOf];
1080
+ function isNotNullOrUndefined(value) {
1081
+ return !isNullOrUndefined(value);
1082
+ }
1083
+ function normalizeJsName(name) {
1084
+ var value = name;
1085
+ if (value && isString(value)) {
1086
+ value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
1087
+ return letter.toUpperCase();
1088
+ });
1089
+ value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
1090
+ value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
1091
+ return "_" + match;
1092
+ });
1093
+ }
1094
+ return value;
1095
+ }
1096
+ function strContains(value, search) {
1097
+ if (value && search) {
1098
+ return strIndexOf(value, search) !== -1;
1099
+ }
1100
+ return false;
1101
+ }
1102
+ function toISOString(date) {
1103
+ return date && date.toISOString() || "";
1104
+ }
1105
+ function getExceptionName(object) {
1106
+ if (isError(object)) {
1107
+ return object[_DYN_NAME$2 ];
1108
+ }
1109
+ return STR_EMPTY;
1110
+ }
1111
+ function _createProxyFunction(source, funcName) {
1112
+ var srcFunc = null;
1113
+ var src = null;
1114
+ if (isFunction(source)) {
1115
+ srcFunc = source;
1116
+ }
1117
+ else {
1118
+ src = source;
1119
+ }
1120
+ return function () {
1121
+ var originalArguments = arguments;
1122
+ if (srcFunc) {
1123
+ src = srcFunc();
1124
+ }
1125
+ if (src) {
1126
+ return src[funcName][_DYN_APPLY ](src, originalArguments);
1127
+ }
1128
+ };
1129
+ }
1130
+ function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {
1131
+ if (target && name && source) {
1132
+ if (overwriteTarget !== false || isUndefined(target[name])) {
1133
+ target[name] = _createProxyFunction(source, theFunc);
1134
+ }
1135
+ }
1136
+ }
1137
+ function createClassFromInterface(defaults) {
1138
+ return /** @class */ (function () {
1139
+ function class_1() {
1140
+ var _this = this;
1141
+ if (defaults) {
1142
+ objForEachKey(defaults, function (field, value) {
1143
+ _this[field] = value;
1144
+ });
1145
+ }
1146
+ }
1147
+ return class_1;
1148
+ }());
1149
+ }
1150
+
1151
+ var strDocumentMode = "documentMode";
1152
+ var strLocation = "location";
1153
+ var strConsole = "console";
1154
+ var strJSON = "JSON";
1155
+ var strCrypto = "crypto";
1156
+ var strMsCrypto = "msCrypto";
1157
+ var strMsie = "msie";
1158
+ var strTrident = "trident/";
1159
+ var strXMLHttpRequest = "XMLHttpRequest";
1160
+ var _isTrident = null;
1161
+ var _navUserAgentCheck = null;
1162
+ var _enableMocks = false;
1163
+ function getLocation(checkForMock) {
1164
+ if (checkForMock && _enableMocks) {
1165
+ var mockLocation = getInst("__mockLocation");
1166
+ if (mockLocation) {
1167
+ return mockLocation;
1168
+ }
1169
+ }
1170
+ if (typeof location === strShimObject && location) {
1171
+ return location;
1172
+ }
1173
+ return getInst(strLocation);
1174
+ }
1175
+ function getConsole() {
1176
+ if (typeof console !== strShimUndefined) {
1177
+ return console;
1178
+ }
1179
+ return getInst(strConsole);
1180
+ }
1181
+ function hasJSON() {
1182
+ return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);
1183
+ }
1184
+ function getJSON() {
1185
+ if (hasJSON()) {
1186
+ return JSON || getInst(strJSON);
1187
+ }
1188
+ return null;
1189
+ }
1190
+ function getCrypto() {
1191
+ return getInst(strCrypto);
1192
+ }
1193
+ function getMsCrypto() {
1194
+ return getInst(strMsCrypto);
1195
+ }
1196
+ function isIE() {
1197
+ var nav = getNavigator();
1198
+ if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1199
+ _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1200
+ var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$2 ]();
1201
+ _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1202
+ }
1203
+ return _isTrident;
1204
+ }
1205
+ function getIEVersion(userAgentStr) {
1206
+ if (userAgentStr === void 0) { userAgentStr = null; }
1207
+ if (!userAgentStr) {
1208
+ var navigator_1 = getNavigator() || {};
1209
+ userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE$2 ]() : STR_EMPTY;
1210
+ }
1211
+ var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE$2 ]();
1212
+ if (strContains(ua, strMsie)) {
1213
+ var doc = getDocument() || {};
1214
+ return Math.max(parseInt(ua[_DYN_SPLIT$1 ](strMsie)[1]), (doc[strDocumentMode] || 0));
1215
+ }
1216
+ else if (strContains(ua, strTrident)) {
1217
+ var tridentVer = parseInt(ua[_DYN_SPLIT$1 ](strTrident)[1]);
1218
+ if (tridentVer) {
1219
+ return tridentVer + 4;
1220
+ }
1221
+ }
1222
+ return null;
1223
+ }
1224
+ function isXhrSupported() {
1225
+ var isSupported = false;
1226
+ try {
1227
+ var xmlHttpRequest = getInst(strXMLHttpRequest);
1228
+ isSupported = !!xmlHttpRequest;
1229
+ }
1230
+ catch (e) {
1231
+ }
1232
+ return isSupported;
1233
+ }
1234
+
1235
+ var UInt32Mask = 0x100000000;
1236
+ var MaxUInt32 = 0xffffffff;
1237
+ var SEED1 = 123456789;
1238
+ var SEED2 = 987654321;
1239
+ var _mwcSeeded = false;
1240
+ var _mwcW = SEED1;
1241
+ var _mwcZ = SEED2;
1242
+ function _mwcSeed(seedValue) {
1243
+ if (seedValue < 0) {
1244
+ seedValue >>>= 0;
1245
+ }
1246
+ _mwcW = (SEED1 + seedValue) & MaxUInt32;
1247
+ _mwcZ = (SEED2 - seedValue) & MaxUInt32;
1248
+ _mwcSeeded = true;
1249
+ }
1250
+ function _autoSeedMwc() {
1251
+ try {
1252
+ var now = utcNow() & 0x7fffffff;
1253
+ _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
1254
+ }
1255
+ catch (e) {
1256
+ }
1257
+ }
1258
+ function random32(signed) {
1259
+ var value = 0;
1260
+ var c = getCrypto() || getMsCrypto();
1261
+ if (c && c.getRandomValues) {
1262
+ value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
1263
+ }
1264
+ if (value === 0 && isIE()) {
1265
+ if (!_mwcSeeded) {
1266
+ _autoSeedMwc();
1267
+ }
1268
+ value = mwcRandom32() & MaxUInt32;
1269
+ }
1270
+ if (value === 0) {
1271
+ value = Math.floor((UInt32Mask * Math.random()) | 0);
1272
+ }
1273
+ if (!signed) {
1274
+ value >>>= 0;
1275
+ }
1276
+ return value;
1277
+ }
1278
+ function mwcRandom32(signed) {
1279
+ _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
1280
+ _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
1281
+ var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
1282
+ if (!signed) {
1283
+ value >>>= 0;
1284
+ }
1285
+ return value;
1286
+ }
1287
+ function newId(maxLength) {
1288
+ if (maxLength === void 0) { maxLength = 22; }
1289
+ var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1290
+ var number = random32() >>> 0;
1291
+ var chars = 0;
1292
+ var result = STR_EMPTY;
1293
+ while (result[_DYN_LENGTH$2 ] < maxLength) {
1294
+ chars++;
1295
+ result += base64chars.charAt(number & 0x3F);
1296
+ number >>>= 6;
1297
+ if (chars === 5) {
1298
+ number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
1299
+ chars = 0;
1300
+ }
1301
+ }
1302
+ return result;
1303
+ }
1304
+
1305
+ var version = "3.0.0-nightly3.2304-28";
1306
+ var instanceName = "." + newId(6);
1307
+ var _dataUid = 0;
1308
+ function _canAcceptData(target) {
1309
+ return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
1310
+ }
1311
+ function _getCache(data, target) {
1312
+ var theCache = target[data.id];
1313
+ if (!theCache) {
1314
+ theCache = {};
1315
+ try {
1316
+ if (_canAcceptData(target)) {
1317
+ objDefine(target, data.id, {
1318
+ e: false,
1319
+ v: theCache
1320
+ });
1321
+ }
1322
+ }
1323
+ catch (e) {
1324
+ }
1325
+ }
1326
+ return theCache;
1327
+ }
1328
+ function createUniqueNamespace(name, includeVersion) {
1329
+ if (includeVersion === void 0) { includeVersion = false; }
1330
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1331
+ }
1332
+ function createElmNodeData(name) {
1333
+ var data = {
1334
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1335
+ accept: function (target) {
1336
+ return _canAcceptData(target);
1337
+ },
1338
+ get: function (target, name, defValue, addDefault) {
1339
+ var theCache = target[data.id];
1340
+ if (!theCache) {
1341
+ if (addDefault) {
1342
+ theCache = _getCache(data, target);
1343
+ theCache[normalizeJsName(name)] = defValue;
1344
+ }
1345
+ return defValue;
1346
+ }
1347
+ return theCache[normalizeJsName(name)];
1348
+ },
1349
+ kill: function (target, name) {
1350
+ if (target && target[name]) {
1351
+ try {
1352
+ delete target[name];
1353
+ }
1354
+ catch (e) {
1355
+ }
1356
+ }
1357
+ }
1358
+ };
1359
+ return data;
1360
+ }
1361
+
1362
+ function _isConfigDefaults(value) {
1363
+ return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, "v") || objHasOwn(value, "mrg") || objHasOwn(value, "ref") || value.set));
1364
+ }
1365
+ function _getDefault(dynamicHandler, theConfig, cfgDefaults) {
1366
+ var defValue;
1367
+ var isDefaultValid = cfgDefaults.dfVal || isDefined;
1368
+ if (theConfig && cfgDefaults.fb) {
1369
+ var fallbacks = cfgDefaults.fb;
1370
+ if (!isArray(fallbacks)) {
1371
+ fallbacks = [fallbacks];
1372
+ }
1373
+ for (var lp = 0; lp < fallbacks[_DYN_LENGTH$2 ]; lp++) {
1374
+ var fallback = fallbacks[lp];
1375
+ var fbValue = theConfig[fallback];
1376
+ if (isDefaultValid(fbValue)) {
1377
+ defValue = fbValue;
1378
+ }
1379
+ else if (dynamicHandler) {
1380
+ fbValue = dynamicHandler.cfg[fallback];
1381
+ if (isDefaultValid(fbValue)) {
1382
+ defValue = fbValue;
1383
+ }
1384
+ dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);
1385
+ }
1386
+ if (isDefaultValid(defValue)) {
1387
+ break;
1388
+ }
1389
+ }
1390
+ }
1391
+ if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {
1392
+ defValue = cfgDefaults.v;
1393
+ }
1394
+ return defValue;
1395
+ }
1396
+ function _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {
1397
+ var theValue = cfgDefaults;
1398
+ if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {
1399
+ theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);
1400
+ }
1401
+ if (theValue) {
1402
+ if (_isConfigDefaults(theValue)) {
1403
+ theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);
1404
+ }
1405
+ var newValue_1;
1406
+ if (isArray(theValue)) {
1407
+ newValue_1 = [];
1408
+ newValue_1[_DYN_LENGTH$2 ] = theValue[_DYN_LENGTH$2 ];
1409
+ }
1410
+ else if (isPlainObject(theValue)) {
1411
+ newValue_1 = {};
1412
+ }
1413
+ if (newValue_1) {
1414
+ objForEachKey(theValue, function (key, value) {
1415
+ if (value && _isConfigDefaults(value)) {
1416
+ value = _resolveDefaultValue(dynamicHandler, theConfig, value);
1417
+ }
1418
+ newValue_1[key] = value;
1419
+ });
1420
+ theValue = newValue_1;
1421
+ }
1422
+ }
1423
+ return theValue;
1424
+ }
1425
+ function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {
1426
+ var isValid;
1427
+ var setFn;
1428
+ var defValue;
1429
+ var cfgDefaults = defaultValue;
1430
+ var mergeDf;
1431
+ var reference;
1432
+ var readOnly;
1433
+ if (_isConfigDefaults(cfgDefaults)) {
1434
+ isValid = cfgDefaults.isVal;
1435
+ setFn = cfgDefaults.set;
1436
+ readOnly = cfgDefaults[_DYN_RD_ONLY ];
1437
+ mergeDf = cfgDefaults.mrg;
1438
+ reference = cfgDefaults.ref;
1439
+ if (!reference && isUndefined(reference)) {
1440
+ reference = !!mergeDf;
1441
+ }
1442
+ defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);
1443
+ }
1444
+ else {
1445
+ defValue = defaultValue;
1446
+ }
1447
+ var theValue;
1448
+ var usingDefault = true;
1449
+ var cfgValue = theConfig[name];
1450
+ if (cfgValue || !isNullOrUndefined(cfgValue)) {
1451
+ theValue = cfgValue;
1452
+ usingDefault = false;
1453
+ if (isValid && theValue !== defValue && !isValid(theValue)) {
1454
+ theValue = defValue;
1455
+ usingDefault = true;
1456
+ }
1457
+ if (setFn) {
1458
+ theValue = setFn(theValue, defValue, theConfig);
1459
+ usingDefault = theValue === defValue;
1460
+ }
1461
+ }
1462
+ if (!usingDefault) {
1463
+ if (isPlainObject(theValue) || isArray(defValue)) {
1464
+ if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {
1465
+ objForEachKey(defValue, function (dfName, dfValue) {
1466
+ _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);
1467
+ });
1468
+ }
1469
+ }
1470
+ }
1471
+ else if (defValue) {
1472
+ theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);
1473
+ }
1474
+ else {
1475
+ theValue = defValue;
1476
+ }
1477
+ dynamicHandler.set(theConfig, name, theValue);
1478
+ if (reference) {
1479
+ dynamicHandler.ref(theConfig, name);
1480
+ }
1481
+ if (readOnly) {
1482
+ dynamicHandler[_DYN_RD_ONLY ](theConfig, name);
1483
+ }
1484
+ }
1485
+
1486
+ var CFG_HANDLER_LINK = symbolFor("[[ai_dynCfg_1]]");
1487
+ var BLOCK_DYNAMIC = symbolFor("[[ai_blkDynCfg_1]]");
1488
+ var FORCE_DYNAMIC = symbolFor("[[ai_frcDynCfg_1]]");
1489
+ function _cfgDeepCopy(source) {
1490
+ if (source) {
1491
+ var target_1;
1492
+ if (isArray(source)) {
1493
+ target_1 = [];
1494
+ target_1[_DYN_LENGTH$2 ] = source[_DYN_LENGTH$2 ];
1495
+ }
1496
+ else if (isPlainObject(source)) {
1497
+ target_1 = {};
1498
+ }
1499
+ if (target_1) {
1500
+ objForEachKey(source, function (key, value) {
1501
+ target_1[key] = _cfgDeepCopy(value);
1502
+ });
1503
+ return target_1;
1504
+ }
1505
+ }
1506
+ return source;
1507
+ }
1508
+ function getDynamicConfigHandler(value) {
1509
+ if (value) {
1510
+ var handler = value[CFG_HANDLER_LINK] || value;
1511
+ if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {
1512
+ return handler;
1513
+ }
1514
+ }
1515
+ return null;
1516
+ }
1517
+ function _canMakeDynamic(value) {
1518
+ var result = false;
1519
+ if (value) {
1520
+ result = value[FORCE_DYNAMIC];
1521
+ if (!result && !value[BLOCK_DYNAMIC]) {
1522
+ result = isPlainObject(value) || isArray(value);
1523
+ }
1524
+ }
1525
+ return result;
1526
+ }
1527
+ function throwInvalidAccess(message) {
1528
+ throwTypeError("InvalidAccess:" + message);
1529
+ }
1530
+
1531
+ var arrayMethodsToPatch = [
1532
+ "push",
1533
+ "pop",
1534
+ "shift",
1535
+ "unshift",
1536
+ "splice"
1537
+ ];
1538
+ function _patchArray(state, target) {
1539
+ if (isArray(target)) {
1540
+ arrForEach(arrayMethodsToPatch, function (method) {
1541
+ var orgMethod = target[method];
1542
+ target[method] = function () {
1543
+ var args = [];
1544
+ for (var _i = 0; _i < arguments.length; _i++) {
1545
+ args[_i] = arguments[_i];
1546
+ }
1547
+ var result = orgMethod[_DYN_APPLY ](this, args);
1548
+ _makeDynamicObject(state, target);
1549
+ return result;
1550
+ };
1551
+ });
1552
+ }
1553
+ }
1554
+ function _getOwnPropGetter(target, name) {
1555
+ var propDesc = objGetOwnPropertyDescriptor(target, name);
1556
+ return propDesc && propDesc.get;
1557
+ }
1558
+ function _makeDynamicProperty(state, theConfig, name, value) {
1559
+ var detail = {
1560
+ n: name,
1561
+ h: [],
1562
+ trk: function (handler) {
1563
+ if (handler && handler.fn) {
1564
+ if (arrIndexOf(detail.h, handler) === -1) {
1565
+ detail.h[_DYN_PUSH ](handler);
1566
+ }
1567
+ state.trk(handler, detail);
1568
+ }
1569
+ },
1570
+ clr: function (handler) {
1571
+ var idx = arrIndexOf(detail.h, handler);
1572
+ if (idx !== -1) {
1573
+ detail.h[_DYN_SPLICE ](idx, 1);
1574
+ }
1575
+ }
1576
+ };
1577
+ var checkDynamic = true;
1578
+ var isObjectOrArray = false;
1579
+ function _getProperty() {
1580
+ if (checkDynamic) {
1581
+ isObjectOrArray = isObjectOrArray || _canMakeDynamic(value);
1582
+ if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {
1583
+ value = _makeDynamicObject(state, value);
1584
+ }
1585
+ checkDynamic = false;
1586
+ }
1587
+ var activeHandler = state.act;
1588
+ if (activeHandler) {
1589
+ detail.trk(activeHandler);
1590
+ }
1591
+ return value;
1592
+ }
1593
+ _getProperty[state.prop] = {
1594
+ chng: function () {
1595
+ state.add(detail);
1596
+ }
1597
+ };
1598
+ function _setProperty(newValue) {
1599
+ if (value !== newValue) {
1600
+ if (!!_getProperty[state.ro] && !state.upd) {
1601
+ throwInvalidAccess("[" + name + "] is read-only:" + dumpObj(theConfig));
1602
+ }
1603
+ if (checkDynamic) {
1604
+ isObjectOrArray = isObjectOrArray || _canMakeDynamic(value);
1605
+ checkDynamic = false;
1606
+ }
1607
+ var isReferenced = isObjectOrArray && _getProperty[state.rf];
1608
+ if (isObjectOrArray) {
1609
+ if (isReferenced) {
1610
+ objForEachKey(value, function (key) {
1611
+ value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;
1612
+ });
1613
+ objForEachKey(newValue, function (key, theValue) {
1614
+ _setDynamicProperty(state, value, key, theValue);
1615
+ });
1616
+ newValue = value;
1617
+ }
1618
+ else if (value && value[CFG_HANDLER_LINK]) {
1619
+ objForEachKey(value, function (key) {
1620
+ var getter = _getOwnPropGetter(value, key);
1621
+ if (getter) {
1622
+ var valueState = getter[state.prop];
1623
+ valueState && valueState.chng();
1624
+ }
1625
+ });
1626
+ }
1627
+ }
1628
+ if (newValue !== value) {
1629
+ var newIsObjectOrArray = newValue && _canMakeDynamic(newValue);
1630
+ if (!isReferenced && newIsObjectOrArray) {
1631
+ _makeDynamicObject(state, newValue);
1632
+ }
1633
+ value = newValue;
1634
+ isObjectOrArray = newIsObjectOrArray;
1635
+ }
1636
+ state.add(detail);
1637
+ }
1638
+ }
1639
+ objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });
1640
+ }
1641
+ function _setDynamicProperty(state, target, name, value, inPlace, rdOnly) {
1642
+ if (target) {
1643
+ var getter = _getOwnPropGetter(target, name);
1644
+ var isDynamic = getter && !!getter[state.prop];
1645
+ if (!isDynamic) {
1646
+ _makeDynamicProperty(state, target, name, value);
1647
+ if (inPlace || rdOnly) {
1648
+ getter = _getOwnPropGetter(target, name);
1649
+ }
1650
+ }
1651
+ else {
1652
+ target[name] = value;
1653
+ }
1654
+ if (inPlace) {
1655
+ getter[state.rf] = inPlace;
1656
+ }
1657
+ if (rdOnly) {
1658
+ getter[state.ro] = rdOnly;
1659
+ }
1660
+ }
1661
+ return target;
1662
+ }
1663
+ function _makeDynamicObject(state, target) {
1664
+ objForEachKey(target, function (key, value) {
1665
+ _setDynamicProperty(state, target, key, value);
1666
+ });
1667
+ if (!target[CFG_HANDLER_LINK]) {
1668
+ objDefineProp(target, CFG_HANDLER_LINK, {
1669
+ get: function () {
1670
+ return state.hdlr;
1671
+ }
1672
+ });
1673
+ _patchArray(state, target);
1674
+ }
1675
+ return target;
1676
+ }
1677
+
1678
+ var symPrefix = "[[ai_";
1679
+ var symPostfix = "]]";
1680
+ function _createState(cfgHandler) {
1681
+ var _a;
1682
+ var dynamicPropertySymbol = newSymbol(symPrefix + "get" + cfgHandler.uid + symPostfix);
1683
+ var dynamicPropertyReadOnly = newSymbol(symPrefix + "ro" + cfgHandler.uid + symPostfix);
1684
+ var dynamicPropertyReferenced = newSymbol(symPrefix + "rf" + cfgHandler.uid + symPostfix);
1685
+ var dynamicPropertyDetail = newSymbol(symPrefix + "dtl" + cfgHandler.uid + symPostfix);
1686
+ var _waitingHandlers = null;
1687
+ var _watcherTimer = null;
1688
+ var theState;
1689
+ function _useHandler(activeHandler, callback) {
1690
+ var prevWatcher = theState.act;
1691
+ try {
1692
+ theState.act = activeHandler;
1693
+ if (activeHandler && activeHandler[dynamicPropertyDetail]) {
1694
+ arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {
1695
+ detail.clr(activeHandler);
1696
+ });
1697
+ activeHandler[dynamicPropertyDetail] = [];
1698
+ }
1699
+ callback({
1700
+ cfg: cfgHandler.cfg,
1701
+ set: cfgHandler.set.bind(cfgHandler),
1702
+ setDf: cfgHandler[_DYN_SET_DF ].bind(cfgHandler),
1703
+ ref: cfgHandler.ref.bind(cfgHandler),
1704
+ rdOnly: cfgHandler[_DYN_RD_ONLY ].bind(cfgHandler)
1705
+ });
1706
+ }
1707
+ catch (e) {
1708
+ var logger = cfgHandler[_DYN_LOGGER ];
1709
+ if (logger) {
1710
+ logger[_DYN_THROW_INTERNAL ](1 , 107 , dumpObj(e));
1711
+ }
1712
+ throw e;
1713
+ }
1714
+ finally {
1715
+ theState.act = prevWatcher || null;
1716
+ }
1717
+ }
1718
+ function _notifyWatchers() {
1719
+ if (_waitingHandlers) {
1720
+ var notifyHandlers = _waitingHandlers;
1721
+ _waitingHandlers = null;
1722
+ _watcherTimer && _watcherTimer[_DYN_CANCEL ]();
1723
+ _watcherTimer = null;
1724
+ var watcherFailures_1 = [];
1725
+ arrForEach(notifyHandlers, function (handler) {
1726
+ if (handler) {
1727
+ if (handler[dynamicPropertyDetail]) {
1728
+ arrForEach(handler[dynamicPropertyDetail], function (detail) {
1729
+ detail.clr(handler);
1730
+ });
1731
+ handler[dynamicPropertyDetail] = null;
1732
+ }
1733
+ if (handler.fn) {
1734
+ try {
1735
+ _useHandler(handler, handler.fn);
1736
+ }
1737
+ catch (e) {
1738
+ watcherFailures_1[_DYN_PUSH ](e);
1739
+ }
1740
+ }
1741
+ }
1742
+ });
1743
+ if (_waitingHandlers) {
1744
+ try {
1745
+ _notifyWatchers();
1746
+ }
1747
+ catch (e) {
1748
+ watcherFailures_1[_DYN_PUSH ](e);
1749
+ }
1750
+ }
1751
+ if (watcherFailures_1[_DYN_LENGTH$2 ] > 0) {
1752
+ throwAggregationError("Watcher error(s): ", watcherFailures_1);
1753
+ }
1754
+ }
1755
+ }
1756
+ function _addWatcher(detail) {
1757
+ if (detail && detail.h[_DYN_LENGTH$2 ] > 0) {
1758
+ if (!_waitingHandlers) {
1759
+ _waitingHandlers = [];
1760
+ }
1761
+ if (!_watcherTimer) {
1762
+ _watcherTimer = scheduleTimeout(function () {
1763
+ _watcherTimer = null;
1764
+ _notifyWatchers();
1765
+ }, 0);
1766
+ }
1767
+ for (var idx = 0; idx < detail.h[_DYN_LENGTH$2 ]; idx++) {
1768
+ var handler = detail.h[idx];
1769
+ if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {
1770
+ _waitingHandlers[_DYN_PUSH ](handler);
1771
+ }
1772
+ }
1773
+ }
1774
+ }
1775
+ function _trackHandler(handler, detail) {
1776
+ if (handler) {
1777
+ var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];
1778
+ if (arrIndexOf(details, detail) === -1) {
1779
+ details[_DYN_PUSH ](detail);
1780
+ }
1781
+ }
1782
+ }
1783
+ theState = (_a = {
1784
+ prop: dynamicPropertySymbol,
1785
+ ro: dynamicPropertyReadOnly,
1786
+ rf: dynamicPropertyReferenced,
1787
+ hdlr: cfgHandler,
1788
+ add: _addWatcher
1789
+ },
1790
+ _a[_DYN_NOTIFY ] = _notifyWatchers,
1791
+ _a.use = _useHandler,
1792
+ _a.trk = _trackHandler,
1793
+ _a);
1794
+ return theState;
1795
+ }
1796
+
1797
+ function _createAndUseHandler(state, configHandler) {
1798
+ var handler = {
1799
+ fn: configHandler,
1800
+ rm: function () {
1801
+ handler.fn = null;
1802
+ state = null;
1803
+ configHandler = null;
1804
+ }
1805
+ };
1806
+ state.use(handler, configHandler);
1807
+ return handler;
1808
+ }
1809
+ function _createDynamicHandler(logger, target, inPlace) {
1810
+ var _a;
1811
+ var dynamicHandler = getDynamicConfigHandler(target);
1812
+ if (dynamicHandler) {
1813
+ return dynamicHandler;
1814
+ }
1815
+ var uid = createUniqueNamespace("dyncfg", true);
1816
+ var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);
1817
+ var theState;
1818
+ function _notifyWatchers() {
1819
+ theState[_DYN_NOTIFY ]();
1820
+ }
1821
+ function _setValue(target, name, value) {
1822
+ return _setDynamicProperty(theState, target, name, value)[name];
1823
+ }
1824
+ function _watch(configHandler) {
1825
+ return _createAndUseHandler(theState, configHandler);
1826
+ }
1827
+ function _block(configHandler, allowUpdate) {
1828
+ theState.use(null, function (details) {
1829
+ var prevUpd = theState.upd;
1830
+ try {
1831
+ if (!isUndefined(allowUpdate)) {
1832
+ theState.upd = allowUpdate;
1833
+ }
1834
+ configHandler(details);
1835
+ }
1836
+ finally {
1837
+ theState.upd = prevUpd;
1838
+ }
1839
+ });
1840
+ }
1841
+ function _ref(target, name) {
1842
+ return _setDynamicProperty(theState, target, name, target[name], true)[name];
1843
+ }
1844
+ function _rdOnly(target, name) {
1845
+ return _setDynamicProperty(theState, target, name, target[name], false, true)[name];
1846
+ }
1847
+ function _applyDefaults(theConfig, defaultValues) {
1848
+ if (defaultValues) {
1849
+ objForEachKey(defaultValues, function (name, value) {
1850
+ _applyDefaultValue(cfgHandler, theConfig, name, value);
1851
+ });
1852
+ }
1853
+ return theConfig;
1854
+ }
1855
+ var cfgHandler = (_a = {
1856
+ uid: null,
1857
+ cfg: newTarget
1858
+ },
1859
+ _a[_DYN_LOGGER ] = logger,
1860
+ _a[_DYN_NOTIFY ] = _notifyWatchers,
1861
+ _a.set = _setValue,
1862
+ _a[_DYN_SET_DF ] = _applyDefaults,
1863
+ _a[_DYN_WATCH ] = _watch,
1864
+ _a.ref = _ref,
1865
+ _a[_DYN_RD_ONLY ] = _rdOnly,
1866
+ _a._block = _block,
1867
+ _a);
1868
+ objDefine(cfgHandler, "uid", {
1869
+ c: false,
1870
+ e: false,
1871
+ w: false,
1872
+ v: uid
1873
+ });
1874
+ theState = _createState(cfgHandler);
1875
+ _makeDynamicObject(theState, newTarget);
1876
+ return cfgHandler;
1877
+ }
1878
+ function _logInvalidAccess(logger, message) {
1879
+ if (logger) {
1880
+ logger[STR_WARN_TO_CONSOLE ](message);
1881
+ logger[_DYN_THROW_INTERNAL ](2 , 108 , message);
1882
+ }
1883
+ else {
1884
+ throwInvalidAccess(message);
1885
+ }
1886
+ }
1887
+ function createDynamicConfig(config, defaultConfig, logger, inPlace) {
1888
+ var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);
1889
+ if (defaultConfig) {
1890
+ dynamicHandler[_DYN_SET_DF ](dynamicHandler.cfg, defaultConfig);
1891
+ }
1892
+ return dynamicHandler;
1893
+ }
1894
+ function onConfigChange(config, configHandler, logger) {
1895
+ var handler = config[CFG_HANDLER_LINK] || config;
1896
+ if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {
1897
+ return handler[_DYN_WATCH ](configHandler);
1898
+ }
1899
+ _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));
1900
+ createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
1901
+ }
1902
+
1903
+ var _aiNamespace = null;
1904
+ function _getExtensionNamespace() {
1905
+ var target = getInst("Microsoft");
1906
+ if (target) {
1907
+ _aiNamespace = target["ApplicationInsights"];
1908
+ }
1909
+ return _aiNamespace;
1910
+ }
1911
+ function getDebugExt(config) {
1912
+ var ns = _aiNamespace;
1913
+ if (!ns && config.disableDbgExt !== true) {
1914
+ ns = _aiNamespace || _getExtensionNamespace();
1915
+ }
1916
+ return ns ? ns["ChromeDbgExt"] : null;
1917
+ }
1918
+
1919
+ var AiNonUserActionablePrefix = "AI (Internal): ";
1920
+ var AiUserActionablePrefix = "AI: ";
1921
+ var AIInternalMessagePrefix = "AITR_";
1922
+ var defaultValues$1 = {
1923
+ loggingLevelConsole: 0,
1924
+ loggingLevelTelemetry: 1,
1925
+ maxMessageLimit: 25,
1926
+ enableDebug: false
1927
+ };
1928
+ function _sanitizeDiagnosticText(text) {
1929
+ if (text) {
1930
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
1931
+ }
1932
+ return STR_EMPTY;
1933
+ }
1934
+ function _logToConsole(func, message) {
1935
+ var theConsole = getConsole();
1936
+ if (!!theConsole) {
1937
+ var logFunc = "log";
1938
+ if (theConsole[func]) {
1939
+ logFunc = func;
1940
+ }
1941
+ if (isFunction(theConsole[logFunc])) {
1942
+ theConsole[logFunc](message);
1943
+ }
1944
+ }
1945
+ }
1946
+ var _InternalLogMessage = /** @class */ (function () {
1947
+ function _InternalLogMessage(msgId, msg, isUserAct, properties) {
1948
+ if (isUserAct === void 0) { isUserAct = false; }
1949
+ var _self = this;
1950
+ _self[_DYN_MESSAGE_ID ] = msgId;
1951
+ _self[_DYN_MESSAGE ] =
1952
+ (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
1953
+ msgId;
1954
+ var strProps = STR_EMPTY;
1955
+ if (hasJSON()) {
1956
+ strProps = getJSON().stringify(properties);
1957
+ }
1958
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
1959
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
1960
+ _self[_DYN_MESSAGE ] += diagnosticText;
1961
+ }
1962
+ _InternalLogMessage.dataType = "MessageData";
1963
+ return _InternalLogMessage;
1964
+ }());
1965
+ function safeGetLogger(core, config) {
1966
+ return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
1967
+ }
1968
+ var DiagnosticLogger = /** @class */ (function () {
1969
+ function DiagnosticLogger(config) {
1970
+ this.identifier = "DiagnosticLogger";
1971
+ this.queue = [];
1972
+ var _messageCount = 0;
1973
+ var _messageLogged = {};
1974
+ var _loggingLevelConsole;
1975
+ var _loggingLevelTelemetry;
1976
+ var _maxInternalMessageLimit;
1977
+ var _enableDebug;
1978
+ dynamicProto(DiagnosticLogger, this, function (_self) {
1979
+ _setDefaultsFromConfig(config || {});
1980
+ _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
1981
+ _self[_DYN_THROW_INTERNAL ] = function (severity, msgId, msg, properties, isUserAct) {
1982
+ if (isUserAct === void 0) { isUserAct = false; }
1983
+ var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
1984
+ if (_enableDebug) {
1985
+ throw dumpObj(message);
1986
+ }
1987
+ else {
1988
+ var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
1989
+ if (!isUndefined(message[_DYN_MESSAGE ])) {
1990
+ if (isUserAct) {
1991
+ var messageKey = +message[_DYN_MESSAGE_ID ];
1992
+ if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
1993
+ _self[logFunc](message[_DYN_MESSAGE ]);
1994
+ _messageLogged[messageKey] = true;
1995
+ }
1996
+ }
1997
+ else {
1998
+ if (_loggingLevelConsole >= severity) {
1999
+ _self[logFunc](message[_DYN_MESSAGE ]);
2000
+ }
2001
+ }
2002
+ _logInternalMessage(severity, message);
2003
+ }
2004
+ else {
2005
+ _debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
2006
+ }
2007
+ }
2008
+ };
2009
+ _self[STR_WARN_TO_CONSOLE ] = function (message) {
2010
+ _logToConsole("warn", message);
2011
+ _debugExtMsg("warning", message);
2012
+ };
2013
+ _self[STR_ERROR_TO_CONSOLE ] = function (message) {
2014
+ _logToConsole("error", message);
2015
+ _debugExtMsg("error", message);
2016
+ };
2017
+ _self.resetInternalMessageCount = function () {
2018
+ _messageCount = 0;
2019
+ _messageLogged = {};
2020
+ };
2021
+ _self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
2022
+ function _logInternalMessage(severity, message) {
2023
+ if (_areInternalMessagesThrottled()) {
2024
+ return;
2025
+ }
2026
+ var logMessage = true;
2027
+ var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
2028
+ if (_messageLogged[messageKey]) {
2029
+ logMessage = false;
2030
+ }
2031
+ else {
2032
+ _messageLogged[messageKey] = true;
2033
+ }
2034
+ if (logMessage) {
2035
+ if (severity <= _loggingLevelTelemetry) {
2036
+ _self.queue[_DYN_PUSH ](message);
2037
+ _messageCount++;
2038
+ _debugExtMsg((severity === 1 ? "error" : "warn"), message);
2039
+ }
2040
+ if (_messageCount === _maxInternalMessageLimit) {
2041
+ var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
2042
+ var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
2043
+ _self.queue[_DYN_PUSH ](throttleMessage);
2044
+ if (severity === 1 ) {
2045
+ _self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
2046
+ }
2047
+ else {
2048
+ _self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
2049
+ }
2050
+ }
2051
+ }
2052
+ }
2053
+ function _setDefaultsFromConfig(config) {
2054
+ var handler = createDynamicConfig(config, defaultValues$1, _self);
2055
+ handler[_DYN_WATCH ](function (details) {
2056
+ var config = details.cfg;
2057
+ _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 ];
2058
+ _loggingLevelTelemetry = config.loggingLevelTelemetry;
2059
+ _maxInternalMessageLimit = config.maxMessageLimit;
2060
+ _enableDebug = config.enableDebug;
2061
+ });
2062
+ }
2063
+ function _areInternalMessagesThrottled() {
2064
+ return _messageCount >= _maxInternalMessageLimit;
2065
+ }
2066
+ function _debugExtMsg(name, data) {
2067
+ var dbgExt = getDebugExt(config || {});
2068
+ if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
2069
+ dbgExt[_DYN_DIAG_LOG ](name, data);
2070
+ }
2071
+ }
2072
+ });
2073
+ }
2074
+ DiagnosticLogger.__ieDyn=1;
2075
+ return DiagnosticLogger;
2076
+ }());
2077
+ function _getLogger(logger) {
2078
+ return (logger || new DiagnosticLogger());
2079
+ }
2080
+ function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
2081
+ if (isUserAct === void 0) { isUserAct = false; }
2082
+ _getLogger(logger)[_DYN_THROW_INTERNAL ](severity, msgId, msg, properties, isUserAct);
2083
+ }
2084
+
2085
+ var strExecutionContextKey = "ctx";
2086
+ var strParentContextKey = "ParentContextKey";
2087
+ var strChildrenContextKey = "ChildrenContextKey";
2088
+ var PerfEvent = /** @class */ (function () {
2089
+ function PerfEvent(name, payloadDetails, isAsync) {
2090
+ var _self = this;
2091
+ _self.start = utcNow();
2092
+ _self[_DYN_NAME$2 ] = name;
2093
+ _self[_DYN_IS_ASYNC ] = isAsync;
2094
+ _self[_DYN_IS_CHILD_EVT ] = function () { return false; };
2095
+ if (isFunction(payloadDetails)) {
2096
+ var theDetails_1;
2097
+ objDefine(_self, "payload", {
2098
+ g: function () {
2099
+ if (!theDetails_1 && isFunction(payloadDetails)) {
2100
+ theDetails_1 = payloadDetails();
2101
+ payloadDetails = null;
2102
+ }
2103
+ return theDetails_1;
2104
+ }
2105
+ });
2106
+ }
2107
+ _self[_DYN_GET_CTX ] = function (key) {
2108
+ if (key) {
2109
+ if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
2110
+ return _self[key];
2111
+ }
2112
+ return (_self[strExecutionContextKey] || {})[key];
2113
+ }
2114
+ return null;
2115
+ };
2116
+ _self[_DYN_SET_CTX ] = function (key, value) {
2117
+ if (key) {
2118
+ if (key === PerfEvent[strParentContextKey]) {
2119
+ if (!_self[key]) {
2120
+ _self[_DYN_IS_CHILD_EVT ] = function () { return true; };
2121
+ }
2122
+ _self[key] = value;
2123
+ }
2124
+ else if (key === PerfEvent[strChildrenContextKey]) {
2125
+ _self[key] = value;
2126
+ }
2127
+ else {
2128
+ var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
2129
+ ctx[key] = value;
2130
+ }
2131
+ }
2132
+ };
2133
+ _self[_DYN_COMPLETE ] = function () {
2134
+ var childTime = 0;
2135
+ var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
2136
+ if (isArray(childEvts)) {
2137
+ for (var lp = 0; lp < childEvts[_DYN_LENGTH$2 ]; lp++) {
2138
+ var childEvt = childEvts[lp];
2139
+ if (childEvt) {
2140
+ childTime += childEvt[_DYN_TIME ];
2141
+ }
2142
+ }
2143
+ }
2144
+ _self[_DYN_TIME ] = utcNow() - _self.start;
2145
+ _self.exTime = _self[_DYN_TIME ] - childTime;
2146
+ _self[_DYN_COMPLETE ] = function () { };
2147
+ };
2148
+ }
2149
+ PerfEvent.ParentContextKey = "parent";
2150
+ PerfEvent.ChildrenContextKey = "childEvts";
2151
+ return PerfEvent;
2152
+ }());
2153
+ var doPerfActiveKey = "CoreUtils.doPerf";
2154
+ function doPerf(mgrSource, getSource, func, details, isAsync) {
2155
+ if (mgrSource) {
2156
+ var perfMgr = mgrSource;
2157
+ if (perfMgr[STR_GET_PERF_MGR]) {
2158
+ perfMgr = perfMgr[STR_GET_PERF_MGR]();
2159
+ }
2160
+ if (perfMgr) {
2161
+ var perfEvt = void 0;
2162
+ var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
2163
+ try {
2164
+ perfEvt = perfMgr.create(getSource(), details, isAsync);
2165
+ if (perfEvt) {
2166
+ if (currentActive && perfEvt[_DYN_SET_CTX ]) {
2167
+ perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
2168
+ if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
2169
+ var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
2170
+ if (!children) {
2171
+ children = [];
2172
+ currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
2173
+ }
2174
+ children[_DYN_PUSH ](perfEvt);
2175
+ }
2176
+ }
2177
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
2178
+ return func(perfEvt);
2179
+ }
2180
+ }
2181
+ catch (ex) {
2182
+ if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
2183
+ perfEvt[_DYN_SET_CTX ]("exception", ex);
2184
+ }
2185
+ }
2186
+ finally {
2187
+ if (perfEvt) {
2188
+ perfMgr.fire(perfEvt);
2189
+ }
2190
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
2191
+ }
2192
+ }
2193
+ }
2194
+ return func();
2195
+ }
2196
+
2197
+ function generateW3CId() {
2198
+ var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
2199
+ var oct = STR_EMPTY, tmp;
2200
+ for (var a = 0; a < 4; a++) {
2201
+ tmp = random32();
2202
+ oct +=
2203
+ hexValues[tmp & 0xF] +
2204
+ hexValues[tmp >> 4 & 0xF] +
2205
+ hexValues[tmp >> 8 & 0xF] +
2206
+ hexValues[tmp >> 12 & 0xF] +
2207
+ hexValues[tmp >> 16 & 0xF] +
2208
+ hexValues[tmp >> 20 & 0xF] +
2209
+ hexValues[tmp >> 24 & 0xF] +
2210
+ hexValues[tmp >> 28 & 0xF];
2211
+ }
2212
+ var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
2213
+ return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
2214
+ }
2215
+
2216
+ var DEFAULT_VERSION = "00";
2217
+ var INVALID_VERSION = "ff";
2218
+ var INVALID_TRACE_ID = "00000000000000000000000000000000";
2219
+ var INVALID_SPAN_ID = "0000000000000000";
2220
+ function _isValid(value, len, invalidValue) {
2221
+ if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
2222
+ return !!value.match(/^[\da-f]*$/i);
2223
+ }
2224
+ return false;
2225
+ }
2226
+ function _formatValue(value, len, defValue) {
2227
+ if (_isValid(value, len)) {
2228
+ return value;
2229
+ }
2230
+ return defValue;
2231
+ }
2232
+ function _formatFlags(value) {
2233
+ if (isNaN(value) || value < 0 || value > 255) {
2234
+ value = 0x01;
2235
+ }
2236
+ var result = value.toString(16);
2237
+ while (result[_DYN_LENGTH$2 ] < 2) {
2238
+ result = "0" + result;
2239
+ }
2240
+ return result;
2241
+ }
2242
+ function createTraceParent(traceId, spanId, flags, version) {
2243
+ var _a;
2244
+ return _a = {},
2245
+ _a[_DYN_VERSION ] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,
2246
+ _a[_DYN_TRACE_ID$1 ] = isValidTraceId(traceId) ? traceId : generateW3CId(),
2247
+ _a[_DYN_SPAN_ID$1 ] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),
2248
+ _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,
2249
+ _a;
2250
+ }
2251
+ function isValidTraceId(value) {
2252
+ return _isValid(value, 32, INVALID_TRACE_ID);
2253
+ }
2254
+ function isValidSpanId(value) {
2255
+ return _isValid(value, 16, INVALID_SPAN_ID);
2256
+ }
2257
+ function formatTraceParent(value) {
2258
+ if (value) {
2259
+ var flags = _formatFlags(value[_DYN_TRACE_FLAGS$1 ]);
2260
+ if (!_isValid(flags, 2)) {
2261
+ flags = "01";
2262
+ }
2263
+ var version = value[_DYN_VERSION ] || DEFAULT_VERSION;
2264
+ if (version !== "00" && version !== "ff") {
2265
+ version = DEFAULT_VERSION;
2266
+ }
2267
+ return "".concat(version.toLowerCase(), "-").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), "-").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), "-").concat(flags.toLowerCase());
2268
+ }
2269
+ return "";
2270
+ }
2271
+
2272
+ var pluginStateData = createElmNodeData("plugin");
2273
+ function _getPluginState(plugin) {
2274
+ return pluginStateData.get(plugin, "state", {}, true);
2275
+ }
2276
+
2277
+ var strTelemetryPluginChain = "TelemetryPluginChain";
2278
+ var strHasRunFlags = "_hasRun";
2279
+ var strGetTelCtx = "_getTelCtx";
2280
+ var _chainId = 0;
2281
+ function _getNextProxyStart(proxy, core, startAt) {
2282
+ while (proxy) {
2283
+ if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
2284
+ return proxy;
2285
+ }
2286
+ proxy = proxy[_DYN_GET_NEXT ]();
2287
+ }
2288
+ return createTelemetryProxyChain([startAt], core.config || {}, core);
2289
+ }
2290
+ function _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {
2291
+ var _nextProxy = null;
2292
+ var _onComplete = [];
2293
+ if (!dynamicHandler) {
2294
+ dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER ]);
2295
+ }
2296
+ if (startAt !== null) {
2297
+ _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
2298
+ }
2299
+ var context = {
2300
+ _next: _moveNext,
2301
+ ctx: {
2302
+ core: function () {
2303
+ return core;
2304
+ },
2305
+ diagLog: function () {
2306
+ return safeGetLogger(core, dynamicHandler.cfg);
2307
+ },
2308
+ getCfg: function () {
2309
+ return dynamicHandler.cfg;
2310
+ },
2311
+ getExtCfg: _resolveExtCfg,
2312
+ getConfig: _getConfig,
2313
+ hasNext: function () {
2314
+ return !!_nextProxy;
2315
+ },
2316
+ getNext: function () {
2317
+ return _nextProxy;
2318
+ },
2319
+ setNext: function (nextPlugin) {
2320
+ _nextProxy = nextPlugin;
2321
+ },
2322
+ iterate: _iterateChain,
2323
+ onComplete: _addOnComplete
2324
+ }
2325
+ };
2326
+ function _addOnComplete(onComplete, that) {
2327
+ var args = [];
2328
+ for (var _i = 2; _i < arguments.length; _i++) {
2329
+ args[_i - 2] = arguments[_i];
2330
+ }
2331
+ if (onComplete) {
2332
+ _onComplete[_DYN_PUSH ]({
2333
+ func: onComplete,
2334
+ self: !isUndefined(that) ? that : context.ctx,
2335
+ args: args
2336
+ });
2337
+ }
2338
+ }
2339
+ function _moveNext() {
2340
+ var nextProxy = _nextProxy;
2341
+ _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
2342
+ if (!nextProxy) {
2343
+ var onComplete = _onComplete;
2344
+ if (onComplete && onComplete[_DYN_LENGTH$2 ] > 0) {
2345
+ arrForEach(onComplete, function (completeDetails) {
2346
+ try {
2347
+ completeDetails.func.call(completeDetails.self, completeDetails.args);
2348
+ }
2349
+ catch (e) {
2350
+ _throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
2351
+ }
2352
+ });
2353
+ _onComplete = [];
2354
+ }
2355
+ }
2356
+ return nextProxy;
2357
+ }
2358
+ function _getExtCfg(identifier, createIfMissing) {
2359
+ var idCfg = null;
2360
+ var cfg = dynamicHandler.cfg;
2361
+ if (cfg && identifier) {
2362
+ var extCfg = cfg[STR_EXTENSION_CONFIG ];
2363
+ if (!extCfg && createIfMissing) {
2364
+ extCfg = {};
2365
+ }
2366
+ cfg[STR_EXTENSION_CONFIG] = extCfg;
2367
+ extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);
2368
+ if (extCfg) {
2369
+ idCfg = extCfg[identifier];
2370
+ if (!idCfg && createIfMissing) {
2371
+ idCfg = {};
2372
+ }
2373
+ extCfg[identifier] = idCfg;
2374
+ idCfg = dynamicHandler.ref(extCfg, identifier);
2375
+ }
2376
+ }
2377
+ return idCfg;
2378
+ }
2379
+ function _resolveExtCfg(identifier, defaultValues) {
2380
+ var newConfig = _getExtCfg(identifier, true);
2381
+ if (defaultValues) {
2382
+ objForEachKey(defaultValues, function (field, defaultValue) {
2383
+ if (isNullOrUndefined(newConfig[field])) {
2384
+ var cfgValue = dynamicHandler.cfg[field];
2385
+ if (cfgValue || !isNullOrUndefined(cfgValue)) {
2386
+ newConfig[field] = cfgValue;
2387
+ }
2388
+ }
2389
+ _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);
2390
+ });
2391
+ }
2392
+ return dynamicHandler[_DYN_SET_DF ](newConfig, defaultValues);
2393
+ }
2394
+ function _getConfig(identifier, field, defaultValue) {
2395
+ if (defaultValue === void 0) { defaultValue = false; }
2396
+ var theValue;
2397
+ var extConfig = _getExtCfg(identifier, false);
2398
+ var rootConfig = dynamicHandler.cfg;
2399
+ if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {
2400
+ theValue = extConfig[field];
2401
+ }
2402
+ else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {
2403
+ theValue = rootConfig[field];
2404
+ }
2405
+ return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;
2406
+ }
2407
+ function _iterateChain(cb) {
2408
+ var nextPlugin;
2409
+ while (!!(nextPlugin = context._next())) {
2410
+ var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
2411
+ if (plugin) {
2412
+ cb(plugin);
2413
+ }
2414
+ }
2415
+ }
2416
+ return context;
2417
+ }
2418
+ function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {
2419
+ var config = createDynamicConfig(cfg);
2420
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
2421
+ var context = internalContext.ctx;
2422
+ function _processNext(env) {
2423
+ var nextPlugin = internalContext._next();
2424
+ if (nextPlugin) {
2425
+ nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
2426
+ }
2427
+ return !nextPlugin;
2428
+ }
2429
+ function _createNew(plugins, startAt) {
2430
+ if (plugins === void 0) { plugins = null; }
2431
+ if (isArray(plugins)) {
2432
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
2433
+ }
2434
+ return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
2435
+ }
2436
+ context[_DYN_PROCESS_NEXT ] = _processNext;
2437
+ context[_DYN_CREATE_NEW ] = _createNew;
2438
+ return context;
2439
+ }
2440
+ function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
2441
+ var config = createDynamicConfig(core.config);
2442
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
2443
+ var context = internalContext.ctx;
2444
+ function _processNext(unloadState) {
2445
+ var nextPlugin = internalContext._next();
2446
+ nextPlugin && nextPlugin.unload(context, unloadState);
2447
+ return !nextPlugin;
2448
+ }
2449
+ function _createNew(plugins, startAt) {
2450
+ if (plugins === void 0) { plugins = null; }
2451
+ if (isArray(plugins)) {
2452
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
2453
+ }
2454
+ return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
2455
+ }
2456
+ context[_DYN_PROCESS_NEXT ] = _processNext;
2457
+ context[_DYN_CREATE_NEW ] = _createNew;
2458
+ return context;
2459
+ }
2460
+ function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
2461
+ var config = createDynamicConfig(core.config);
2462
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
2463
+ var context = internalContext.ctx;
2464
+ function _processNext(updateState) {
2465
+ return context.iterate(function (plugin) {
2466
+ if (isFunction(plugin[_DYN_UPDATE ])) {
2467
+ plugin[_DYN_UPDATE ](context, updateState);
2468
+ }
2469
+ });
2470
+ }
2471
+ function _createNew(plugins, startAt) {
2472
+ if (plugins === void 0) { plugins = null; }
2473
+ if (isArray(plugins)) {
2474
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
2475
+ }
2476
+ return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
2477
+ }
2478
+ context[_DYN_PROCESS_NEXT ] = _processNext;
2479
+ context[_DYN_CREATE_NEW ] = _createNew;
2480
+ return context;
2481
+ }
2482
+ function createTelemetryProxyChain(plugins, config, core, startAt) {
2483
+ var firstProxy = null;
2484
+ var add = startAt ? false : true;
2485
+ if (isArray(plugins) && plugins[_DYN_LENGTH$2 ] > 0) {
2486
+ var lastProxy_1 = null;
2487
+ arrForEach(plugins, function (thePlugin) {
2488
+ if (!add && startAt === thePlugin) {
2489
+ add = true;
2490
+ }
2491
+ if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
2492
+ var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
2493
+ if (!firstProxy) {
2494
+ firstProxy = newProxy;
2495
+ }
2496
+ if (lastProxy_1) {
2497
+ lastProxy_1._setNext(newProxy);
2498
+ }
2499
+ lastProxy_1 = newProxy;
2500
+ }
2501
+ });
2502
+ }
2503
+ if (startAt && !firstProxy) {
2504
+ return createTelemetryProxyChain([startAt], config, core);
2505
+ }
2506
+ return firstProxy;
2507
+ }
2508
+ function createTelemetryPluginProxy(plugin, config, core) {
2509
+ var nextProxy = null;
2510
+ var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
2511
+ var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
2512
+ var chainId;
2513
+ if (plugin) {
2514
+ chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
2515
+ }
2516
+ else {
2517
+ chainId = "Unknown-0-" + _chainId++;
2518
+ }
2519
+ var proxyChain = {
2520
+ getPlugin: function () {
2521
+ return plugin;
2522
+ },
2523
+ getNext: function () {
2524
+ return nextProxy;
2525
+ },
2526
+ processTelemetry: _processTelemetry,
2527
+ unload: _unloadPlugin,
2528
+ update: _updatePlugin,
2529
+ _id: chainId,
2530
+ _setNext: function (nextPlugin) {
2531
+ nextProxy = nextPlugin;
2532
+ }
2533
+ };
2534
+ function _getTelCtx() {
2535
+ var itemCtx;
2536
+ if (plugin && isFunction(plugin[strGetTelCtx])) {
2537
+ itemCtx = plugin[strGetTelCtx]();
2538
+ }
2539
+ if (!itemCtx) {
2540
+ itemCtx = createProcessTelemetryContext(proxyChain, config, core);
2541
+ }
2542
+ return itemCtx;
2543
+ }
2544
+ function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
2545
+ var hasRun = false;
2546
+ var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
2547
+ var hasRunContext = itemCtx[strHasRunFlags];
2548
+ if (!hasRunContext) {
2549
+ hasRunContext = itemCtx[strHasRunFlags] = {};
2550
+ }
2551
+ itemCtx.setNext(nextProxy);
2552
+ if (plugin) {
2553
+ doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
2554
+ hasRunContext[chainId] = true;
2555
+ try {
2556
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
2557
+ if (nextId) {
2558
+ hasRunContext[nextId] = false;
2559
+ }
2560
+ hasRun = processPluginFn(itemCtx);
2561
+ }
2562
+ catch (error) {
2563
+ var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
2564
+ if (hasNextRun) {
2565
+ hasRun = true;
2566
+ }
2567
+ if (!nextProxy || !hasNextRun) {
2568
+ _throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
2569
+ }
2570
+ }
2571
+ }, details, isAsync);
2572
+ }
2573
+ return hasRun;
2574
+ }
2575
+ function _processTelemetry(env, itemCtx) {
2576
+ itemCtx = itemCtx || _getTelCtx();
2577
+ function _callProcessTelemetry(itemCtx) {
2578
+ if (!plugin || !hasProcessTelemetry) {
2579
+ return false;
2580
+ }
2581
+ var pluginState = _getPluginState(plugin);
2582
+ if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
2583
+ return false;
2584
+ }
2585
+ if (hasSetNext) {
2586
+ plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
2587
+ }
2588
+ plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
2589
+ return true;
2590
+ }
2591
+ if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
2592
+ itemCtx[_DYN_PROCESS_NEXT ](env);
2593
+ }
2594
+ }
2595
+ function _unloadPlugin(unloadCtx, unloadState) {
2596
+ function _callTeardown() {
2597
+ var hasRun = false;
2598
+ if (plugin) {
2599
+ var pluginState = _getPluginState(plugin);
2600
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
2601
+ if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
2602
+ pluginState[STR_CORE ] = null;
2603
+ pluginState[_DYN_TEARDOWN ] = true;
2604
+ pluginState[_DYN_IS_INITIALIZED ] = false;
2605
+ if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
2606
+ hasRun = true;
2607
+ }
2608
+ }
2609
+ }
2610
+ return hasRun;
2611
+ }
2612
+ if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
2613
+ unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
2614
+ }
2615
+ }
2616
+ function _updatePlugin(updateCtx, updateState) {
2617
+ function _callUpdate() {
2618
+ var hasRun = false;
2619
+ if (plugin) {
2620
+ var pluginState = _getPluginState(plugin);
2621
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
2622
+ if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
2623
+ if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
2624
+ hasRun = true;
2625
+ }
2626
+ }
2627
+ }
2628
+ return hasRun;
2629
+ }
2630
+ if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
2631
+ updateCtx[_DYN_PROCESS_NEXT ](updateState);
2632
+ }
2633
+ }
2634
+ return objFreeze(proxyChain);
2635
+ }
2636
+
2637
+ function createUnloadHandlerContainer() {
2638
+ var handlers = [];
2639
+ function _addHandler(handler) {
2640
+ if (handler) {
2641
+ handlers[_DYN_PUSH ](handler);
2642
+ }
2643
+ }
2644
+ function _runHandlers(unloadCtx, unloadState) {
2645
+ arrForEach(handlers, function (handler) {
2646
+ try {
2647
+ handler(unloadCtx, unloadState);
2648
+ }
2649
+ catch (e) {
2650
+ _throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2651
+ }
2652
+ });
2653
+ handlers = [];
2654
+ }
2655
+ return {
2656
+ add: _addHandler,
2657
+ run: _runHandlers
2658
+ };
2659
+ }
2660
+
2661
+ function createUnloadHookContainer() {
2662
+ var _hooks = [];
2663
+ function _doUnload(logger) {
2664
+ var oldHooks = _hooks;
2665
+ _hooks = [];
2666
+ arrForEach(oldHooks, function (fn) {
2667
+ try {
2668
+ (fn.rm || fn.remove).call(fn);
2669
+ }
2670
+ catch (e) {
2671
+ _throwInternal(logger, 2 , 73 , "Unloading:" + dumpObj(e));
2672
+ }
2673
+ });
2674
+ }
2675
+ function _addHook(hooks) {
2676
+ if (hooks) {
2677
+ arrAppend(_hooks, hooks);
2678
+ }
2679
+ }
2680
+ return {
2681
+ run: _doUnload,
2682
+ add: _addHook
2683
+ };
2684
+ }
2685
+
2686
+ var _a$1;
2687
+ var strGetPlugin = "getPlugin";
2688
+ var defaultValues = (_a$1 = {},
2689
+ _a$1[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },
2690
+ _a$1);
2691
+ var BaseTelemetryPlugin = /** @class */ (function () {
2692
+ function BaseTelemetryPlugin() {
2693
+ var _self = this;
2694
+ var _isinitialized;
2695
+ var _rootCtx;
2696
+ var _nextPlugin;
2697
+ var _unloadHandlerContainer;
2698
+ var _hookContainer;
2699
+ _initDefaults();
2700
+ dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
2701
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
2702
+ _setDefaults(config, core, pluginChain);
2703
+ _isinitialized = true;
2704
+ };
2705
+ _self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
2706
+ var _a;
2707
+ var core = _self[STR_CORE ];
2708
+ if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
2709
+ return;
2710
+ }
2711
+ var result;
2712
+ var unloadDone = false;
2713
+ var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
2714
+ var theUnloadState = unloadState || (_a = {
2715
+ reason: 0
2716
+ },
2717
+ _a[_DYN_IS_ASYNC ] = false,
2718
+ _a);
2719
+ function _unloadCallback() {
2720
+ if (!unloadDone) {
2721
+ unloadDone = true;
2722
+ _unloadHandlerContainer.run(theUnloadCtx, unloadState);
2723
+ _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG ]());
2724
+ if (result === true) {
2725
+ theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
2726
+ }
2727
+ _initDefaults();
2728
+ }
2729
+ }
2730
+ if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
2731
+ _unloadCallback();
2732
+ }
2733
+ else {
2734
+ result = true;
2735
+ }
2736
+ return result;
2737
+ };
2738
+ _self[_DYN_UPDATE ] = function (updateCtx, updateState) {
2739
+ var core = _self[STR_CORE ];
2740
+ if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
2741
+ return;
2742
+ }
2743
+ var result;
2744
+ var updateDone = false;
2745
+ var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
2746
+ var theUpdateState = updateState || {
2747
+ reason: 0
2748
+ };
2749
+ function _updateCallback() {
2750
+ if (!updateDone) {
2751
+ updateDone = true;
2752
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
2753
+ }
2754
+ }
2755
+ if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
2756
+ _updateCallback();
2757
+ }
2758
+ else {
2759
+ result = true;
2760
+ }
2761
+ return result;
2762
+ };
2763
+ proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
2764
+ proxyFunctionAs(_self, "_addHook", function () { return _hookContainer; }, "add");
2765
+ objDefine(_self, "_unloadHooks", { g: function () { return _hookContainer; } });
2766
+ });
2767
+ _self[_DYN_DIAG_LOG ] = function (itemCtx) {
2768
+ return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
2769
+ };
2770
+ _self[_DYN_IS_INITIALIZED ] = function () {
2771
+ return _isinitialized;
2772
+ };
2773
+ _self.setInitialized = function (isInitialized) {
2774
+ _isinitialized = isInitialized;
2775
+ };
2776
+ _self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
2777
+ _nextPlugin = next;
2778
+ };
2779
+ _self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
2780
+ if (itemCtx) {
2781
+ itemCtx[_DYN_PROCESS_NEXT ](env);
2782
+ }
2783
+ else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
2784
+ _nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
2785
+ }
2786
+ };
2787
+ _self._getTelCtx = _getTelCtx;
2788
+ function _getTelCtx(currentCtx) {
2789
+ if (currentCtx === void 0) { currentCtx = null; }
2790
+ var itemCtx = currentCtx;
2791
+ if (!itemCtx) {
2792
+ var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
2793
+ if (_nextPlugin && _nextPlugin[strGetPlugin]) {
2794
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
2795
+ }
2796
+ else {
2797
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
2798
+ }
2799
+ }
2800
+ return itemCtx;
2801
+ }
2802
+ function _setDefaults(config, core, pluginChain) {
2803
+ createDynamicConfig(config, defaultValues, core[_DYN_LOGGER ]);
2804
+ if (!pluginChain && core) {
2805
+ pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
2806
+ }
2807
+ var nextPlugin = _nextPlugin;
2808
+ if (_nextPlugin && _nextPlugin[strGetPlugin]) {
2809
+ nextPlugin = _nextPlugin[strGetPlugin]();
2810
+ }
2811
+ _self[STR_CORE ] = core;
2812
+ _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
2813
+ }
2814
+ function _initDefaults() {
2815
+ _isinitialized = false;
2816
+ _self[STR_CORE ] = null;
2817
+ _rootCtx = null;
2818
+ _nextPlugin = null;
2819
+ _hookContainer = createUnloadHookContainer();
2820
+ _unloadHandlerContainer = createUnloadHandlerContainer();
2821
+ }
2822
+ }
2823
+ BaseTelemetryPlugin.__ieDyn=1;
2824
+ return BaseTelemetryPlugin;
2825
+ }());
2826
+
2827
+ var strOnPrefix = "on";
2828
+ var strAttachEvent = "attachEvent";
2829
+ var strAddEventHelper = "addEventListener";
2830
+ var strEvents = "events";
2831
+ createUniqueNamespace("aiEvtPageHide");
2832
+ createUniqueNamespace("aiEvtPageShow");
2833
+ var rRemoveEmptyNs = /\.[\.]+/g;
2834
+ var rRemoveTrailingEmptyNs = /[\.]+$/;
2835
+ var _guid = 1;
2836
+ var elmNodeData = createElmNodeData("events");
2837
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
2838
+ function _normalizeNamespace(name) {
2839
+ if (name && name[_DYN_REPLACE ]) {
2840
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
2841
+ }
2842
+ return name;
2843
+ }
2844
+ function _getEvtNamespace(eventName, evtNamespace) {
2845
+ var _a;
2846
+ if (evtNamespace) {
2847
+ var theNamespace_1 = STR_EMPTY;
2848
+ if (isArray(evtNamespace)) {
2849
+ theNamespace_1 = STR_EMPTY;
2850
+ arrForEach(evtNamespace, function (name) {
2851
+ name = _normalizeNamespace(name);
2852
+ if (name) {
2853
+ if (name[0] !== ".") {
2854
+ name = "." + name;
2855
+ }
2856
+ theNamespace_1 += name;
2857
+ }
2858
+ });
2859
+ }
2860
+ else {
2861
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
2862
+ }
2863
+ if (theNamespace_1) {
2864
+ if (theNamespace_1[0] !== ".") {
2865
+ theNamespace_1 = "." + theNamespace_1;
2866
+ }
2867
+ eventName = (eventName || STR_EMPTY) + theNamespace_1;
2868
+ }
2869
+ }
2870
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
2871
+ return _a = {},
2872
+ _a[_DYN_TYPE ] = parsedEvent[1],
2873
+ _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT$1 ](".").sort()).join("."),
2874
+ _a;
2875
+ }
2876
+ function _getRegisteredEvents(target, evtName, addDefault) {
2877
+ if (addDefault === void 0) { addDefault = true; }
2878
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
2879
+ var registeredEvents = aiEvts[evtName];
2880
+ if (!registeredEvents) {
2881
+ registeredEvents = aiEvts[evtName] = [];
2882
+ }
2883
+ return registeredEvents;
2884
+ }
2885
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
2886
+ var result = false;
2887
+ if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
2888
+ if (obj[strAddEventHelper]) {
2889
+ obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
2890
+ result = true;
2891
+ }
2892
+ else if (obj[strAttachEvent]) {
2893
+ obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
2894
+ result = true;
2895
+ }
2896
+ }
2897
+ return result;
2898
+ }
2899
+ function mergeEvtNamespace(theNamespace, namespaces) {
2900
+ var newNamespaces;
2901
+ if (namespaces) {
2902
+ if (isArray(namespaces)) {
2903
+ newNamespaces = [theNamespace].concat(namespaces);
2904
+ }
2905
+ else {
2906
+ newNamespaces = [theNamespace, namespaces];
2907
+ }
2908
+ newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT$1 ](".");
2909
+ }
2910
+ else {
2911
+ newNamespaces = theNamespace;
2912
+ }
2913
+ return newNamespaces;
2914
+ }
2915
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
2916
+ var _a;
2917
+ if (useCapture === void 0) { useCapture = false; }
2918
+ var result = false;
2919
+ if (target) {
2920
+ try {
2921
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
2922
+ result = _doAttach(target, evtName, handlerRef, useCapture);
2923
+ if (result && elmNodeData.accept(target)) {
2924
+ var registeredEvent = (_a = {
2925
+ guid: _guid++,
2926
+ evtName: evtName
2927
+ },
2928
+ _a[_DYN_HANDLER ] = handlerRef,
2929
+ _a.capture = useCapture,
2930
+ _a);
2931
+ _getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
2932
+ }
2933
+ }
2934
+ catch (e) {
2935
+ }
2936
+ }
2937
+ return result;
2938
+ }
2939
+
2940
+ var aiInstrumentHooks = "_aiHooks";
2941
+ var cbNames = [
2942
+ "req", "rsp", "hkErr", "fnErr"
2943
+ ];
2944
+ function _arrLoop(arr, fn) {
2945
+ if (arr) {
2946
+ for (var lp = 0; lp < arr[_DYN_LENGTH$2 ]; lp++) {
2947
+ if (fn(arr[lp], lp)) {
2948
+ break;
2949
+ }
2950
+ }
2951
+ }
2952
+ }
2953
+ function _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {
2954
+ if (type >= 0 && type <= 2 ) {
2955
+ _arrLoop(hooks, function (hook, idx) {
2956
+ var cbks = hook.cbks;
2957
+ var cb = cbks[cbNames[type]];
2958
+ if (cb) {
2959
+ callDetails.ctx = function () {
2960
+ var ctx = hookCtx[idx] = (hookCtx[idx] || {});
2961
+ return ctx;
2962
+ };
2963
+ try {
2964
+ cb[_DYN_APPLY ](callDetails.inst, cbArgs);
2965
+ }
2966
+ catch (err) {
2967
+ var orgEx = callDetails.err;
2968
+ try {
2969
+ var hookErrorCb = cbks[cbNames[2 ]];
2970
+ if (hookErrorCb) {
2971
+ callDetails.err = err;
2972
+ hookErrorCb[_DYN_APPLY ](callDetails.inst, cbArgs);
2973
+ }
2974
+ }
2975
+ catch (e) {
2976
+ }
2977
+ finally {
2978
+ callDetails.err = orgEx;
2979
+ }
2980
+ }
2981
+ }
2982
+ });
2983
+ }
2984
+ }
2985
+ function _createFunctionHook(aiHook) {
2986
+ return function () {
2987
+ var _a;
2988
+ var funcThis = this;
2989
+ var orgArgs = arguments;
2990
+ var hooks = aiHook.h;
2991
+ var funcArgs = (_a = {},
2992
+ _a[_DYN_NAME$2 ] = aiHook.n,
2993
+ _a.inst = funcThis,
2994
+ _a.ctx = null,
2995
+ _a.set = _replaceArg,
2996
+ _a);
2997
+ var hookCtx = [];
2998
+ var cbArgs = _createArgs([funcArgs], orgArgs);
2999
+ funcArgs.evt = getInst("event");
3000
+ function _createArgs(target, theArgs) {
3001
+ _arrLoop(theArgs, function (arg) {
3002
+ target[_DYN_PUSH ](arg);
3003
+ });
3004
+ return target;
3005
+ }
3006
+ function _replaceArg(idx, value) {
3007
+ orgArgs = _createArgs([], orgArgs);
3008
+ orgArgs[idx] = value;
3009
+ cbArgs = _createArgs([funcArgs], orgArgs);
3010
+ }
3011
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 );
3012
+ var theFunc = aiHook.f;
3013
+ if (theFunc) {
3014
+ try {
3015
+ funcArgs.rslt = theFunc[_DYN_APPLY ](funcThis, orgArgs);
3016
+ }
3017
+ catch (err) {
3018
+ funcArgs.err = err;
3019
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 );
3020
+ throw err;
3021
+ }
3022
+ }
3023
+ _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 );
3024
+ return funcArgs.rslt;
3025
+ };
3026
+ }
3027
+ function _getOwner(target, name, checkPrototype, checkParentProto) {
3028
+ var owner = null;
3029
+ if (target) {
3030
+ if (objHasOwnProperty(target, name)) {
3031
+ owner = target;
3032
+ }
3033
+ else if (checkPrototype) {
3034
+ owner = _getOwner(_getObjProto(target), name, checkParentProto, false);
3035
+ }
3036
+ }
3037
+ return owner;
3038
+ }
3039
+ function InstrumentProto(target, funcName, callbacks) {
3040
+ if (target) {
3041
+ return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);
3042
+ }
3043
+ return null;
3044
+ }
3045
+ function _createInstrumentHook(owner, funcName, fn, callbacks) {
3046
+ var aiHook = fn && fn[aiInstrumentHooks];
3047
+ if (!aiHook) {
3048
+ aiHook = {
3049
+ i: 0,
3050
+ n: funcName,
3051
+ f: fn,
3052
+ h: []
3053
+ };
3054
+ var newFunc = _createFunctionHook(aiHook);
3055
+ newFunc[aiInstrumentHooks] = aiHook;
3056
+ owner[funcName] = newFunc;
3057
+ }
3058
+ var theHook = {
3059
+ id: aiHook.i,
3060
+ cbks: callbacks,
3061
+ rm: function () {
3062
+ var id = this.id;
3063
+ _arrLoop(aiHook.h, function (hook, idx) {
3064
+ if (hook.id === id) {
3065
+ aiHook.h[_DYN_SPLICE ](idx, 1);
3066
+ return 1;
3067
+ }
3068
+ });
3069
+ }
3070
+ };
3071
+ aiHook.i++;
3072
+ aiHook.h[_DYN_PUSH ](theHook);
3073
+ return theHook;
3074
+ }
3075
+ function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {
3076
+ if (checkPrototype === void 0) { checkPrototype = true; }
3077
+ if (target && funcName && callbacks) {
3078
+ var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);
3079
+ if (owner) {
3080
+ var fn = owner[funcName];
3081
+ if (typeof fn === strShimFunction) {
3082
+ return _createInstrumentHook(owner, funcName, fn, callbacks);
3083
+ }
3084
+ }
3085
+ }
3086
+ return null;
3087
+ }
3088
+
3089
+ var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
3090
+ var DEFAULT_BREEZE_ENDPOINT = "https://dc.services.visualstudio.com";
3091
+ var DEFAULT_BREEZE_PATH = "/v2/track";
3092
+ var strNotSpecified = "not_specified";
3093
+ var strIkey = "iKey";
3094
+
3095
+ var RequestHeaders = createValueMap({
3096
+ requestContextHeader: [0 , "Request-Context"],
3097
+ requestContextTargetKey: [1 , "appId"],
3098
+ requestContextAppIdFormat: [2 , "appId=cid-v1:"],
3099
+ requestIdHeader: [3 , "Request-Id"],
3100
+ traceParentHeader: [4 , "traceparent"],
3101
+ traceStateHeader: [5 , "tracestate"],
3102
+ sdkContextHeader: [6 , "Sdk-Context"],
3103
+ sdkContextHeaderAppIdRequest: [7 , "appId"],
3104
+ requestContextHeaderLowerCase: [8 , "request-context"]
3105
+ });
3106
+
3107
+ var _DYN_SPLIT = "split";
3108
+ var _DYN_LENGTH$1 = "length";
3109
+ var _DYN_TO_LOWER_CASE$1 = "toLowerCase";
3110
+ var _DYN_TO_STRING = "toString";
3111
+ var _DYN_NAME$1 = "name";
3112
+ var _DYN_STRINGIFY = "stringify";
3113
+ var _DYN_PATHNAME = "pathname";
3114
+ var _DYN_CORRELATION_HEADER_E0 = "correlationHeaderExcludePatterns";
3115
+ var _DYN_PROPERTIES = "properties";
3116
+ var _DYN_MEASUREMENTS = "measurements";
3117
+ var _DYN_DURATION = "duration";
3118
+ var _DYN_SUBSTRING = "substring";
3119
+
3120
+ function dataSanitizeKeyAndAddUniqueness(logger, key, map) {
3121
+ var origLength = key[_DYN_LENGTH$1 ];
3122
+ var field = dataSanitizeKey(logger, key);
3123
+ if (field[_DYN_LENGTH$1 ] !== origLength) {
3124
+ var i = 0;
3125
+ var uniqueField = field;
3126
+ while (map[uniqueField] !== undefined) {
3127
+ i++;
3128
+ uniqueField = field[_DYN_SUBSTRING ](0, 150 - 3) + dsPadNumber(i);
3129
+ }
3130
+ field = uniqueField;
3131
+ }
3132
+ return field;
3133
+ }
3134
+ function dataSanitizeKey(logger, name) {
3135
+ var nameTrunc;
3136
+ if (name) {
3137
+ name = strTrim(name[_DYN_TO_STRING ]());
3138
+ if (name[_DYN_LENGTH$1 ] > 150 ) {
3139
+ nameTrunc = name[_DYN_SUBSTRING ](0, 150 );
3140
+ _throwInternal(logger, 2 , 57 , "name is too long. It has been truncated to " + 150 + " characters.", { name: name }, true);
3141
+ }
3142
+ }
3143
+ return nameTrunc || name;
3144
+ }
3145
+ function dataSanitizeString(logger, value, maxLength) {
3146
+ if (maxLength === void 0) { maxLength = 1024 ; }
3147
+ var valueTrunc;
3148
+ if (value) {
3149
+ maxLength = maxLength ? maxLength : 1024 ;
3150
+ value = strTrim(value[_DYN_TO_STRING ]());
3151
+ if (value[_DYN_LENGTH$1 ] > maxLength) {
3152
+ valueTrunc = value[_DYN_SUBSTRING ](0, maxLength);
3153
+ _throwInternal(logger, 2 , 61 , "string value is too long. It has been truncated to " + maxLength + " characters.", { value: value }, true);
3154
+ }
3155
+ }
3156
+ return valueTrunc || value;
3157
+ }
3158
+ function dataSanitizeUrl(logger, url) {
3159
+ return dataSanitizeInput(logger, url, 2048 , 66 );
3160
+ }
3161
+ function dataSanitizeProperties(logger, properties) {
3162
+ if (properties) {
3163
+ var tempProps_1 = {};
3164
+ objForEachKey(properties, function (prop, value) {
3165
+ if (isObject(value) && hasJSON()) {
3166
+ try {
3167
+ value = getJSON()[_DYN_STRINGIFY ](value);
3168
+ }
3169
+ catch (e) {
3170
+ _throwInternal(logger, 2 , 49 , "custom property is not valid", { exception: e }, true);
3171
+ }
3172
+ }
3173
+ value = dataSanitizeString(logger, value, 8192 );
3174
+ prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);
3175
+ tempProps_1[prop] = value;
3176
+ });
3177
+ properties = tempProps_1;
3178
+ }
3179
+ return properties;
3180
+ }
3181
+ function dataSanitizeMeasurements(logger, measurements) {
3182
+ if (measurements) {
3183
+ var tempMeasurements_1 = {};
3184
+ objForEachKey(measurements, function (measure, value) {
3185
+ measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);
3186
+ tempMeasurements_1[measure] = value;
3187
+ });
3188
+ measurements = tempMeasurements_1;
3189
+ }
3190
+ return measurements;
3191
+ }
3192
+ function dataSanitizeInput(logger, input, maxLength, _msgId) {
3193
+ var inputTrunc;
3194
+ if (input) {
3195
+ input = strTrim(input[_DYN_TO_STRING ]());
3196
+ if (input[_DYN_LENGTH$1 ] > maxLength) {
3197
+ inputTrunc = input[_DYN_SUBSTRING ](0, maxLength);
3198
+ _throwInternal(logger, 2 , _msgId, "input is too long, it has been truncated to " + maxLength + " characters.", { data: input }, true);
3199
+ }
3200
+ }
3201
+ return inputTrunc || input;
3202
+ }
3203
+ function dsPadNumber(num) {
3204
+ var s = "00" + num;
3205
+ return strSubstr(s, s[_DYN_LENGTH$1 ] - 3);
3206
+ }
3207
+
3208
+ var _document = getDocument() || {};
3209
+ var _htmlAnchorIdx = 0;
3210
+ var _htmlAnchorElement = [null, null, null, null, null];
3211
+ function urlParseUrl(url) {
3212
+ var anchorIdx = _htmlAnchorIdx;
3213
+ var anchorCache = _htmlAnchorElement;
3214
+ var tempAnchor = anchorCache[anchorIdx];
3215
+ if (!_document.createElement) {
3216
+ tempAnchor = { host: urlParseHost(url, true) };
3217
+ }
3218
+ else if (!anchorCache[anchorIdx]) {
3219
+ tempAnchor = anchorCache[anchorIdx] = _document.createElement("a");
3220
+ }
3221
+ tempAnchor.href = url;
3222
+ anchorIdx++;
3223
+ if (anchorIdx >= anchorCache[_DYN_LENGTH$1 ]) {
3224
+ anchorIdx = 0;
3225
+ }
3226
+ _htmlAnchorIdx = anchorIdx;
3227
+ return tempAnchor;
3228
+ }
3229
+ function urlGetAbsoluteUrl(url) {
3230
+ var result;
3231
+ var a = urlParseUrl(url);
3232
+ if (a) {
3233
+ result = a.href;
3234
+ }
3235
+ return result;
3236
+ }
3237
+ function urlGetCompleteUrl(method, absoluteUrl) {
3238
+ if (method) {
3239
+ return method.toUpperCase() + " " + absoluteUrl;
3240
+ }
3241
+ return absoluteUrl;
3242
+ }
3243
+ function urlParseHost(url, inclPort) {
3244
+ var fullHost = urlParseFullHost(url, inclPort) || "";
3245
+ if (fullHost) {
3246
+ var match = fullHost.match(/(www\d{0,5}\.)?([^\/:]{1,256})(:\d{1,20})?/i);
3247
+ if (match != null && match[_DYN_LENGTH$1 ] > 3 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
3248
+ return match[2] + (match[3] || "");
3249
+ }
3250
+ }
3251
+ return fullHost;
3252
+ }
3253
+ function urlParseFullHost(url, inclPort) {
3254
+ var result = null;
3255
+ if (url) {
3256
+ var match = url.match(/(\w{1,150}):\/\/([^\/:]{1,256})(:\d{1,20})?/i);
3257
+ if (match != null && match[_DYN_LENGTH$1 ] > 2 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
3258
+ result = match[2] || "";
3259
+ if (inclPort && match[_DYN_LENGTH$1 ] > 2) {
3260
+ var protocol = (match[1] || "")[_DYN_TO_LOWER_CASE$1 ]();
3261
+ var port = match[3] || "";
3262
+ if (protocol === "http" && port === ":80") {
3263
+ port = "";
3264
+ }
3265
+ else if (protocol === "https" && port === ":443") {
3266
+ port = "";
3267
+ }
3268
+ result += port;
3269
+ }
3270
+ }
3271
+ }
3272
+ return result;
3273
+ }
3274
+
3275
+ var _internalEndpoints = [
3276
+ DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,
3277
+ "https://breeze.aimon.applicationinsights.io" + DEFAULT_BREEZE_PATH,
3278
+ "https://dc-int.services.visualstudio.com" + DEFAULT_BREEZE_PATH
3279
+ ];
3280
+ var _correlationIdPrefix = "cid-v1:";
3281
+ function isInternalApplicationInsightsEndpoint(endpointUrl) {
3282
+ return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE$1 ]()) !== -1;
3283
+ }
3284
+ function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {
3285
+ if (!requestUrl || (config && config.disableCorrelationHeaders)) {
3286
+ return false;
3287
+ }
3288
+ if (config && config[_DYN_CORRELATION_HEADER_E0 ]) {
3289
+ for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH$1 ]; i++) {
3290
+ if (config[_DYN_CORRELATION_HEADER_E0 ][i].test(requestUrl)) {
3291
+ return false;
3292
+ }
3293
+ }
3294
+ }
3295
+ var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE$1 ]();
3296
+ if (requestHost && (strIndexOf(requestHost, ":443") !== -1 || strIndexOf(requestHost, ":80") !== -1)) {
3297
+ requestHost = (urlParseFullHost(requestUrl, true) || "")[_DYN_TO_LOWER_CASE$1 ]();
3298
+ }
3299
+ if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {
3300
+ return false;
3301
+ }
3302
+ var includedDomains = config && config.correlationHeaderDomains;
3303
+ if (includedDomains) {
3304
+ var matchExists_1;
3305
+ arrForEach(includedDomains, function (domain) {
3306
+ var regex = new RegExp(domain.toLowerCase().replace(/\\/g, "\\\\").replace(/\./g, "\\.").replace(/\*/g, ".*"));
3307
+ matchExists_1 = matchExists_1 || regex.test(requestHost);
3308
+ });
3309
+ if (!matchExists_1) {
3310
+ return false;
3311
+ }
3312
+ }
3313
+ var excludedDomains = config && config.correlationHeaderExcludedDomains;
3314
+ if (!excludedDomains || excludedDomains[_DYN_LENGTH$1 ] === 0) {
3315
+ return true;
3316
+ }
3317
+ for (var i = 0; i < excludedDomains[_DYN_LENGTH$1 ]; i++) {
3318
+ var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\/g, "\\\\").replace(/\./g, "\\.").replace(/\*/g, ".*"));
3319
+ if (regex.test(requestHost)) {
3320
+ return false;
3321
+ }
3322
+ }
3323
+ return requestHost && requestHost[_DYN_LENGTH$1 ] > 0;
3324
+ }
3325
+ function correlationIdGetCorrelationContext(responseHeader) {
3326
+ if (responseHeader) {
3327
+ var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 ]);
3328
+ if (correlationId && correlationId !== _correlationIdPrefix) {
3329
+ return correlationId;
3330
+ }
3331
+ }
3332
+ }
3333
+ function correlationIdGetCorrelationContextValue(responseHeader, key) {
3334
+ if (responseHeader) {
3335
+ var keyValues = responseHeader[_DYN_SPLIT ](",");
3336
+ for (var i = 0; i < keyValues[_DYN_LENGTH$1 ]; ++i) {
3337
+ var keyValue = keyValues[i][_DYN_SPLIT ]("=");
3338
+ if (keyValue[_DYN_LENGTH$1 ] === 2 && keyValue[0] === key) {
3339
+ return keyValue[1];
3340
+ }
3341
+ }
3342
+ }
3343
+ }
3344
+ function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {
3345
+ var target, name = commandName, data = commandName;
3346
+ if (absoluteUrl && absoluteUrl[_DYN_LENGTH$1 ] > 0) {
3347
+ var parsedUrl = urlParseUrl(absoluteUrl);
3348
+ target = parsedUrl.host;
3349
+ if (!name) {
3350
+ if (parsedUrl[_DYN_PATHNAME ] != null) {
3351
+ var pathName = (parsedUrl.pathname[_DYN_LENGTH$1 ] === 0) ? "/" : parsedUrl[_DYN_PATHNAME ];
3352
+ if (pathName.charAt(0) !== "/") {
3353
+ pathName = "/" + pathName;
3354
+ }
3355
+ data = parsedUrl[_DYN_PATHNAME ];
3356
+ name = dataSanitizeString(logger, method ? method + " " + pathName : pathName);
3357
+ }
3358
+ else {
3359
+ name = dataSanitizeString(logger, absoluteUrl);
3360
+ }
3361
+ }
3362
+ }
3363
+ else {
3364
+ target = commandName;
3365
+ name = commandName;
3366
+ }
3367
+ return {
3368
+ target: target,
3369
+ name: name,
3370
+ data: data
3371
+ };
3372
+ }
3373
+ function dateTimeUtilsNow() {
3374
+ var perf = getPerformance();
3375
+ if (perf && perf.now && perf.timing) {
3376
+ var now = perf.now() + perf.timing.navigationStart;
3377
+ if (now > 0) {
3378
+ return now;
3379
+ }
3380
+ }
3381
+ return utcNow();
3382
+ }
3383
+ function dateTimeUtilsDuration(start, end) {
3384
+ var result = null;
3385
+ if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {
3386
+ result = end - start;
3387
+ }
3388
+ return result;
3389
+ }
3390
+ function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {
3391
+ var trace = telemetryTrace || {};
3392
+ return {
3393
+ getName: function () {
3394
+ return trace[_DYN_NAME$1 ];
3395
+ },
3396
+ setName: function (newValue) {
3397
+ parentCtx && parentCtx.setName(newValue);
3398
+ trace[_DYN_NAME$1 ] = newValue;
3399
+ },
3400
+ getTraceId: function () {
3401
+ return trace.traceID;
3402
+ },
3403
+ setTraceId: function (newValue) {
3404
+ parentCtx && parentCtx.setTraceId(newValue);
3405
+ if (isValidTraceId(newValue)) {
3406
+ trace.traceID = newValue;
3407
+ }
3408
+ },
3409
+ getSpanId: function () {
3410
+ return trace.parentID;
3411
+ },
3412
+ setSpanId: function (newValue) {
3413
+ parentCtx && parentCtx.setSpanId(newValue);
3414
+ if (isValidSpanId(newValue)) {
3415
+ trace.parentID = newValue;
3416
+ }
3417
+ },
3418
+ getTraceFlags: function () {
3419
+ return trace.traceFlags;
3420
+ },
3421
+ setTraceFlags: function (newTraceFlags) {
3422
+ parentCtx && parentCtx.setTraceFlags(newTraceFlags);
3423
+ trace.traceFlags = newTraceFlags;
3424
+ }
3425
+ };
3426
+ }
3427
+
3428
+ var strEmpty = "";
3429
+ function msToTimeSpan(totalms) {
3430
+ if (isNaN(totalms) || totalms < 0) {
3431
+ totalms = 0;
3432
+ }
3433
+ totalms = Math.round(totalms);
3434
+ var ms = strEmpty + totalms % 1000;
3435
+ var sec = strEmpty + Math.floor(totalms / 1000) % 60;
3436
+ var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;
3437
+ var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;
3438
+ var days = Math.floor(totalms / (1000 * 60 * 60 * 24));
3439
+ ms = ms[_DYN_LENGTH$1 ] === 1 ? "00" + ms : ms[_DYN_LENGTH$1 ] === 2 ? "0" + ms : ms;
3440
+ sec = sec[_DYN_LENGTH$1 ] < 2 ? "0" + sec : sec;
3441
+ min = min[_DYN_LENGTH$1 ] < 2 ? "0" + min : min;
3442
+ hour = hour[_DYN_LENGTH$1 ] < 2 ? "0" + hour : hour;
3443
+ return (days > 0 ? days + "." : strEmpty) + hour + ":" + min + ":" + sec + "." + ms;
3444
+ }
3445
+
3446
+ var RemoteDependencyData = /** @class */ (function () {
3447
+ function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {
3448
+ if (requestAPI === void 0) { requestAPI = "Ajax"; }
3449
+ this.aiDataContract = {
3450
+ id: 1 ,
3451
+ ver: 1 ,
3452
+ name: 0 ,
3453
+ resultCode: 0 ,
3454
+ duration: 0 ,
3455
+ success: 0 ,
3456
+ data: 0 ,
3457
+ target: 0 ,
3458
+ type: 0 ,
3459
+ properties: 0 ,
3460
+ measurements: 0 ,
3461
+ kind: 0 ,
3462
+ value: 0 ,
3463
+ count: 0 ,
3464
+ min: 0 ,
3465
+ max: 0 ,
3466
+ stdDev: 0 ,
3467
+ dependencyKind: 0 ,
3468
+ dependencySource: 0 ,
3469
+ commandName: 0 ,
3470
+ dependencyTypeName: 0
3471
+ };
3472
+ var _self = this;
3473
+ _self.ver = 2;
3474
+ _self.id = id;
3475
+ _self[_DYN_DURATION ] = msToTimeSpan(value);
3476
+ _self.success = success;
3477
+ _self.resultCode = resultCode + "";
3478
+ _self.type = dataSanitizeString(logger, requestAPI);
3479
+ var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);
3480
+ _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data;
3481
+ _self.target = dataSanitizeString(logger, dependencyFields.target);
3482
+ if (correlationContext) {
3483
+ _self.target = "".concat(_self.target, " | ").concat(correlationContext);
3484
+ }
3485
+ _self[_DYN_NAME$1 ] = dataSanitizeString(logger, dependencyFields[_DYN_NAME$1 ]);
3486
+ _self[_DYN_PROPERTIES ] = dataSanitizeProperties(logger, properties);
3487
+ _self[_DYN_MEASUREMENTS ] = dataSanitizeMeasurements(logger, measurements);
3488
+ }
3489
+ RemoteDependencyData.envelopeType = "Microsoft.ApplicationInsights.{0}.RemoteDependency";
3490
+ RemoteDependencyData.dataType = "RemoteDependencyData";
3491
+ return RemoteDependencyData;
3492
+ }());
3493
+
3494
+ function _aiNameFunc(baseName) {
3495
+ var aiName = "ai." + baseName + ".";
3496
+ return function (name) {
3497
+ return aiName + name;
3498
+ };
3499
+ }
3500
+ var _aiApplication = _aiNameFunc("application");
3501
+ var _aiDevice = _aiNameFunc("device");
3502
+ var _aiLocation = _aiNameFunc("location");
3503
+ var _aiOperation = _aiNameFunc("operation");
3504
+ var _aiSession = _aiNameFunc("session");
3505
+ var _aiUser = _aiNameFunc("user");
3506
+ var _aiCloud = _aiNameFunc("cloud");
3507
+ var _aiInternal = _aiNameFunc("internal");
3508
+ var ContextTagKeys = /** @class */ (function (_super) {
3509
+ __extendsFn(ContextTagKeys, _super);
3510
+ function ContextTagKeys() {
3511
+ return _super.call(this) || this;
3512
+ }
3513
+ return ContextTagKeys;
3514
+ }(createClassFromInterface({
3515
+ applicationVersion: _aiApplication("ver"),
3516
+ applicationBuild: _aiApplication("build"),
3517
+ applicationTypeId: _aiApplication("typeId"),
3518
+ applicationId: _aiApplication("applicationId"),
3519
+ applicationLayer: _aiApplication("layer"),
3520
+ deviceId: _aiDevice("id"),
3521
+ deviceIp: _aiDevice("ip"),
3522
+ deviceLanguage: _aiDevice("language"),
3523
+ deviceLocale: _aiDevice("locale"),
3524
+ deviceModel: _aiDevice("model"),
3525
+ deviceFriendlyName: _aiDevice("friendlyName"),
3526
+ deviceNetwork: _aiDevice("network"),
3527
+ deviceNetworkName: _aiDevice("networkName"),
3528
+ deviceOEMName: _aiDevice("oemName"),
3529
+ deviceOS: _aiDevice("os"),
3530
+ deviceOSVersion: _aiDevice("osVersion"),
3531
+ deviceRoleInstance: _aiDevice("roleInstance"),
3532
+ deviceRoleName: _aiDevice("roleName"),
3533
+ deviceScreenResolution: _aiDevice("screenResolution"),
3534
+ deviceType: _aiDevice("type"),
3535
+ deviceMachineName: _aiDevice("machineName"),
3536
+ deviceVMName: _aiDevice("vmName"),
3537
+ deviceBrowser: _aiDevice("browser"),
3538
+ deviceBrowserVersion: _aiDevice("browserVersion"),
3539
+ locationIp: _aiLocation("ip"),
3540
+ locationCountry: _aiLocation("country"),
3541
+ locationProvince: _aiLocation("province"),
3542
+ locationCity: _aiLocation("city"),
3543
+ operationId: _aiOperation("id"),
3544
+ operationName: _aiOperation("name"),
3545
+ operationParentId: _aiOperation("parentId"),
3546
+ operationRootId: _aiOperation("rootId"),
3547
+ operationSyntheticSource: _aiOperation("syntheticSource"),
3548
+ operationCorrelationVector: _aiOperation("correlationVector"),
3549
+ sessionId: _aiSession("id"),
3550
+ sessionIsFirst: _aiSession("isFirst"),
3551
+ sessionIsNew: _aiSession("isNew"),
3552
+ userAccountAcquisitionDate: _aiUser("accountAcquisitionDate"),
3553
+ userAccountId: _aiUser("accountId"),
3554
+ userAgent: _aiUser("userAgent"),
3555
+ userId: _aiUser("id"),
3556
+ userStoreRegion: _aiUser("storeRegion"),
3557
+ userAuthUserId: _aiUser("authUserId"),
3558
+ userAnonymousUserAcquisitionDate: _aiUser("anonUserAcquisitionDate"),
3559
+ userAuthenticatedUserAcquisitionDate: _aiUser("authUserAcquisitionDate"),
3560
+ cloudName: _aiCloud("name"),
3561
+ cloudRole: _aiCloud("role"),
3562
+ cloudRoleVer: _aiCloud("roleVer"),
3563
+ cloudRoleInstance: _aiCloud("roleInstance"),
3564
+ cloudEnvironment: _aiCloud("environment"),
3565
+ cloudLocation: _aiCloud("location"),
3566
+ cloudDeploymentUnit: _aiCloud("deploymentUnit"),
3567
+ internalNodeName: _aiInternal("nodeName"),
3568
+ internalSdkVersion: _aiInternal("sdkVersion"),
3569
+ internalAgentVersion: _aiInternal("agentVersion"),
3570
+ internalSnippet: _aiInternal("snippet"),
3571
+ internalSdkSrc: _aiInternal("sdkSrc")
3572
+ })));
3573
+
3574
+ function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {
3575
+ var _a;
3576
+ envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;
3577
+ if (isNullOrUndefined(item) ||
3578
+ isNullOrUndefined(baseType) ||
3579
+ isNullOrUndefined(envelopeName)) {
3580
+ throwError("Input doesn't contain all required fields");
3581
+ }
3582
+ var iKey = "";
3583
+ if (item[strIkey]) {
3584
+ iKey = item[strIkey];
3585
+ delete item[strIkey];
3586
+ }
3587
+ var telemetryItem = (_a = {},
3588
+ _a[_DYN_NAME$1 ] = envelopeName,
3589
+ _a.time = toISOString(new Date()),
3590
+ _a.iKey = iKey,
3591
+ _a.ext = systemProperties ? systemProperties : {},
3592
+ _a.tags = [],
3593
+ _a.data = {},
3594
+ _a.baseType = baseType,
3595
+ _a.baseData = item
3596
+ ,
3597
+ _a);
3598
+ if (!isNullOrUndefined(customProperties)) {
3599
+ objForEachKey(customProperties, function (prop, value) {
3600
+ telemetryItem.data[prop] = value;
3601
+ });
3602
+ }
3603
+ return telemetryItem;
3604
+ }
3605
+
3606
+ var Extensions = {
3607
+ UserExt: "user",
3608
+ DeviceExt: "device",
3609
+ TraceExt: "trace",
3610
+ WebExt: "web",
3611
+ AppExt: "app",
3612
+ OSExt: "os",
3613
+ SessionExt: "ses",
3614
+ SDKExt: "sdk"
3615
+ };
3616
+ new ContextTagKeys();
3617
+
3618
+ var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
3619
+
3620
+ var STR_DURATION = "duration";
3621
+ var STR_PROPERTIES = "properties";
3622
+
3623
+ var _DYN_REQUEST_URL = "requestUrl";
3624
+ var _DYN_INST = "inst";
3625
+ var _DYN_LENGTH = "length";
3626
+ var _DYN_TRACE_ID = "traceID";
3627
+ var _DYN_SPAN_ID = "spanID";
3628
+ var _DYN_TRACE_FLAGS = "traceFlags";
3629
+ var _DYN_CONTEXT = "context";
3630
+ var _DYN_ABORTED = "aborted";
3631
+ var _DYN_TRACE_ID0 = "traceId";
3632
+ var _DYN_SPAN_ID1 = "spanId";
3633
+ var _DYN__ADD_HOOK = "_addHook";
3634
+ var _DYN_CORE = "core";
3635
+ var _DYN_INCLUDE_CORRELATION_2 = "includeCorrelationHeaders";
3636
+ var _DYN_GET_ABSOLUTE_URL = "getAbsoluteUrl";
3637
+ var _DYN_HEADERS = "headers";
3638
+ var _DYN_REQUEST_HEADERS = "requestHeaders";
3639
+ var _DYN_SET_REQUEST_HEADER = "setRequestHeader";
3640
+ var _DYN_TRACK_DEPENDENCY_DAT3 = "trackDependencyDataInternal";
3641
+ var _DYN_START_TIME = "startTime";
3642
+ var _DYN_TO_LOWER_CASE = "toLowerCase";
3643
+ var _DYN_ENABLE_REQUEST_HEADE4 = "enableRequestHeaderTracking";
3644
+ var _DYN_ENABLE_AJAX_ERROR_ST5 = "enableAjaxErrorStatusText";
3645
+ var _DYN_ENABLE_AJAX_PERF_TRA6 = "enableAjaxPerfTracking";
3646
+ var _DYN_MAX_AJAX_CALLS_PER_V7 = "maxAjaxCallsPerView";
3647
+ var _DYN_EXCLUDE_REQUEST_FROM8 = "excludeRequestFromAutoTrackingPatterns";
3648
+ var _DYN_ADD_REQUEST_CONTEXT = "addRequestContext";
3649
+ var _DYN_DISABLE_AJAX_TRACKIN9 = "disableAjaxTracking";
3650
+ var _DYN_AJAX_PERF_LOOKUP_DEL10 = "ajaxPerfLookupDelay";
3651
+ var _DYN_DISABLE_FETCH_TRACKI11 = "disableFetchTracking";
3652
+ var _DYN_ENABLE_RESPONSE_HEAD12 = "enableResponseHeaderTracking";
3653
+ var _DYN_STATUS = "status";
3654
+ var _DYN_STATUS_TEXT = "statusText";
3655
+ var _DYN_HEADER_MAP = "headerMap";
3656
+ var _DYN_OPEN_DONE = "openDone";
3657
+ var _DYN_SEND_DONE = "sendDone";
3658
+ var _DYN_REQUEST_SENT_TIME = "requestSentTime";
3659
+ var _DYN_ABORT_DONE = "abortDone";
3660
+ var _DYN_GET_TRACE_ID = "getTraceId";
3661
+ var _DYN_GET_TRACE_FLAGS = "getTraceFlags";
3662
+ var _DYN_METHOD = "method";
3663
+ var _DYN_ERROR_STATUS_TEXT = "errorStatusText";
3664
+ var _DYN_STATE_CHANGE_ATTACHE13 = "stateChangeAttached";
3665
+ var _DYN_RESPONSE_TEXT = "responseText";
3666
+ var _DYN_RESPONSE_FINISHED_TI14 = "responseFinishedTime";
3667
+ var _DYN__CREATE_TRACK_ITEM = "CreateTrackItem";
3668
+ var _DYN_RESPONSE = "response";
3669
+ var _DYN_GET_ALL_RESPONSE_HEA15 = "getAllResponseHeaders";
3670
+ var _DYN_GET_PART_APROPS = "getPartAProps";
3671
+ var _DYN_PERF_MARK = "perfMark";
3672
+ var _DYN_NAME = "name";
3673
+ var _DYN_PERF_TIMING = "perfTiming";
3674
+ var _DYN_EXCEPTION = "exception";
3675
+ var _DYN_AJAX_DIAGNOSTICS_MES16 = "ajaxDiagnosticsMessage";
3676
+ var _DYN_CORRELATION_CONTEXT = "correlationContext";
3677
+ var _DYN_AJAX_TOTAL_DURATION = "ajaxTotalDuration";
3678
+ var _DYN_EVENT_TRACE_CTX = "eventTraceCtx";
3679
+
3680
+ function _calcPerfDuration(resourceEntry, start, end) {
3681
+ var result = 0;
3682
+ var from = resourceEntry[start];
3683
+ var to = resourceEntry[end];
3684
+ if (from && to) {
3685
+ result = dateTimeUtilsDuration(from, to);
3686
+ }
3687
+ return result;
3688
+ }
3689
+ function _setPerfDuration(props, name, resourceEntry, start, end) {
3690
+ var result = 0;
3691
+ var value = _calcPerfDuration(resourceEntry, start, end);
3692
+ if (value) {
3693
+ result = _setPerfValue(props, name, msToTimeSpan(value));
3694
+ }
3695
+ return result;
3696
+ }
3697
+ function _setPerfValue(props, name, value) {
3698
+ var strPerf = "ajaxPerf";
3699
+ var result = 0;
3700
+ if (props && name && value) {
3701
+ var perfData = props[strPerf] = (props[strPerf] || {});
3702
+ perfData[name] = value;
3703
+ result = 1;
3704
+ }
3705
+ return result;
3706
+ }
3707
+ function _populatePerfData(ajaxData, dependency) {
3708
+ var resourceEntry = ajaxData[_DYN_PERF_TIMING ];
3709
+ var props = dependency[STR_PROPERTIES ] || {};
3710
+ var propsSet = 0;
3711
+ var strName = "name";
3712
+ var strStart = "Start";
3713
+ var strEnd = "End";
3714
+ var strDomainLookup = "domainLookup";
3715
+ var strConnect = "connect";
3716
+ var strRedirect = "redirect";
3717
+ var strRequest = "request";
3718
+ var strResponse = "response";
3719
+ var strStartTime = "startTime";
3720
+ var strDomainLookupStart = strDomainLookup + strStart;
3721
+ var strDomainLookupEnd = strDomainLookup + strEnd;
3722
+ var strConnectStart = strConnect + strStart;
3723
+ var strConnectEnd = strConnect + strEnd;
3724
+ var strRequestStart = strRequest + strStart;
3725
+ var strRequestEnd = strRequest + strEnd;
3726
+ var strResponseStart = strResponse + strStart;
3727
+ var strResponseEnd = strResponse + strEnd;
3728
+ var strRedirectStart = strRedirect + strStart;
3729
+ var strRedirectEnd = strRedirect = strEnd;
3730
+ var strTransferSize = "transferSize";
3731
+ var strEncodedBodySize = "encodedBodySize";
3732
+ var strDecodedBodySize = "decodedBodySize";
3733
+ var strServerTiming = "serverTiming";
3734
+ if (resourceEntry) {
3735
+ propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);
3736
+ propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);
3737
+ propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);
3738
+ propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);
3739
+ propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);
3740
+ propsSet |= _setPerfDuration(props, "networkConnect", resourceEntry, strStartTime, strConnectEnd);
3741
+ propsSet |= _setPerfDuration(props, "sentRequest", resourceEntry, strRequestStart, strResponseEnd);
3742
+ var duration = resourceEntry[STR_DURATION ];
3743
+ if (!duration) {
3744
+ duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;
3745
+ }
3746
+ propsSet |= _setPerfValue(props, STR_DURATION, duration);
3747
+ propsSet |= _setPerfValue(props, "perfTotal", duration);
3748
+ var serverTiming = resourceEntry[strServerTiming];
3749
+ if (serverTiming) {
3750
+ var server_1 = {};
3751
+ arrForEach(serverTiming, function (value, idx) {
3752
+ var name = normalizeJsName(value[strName] || "" + idx);
3753
+ var newValue = server_1[name] || {};
3754
+ objForEachKey(value, function (key, val) {
3755
+ if (key !== strName && isString(val) || isNumber(val)) {
3756
+ if (newValue[key]) {
3757
+ val = newValue[key] + ";" + val;
3758
+ }
3759
+ if (val || !isString(val)) {
3760
+ newValue[key] = val;
3761
+ }
3762
+ }
3763
+ });
3764
+ server_1[name] = newValue;
3765
+ });
3766
+ propsSet |= _setPerfValue(props, strServerTiming, server_1);
3767
+ }
3768
+ propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);
3769
+ propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);
3770
+ propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);
3771
+ }
3772
+ else {
3773
+ if (ajaxData[_DYN_PERF_MARK ]) {
3774
+ propsSet |= _setPerfValue(props, "missing", ajaxData.perfAttempts);
3775
+ }
3776
+ }
3777
+ if (propsSet) {
3778
+ dependency[STR_PROPERTIES ] = props;
3779
+ }
3780
+ }
3781
+ var XHRMonitoringState = /** @class */ (function () {
3782
+ function XHRMonitoringState() {
3783
+ var self = this;
3784
+ self[_DYN_OPEN_DONE ] = false;
3785
+ self.setRequestHeaderDone = false;
3786
+ self[_DYN_SEND_DONE ] = false;
3787
+ self[_DYN_ABORT_DONE ] = false;
3788
+ self[_DYN_STATE_CHANGE_ATTACHE13 ] = false;
3789
+ }
3790
+ return XHRMonitoringState;
3791
+ }());
3792
+ var ajaxRecord = /** @class */ (function () {
3793
+ function ajaxRecord(traceId, spanId, logger, traceCtx) {
3794
+ var _a;
3795
+ var self = this;
3796
+ var _logger = logger;
3797
+ var strResponseText = "responseText";
3798
+ self[_DYN_PERF_MARK ] = null;
3799
+ self.completed = false;
3800
+ self.requestHeadersSize = null;
3801
+ self[_DYN_REQUEST_HEADERS ] = null;
3802
+ self.responseReceivingDuration = null;
3803
+ self.callbackDuration = null;
3804
+ self[_DYN_AJAX_TOTAL_DURATION ] = null;
3805
+ self[_DYN_ABORTED ] = 0;
3806
+ self.pageUrl = null;
3807
+ self[_DYN_REQUEST_URL ] = null;
3808
+ self.requestSize = 0;
3809
+ self[_DYN_METHOD ] = null;
3810
+ self[_DYN_STATUS ] = null;
3811
+ self[_DYN_REQUEST_SENT_TIME ] = null;
3812
+ self.responseStartedTime = null;
3813
+ self[_DYN_RESPONSE_FINISHED_TI14 ] = null;
3814
+ self.callbackFinishedTime = null;
3815
+ self.endTime = null;
3816
+ self.xhrMonitoringState = new XHRMonitoringState();
3817
+ self.clientFailure = 0;
3818
+ self[_DYN_TRACE_ID ] = traceId;
3819
+ self[_DYN_SPAN_ID ] = spanId;
3820
+ self[_DYN_TRACE_FLAGS ] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();
3821
+ if (traceCtx) {
3822
+ self[_DYN_EVENT_TRACE_CTX ] = (_a = {},
3823
+ _a[_DYN_TRACE_ID0 ] = traceCtx[_DYN_GET_TRACE_ID ](),
3824
+ _a[_DYN_SPAN_ID1 ] = traceCtx.getSpanId(),
3825
+ _a[_DYN_TRACE_FLAGS ] = traceCtx[_DYN_GET_TRACE_FLAGS ](),
3826
+ _a);
3827
+ }
3828
+ else {
3829
+ self[_DYN_EVENT_TRACE_CTX ] = null;
3830
+ }
3831
+ dynamicProto(ajaxRecord, self, function (self) {
3832
+ self.getAbsoluteUrl = function () {
3833
+ return self[_DYN_REQUEST_URL ] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL ]) : null;
3834
+ };
3835
+ self.getPathName = function () {
3836
+ return self[_DYN_REQUEST_URL ] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD ], self[_DYN_REQUEST_URL ])) : null;
3837
+ };
3838
+ self[_DYN__CREATE_TRACK_ITEM ] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
3839
+ var _a;
3840
+ self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;
3841
+ if (self[_DYN_AJAX_TOTAL_DURATION ] < 0) {
3842
+ return null;
3843
+ }
3844
+ var dependency = (_a = {
3845
+ id: "|" + self[_DYN_TRACE_ID ] + "." + self[_DYN_SPAN_ID ],
3846
+ target: self[_DYN_GET_ABSOLUTE_URL ]()
3847
+ },
3848
+ _a[_DYN_NAME ] = self.getPathName(),
3849
+ _a.type = ajaxType,
3850
+ _a[_DYN_START_TIME ] = null,
3851
+ _a.duration = self[_DYN_AJAX_TOTAL_DURATION ],
3852
+ _a.success = (+(self[_DYN_STATUS ])) >= 200 && (+(self[_DYN_STATUS ])) < 400,
3853
+ _a.responseCode = (+(self[_DYN_STATUS ])),
3854
+ _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD ] },
3855
+ _a);
3856
+ var props = dependency[STR_PROPERTIES];
3857
+ if (self[_DYN_ABORTED ]) {
3858
+ props[_DYN_ABORTED ] = true;
3859
+ }
3860
+ if (self[_DYN_REQUEST_SENT_TIME ]) {
3861
+ dependency[_DYN_START_TIME ] = new Date();
3862
+ dependency[_DYN_START_TIME ].setTime(self[_DYN_REQUEST_SENT_TIME ]);
3863
+ }
3864
+ _populatePerfData(self, dependency);
3865
+ if (enableRequestHeaderTracking) {
3866
+ if (objKeys(self.requestHeaders)[_DYN_LENGTH ] > 0) {
3867
+ props[_DYN_REQUEST_HEADERS ] = self[_DYN_REQUEST_HEADERS ];
3868
+ }
3869
+ }
3870
+ if (getResponse) {
3871
+ var response = getResponse();
3872
+ if (response) {
3873
+ var correlationContext = response[_DYN_CORRELATION_CONTEXT ];
3874
+ if (correlationContext) {
3875
+ dependency.correlationContext = correlationContext;
3876
+ }
3877
+ if (response[_DYN_HEADER_MAP ]) {
3878
+ if (objKeys(response.headerMap)[_DYN_LENGTH ] > 0) {
3879
+ props.responseHeaders = response[_DYN_HEADER_MAP ];
3880
+ }
3881
+ }
3882
+ if (self[_DYN_ERROR_STATUS_TEXT ]) {
3883
+ if (self[_DYN_STATUS ] >= 400) {
3884
+ var responseType = response.type;
3885
+ if (responseType === "" || responseType === "text") {
3886
+ props.responseText = response.responseText ? response[_DYN_STATUS_TEXT ] + " - " + response[strResponseText] : response[_DYN_STATUS_TEXT ];
3887
+ }
3888
+ if (responseType === "json") {
3889
+ props.responseText = response.response ? response[_DYN_STATUS_TEXT ] + " - " + JSON.stringify(response[_DYN_RESPONSE ]) : response[_DYN_STATUS_TEXT ];
3890
+ }
3891
+ }
3892
+ else if (self[_DYN_STATUS ] === 0) {
3893
+ props.responseText = response[_DYN_STATUS_TEXT ] || "";
3894
+ }
3895
+ }
3896
+ }
3897
+ }
3898
+ return dependency;
3899
+ };
3900
+ self[_DYN_GET_PART_APROPS ] = function () {
3901
+ var _a;
3902
+ var partA = null;
3903
+ var traceCtx = self[_DYN_EVENT_TRACE_CTX ];
3904
+ if (traceCtx && (traceCtx[_DYN_TRACE_ID0 ] || traceCtx[_DYN_SPAN_ID1 ])) {
3905
+ partA = {};
3906
+ var traceExt = partA[Extensions.TraceExt] = (_a = {},
3907
+ _a[_DYN_TRACE_ID ] = traceCtx[_DYN_TRACE_ID0 ],
3908
+ _a.parentID = traceCtx[_DYN_SPAN_ID1 ],
3909
+ _a);
3910
+ if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS ])) {
3911
+ traceExt[_DYN_TRACE_FLAGS ] = traceCtx[_DYN_TRACE_FLAGS ];
3912
+ }
3913
+ }
3914
+ return partA;
3915
+ };
3916
+ });
3917
+ }
3918
+ ajaxRecord.__ieDyn=1;
3919
+ return ajaxRecord;
3920
+ }());
3921
+
3922
+ var _a;
3923
+ var AJAX_MONITOR_PREFIX = "ai.ajxmn.";
3924
+ var strDiagLog = "diagLog";
3925
+ var strAjaxData = "ajaxData";
3926
+ var STR_FETCH = "fetch";
3927
+ var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
3928
+ var ERROR_PREFIX = ", monitoring data for this ajax call ";
3929
+ var ERROR_POSTFIX = ERROR_PREFIX + "may be incorrect.";
3930
+ var ERROR_NOT_SENT = ERROR_PREFIX + "won't be sent.";
3931
+ var CORRELATION_HEADER_ERROR = "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.";
3932
+ var CUSTOM_REQUEST_CONTEXT_ERROR = "Failed to add custom defined request context as configured call back may missing a null check.";
3933
+ var FAILED_TO_CALCULATE_DURATION_ERROR = "Failed to calculate the duration of the ";
3934
+ var _markCount = 0;
3935
+ function _supportsFetch() {
3936
+ var _global = getGlobal();
3937
+ if (!_global ||
3938
+ isNullOrUndefined(_global.Request) ||
3939
+ isNullOrUndefined(_global.Request[strShimPrototype]) ||
3940
+ isNullOrUndefined(_global[STR_FETCH])) {
3941
+ return null;
3942
+ }
3943
+ return _global[STR_FETCH];
3944
+ }
3945
+ function _supportsAjaxMonitoring(ajaxMonitorInstance) {
3946
+ var _a;
3947
+ var result = false;
3948
+ if (isXhrSupported()) {
3949
+ var proto = XMLHttpRequest[strShimPrototype];
3950
+ result = !isNullOrUndefined(proto) &&
3951
+ !isNullOrUndefined(proto.open) &&
3952
+ !isNullOrUndefined(proto.send) &&
3953
+ !isNullOrUndefined(proto.abort);
3954
+ }
3955
+ var ieVer = getIEVersion();
3956
+ if (ieVer && ieVer < 9) {
3957
+ result = false;
3958
+ }
3959
+ if (result) {
3960
+ try {
3961
+ var xhr = new XMLHttpRequest();
3962
+ xhr[strAjaxData] = {};
3963
+ var theOpen = XMLHttpRequest[strShimPrototype].open;
3964
+ XMLHttpRequest[strShimPrototype].open = theOpen;
3965
+ }
3966
+ catch (e) {
3967
+ result = false;
3968
+ _throwInternalCritical(ajaxMonitorInstance, 15 , "Failed to enable XMLHttpRequest monitoring, extension is not supported", (_a = {},
3969
+ _a[_DYN_EXCEPTION ] = dumpObj(e),
3970
+ _a));
3971
+ }
3972
+ }
3973
+ return result;
3974
+ }
3975
+ function _getFailedAjaxDiagnosticsMessage(xhr) {
3976
+ var result = "";
3977
+ try {
3978
+ if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL ]) {
3979
+ result += "(url: '" + xhr[strAjaxData][_DYN_REQUEST_URL ] + "')";
3980
+ }
3981
+ }
3982
+ catch (e) {
3983
+ }
3984
+ return result;
3985
+ }
3986
+ function _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {
3987
+ _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 , msgId, message, properties, isUserAct);
3988
+ }
3989
+ function _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {
3990
+ _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 , msgId, message, properties, isUserAct);
3991
+ }
3992
+ function _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {
3993
+ return function (args) {
3994
+ var _a;
3995
+ _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {
3996
+ ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST ])
3997
+ },
3998
+ _a[_DYN_EXCEPTION ] = dumpObj(args.err),
3999
+ _a));
4000
+ };
4001
+ }
4002
+ function _indexOf(value, match) {
4003
+ if (value && match) {
4004
+ return strIndexOf(value, match);
4005
+ }
4006
+ return -1;
4007
+ }
4008
+ function _addHandler(container, id, theFunc) {
4009
+ var theHandler = {
4010
+ id: id,
4011
+ fn: theFunc
4012
+ };
4013
+ container.push(theHandler);
4014
+ return {
4015
+ remove: function () {
4016
+ arrForEach(container, function (initializer, idx) {
4017
+ if (initializer.id === theHandler.id) {
4018
+ container.splice(idx, 1);
4019
+ return -1;
4020
+ }
4021
+ });
4022
+ }
4023
+ };
4024
+ }
4025
+ function _processDependencyContainer(core, container, details, message) {
4026
+ var result = true;
4027
+ arrForEach(container, function (theFunc, idx) {
4028
+ try {
4029
+ if (theFunc.fn.call(null, details) === false) {
4030
+ result = false;
4031
+ }
4032
+ }
4033
+ catch (e) {
4034
+ _throwInternal(core && core.logger, 1 , 64 , "Dependency " + message + " [#" + idx + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
4035
+ }
4036
+ });
4037
+ return result;
4038
+ }
4039
+ function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
4040
+ var _a;
4041
+ var initializersCount = listeners[_DYN_LENGTH ];
4042
+ if (initializersCount > 0) {
4043
+ var details = (_a = {},
4044
+ _a[_DYN_CORE ] = core,
4045
+ _a.xhr = xhr,
4046
+ _a.input = input,
4047
+ _a.init = init,
4048
+ _a.traceId = ajaxData[_DYN_TRACE_ID ],
4049
+ _a.spanId = ajaxData[_DYN_SPAN_ID ],
4050
+ _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS ],
4051
+ _a.context = ajaxData[_DYN_CONTEXT ] || {},
4052
+ _a.aborted = !!ajaxData[_DYN_ABORTED ],
4053
+ _a);
4054
+ _processDependencyContainer(core, listeners, details, "listener");
4055
+ ajaxData[_DYN_TRACE_ID ] = details[_DYN_TRACE_ID0 ];
4056
+ ajaxData[_DYN_SPAN_ID ] = details[_DYN_SPAN_ID1 ];
4057
+ ajaxData[_DYN_TRACE_FLAGS ] = details[_DYN_TRACE_FLAGS ];
4058
+ ajaxData[_DYN_CONTEXT ] = details[_DYN_CONTEXT ];
4059
+ }
4060
+ }
4061
+ var BLOB_CORE = "*.blob.core.";
4062
+ var DfltAjaxCorrelationHeaderExDomains = objFreeze([
4063
+ BLOB_CORE + "windows.net",
4064
+ BLOB_CORE + "chinacloudapi.cn",
4065
+ BLOB_CORE + "cloudapi.de",
4066
+ BLOB_CORE + "usgovcloudapi.net"
4067
+ ]);
4068
+ var _internalExcludeEndpoints = [
4069
+ /https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i
4070
+ ];
4071
+ var _defaultConfig = objFreeze((_a = {},
4072
+ _a[_DYN_MAX_AJAX_CALLS_PER_V7 ] = 500,
4073
+ _a[_DYN_DISABLE_AJAX_TRACKIN9 ] = false,
4074
+ _a[_DYN_DISABLE_FETCH_TRACKI11 ] = false,
4075
+ _a[_DYN_EXCLUDE_REQUEST_FROM8 ] = undefined,
4076
+ _a.disableCorrelationHeaders = false,
4077
+ _a.distributedTracingMode = 1 ,
4078
+ _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
4079
+ _a.correlationHeaderDomains = undefined,
4080
+ _a.correlationHeaderExcludePatterns = undefined,
4081
+ _a.appId = undefined,
4082
+ _a.enableCorsCorrelation = false,
4083
+ _a[_DYN_ENABLE_REQUEST_HEADE4 ] = false,
4084
+ _a[_DYN_ENABLE_RESPONSE_HEAD12 ] = false,
4085
+ _a[_DYN_ENABLE_AJAX_ERROR_ST5 ] = false,
4086
+ _a[_DYN_ENABLE_AJAX_PERF_TRA6 ] = false,
4087
+ _a.maxAjaxPerfLookupAttempts = 3,
4088
+ _a[_DYN_AJAX_PERF_LOOKUP_DEL10 ] = 25,
4089
+ _a.ignoreHeaders = [
4090
+ "Authorization",
4091
+ "X-API-Key",
4092
+ "WWW-Authenticate"
4093
+ ],
4094
+ _a[_DYN_ADD_REQUEST_CONTEXT ] = undefined,
4095
+ _a.addIntEndpoints = true,
4096
+ _a));
4097
+ var AjaxMonitor = /** @class */ (function (_super) {
4098
+ __extendsFn(AjaxMonitor, _super);
4099
+ function AjaxMonitor() {
4100
+ var _this = _super.call(this) || this;
4101
+ _this.identifier = AjaxMonitor.identifier;
4102
+ _this.priority = 120;
4103
+ var _fetchInitialized;
4104
+ var _xhrInitialized;
4105
+ var _currentWindowHost;
4106
+ var _extensionConfig;
4107
+ var _enableRequestHeaderTracking;
4108
+ var _enableAjaxErrorStatusText;
4109
+ var _trackAjaxAttempts;
4110
+ var _context;
4111
+ var _isUsingW3CHeaders;
4112
+ var _isUsingAIHeaders;
4113
+ var _markPrefix;
4114
+ var _enableAjaxPerfTracking;
4115
+ var _maxAjaxCallsPerView;
4116
+ var _enableResponseHeaderTracking;
4117
+ var _disabledUrls;
4118
+ var _disableAjaxTracking;
4119
+ var _disableFetchTracking;
4120
+ var _excludeRequestFromAutoTrackingPatterns;
4121
+ var _addRequestContext;
4122
+ var _evtNamespace;
4123
+ var _dependencyHandlerId;
4124
+ var _dependencyListeners;
4125
+ var _dependencyInitializers;
4126
+ var _ignoreHeaders;
4127
+ var _maxAjaxPerfLookupAttempts;
4128
+ var _ajaxPerfLookupDelay;
4129
+ var _distributedTracingMode;
4130
+ var _appId;
4131
+ var _polyfillInitialized;
4132
+ dynamicProto(AjaxMonitor, _this, function (_self, _base) {
4133
+ var _addHook = _base[_DYN__ADD_HOOK ];
4134
+ _initDefaults();
4135
+ _self.initialize = function (config, core, extensions, pluginChain) {
4136
+ if (!_self.isInitialized()) {
4137
+ _base.initialize(config, core, extensions, pluginChain);
4138
+ _evtNamespace = mergeEvtNamespace(createUniqueNamespace("ajax"), core && core.evtNamespace && core.evtNamespace());
4139
+ _populateDefaults(config);
4140
+ _instrumentXhr();
4141
+ _instrumentFetch();
4142
+ _populateContext();
4143
+ }
4144
+ };
4145
+ _self._doTeardown = function () {
4146
+ _initDefaults();
4147
+ };
4148
+ _self.trackDependencyData = function (dependency, properties) {
4149
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], null, dependency, properties);
4150
+ };
4151
+ _self[_DYN_INCLUDE_CORRELATION_2 ] = function (ajaxData, input, init, xhr) {
4152
+ var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
4153
+ _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE ], ajaxData, xhr, input, init);
4154
+ if (input) {
4155
+ if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
4156
+ if (!init) {
4157
+ init = {};
4158
+ }
4159
+ var headers = new Headers(init[_DYN_HEADERS ] || (input instanceof Request ? (input[_DYN_HEADERS ] || {}) : {}));
4160
+ if (_isUsingAIHeaders) {
4161
+ var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
4162
+ headers.set(RequestHeaders[3 ], id);
4163
+ if (_enableRequestHeaderTracking) {
4164
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
4165
+ }
4166
+ }
4167
+ var appId = _appId || (_context && _context.appId());
4168
+ if (appId) {
4169
+ headers.set(RequestHeaders[0 ], RequestHeaders[2 ] + appId);
4170
+ if (_enableRequestHeaderTracking) {
4171
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[0 ]] = RequestHeaders[2 ] + appId;
4172
+ }
4173
+ }
4174
+ if (_isUsingW3CHeaders) {
4175
+ var traceFlags = ajaxData[_DYN_TRACE_FLAGS ];
4176
+ if (isNullOrUndefined(traceFlags)) {
4177
+ traceFlags = 0x01;
4178
+ }
4179
+ var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
4180
+ headers.set(RequestHeaders[4 ], traceParent);
4181
+ if (_enableRequestHeaderTracking) {
4182
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
4183
+ }
4184
+ }
4185
+ init[_DYN_HEADERS ] = headers;
4186
+ }
4187
+ return init;
4188
+ }
4189
+ else if (xhr) {
4190
+ if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL ](), currentWindowHost)) {
4191
+ if (_isUsingAIHeaders) {
4192
+ var id = "|" + ajaxData[_DYN_TRACE_ID ] + "." + ajaxData[_DYN_SPAN_ID ];
4193
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[3 ], id);
4194
+ if (_enableRequestHeaderTracking) {
4195
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[3 ]] = id;
4196
+ }
4197
+ }
4198
+ var appId = _appId || (_context && _context.appId());
4199
+ if (appId) {
4200
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[0 ], RequestHeaders[2 ] + appId);
4201
+ if (_enableRequestHeaderTracking) {
4202
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[0 ]] = RequestHeaders[2 ] + appId;
4203
+ }
4204
+ }
4205
+ if (_isUsingW3CHeaders) {
4206
+ var traceFlags = ajaxData[_DYN_TRACE_FLAGS ];
4207
+ if (isNullOrUndefined(traceFlags)) {
4208
+ traceFlags = 0x01;
4209
+ }
4210
+ var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID ], ajaxData[_DYN_SPAN_ID ], traceFlags));
4211
+ xhr[_DYN_SET_REQUEST_HEADER ](RequestHeaders[4 ], traceParent);
4212
+ if (_enableRequestHeaderTracking) {
4213
+ ajaxData[_DYN_REQUEST_HEADERS ][RequestHeaders[4 ]] = traceParent;
4214
+ }
4215
+ }
4216
+ }
4217
+ return xhr;
4218
+ }
4219
+ return undefined;
4220
+ };
4221
+ _self[_DYN_TRACK_DEPENDENCY_DAT3 ] = function (dependency, properties, systemProperties) {
4222
+ if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {
4223
+ if ((_distributedTracingMode === 2
4224
+ || _distributedTracingMode === 1 )
4225
+ && typeof dependency.id === "string" && dependency.id[dependency.id[_DYN_LENGTH ] - 1] !== ".") {
4226
+ dependency.id += ".";
4227
+ }
4228
+ if (isNullOrUndefined(dependency[_DYN_START_TIME ])) {
4229
+ dependency[_DYN_START_TIME ] = new Date();
4230
+ }
4231
+ var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);
4232
+ _self[_DYN_CORE ].track(item);
4233
+ }
4234
+ else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {
4235
+ _throwInternalCritical(_self, 55 , "Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.", true);
4236
+ }
4237
+ ++_trackAjaxAttempts;
4238
+ };
4239
+ _self.addDependencyListener = function (dependencyListener) {
4240
+ return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);
4241
+ };
4242
+ _self.addDependencyInitializer = function (dependencyInitializer) {
4243
+ return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);
4244
+ };
4245
+ function _initDefaults() {
4246
+ var location = getLocation();
4247
+ _fetchInitialized = false;
4248
+ _xhrInitialized = false;
4249
+ _polyfillInitialized = false;
4250
+ _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE ]();
4251
+ _extensionConfig = null;
4252
+ _enableRequestHeaderTracking = false;
4253
+ _enableAjaxErrorStatusText = false;
4254
+ _trackAjaxAttempts = 0;
4255
+ _context = null;
4256
+ _isUsingW3CHeaders = false;
4257
+ _isUsingAIHeaders = false;
4258
+ _markPrefix = null;
4259
+ _enableAjaxPerfTracking = false;
4260
+ _maxAjaxCallsPerView = 0;
4261
+ _enableResponseHeaderTracking = false;
4262
+ _disabledUrls = {};
4263
+ _disableAjaxTracking = false;
4264
+ _disableFetchTracking = false;
4265
+ _excludeRequestFromAutoTrackingPatterns = null;
4266
+ _addRequestContext = null;
4267
+ _evtNamespace = null;
4268
+ _dependencyHandlerId = 0;
4269
+ _dependencyListeners = [];
4270
+ _dependencyInitializers = [];
4271
+ _ignoreHeaders = null;
4272
+ _maxAjaxPerfLookupAttempts = 1;
4273
+ _ajaxPerfLookupDelay = 1;
4274
+ _distributedTracingMode = 1 ;
4275
+ _appId = null;
4276
+ }
4277
+ function _populateDefaults(config) {
4278
+ _self[_DYN__ADD_HOOK ](onConfigChange(config, function (details) {
4279
+ var config = details.cfg;
4280
+ var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE ]);
4281
+ _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);
4282
+ _distributedTracingMode = _extensionConfig.distributedTracingMode;
4283
+ _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 ];
4284
+ _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 ];
4285
+ _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 ];
4286
+ _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 ];
4287
+ _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 ] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
4288
+ _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT ];
4289
+ _isUsingAIHeaders = _distributedTracingMode === 0 || _distributedTracingMode === 1 ;
4290
+ _isUsingW3CHeaders = _distributedTracingMode === 1 || _distributedTracingMode === 2 ;
4291
+ if (_enableAjaxPerfTracking) {
4292
+ var iKey = config.instrumentationKey || "unkwn";
4293
+ if (iKey[_DYN_LENGTH ] > 5) {
4294
+ _markPrefix = AJAX_MONITOR_PREFIX + strSubstring(iKey, iKey[_DYN_LENGTH ] - 5) + ".";
4295
+ }
4296
+ else {
4297
+ _markPrefix = AJAX_MONITOR_PREFIX + iKey + ".";
4298
+ }
4299
+ }
4300
+ _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 ];
4301
+ _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;
4302
+ _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 ];
4303
+ _ignoreHeaders = _extensionConfig.ignoreHeaders;
4304
+ _appId = _extensionConfig.appId;
4305
+ }));
4306
+ }
4307
+ function _populateContext() {
4308
+ var propExt = _self[_DYN_CORE ].getPlugin(PropertiesPluginIdentifier);
4309
+ if (propExt) {
4310
+ _context = propExt.plugin[_DYN_CONTEXT ];
4311
+ }
4312
+ }
4313
+ function _canIncludeHeaders(header) {
4314
+ var rlt = true;
4315
+ if (header || _ignoreHeaders) {
4316
+ arrForEach(_ignoreHeaders, (function (key) {
4317
+ if (key[_DYN_TO_LOWER_CASE ]() === header[_DYN_TO_LOWER_CASE ]()) {
4318
+ rlt = false;
4319
+ return -1;
4320
+ }
4321
+ }));
4322
+ }
4323
+ return rlt;
4324
+ }
4325
+ function _instrumentFetch() {
4326
+ var fetch = _supportsFetch();
4327
+ if (!fetch) {
4328
+ return;
4329
+ }
4330
+ var global = getGlobal();
4331
+ var isPolyfill = fetch.polyfill;
4332
+ _self[_DYN__ADD_HOOK ](onConfigChange(_extensionConfig, function () {
4333
+ _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 ];
4334
+ _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 ];
4335
+ if (!_disableFetchTracking && !_fetchInitialized) {
4336
+ _addHook(InstrumentFunc(global, STR_FETCH, {
4337
+ ns: _evtNamespace,
4338
+ req: function (callDetails, input, init) {
4339
+ var fetchData;
4340
+ if (!_disableFetchTracking && _fetchInitialized &&
4341
+ !_isDisabledRequest(null, input, init) &&
4342
+ !(isPolyfill && _xhrInitialized)) {
4343
+ var ctx = callDetails.ctx();
4344
+ fetchData = _createFetchRecord(input, init);
4345
+ var newInit = _self[_DYN_INCLUDE_CORRELATION_2 ](fetchData, input, init);
4346
+ if (newInit !== init) {
4347
+ callDetails.set(1, newInit);
4348
+ }
4349
+ ctx.data = fetchData;
4350
+ }
4351
+ },
4352
+ rsp: function (callDetails, input) {
4353
+ if (!_disableFetchTracking) {
4354
+ var fetchData_1 = callDetails.ctx().data;
4355
+ if (fetchData_1) {
4356
+ callDetails.rslt = callDetails.rslt.then(function (response) {
4357
+ _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS ], input, response, fetchData_1, function () {
4358
+ var _a;
4359
+ var ajaxResponse = (_a = {
4360
+ statusText: (response || {})[_DYN_STATUS_TEXT ]
4361
+ },
4362
+ _a[_DYN_HEADER_MAP ] = null,
4363
+ _a[_DYN_CORRELATION_CONTEXT ] = _getFetchCorrelationContext(response),
4364
+ _a);
4365
+ if (_enableResponseHeaderTracking && response) {
4366
+ var responseHeaderMap_1 = {};
4367
+ response.headers.forEach(function (value, name) {
4368
+ if (_canIncludeHeaders(name)) {
4369
+ responseHeaderMap_1[name] = value;
4370
+ }
4371
+ });
4372
+ ajaxResponse[_DYN_HEADER_MAP ] = responseHeaderMap_1;
4373
+ }
4374
+ return ajaxResponse;
4375
+ });
4376
+ return response;
4377
+ })
4378
+ .catch(function (reason) {
4379
+ _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });
4380
+ throw reason;
4381
+ });
4382
+ }
4383
+ }
4384
+ },
4385
+ hkErr: _createErrorCallbackFunc(_self, 15 , "Failed to monitor Window.fetch" + ERROR_POSTFIX)
4386
+ }, true, isWebWorker()));
4387
+ _fetchInitialized = true;
4388
+ }
4389
+ else if (isPolyfill && !_polyfillInitialized) {
4390
+ _addHook(InstrumentFunc(global, STR_FETCH, {
4391
+ ns: _evtNamespace,
4392
+ req: function (callDetails, input, init) {
4393
+ _isDisabledRequest(null, input, init);
4394
+ }
4395
+ }));
4396
+ _polyfillInitialized = true;
4397
+ }
4398
+ }));
4399
+ if (isPolyfill) {
4400
+ global[STR_FETCH].polyfill = isPolyfill;
4401
+ }
4402
+ }
4403
+ function _hookProto(target, funcName, callbacks) {
4404
+ _addHook(InstrumentProto(target, funcName, callbacks));
4405
+ }
4406
+ function _instrumentXhr() {
4407
+ if (!_supportsAjaxMonitoring(_self)) {
4408
+ return;
4409
+ }
4410
+ _self[_DYN__ADD_HOOK ](onConfigChange(_extensionConfig, function () {
4411
+ _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 ];
4412
+ _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 ];
4413
+ if (!_disableAjaxTracking && !_xhrInitialized) {
4414
+ _hookProto(XMLHttpRequest, "open", {
4415
+ ns: _evtNamespace,
4416
+ req: function (args, method, url, async) {
4417
+ if (!_disableAjaxTracking) {
4418
+ var xhr = args[_DYN_INST ];
4419
+ var ajaxData = xhr[strAjaxData];
4420
+ if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {
4421
+ if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE ]) {
4422
+ _openHandler(xhr, method, url, async);
4423
+ }
4424
+ _attachToOnReadyStateChange(xhr);
4425
+ }
4426
+ }
4427
+ },
4428
+ hkErr: _createErrorCallbackFunc(_self, 15 , ERROR_HEADER + ".open" + ERROR_POSTFIX)
4429
+ });
4430
+ _hookProto(XMLHttpRequest, "send", {
4431
+ ns: _evtNamespace,
4432
+ req: function (args, context) {
4433
+ if (!_disableAjaxTracking) {
4434
+ var xhr = args[_DYN_INST ];
4435
+ var ajaxData = xhr[strAjaxData];
4436
+ if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE ]) {
4437
+ _createMarkId("xhr", ajaxData);
4438
+ ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
4439
+ _self[_DYN_INCLUDE_CORRELATION_2 ](ajaxData, undefined, undefined, xhr);
4440
+ ajaxData.xhrMonitoringState[_DYN_SEND_DONE ] = true;
4441
+ }
4442
+ }
4443
+ },
4444
+ hkErr: _createErrorCallbackFunc(_self, 17 , ERROR_HEADER + ERROR_POSTFIX)
4445
+ });
4446
+ _hookProto(XMLHttpRequest, "abort", {
4447
+ ns: _evtNamespace,
4448
+ req: function (args) {
4449
+ if (!_disableAjaxTracking) {
4450
+ var xhr = args[_DYN_INST ];
4451
+ var ajaxData = xhr[strAjaxData];
4452
+ if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE ]) {
4453
+ ajaxData[_DYN_ABORTED ] = 1;
4454
+ ajaxData.xhrMonitoringState[_DYN_ABORT_DONE ] = true;
4455
+ }
4456
+ }
4457
+ },
4458
+ hkErr: _createErrorCallbackFunc(_self, 13 , ERROR_HEADER + ".abort" + ERROR_POSTFIX)
4459
+ });
4460
+ _hookProto(XMLHttpRequest, "setRequestHeader", {
4461
+ ns: _evtNamespace,
4462
+ req: function (args, header, value) {
4463
+ if (!_disableAjaxTracking && _enableRequestHeaderTracking) {
4464
+ var xhr = args[_DYN_INST ];
4465
+ if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {
4466
+ xhr[strAjaxData][_DYN_REQUEST_HEADERS ][header] = value;
4467
+ }
4468
+ }
4469
+ },
4470
+ hkErr: _createErrorCallbackFunc(_self, 71 , ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
4471
+ });
4472
+ _xhrInitialized = true;
4473
+ }
4474
+ }));
4475
+ }
4476
+ function _isDisabledRequest(xhr, request, init) {
4477
+ var isDisabled = false;
4478
+ var theUrl = ((!isString(request) ? (request || {}).url || "" : request) || "")[_DYN_TO_LOWER_CASE ]();
4479
+ arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {
4480
+ var theRegex = regex;
4481
+ if (isString(regex)) {
4482
+ theRegex = new RegExp(regex);
4483
+ }
4484
+ if (!isDisabled) {
4485
+ isDisabled = theRegex.test(theUrl);
4486
+ }
4487
+ });
4488
+ if (isDisabled) {
4489
+ return isDisabled;
4490
+ }
4491
+ var idx = _indexOf(theUrl, "?");
4492
+ var idx2 = _indexOf(theUrl, "#");
4493
+ if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {
4494
+ idx = idx2;
4495
+ }
4496
+ if (idx !== -1) {
4497
+ theUrl = theUrl.substring(0, idx);
4498
+ }
4499
+ if (!isNullOrUndefined(xhr)) {
4500
+ isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;
4501
+ }
4502
+ else if (!isNullOrUndefined(request)) {
4503
+ isDisabled = (typeof request === "object" ? request[DisabledPropertyName] === true : false) ||
4504
+ (init ? init[DisabledPropertyName] === true : false);
4505
+ }
4506
+ if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {
4507
+ isDisabled = true;
4508
+ }
4509
+ if (isDisabled) {
4510
+ if (!_disabledUrls[theUrl]) {
4511
+ _disabledUrls[theUrl] = 1;
4512
+ }
4513
+ }
4514
+ else {
4515
+ if (_disabledUrls[theUrl]) {
4516
+ isDisabled = true;
4517
+ }
4518
+ }
4519
+ return isDisabled;
4520
+ }
4521
+ function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {
4522
+ var ajaxValidation = true;
4523
+ var initialized = _xhrInitialized;
4524
+ if (!isNullOrUndefined(xhr)) {
4525
+ ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);
4526
+ }
4527
+ return initialized
4528
+ && ajaxValidation;
4529
+ }
4530
+ function _getDistributedTraceCtx() {
4531
+ var distributedTraceCtx = null;
4532
+ if (_self[_DYN_CORE ] && _self[_DYN_CORE ].getTraceCtx) {
4533
+ distributedTraceCtx = _self[_DYN_CORE ].getTraceCtx(false);
4534
+ }
4535
+ if (!distributedTraceCtx && _context && _context.telemetryTrace) {
4536
+ distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);
4537
+ }
4538
+ return distributedTraceCtx;
4539
+ }
4540
+ function _openHandler(xhr, method, url, async) {
4541
+ var _a;
4542
+ var distributedTraceCtx = _getDistributedTraceCtx();
4543
+ var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID ]()) || generateW3CId();
4544
+ var spanID = strSubstr(generateW3CId(), 0, 16);
4545
+ var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());
4546
+ ajaxData[_DYN_TRACE_FLAGS ] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS ]();
4547
+ ajaxData[_DYN_METHOD ] = method;
4548
+ ajaxData[_DYN_REQUEST_URL ] = url;
4549
+ ajaxData.xhrMonitoringState[_DYN_OPEN_DONE ] = true;
4550
+ ajaxData[_DYN_REQUEST_HEADERS ] = {};
4551
+ ajaxData.async = async;
4552
+ ajaxData[_DYN_ERROR_STATUS_TEXT ] = _enableAjaxErrorStatusText;
4553
+ xhr[strAjaxData] = ajaxData;
4554
+ }
4555
+ function _attachToOnReadyStateChange(xhr) {
4556
+ xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 ] = eventOn(xhr, "readystatechange", function () {
4557
+ var _a;
4558
+ try {
4559
+ if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {
4560
+ _onAjaxComplete(xhr);
4561
+ }
4562
+ }
4563
+ catch (e) {
4564
+ var exceptionText = dumpObj(e);
4565
+ if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE ](), "c00c023f") === -1) {
4566
+ _throwInternalCritical(_self, 16 , ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
4567
+ _a[_DYN_AJAX_DIAGNOSTICS_MES16 ] = _getFailedAjaxDiagnosticsMessage(xhr),
4568
+ _a[_DYN_EXCEPTION ] = exceptionText,
4569
+ _a));
4570
+ }
4571
+ }
4572
+ }, _evtNamespace);
4573
+ }
4574
+ function _getResponseText(xhr) {
4575
+ try {
4576
+ var responseType = xhr.responseType;
4577
+ if (responseType === "" || responseType === "text") {
4578
+ return xhr[_DYN_RESPONSE_TEXT ];
4579
+ }
4580
+ }
4581
+ catch (e) {
4582
+ }
4583
+ return null;
4584
+ }
4585
+ function _onAjaxComplete(xhr) {
4586
+ var ajaxData = xhr[strAjaxData];
4587
+ ajaxData[_DYN_RESPONSE_FINISHED_TI14 ] = dateTimeUtilsNow();
4588
+ ajaxData[_DYN_STATUS ] = xhr[_DYN_STATUS ];
4589
+ function _reportXhrError(e, failedProps) {
4590
+ var errorProps = failedProps || {};
4591
+ errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr);
4592
+ if (e) {
4593
+ errorProps["exception"] = dumpObj(e);
4594
+ }
4595
+ _throwInternalWarning(_self, 14 , FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
4596
+ }
4597
+ _findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
4598
+ try {
4599
+ var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM ]("Ajax", _enableRequestHeaderTracking, function () {
4600
+ var _a;
4601
+ var ajaxResponse = (_a = {
4602
+ statusText: xhr[_DYN_STATUS_TEXT ]
4603
+ },
4604
+ _a[_DYN_HEADER_MAP ] = null,
4605
+ _a[_DYN_CORRELATION_CONTEXT ] = _getAjaxCorrelationContext(xhr),
4606
+ _a.type = xhr.responseType,
4607
+ _a[_DYN_RESPONSE_TEXT ] = _getResponseText(xhr),
4608
+ _a.response = xhr[_DYN_RESPONSE ],
4609
+ _a);
4610
+ if (_enableResponseHeaderTracking) {
4611
+ var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 ]();
4612
+ if (headers) {
4613
+ var arr = strTrim(headers).split(/[\r\n]+/);
4614
+ var responseHeaderMap_2 = {};
4615
+ arrForEach(arr, function (line) {
4616
+ var parts = line.split(": ");
4617
+ var header = parts.shift();
4618
+ var value = parts.join(": ");
4619
+ if (_canIncludeHeaders(header)) {
4620
+ responseHeaderMap_2[header] = value;
4621
+ }
4622
+ });
4623
+ ajaxResponse[_DYN_HEADER_MAP ] = responseHeaderMap_2;
4624
+ }
4625
+ }
4626
+ return ajaxResponse;
4627
+ });
4628
+ var properties = void 0;
4629
+ try {
4630
+ if (!!_addRequestContext) {
4631
+ properties = _addRequestContext({ status: xhr[_DYN_STATUS ], xhr: xhr });
4632
+ }
4633
+ }
4634
+ catch (e) {
4635
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
4636
+ }
4637
+ if (dependency) {
4638
+ if (properties !== undefined) {
4639
+ dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
4640
+ }
4641
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
4642
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
4643
+ }
4644
+ else {
4645
+ _reportXhrError(null, {
4646
+ requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME ],
4647
+ responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 ]
4648
+ });
4649
+ }
4650
+ }
4651
+ finally {
4652
+ try {
4653
+ xhr[strAjaxData] = null;
4654
+ }
4655
+ catch (e) {
4656
+ }
4657
+ }
4658
+ }, function (e) {
4659
+ _reportXhrError(e, null);
4660
+ });
4661
+ }
4662
+ function _getAjaxCorrelationContext(xhr) {
4663
+ var _a;
4664
+ try {
4665
+ var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 ]();
4666
+ if (responseHeadersString !== null) {
4667
+ var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE ](), RequestHeaders[8 ]);
4668
+ if (index !== -1) {
4669
+ var responseHeader = xhr.getResponseHeader(RequestHeaders[0 ]);
4670
+ return correlationIdGetCorrelationContext(responseHeader);
4671
+ }
4672
+ }
4673
+ }
4674
+ catch (e) {
4675
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, (_a = {},
4676
+ _a[_DYN_AJAX_DIAGNOSTICS_MES16 ] = _getFailedAjaxDiagnosticsMessage(xhr),
4677
+ _a[_DYN_EXCEPTION ] = dumpObj(e),
4678
+ _a));
4679
+ }
4680
+ }
4681
+ function _createMarkId(type, ajaxData) {
4682
+ if (ajaxData[_DYN_REQUEST_URL ] && _markPrefix && _enableAjaxPerfTracking) {
4683
+ var performance_1 = getPerformance();
4684
+ if (performance_1 && isFunction(performance_1.mark)) {
4685
+ _markCount++;
4686
+ var markId = _markPrefix + type + "#" + _markCount;
4687
+ performance_1.mark(markId);
4688
+ var entries = performance_1.getEntriesByName(markId);
4689
+ if (entries && entries[_DYN_LENGTH ] === 1) {
4690
+ ajaxData[_DYN_PERF_MARK ] = entries[0];
4691
+ }
4692
+ }
4693
+ }
4694
+ }
4695
+ function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {
4696
+ var perfMark = ajaxData[_DYN_PERF_MARK ];
4697
+ var performance = getPerformance();
4698
+ var maxAttempts = _maxAjaxPerfLookupAttempts;
4699
+ var retryDelay = _ajaxPerfLookupDelay;
4700
+ var requestUrl = ajaxData[_DYN_REQUEST_URL ];
4701
+ var attempt = 0;
4702
+ (function locateResourceTiming() {
4703
+ try {
4704
+ if (performance && perfMark) {
4705
+ attempt++;
4706
+ var perfTiming = null;
4707
+ var entries = performance.getEntries();
4708
+ for (var lp = entries[_DYN_LENGTH ] - 1; lp >= 0; lp--) {
4709
+ var entry = entries[lp];
4710
+ if (entry) {
4711
+ if (entry.entryType === "resource") {
4712
+ if (entry.initiatorType === initiatorType &&
4713
+ (_indexOf(entry[_DYN_NAME ], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME ]) !== -1)) {
4714
+ perfTiming = entry;
4715
+ }
4716
+ }
4717
+ else if (entry.entryType === "mark" && entry[_DYN_NAME ] === perfMark[_DYN_NAME ]) {
4718
+ ajaxData[_DYN_PERF_TIMING ] = perfTiming;
4719
+ break;
4720
+ }
4721
+ if (entry[_DYN_START_TIME ] < perfMark[_DYN_START_TIME ] - 1000) {
4722
+ break;
4723
+ }
4724
+ }
4725
+ }
4726
+ }
4727
+ if (!perfMark ||
4728
+ ajaxData[_DYN_PERF_TIMING ] ||
4729
+ attempt >= maxAttempts ||
4730
+ ajaxData.async === false) {
4731
+ if (perfMark && isFunction(performance.clearMarks)) {
4732
+ performance.clearMarks(perfMark[_DYN_NAME ]);
4733
+ }
4734
+ ajaxData.perfAttempts = attempt;
4735
+ trackCallback();
4736
+ }
4737
+ else {
4738
+ scheduleTimeout(locateResourceTiming, retryDelay);
4739
+ }
4740
+ }
4741
+ catch (e) {
4742
+ reportError(e);
4743
+ }
4744
+ })();
4745
+ }
4746
+ function _createFetchRecord(input, init) {
4747
+ var _a;
4748
+ var distributedTraceCtx = _getDistributedTraceCtx();
4749
+ var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID ]()) || generateW3CId();
4750
+ var spanID = strSubstr(generateW3CId(), 0, 16);
4751
+ var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());
4752
+ ajaxData[_DYN_TRACE_FLAGS ] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS ]();
4753
+ ajaxData[_DYN_REQUEST_SENT_TIME ] = dateTimeUtilsNow();
4754
+ ajaxData[_DYN_ERROR_STATUS_TEXT ] = _enableAjaxErrorStatusText;
4755
+ if (input instanceof Request) {
4756
+ ajaxData[_DYN_REQUEST_URL ] = input ? input.url : "";
4757
+ }
4758
+ else {
4759
+ ajaxData[_DYN_REQUEST_URL ] = input;
4760
+ }
4761
+ var method = "GET";
4762
+ if (init && init[_DYN_METHOD ]) {
4763
+ method = init[_DYN_METHOD ];
4764
+ }
4765
+ else if (input && input instanceof Request) {
4766
+ method = input[_DYN_METHOD ];
4767
+ }
4768
+ ajaxData[_DYN_METHOD ] = method;
4769
+ var requestHeaders = {};
4770
+ if (_enableRequestHeaderTracking) {
4771
+ var headers = new Headers((init ? init[_DYN_HEADERS ] : 0) || (input instanceof Request ? (input[_DYN_HEADERS ] || {}) : {}));
4772
+ headers.forEach(function (value, key) {
4773
+ if (_canIncludeHeaders(key)) {
4774
+ requestHeaders[key] = value;
4775
+ }
4776
+ });
4777
+ }
4778
+ ajaxData[_DYN_REQUEST_HEADERS ] = requestHeaders;
4779
+ _createMarkId(STR_FETCH, ajaxData);
4780
+ return ajaxData;
4781
+ }
4782
+ function _getFailedFetchDiagnosticsMessage(input) {
4783
+ var result = "";
4784
+ try {
4785
+ if (!isNullOrUndefined(input)) {
4786
+ if (typeof (input) === "string") {
4787
+ result += "(url: '".concat(input, "')");
4788
+ }
4789
+ else {
4790
+ result += "(url: '".concat(input.url, "')");
4791
+ }
4792
+ }
4793
+ }
4794
+ catch (e) {
4795
+ _throwInternalCritical(_self, 15 , "Failed to grab failed fetch diagnostics message", { exception: dumpObj(e) });
4796
+ }
4797
+ return result;
4798
+ }
4799
+ function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {
4800
+ if (!ajaxData) {
4801
+ return;
4802
+ }
4803
+ function _reportFetchError(msgId, e, failedProps) {
4804
+ var errorProps = failedProps || {};
4805
+ errorProps["fetchDiagnosticsMessage"] = _getFailedFetchDiagnosticsMessage(input);
4806
+ if (e) {
4807
+ errorProps["exception"] = dumpObj(e);
4808
+ }
4809
+ _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
4810
+ }
4811
+ ajaxData[_DYN_RESPONSE_FINISHED_TI14 ] = dateTimeUtilsNow();
4812
+ ajaxData[_DYN_STATUS ] = status;
4813
+ _findPerfResourceEntry(STR_FETCH, ajaxData, function () {
4814
+ var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM ]("Fetch", _enableRequestHeaderTracking, getResponse);
4815
+ var properties;
4816
+ try {
4817
+ if (!!_addRequestContext) {
4818
+ properties = _addRequestContext({ status: status, request: input, response: response });
4819
+ }
4820
+ }
4821
+ catch (e) {
4822
+ _throwInternalWarning(_self, 104 , CUSTOM_REQUEST_CONTEXT_ERROR);
4823
+ }
4824
+ if (dependency) {
4825
+ if (properties !== undefined) {
4826
+ dependency[STR_PROPERTIES ] = __assignFn(__assignFn({}, dependency.properties), properties);
4827
+ }
4828
+ var sysProperties = ajaxData[_DYN_GET_PART_APROPS ]();
4829
+ _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE ], ajaxData, dependency, null, sysProperties);
4830
+ }
4831
+ else {
4832
+ _reportFetchError(14 , null, {
4833
+ requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME ],
4834
+ responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 ]
4835
+ });
4836
+ }
4837
+ }, function (e) {
4838
+ _reportFetchError(18 , e, null);
4839
+ });
4840
+ }
4841
+ function _getFetchCorrelationContext(response) {
4842
+ var _a;
4843
+ if (response && response[_DYN_HEADERS ]) {
4844
+ try {
4845
+ var responseHeader = response[_DYN_HEADERS ].get(RequestHeaders[0 ]);
4846
+ return correlationIdGetCorrelationContext(responseHeader);
4847
+ }
4848
+ catch (e) {
4849
+ _throwInternalWarning(_self, 18 , CORRELATION_HEADER_ERROR, (_a = {
4850
+ fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)
4851
+ },
4852
+ _a[_DYN_EXCEPTION ] = dumpObj(e),
4853
+ _a));
4854
+ }
4855
+ }
4856
+ }
4857
+ function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
4858
+ var _a;
4859
+ var result = true;
4860
+ var initializersCount = initializers[_DYN_LENGTH ];
4861
+ if (initializersCount > 0) {
4862
+ var details = (_a = {
4863
+ item: dependency
4864
+ },
4865
+ _a[STR_PROPERTIES ] = properties,
4866
+ _a.sysProperties = systemProperties,
4867
+ _a.context = ajaxData ? ajaxData[_DYN_CONTEXT ] : null,
4868
+ _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED ] : false,
4869
+ _a);
4870
+ result = _processDependencyContainer(core, initializers, details, "initializer");
4871
+ }
4872
+ if (result) {
4873
+ _self[_DYN_TRACK_DEPENDENCY_DAT3 ](dependency, properties, systemProperties);
4874
+ }
4875
+ }
4876
+ });
4877
+ return _this;
4878
+ }
4879
+ AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
4880
+ this.processNext(item, itemCtx);
4881
+ };
4882
+ AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
4883
+ return null;
4884
+ };
4885
+ AjaxMonitor.identifier = "AjaxDependencyPlugin";
4886
+ return AjaxMonitor;
4887
+ }(BaseTelemetryPlugin));
4888
+
4889
+ exports.AjaxPlugin = AjaxMonitor;
4890
+ exports.DfltAjaxCorrelationHeaderExDomains = DfltAjaxCorrelationHeaderExDomains;
4891
+ exports.ajaxRecord = ajaxRecord;
4892
+ //# sourceMappingURL=applicationinsights-dependencies-js.cjs.js.map