@microsoft/1ds-post-js 3.2.11 → 3.2.13
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.
- package/README.md +1 -1
- package/bundle/ms.post-3.2.13.gbl.js +4546 -0
- package/bundle/ms.post-3.2.13.gbl.js.map +1 -0
- package/bundle/ms.post-3.2.13.gbl.min.js +7 -0
- package/bundle/ms.post-3.2.13.gbl.min.js.map +1 -0
- package/bundle/ms.post-3.2.13.integrity.json +46 -0
- package/bundle/ms.post-3.2.13.js +4550 -0
- package/bundle/ms.post-3.2.13.js.map +1 -0
- package/bundle/ms.post-3.2.13.min.js +7 -0
- package/bundle/ms.post-3.2.13.min.js.map +1 -0
- package/bundle/ms.post.gbl.js +4080 -4058
- package/bundle/ms.post.gbl.js.map +1 -1
- package/bundle/ms.post.gbl.min.js +2 -2
- package/bundle/ms.post.gbl.min.js.map +1 -1
- package/bundle/ms.post.integrity.json +17 -17
- package/bundle/ms.post.js +4082 -4059
- package/bundle/ms.post.js.map +1 -1
- package/bundle/ms.post.min.js +2 -2
- package/bundle/ms.post.min.js.map +1 -1
- package/dist/ms.post.js +2 -2
- package/dist/ms.post.js.map +1 -1
- package/dist/ms.post.min.js +2 -2
- package/dist/ms.post.min.js.map +1 -1
- package/dist-esm/src/BatchNotificationActions.js +1 -1
- package/dist-esm/src/ClockSkewManager.js +1 -1
- package/dist-esm/src/DataModels.js +1 -1
- package/dist-esm/src/EventBatch.js +1 -1
- package/dist-esm/src/HttpManager.js +1 -1
- package/dist-esm/src/Index.js +1 -1
- package/dist-esm/src/InternalConstants.js +1 -1
- package/dist-esm/src/KillSwitch.js +1 -1
- package/dist-esm/src/PostChannel.js +2 -2
- package/dist-esm/src/PostChannel.js.map +1 -1
- package/dist-esm/src/RetryPolicy.js +1 -1
- package/dist-esm/src/Serializer.js +1 -1
- package/dist-esm/src/TimeoutOverrideWrapper.js +1 -1
- package/dist-esm/src/typings/XDomainRequest.js +1 -1
- package/package.json +2 -2
- package/bundle/ms.post-3.2.11.gbl.js +0 -4524
- package/bundle/ms.post-3.2.11.gbl.js.map +0 -1
- package/bundle/ms.post-3.2.11.gbl.min.js +0 -7
- package/bundle/ms.post-3.2.11.gbl.min.js.map +0 -1
- package/bundle/ms.post-3.2.11.integrity.json +0 -46
- package/bundle/ms.post-3.2.11.js +0 -4527
- package/bundle/ms.post-3.2.11.js.map +0 -1
- package/bundle/ms.post-3.2.11.min.js +0 -7
- package/bundle/ms.post-3.2.11.min.js.map +0 -1
|
@@ -1,4524 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* 1DS JS SDK POST plugin, 3.2.11
|
|
3
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
|
-
* (Microsoft Internal Only)
|
|
5
|
-
*/
|
|
6
|
-
(function (exports) {
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var strShimFunction = "function";
|
|
10
|
-
var strShimObject = "object";
|
|
11
|
-
var strShimUndefined = "undefined";
|
|
12
|
-
var strShimPrototype = "prototype";
|
|
13
|
-
var strShimHasOwnProperty = "hasOwnProperty";
|
|
14
|
-
var ObjClass = Object;
|
|
15
|
-
var ObjProto = ObjClass[strShimPrototype];
|
|
16
|
-
var ObjAssign = ObjClass["assign"];
|
|
17
|
-
var ObjCreate = ObjClass["create"];
|
|
18
|
-
var ObjDefineProperty = ObjClass["defineProperty"];
|
|
19
|
-
var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];
|
|
20
|
-
|
|
21
|
-
var _cachedGlobal = null;
|
|
22
|
-
function getGlobal(useCached) {
|
|
23
|
-
if (useCached === void 0) { useCached = true; }
|
|
24
|
-
var result = useCached === false ? null : _cachedGlobal;
|
|
25
|
-
if (!result) {
|
|
26
|
-
if (typeof globalThis !== strShimUndefined) {
|
|
27
|
-
result = globalThis;
|
|
28
|
-
}
|
|
29
|
-
if (!result && typeof self !== strShimUndefined) {
|
|
30
|
-
result = self;
|
|
31
|
-
}
|
|
32
|
-
if (!result && typeof window !== strShimUndefined) {
|
|
33
|
-
result = window;
|
|
34
|
-
}
|
|
35
|
-
if (!result && typeof global !== strShimUndefined) {
|
|
36
|
-
result = global;
|
|
37
|
-
}
|
|
38
|
-
_cachedGlobal = result;
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
function throwTypeError(message) {
|
|
43
|
-
throw new TypeError(message);
|
|
44
|
-
}
|
|
45
|
-
function objCreateFn(obj) {
|
|
46
|
-
var func = ObjCreate;
|
|
47
|
-
if (func) {
|
|
48
|
-
return func(obj);
|
|
49
|
-
}
|
|
50
|
-
if (obj == null) {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
var type = typeof obj;
|
|
54
|
-
if (type !== strShimObject && type !== strShimFunction) {
|
|
55
|
-
throwTypeError("Object prototype may only be an Object:" + obj);
|
|
56
|
-
}
|
|
57
|
-
function tmpFunc() { }
|
|
58
|
-
tmpFunc[strShimPrototype] = obj;
|
|
59
|
-
return new tmpFunc();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
(getGlobal() || {})["Symbol"];
|
|
63
|
-
(getGlobal() || {})["Reflect"];
|
|
64
|
-
var extendStaticsFn = function (d, b) {
|
|
65
|
-
extendStaticsFn = ObjClass["setPrototypeOf"] ||
|
|
66
|
-
({ __proto__: [] } instanceof Array && function (d, b) {
|
|
67
|
-
d.__proto__ = b;
|
|
68
|
-
}) ||
|
|
69
|
-
function (d, b) {
|
|
70
|
-
for (var p in b) {
|
|
71
|
-
if (b[strShimHasOwnProperty](p)) {
|
|
72
|
-
d[p] = b[p];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
return extendStaticsFn(d, b);
|
|
77
|
-
};
|
|
78
|
-
function __extendsFn(d, b) {
|
|
79
|
-
if (typeof b !== strShimFunction && b !== null) {
|
|
80
|
-
throwTypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
81
|
-
}
|
|
82
|
-
extendStaticsFn(d, b);
|
|
83
|
-
function __() {
|
|
84
|
-
this.constructor = d;
|
|
85
|
-
}
|
|
86
|
-
d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/*!
|
|
90
|
-
* Microsoft Dynamic Proto Utility, 1.1.9
|
|
91
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
92
|
-
*/
|
|
93
|
-
var _a$2;
|
|
94
|
-
var UNDEFINED = "undefined";
|
|
95
|
-
var Constructor = 'constructor';
|
|
96
|
-
var Prototype = 'prototype';
|
|
97
|
-
var strFunction = 'function';
|
|
98
|
-
var DynInstFuncTable = '_dynInstFuncs';
|
|
99
|
-
var DynProxyTag = '_isDynProxy';
|
|
100
|
-
var DynClassName = '_dynClass';
|
|
101
|
-
var DynClassNamePrefix = '_dynCls$';
|
|
102
|
-
var DynInstChkTag = '_dynInstChk';
|
|
103
|
-
var DynAllowInstChkTag = DynInstChkTag;
|
|
104
|
-
var DynProtoDefaultOptions = '_dfOpts';
|
|
105
|
-
var UnknownValue = '_unknown_';
|
|
106
|
-
var str__Proto$1 = "__proto__";
|
|
107
|
-
var DynProtoBaseProto = "_dyn" + str__Proto$1;
|
|
108
|
-
var DynProtoGlobalSettings = "__dynProto$Gbl";
|
|
109
|
-
var DynProtoCurrent = "_dynInstProto";
|
|
110
|
-
var strUseBaseInst = 'useBaseInst';
|
|
111
|
-
var strSetInstFuncs = 'setInstFuncs';
|
|
112
|
-
var Obj = Object;
|
|
113
|
-
var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
|
|
114
|
-
var _objGetOwnProps = Obj["getOwnPropertyNames"];
|
|
115
|
-
function _getGlobal() {
|
|
116
|
-
var result;
|
|
117
|
-
if (typeof globalThis !== UNDEFINED) {
|
|
118
|
-
result = globalThis;
|
|
119
|
-
}
|
|
120
|
-
if (!result && typeof self !== UNDEFINED) {
|
|
121
|
-
result = self;
|
|
122
|
-
}
|
|
123
|
-
if (!result && typeof window !== UNDEFINED) {
|
|
124
|
-
result = window;
|
|
125
|
-
}
|
|
126
|
-
if (!result && typeof global !== UNDEFINED) {
|
|
127
|
-
result = global;
|
|
128
|
-
}
|
|
129
|
-
return result || {};
|
|
130
|
-
}
|
|
131
|
-
var _gbl = _getGlobal();
|
|
132
|
-
var _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {
|
|
133
|
-
o: (_a$2 = {},
|
|
134
|
-
_a$2[strSetInstFuncs] = true,
|
|
135
|
-
_a$2[strUseBaseInst] = true,
|
|
136
|
-
_a$2),
|
|
137
|
-
n: 1000
|
|
138
|
-
});
|
|
139
|
-
function _hasOwnProperty(obj, prop) {
|
|
140
|
-
return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
|
|
141
|
-
}
|
|
142
|
-
function _isObjectOrArrayPrototype(target) {
|
|
143
|
-
return target && (target === Obj[Prototype] || target === Array[Prototype]);
|
|
144
|
-
}
|
|
145
|
-
function _isObjectArrayOrFunctionPrototype(target) {
|
|
146
|
-
return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
|
|
147
|
-
}
|
|
148
|
-
function _getObjProto$1(target) {
|
|
149
|
-
var newProto;
|
|
150
|
-
if (target) {
|
|
151
|
-
if (_objGetPrototypeOf$1) {
|
|
152
|
-
return _objGetPrototypeOf$1(target);
|
|
153
|
-
}
|
|
154
|
-
var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
|
|
155
|
-
newProto = target[DynProtoBaseProto] || curProto;
|
|
156
|
-
if (!_hasOwnProperty(target, DynProtoBaseProto)) {
|
|
157
|
-
delete target[DynProtoCurrent];
|
|
158
|
-
newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
|
|
159
|
-
target[DynProtoCurrent] = curProto;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return newProto;
|
|
163
|
-
}
|
|
164
|
-
function _forEachProp(target, func) {
|
|
165
|
-
var props = [];
|
|
166
|
-
if (_objGetOwnProps) {
|
|
167
|
-
props = _objGetOwnProps(target);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
for (var name_1 in target) {
|
|
171
|
-
if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
|
|
172
|
-
props.push(name_1);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (props && props.length > 0) {
|
|
177
|
-
for (var lp = 0; lp < props.length; lp++) {
|
|
178
|
-
func(props[lp]);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
function _isDynamicCandidate(target, funcName, skipOwn) {
|
|
183
|
-
return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
|
|
184
|
-
}
|
|
185
|
-
function _throwTypeError(message) {
|
|
186
|
-
throw new TypeError("DynamicProto: " + message);
|
|
187
|
-
}
|
|
188
|
-
function _getInstanceFuncs(thisTarget) {
|
|
189
|
-
var instFuncs = {};
|
|
190
|
-
_forEachProp(thisTarget, function (name) {
|
|
191
|
-
if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
|
|
192
|
-
instFuncs[name] = thisTarget[name];
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
return instFuncs;
|
|
196
|
-
}
|
|
197
|
-
function _hasVisited(values, value) {
|
|
198
|
-
for (var lp = values.length - 1; lp >= 0; lp--) {
|
|
199
|
-
if (values[lp] === value) {
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
|
|
206
|
-
function _instFuncProxy(target, funcHost, funcName) {
|
|
207
|
-
var theFunc = funcHost[funcName];
|
|
208
|
-
if (theFunc[DynProxyTag] && useBaseInst) {
|
|
209
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
210
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
211
|
-
theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return function () {
|
|
215
|
-
return theFunc.apply(target, arguments);
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
var baseFuncs = {};
|
|
219
|
-
_forEachProp(instFuncs, function (name) {
|
|
220
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
|
|
221
|
-
});
|
|
222
|
-
var baseProto = _getObjProto$1(classProto);
|
|
223
|
-
var visited = [];
|
|
224
|
-
while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
|
|
225
|
-
_forEachProp(baseProto, function (name) {
|
|
226
|
-
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
|
|
227
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
visited.push(baseProto);
|
|
231
|
-
baseProto = _getObjProto$1(baseProto);
|
|
232
|
-
}
|
|
233
|
-
return baseFuncs;
|
|
234
|
-
}
|
|
235
|
-
function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
|
|
236
|
-
var instFunc = null;
|
|
237
|
-
if (target && _hasOwnProperty(proto, DynClassName)) {
|
|
238
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
239
|
-
instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
|
|
240
|
-
if (!instFunc) {
|
|
241
|
-
_throwTypeError("Missing [" + funcName + "] " + strFunction);
|
|
242
|
-
}
|
|
243
|
-
if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
|
|
244
|
-
var canAddInst = !_hasOwnProperty(target, funcName);
|
|
245
|
-
var objProto = _getObjProto$1(target);
|
|
246
|
-
var visited = [];
|
|
247
|
-
while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
|
|
248
|
-
var protoFunc = objProto[funcName];
|
|
249
|
-
if (protoFunc) {
|
|
250
|
-
canAddInst = (protoFunc === currentDynProtoProxy);
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
visited.push(objProto);
|
|
254
|
-
objProto = _getObjProto$1(objProto);
|
|
255
|
-
}
|
|
256
|
-
try {
|
|
257
|
-
if (canAddInst) {
|
|
258
|
-
target[funcName] = instFunc;
|
|
259
|
-
}
|
|
260
|
-
instFunc[DynInstChkTag] = 1;
|
|
261
|
-
}
|
|
262
|
-
catch (e) {
|
|
263
|
-
instFuncTable[DynAllowInstChkTag] = false;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
return instFunc;
|
|
268
|
-
}
|
|
269
|
-
function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
|
|
270
|
-
var protoFunc = proto[funcName];
|
|
271
|
-
if (protoFunc === currentDynProtoProxy) {
|
|
272
|
-
protoFunc = _getObjProto$1(proto)[funcName];
|
|
273
|
-
}
|
|
274
|
-
if (typeof protoFunc !== strFunction) {
|
|
275
|
-
_throwTypeError("[" + funcName + "] is not a " + strFunction);
|
|
276
|
-
}
|
|
277
|
-
return protoFunc;
|
|
278
|
-
}
|
|
279
|
-
function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
|
|
280
|
-
function _createDynamicPrototype(proto, funcName) {
|
|
281
|
-
var dynProtoProxy = function () {
|
|
282
|
-
var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
|
|
283
|
-
return instFunc.apply(this, arguments);
|
|
284
|
-
};
|
|
285
|
-
dynProtoProxy[DynProxyTag] = 1;
|
|
286
|
-
return dynProtoProxy;
|
|
287
|
-
}
|
|
288
|
-
if (!_isObjectOrArrayPrototype(proto)) {
|
|
289
|
-
var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
|
|
290
|
-
var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
|
|
291
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
292
|
-
instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
|
|
293
|
-
}
|
|
294
|
-
_forEachProp(target, function (name) {
|
|
295
|
-
if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
|
|
296
|
-
instFuncs_1[name] = target[name];
|
|
297
|
-
delete target[name];
|
|
298
|
-
if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
|
|
299
|
-
proto[name] = _createDynamicPrototype(proto, name);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
function _checkPrototype(classProto, thisTarget) {
|
|
306
|
-
if (_objGetPrototypeOf$1) {
|
|
307
|
-
var visited = [];
|
|
308
|
-
var thisProto = _getObjProto$1(thisTarget);
|
|
309
|
-
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
|
|
310
|
-
if (thisProto === classProto) {
|
|
311
|
-
return true;
|
|
312
|
-
}
|
|
313
|
-
visited.push(thisProto);
|
|
314
|
-
thisProto = _getObjProto$1(thisProto);
|
|
315
|
-
}
|
|
316
|
-
return false;
|
|
317
|
-
}
|
|
318
|
-
return true;
|
|
319
|
-
}
|
|
320
|
-
function _getObjName(target, unknownValue) {
|
|
321
|
-
if (_hasOwnProperty(target, Prototype)) {
|
|
322
|
-
return target.name || unknownValue || UnknownValue;
|
|
323
|
-
}
|
|
324
|
-
return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
|
|
325
|
-
}
|
|
326
|
-
function dynamicProto(theClass, target, delegateFunc, options) {
|
|
327
|
-
if (!_hasOwnProperty(theClass, Prototype)) {
|
|
328
|
-
_throwTypeError("theClass is an invalid class definition.");
|
|
329
|
-
}
|
|
330
|
-
var classProto = theClass[Prototype];
|
|
331
|
-
if (!_checkPrototype(classProto, target)) {
|
|
332
|
-
_throwTypeError("[" + _getObjName(theClass) + "] not in hierarchy of [" + _getObjName(target) + "]");
|
|
333
|
-
}
|
|
334
|
-
var className = null;
|
|
335
|
-
if (_hasOwnProperty(classProto, DynClassName)) {
|
|
336
|
-
className = classProto[DynClassName];
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _gblInst.n;
|
|
340
|
-
_gblInst.n++;
|
|
341
|
-
classProto[DynClassName] = className;
|
|
342
|
-
}
|
|
343
|
-
var perfOptions = dynamicProto[DynProtoDefaultOptions];
|
|
344
|
-
var useBaseInst = !!perfOptions[strUseBaseInst];
|
|
345
|
-
if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
|
|
346
|
-
useBaseInst = !!options[strUseBaseInst];
|
|
347
|
-
}
|
|
348
|
-
var instFuncs = _getInstanceFuncs(target);
|
|
349
|
-
var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
|
|
350
|
-
delegateFunc(target, baseFuncs);
|
|
351
|
-
var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
|
|
352
|
-
if (setInstanceFunc && options) {
|
|
353
|
-
setInstanceFunc = !!options[strSetInstFuncs];
|
|
354
|
-
}
|
|
355
|
-
_populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
|
|
356
|
-
}
|
|
357
|
-
dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
|
|
358
|
-
|
|
359
|
-
var _DYN_INITIALIZE = "initialize";
|
|
360
|
-
var _DYN_NAME = "name";
|
|
361
|
-
var _DYN_IDENTIFIER = "identifier";
|
|
362
|
-
var _DYN_PUSH = "push";
|
|
363
|
-
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
364
|
-
var _DYN_CONFIG = "config";
|
|
365
|
-
var _DYN_LOGGER = "logger";
|
|
366
|
-
var _DYN_LENGTH = "length";
|
|
367
|
-
var _DYN_TIME = "time";
|
|
368
|
-
var _DYN_PROCESS_NEXT = "processNext";
|
|
369
|
-
var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
|
|
370
|
-
var _DYN_GET_PLUGIN = "getPlugin";
|
|
371
|
-
var _DYN_SPLICE = "splice";
|
|
372
|
-
var _DYN_TEARDOWN = "teardown";
|
|
373
|
-
var _DYN_MESSAGE_ID = "messageId";
|
|
374
|
-
var _DYN_MESSAGE = "message";
|
|
375
|
-
var _DYN_IS_ASYNC = "isAsync";
|
|
376
|
-
var _DYN__DO_TEARDOWN = "_doTeardown";
|
|
377
|
-
var _DYN_UPDATE = "update";
|
|
378
|
-
var _DYN_GET_NEXT = "getNext";
|
|
379
|
-
var _DYN_DIAG_LOG = "diagLog";
|
|
380
|
-
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
381
|
-
var _DYN_CREATE_NEW = "createNew";
|
|
382
|
-
var _DYN_INDEX_OF = "indexOf";
|
|
383
|
-
var _DYN_USER_AGENT = "userAgent";
|
|
384
|
-
var _DYN_SPLIT = "split";
|
|
385
|
-
var _DYN_NODE_TYPE = "nodeType";
|
|
386
|
-
var _DYN_APPLY = "apply";
|
|
387
|
-
var _DYN_REPLACE = "replace";
|
|
388
|
-
var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
|
|
389
|
-
var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
|
|
390
|
-
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
391
|
-
var _DYN_CALL = "call";
|
|
392
|
-
var _DYN_TYPE = "type";
|
|
393
|
-
var _DYN_HANDLER = "handler";
|
|
394
|
-
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
395
|
-
var _DYN_GET_CTX = "getCtx";
|
|
396
|
-
var _DYN_SET_CTX = "setCtx";
|
|
397
|
-
var _DYN_COMPLETE = "complete";
|
|
398
|
-
|
|
399
|
-
var STR_EMPTY$2 = "";
|
|
400
|
-
var STR_CORE = "core";
|
|
401
|
-
var STR_DISABLED = "disabled";
|
|
402
|
-
var STR_EXTENSION_CONFIG = "extensionConfig";
|
|
403
|
-
var STR_PROCESS_TELEMETRY = "processTelemetry";
|
|
404
|
-
var STR_PRIORITY = "priority";
|
|
405
|
-
var STR_ERROR_TO_CONSOLE = "errorToConsole";
|
|
406
|
-
var STR_WARN_TO_CONSOLE = "warnToConsole";
|
|
407
|
-
var STR_GET_PERF_MGR = "getPerfMgr";
|
|
408
|
-
|
|
409
|
-
var cStrStartsWith = "startsWith";
|
|
410
|
-
var strIndexOf = "indexOf";
|
|
411
|
-
var cStrTrim = "trim";
|
|
412
|
-
var strToString = "toString";
|
|
413
|
-
var str__Proto = "__proto__";
|
|
414
|
-
var strConstructor = "constructor";
|
|
415
|
-
var _objDefineProperty$1 = ObjDefineProperty;
|
|
416
|
-
var _objFreeze = ObjClass.freeze;
|
|
417
|
-
var _objKeys = ObjClass.keys;
|
|
418
|
-
var StringProto = String[strShimPrototype];
|
|
419
|
-
var _strTrim = StringProto[cStrTrim];
|
|
420
|
-
var _strStartsWith = StringProto[cStrStartsWith];
|
|
421
|
-
var _isArray = Array.isArray;
|
|
422
|
-
var _objToString = ObjProto[strToString];
|
|
423
|
-
var _fnToString = ObjHasOwnProperty[strToString];
|
|
424
|
-
var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
|
|
425
|
-
var rCamelCase = /-([a-z])/g;
|
|
426
|
-
var rNormalizeInvalid = /([^\w\d_$])/g;
|
|
427
|
-
var rLeadingNumeric = /^(\d+[\w\d_$])/;
|
|
428
|
-
var _objGetPrototypeOf = Object["getPrototypeOf"];
|
|
429
|
-
function _getObjProto(target) {
|
|
430
|
-
if (target) {
|
|
431
|
-
if (_objGetPrototypeOf) {
|
|
432
|
-
return _objGetPrototypeOf(target);
|
|
433
|
-
}
|
|
434
|
-
var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
|
|
435
|
-
if (newProto) {
|
|
436
|
-
return newProto;
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
return null;
|
|
440
|
-
}
|
|
441
|
-
function isUndefined(value) {
|
|
442
|
-
return value === undefined || typeof value === strShimUndefined;
|
|
443
|
-
}
|
|
444
|
-
function isNullOrUndefined(value) {
|
|
445
|
-
return (value === null || isUndefined(value));
|
|
446
|
-
}
|
|
447
|
-
function hasOwnProperty(obj, prop) {
|
|
448
|
-
return !!(obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop));
|
|
449
|
-
}
|
|
450
|
-
function isObject(value) {
|
|
451
|
-
return !!(value && typeof value === strShimObject);
|
|
452
|
-
}
|
|
453
|
-
function isFunction(value) {
|
|
454
|
-
return !!(value && typeof value === strShimFunction);
|
|
455
|
-
}
|
|
456
|
-
function normalizeJsName(name) {
|
|
457
|
-
var value = name;
|
|
458
|
-
if (value && isString(value)) {
|
|
459
|
-
value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
|
|
460
|
-
return letter.toUpperCase();
|
|
461
|
-
});
|
|
462
|
-
value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
|
|
463
|
-
value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
|
|
464
|
-
return "_" + match;
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
return value;
|
|
468
|
-
}
|
|
469
|
-
function objForEachKey(target, callbackfn) {
|
|
470
|
-
if (target) {
|
|
471
|
-
for (var prop in target) {
|
|
472
|
-
if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
|
|
473
|
-
callbackfn[_DYN_CALL ](target, prop, target[prop]);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
function strStartsWith(value, checkValue) {
|
|
479
|
-
var result = false;
|
|
480
|
-
if (value && checkValue && !(result = value === checkValue)) {
|
|
481
|
-
result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);
|
|
482
|
-
}
|
|
483
|
-
return result;
|
|
484
|
-
}
|
|
485
|
-
function _strStartsWithPoly(value, checkValue) {
|
|
486
|
-
var result = false;
|
|
487
|
-
var chkLen = checkValue ? checkValue[_DYN_LENGTH ] : 0;
|
|
488
|
-
if (value && chkLen && value[_DYN_LENGTH ] >= chkLen && !(result = value === checkValue)) {
|
|
489
|
-
for (var lp = 0; lp < chkLen; lp++) {
|
|
490
|
-
if (value[lp] !== checkValue[lp]) {
|
|
491
|
-
return false;
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
result = true;
|
|
495
|
-
}
|
|
496
|
-
return result;
|
|
497
|
-
}
|
|
498
|
-
function strContains(value, search) {
|
|
499
|
-
if (value && search) {
|
|
500
|
-
return value[_DYN_INDEX_OF ](search) !== -1;
|
|
501
|
-
}
|
|
502
|
-
return false;
|
|
503
|
-
}
|
|
504
|
-
var isArray = _isArray || _isArrayPoly;
|
|
505
|
-
function _isArrayPoly(obj) {
|
|
506
|
-
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
|
|
507
|
-
}
|
|
508
|
-
function isString(value) {
|
|
509
|
-
return typeof value === "string";
|
|
510
|
-
}
|
|
511
|
-
function isNumber(value) {
|
|
512
|
-
return typeof value === "number";
|
|
513
|
-
}
|
|
514
|
-
function isBoolean(value) {
|
|
515
|
-
return typeof value === "boolean";
|
|
516
|
-
}
|
|
517
|
-
function isPlainObject(value) {
|
|
518
|
-
var result = false;
|
|
519
|
-
if (value && typeof value === "object") {
|
|
520
|
-
var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
|
|
521
|
-
if (!proto) {
|
|
522
|
-
result = true;
|
|
523
|
-
}
|
|
524
|
-
else {
|
|
525
|
-
if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
|
|
526
|
-
proto = proto[strConstructor];
|
|
527
|
-
}
|
|
528
|
-
result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
return result;
|
|
532
|
-
}
|
|
533
|
-
function arrForEach(arr, callbackfn, thisArg) {
|
|
534
|
-
var len = arr[_DYN_LENGTH ];
|
|
535
|
-
try {
|
|
536
|
-
for (var idx = 0; idx < len; idx++) {
|
|
537
|
-
if (idx in arr) {
|
|
538
|
-
if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
|
|
539
|
-
break;
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
catch (e) {
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
function arrIndexOf(arr, searchElement, fromIndex) {
|
|
548
|
-
if (arr) {
|
|
549
|
-
if (arr[strIndexOf]) {
|
|
550
|
-
return arr[strIndexOf](searchElement, fromIndex);
|
|
551
|
-
}
|
|
552
|
-
var len = arr[_DYN_LENGTH ];
|
|
553
|
-
var from = fromIndex || 0;
|
|
554
|
-
try {
|
|
555
|
-
for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
|
|
556
|
-
if (lp in arr && arr[lp] === searchElement) {
|
|
557
|
-
return lp;
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
catch (e) {
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
return -1;
|
|
565
|
-
}
|
|
566
|
-
function strTrim(str) {
|
|
567
|
-
if (str) {
|
|
568
|
-
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|(?=\s)\s+$/g, STR_EMPTY$2) : str);
|
|
569
|
-
}
|
|
570
|
-
return str;
|
|
571
|
-
}
|
|
572
|
-
var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
|
|
573
|
-
var _objKeysDontEnums = [
|
|
574
|
-
"toString",
|
|
575
|
-
"toLocaleString",
|
|
576
|
-
"valueOf",
|
|
577
|
-
"hasOwnProperty",
|
|
578
|
-
"isPrototypeOf",
|
|
579
|
-
"propertyIsEnumerable",
|
|
580
|
-
"constructor"
|
|
581
|
-
];
|
|
582
|
-
function objKeys(obj) {
|
|
583
|
-
var objType = typeof obj;
|
|
584
|
-
if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
|
|
585
|
-
throwTypeError("objKeys called on non-object");
|
|
586
|
-
}
|
|
587
|
-
if (!_objKeysHasDontEnumBug && _objKeys) {
|
|
588
|
-
return _objKeys(obj);
|
|
589
|
-
}
|
|
590
|
-
var result = [];
|
|
591
|
-
for (var prop in obj) {
|
|
592
|
-
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
|
|
593
|
-
result[_DYN_PUSH ](prop);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
if (_objKeysHasDontEnumBug) {
|
|
597
|
-
var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH ];
|
|
598
|
-
for (var lp = 0; lp < dontEnumsLength; lp++) {
|
|
599
|
-
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
|
|
600
|
-
result[_DYN_PUSH ](_objKeysDontEnums[lp]);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
return result;
|
|
605
|
-
}
|
|
606
|
-
function objDefineAccessors(target, prop, getProp, setProp) {
|
|
607
|
-
if (_objDefineProperty$1) {
|
|
608
|
-
try {
|
|
609
|
-
var descriptor = {
|
|
610
|
-
enumerable: true,
|
|
611
|
-
configurable: true
|
|
612
|
-
};
|
|
613
|
-
if (getProp) {
|
|
614
|
-
descriptor.get = getProp;
|
|
615
|
-
}
|
|
616
|
-
if (setProp) {
|
|
617
|
-
descriptor.set = setProp;
|
|
618
|
-
}
|
|
619
|
-
_objDefineProperty$1(target, prop, descriptor);
|
|
620
|
-
return true;
|
|
621
|
-
}
|
|
622
|
-
catch (e) {
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
return false;
|
|
626
|
-
}
|
|
627
|
-
function _doNothing(value) {
|
|
628
|
-
return value;
|
|
629
|
-
}
|
|
630
|
-
function deepFreeze(obj) {
|
|
631
|
-
if (_objFreeze) {
|
|
632
|
-
objForEachKey(obj, function (name, value) {
|
|
633
|
-
if (isArray(value) || isObject(value)) {
|
|
634
|
-
_objFreeze(value);
|
|
635
|
-
}
|
|
636
|
-
});
|
|
637
|
-
}
|
|
638
|
-
return objFreeze(obj);
|
|
639
|
-
}
|
|
640
|
-
var objFreeze = _objFreeze || _doNothing;
|
|
641
|
-
function dateNow() {
|
|
642
|
-
var dt = Date;
|
|
643
|
-
return dt.now ? dt.now() : new dt().getTime();
|
|
644
|
-
}
|
|
645
|
-
function setValue(target, field, value, valChk, srcChk) {
|
|
646
|
-
var theValue = value;
|
|
647
|
-
if (target) {
|
|
648
|
-
theValue = target[field];
|
|
649
|
-
if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {
|
|
650
|
-
theValue = value;
|
|
651
|
-
target[field] = theValue;
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
return theValue;
|
|
655
|
-
}
|
|
656
|
-
function getCfgValue(theValue, defaultValue) {
|
|
657
|
-
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
658
|
-
}
|
|
659
|
-
function _createProxyFunction(source, funcName) {
|
|
660
|
-
var srcFunc = null;
|
|
661
|
-
var src = null;
|
|
662
|
-
if (isFunction(source)) {
|
|
663
|
-
srcFunc = source;
|
|
664
|
-
}
|
|
665
|
-
else {
|
|
666
|
-
src = source;
|
|
667
|
-
}
|
|
668
|
-
return function () {
|
|
669
|
-
var originalArguments = arguments;
|
|
670
|
-
if (srcFunc) {
|
|
671
|
-
src = srcFunc();
|
|
672
|
-
}
|
|
673
|
-
if (src) {
|
|
674
|
-
return src[funcName][_DYN_APPLY ](src, originalArguments);
|
|
675
|
-
}
|
|
676
|
-
};
|
|
677
|
-
}
|
|
678
|
-
function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {
|
|
679
|
-
if (target && name && source) {
|
|
680
|
-
if (overwriteTarget !== false || isUndefined(target[name])) {
|
|
681
|
-
target[name] = _createProxyFunction(source, theFunc);
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
function optimizeObject(theObject) {
|
|
686
|
-
if (theObject && ObjAssign) {
|
|
687
|
-
theObject = ObjClass(ObjAssign({}, theObject));
|
|
688
|
-
}
|
|
689
|
-
return theObject;
|
|
690
|
-
}
|
|
691
|
-
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
692
|
-
var theArgs = arguments;
|
|
693
|
-
var extended = theArgs[0] || {};
|
|
694
|
-
var argLen = theArgs[_DYN_LENGTH ];
|
|
695
|
-
var deep = false;
|
|
696
|
-
var idx = 1;
|
|
697
|
-
if (argLen > 0 && isBoolean(extended)) {
|
|
698
|
-
deep = extended;
|
|
699
|
-
extended = theArgs[idx] || {};
|
|
700
|
-
idx++;
|
|
701
|
-
}
|
|
702
|
-
if (!isObject(extended)) {
|
|
703
|
-
extended = {};
|
|
704
|
-
}
|
|
705
|
-
for (; idx < argLen; idx++) {
|
|
706
|
-
var arg = theArgs[idx];
|
|
707
|
-
var isArgArray = isArray(arg);
|
|
708
|
-
var isArgObj = isObject(arg);
|
|
709
|
-
for (var prop in arg) {
|
|
710
|
-
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
|
|
711
|
-
if (!propOk) {
|
|
712
|
-
continue;
|
|
713
|
-
}
|
|
714
|
-
var newValue = arg[prop];
|
|
715
|
-
var isNewArray = void 0;
|
|
716
|
-
if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {
|
|
717
|
-
var clone = extended[prop];
|
|
718
|
-
if (isNewArray) {
|
|
719
|
-
if (!isArray(clone)) {
|
|
720
|
-
clone = [];
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
else if (!isPlainObject(clone)) {
|
|
724
|
-
clone = {};
|
|
725
|
-
}
|
|
726
|
-
newValue = objExtend(deep, clone, newValue);
|
|
727
|
-
}
|
|
728
|
-
if (newValue !== undefined) {
|
|
729
|
-
extended[prop] = newValue;
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
return extended;
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
function createEnumStyle(values) {
|
|
737
|
-
var enumClass = {};
|
|
738
|
-
objForEachKey(values, function (field, value) {
|
|
739
|
-
enumClass[field] = value;
|
|
740
|
-
enumClass[value] = field;
|
|
741
|
-
});
|
|
742
|
-
return deepFreeze(enumClass);
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
var EventsDiscardedReason = createEnumStyle({
|
|
746
|
-
Unknown: 0 ,
|
|
747
|
-
NonRetryableStatus: 1 ,
|
|
748
|
-
InvalidEvent: 2 ,
|
|
749
|
-
SizeLimitExceeded: 3 ,
|
|
750
|
-
KillSwitch: 4 ,
|
|
751
|
-
QueueFull: 5
|
|
752
|
-
});
|
|
753
|
-
|
|
754
|
-
var strWindow = "window";
|
|
755
|
-
var strDocument = "document";
|
|
756
|
-
var strNavigator = "navigator";
|
|
757
|
-
var strLocation = "location";
|
|
758
|
-
var strConsole = "console";
|
|
759
|
-
var strPerformance = "performance";
|
|
760
|
-
var strJSON = "JSON";
|
|
761
|
-
var strCrypto = "crypto";
|
|
762
|
-
var strMsCrypto = "msCrypto";
|
|
763
|
-
var strReactNative = "ReactNative";
|
|
764
|
-
var strMsie = "msie";
|
|
765
|
-
var strTrident = "trident/";
|
|
766
|
-
var strXMLHttpRequest = "XMLHttpRequest";
|
|
767
|
-
var _isTrident = null;
|
|
768
|
-
var _navUserAgentCheck = null;
|
|
769
|
-
var _enableMocks = false;
|
|
770
|
-
var _useXDomainRequest = null;
|
|
771
|
-
var _beaconsSupported = null;
|
|
772
|
-
function _hasProperty(theClass, property) {
|
|
773
|
-
var supported = false;
|
|
774
|
-
if (theClass) {
|
|
775
|
-
try {
|
|
776
|
-
supported = property in theClass;
|
|
777
|
-
if (!supported) {
|
|
778
|
-
var proto = theClass[strShimPrototype];
|
|
779
|
-
if (proto) {
|
|
780
|
-
supported = property in proto;
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
catch (e) {
|
|
785
|
-
}
|
|
786
|
-
if (!supported) {
|
|
787
|
-
try {
|
|
788
|
-
var tmp = new theClass();
|
|
789
|
-
supported = !isUndefined(tmp[property]);
|
|
790
|
-
}
|
|
791
|
-
catch (e) {
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
return supported;
|
|
796
|
-
}
|
|
797
|
-
function getGlobalInst(name) {
|
|
798
|
-
var gbl = getGlobal();
|
|
799
|
-
if (gbl && gbl[name]) {
|
|
800
|
-
return gbl[name];
|
|
801
|
-
}
|
|
802
|
-
if (name === strWindow && hasWindow()) {
|
|
803
|
-
return window;
|
|
804
|
-
}
|
|
805
|
-
return null;
|
|
806
|
-
}
|
|
807
|
-
function hasWindow() {
|
|
808
|
-
return Boolean(typeof window === strShimObject && window);
|
|
809
|
-
}
|
|
810
|
-
function getWindow() {
|
|
811
|
-
if (hasWindow()) {
|
|
812
|
-
return window;
|
|
813
|
-
}
|
|
814
|
-
return getGlobalInst(strWindow);
|
|
815
|
-
}
|
|
816
|
-
function hasDocument() {
|
|
817
|
-
return Boolean(typeof document === strShimObject && document);
|
|
818
|
-
}
|
|
819
|
-
function getDocument() {
|
|
820
|
-
if (hasDocument()) {
|
|
821
|
-
return document;
|
|
822
|
-
}
|
|
823
|
-
return getGlobalInst(strDocument);
|
|
824
|
-
}
|
|
825
|
-
function hasNavigator() {
|
|
826
|
-
return Boolean(typeof navigator === strShimObject && navigator);
|
|
827
|
-
}
|
|
828
|
-
function getNavigator() {
|
|
829
|
-
if (hasNavigator()) {
|
|
830
|
-
return navigator;
|
|
831
|
-
}
|
|
832
|
-
return getGlobalInst(strNavigator);
|
|
833
|
-
}
|
|
834
|
-
function getLocation(checkForMock) {
|
|
835
|
-
if (checkForMock && _enableMocks) {
|
|
836
|
-
var mockLocation = getGlobalInst("__mockLocation");
|
|
837
|
-
if (mockLocation) {
|
|
838
|
-
return mockLocation;
|
|
839
|
-
}
|
|
840
|
-
}
|
|
841
|
-
if (typeof location === strShimObject && location) {
|
|
842
|
-
return location;
|
|
843
|
-
}
|
|
844
|
-
return getGlobalInst(strLocation);
|
|
845
|
-
}
|
|
846
|
-
function getConsole() {
|
|
847
|
-
if (typeof console !== strShimUndefined) {
|
|
848
|
-
return console;
|
|
849
|
-
}
|
|
850
|
-
return getGlobalInst(strConsole);
|
|
851
|
-
}
|
|
852
|
-
function getPerformance() {
|
|
853
|
-
return getGlobalInst(strPerformance);
|
|
854
|
-
}
|
|
855
|
-
function hasJSON() {
|
|
856
|
-
return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);
|
|
857
|
-
}
|
|
858
|
-
function getJSON() {
|
|
859
|
-
if (hasJSON()) {
|
|
860
|
-
return JSON || getGlobalInst(strJSON);
|
|
861
|
-
}
|
|
862
|
-
return null;
|
|
863
|
-
}
|
|
864
|
-
function getCrypto() {
|
|
865
|
-
return getGlobalInst(strCrypto);
|
|
866
|
-
}
|
|
867
|
-
function getMsCrypto() {
|
|
868
|
-
return getGlobalInst(strMsCrypto);
|
|
869
|
-
}
|
|
870
|
-
function isReactNative() {
|
|
871
|
-
var nav = getNavigator();
|
|
872
|
-
if (nav && nav.product) {
|
|
873
|
-
return nav.product === strReactNative;
|
|
874
|
-
}
|
|
875
|
-
return false;
|
|
876
|
-
}
|
|
877
|
-
function isIE() {
|
|
878
|
-
var nav = getNavigator();
|
|
879
|
-
if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
|
|
880
|
-
_navUserAgentCheck = nav[_DYN_USER_AGENT ];
|
|
881
|
-
var userAgent = (_navUserAgentCheck || STR_EMPTY$2)[_DYN_TO_LOWER_CASE ]();
|
|
882
|
-
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
883
|
-
}
|
|
884
|
-
return _isTrident;
|
|
885
|
-
}
|
|
886
|
-
function dumpObj(object) {
|
|
887
|
-
var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
|
|
888
|
-
var propertyValueDump = STR_EMPTY$2;
|
|
889
|
-
if (objectTypeDump === "[object Error]") {
|
|
890
|
-
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME ] + "'";
|
|
891
|
-
}
|
|
892
|
-
else if (hasJSON()) {
|
|
893
|
-
propertyValueDump = getJSON().stringify(object);
|
|
894
|
-
}
|
|
895
|
-
return objectTypeDump + propertyValueDump;
|
|
896
|
-
}
|
|
897
|
-
function isBeaconsSupported() {
|
|
898
|
-
if (_beaconsSupported === null) {
|
|
899
|
-
_beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);
|
|
900
|
-
}
|
|
901
|
-
return _beaconsSupported;
|
|
902
|
-
}
|
|
903
|
-
function isFetchSupported(withKeepAlive) {
|
|
904
|
-
var isSupported = false;
|
|
905
|
-
try {
|
|
906
|
-
isSupported = !!getGlobalInst("fetch");
|
|
907
|
-
var request = getGlobalInst("Request");
|
|
908
|
-
if (isSupported && withKeepAlive && request) {
|
|
909
|
-
isSupported = _hasProperty(request, "keepalive");
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
catch (e) {
|
|
913
|
-
}
|
|
914
|
-
return isSupported;
|
|
915
|
-
}
|
|
916
|
-
function useXDomainRequest() {
|
|
917
|
-
if (_useXDomainRequest === null) {
|
|
918
|
-
_useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);
|
|
919
|
-
if (_useXDomainRequest && isXhrSupported()) {
|
|
920
|
-
_useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), "withCredentials");
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
return _useXDomainRequest;
|
|
924
|
-
}
|
|
925
|
-
function isXhrSupported() {
|
|
926
|
-
var isSupported = false;
|
|
927
|
-
try {
|
|
928
|
-
var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);
|
|
929
|
-
isSupported = !!xmlHttpRequest;
|
|
930
|
-
}
|
|
931
|
-
catch (e) {
|
|
932
|
-
}
|
|
933
|
-
return isSupported;
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
var _aiNamespace = null;
|
|
937
|
-
function _getExtensionNamespace() {
|
|
938
|
-
var target = getGlobalInst("Microsoft");
|
|
939
|
-
if (target) {
|
|
940
|
-
_aiNamespace = target["ApplicationInsights"];
|
|
941
|
-
}
|
|
942
|
-
return _aiNamespace;
|
|
943
|
-
}
|
|
944
|
-
function getDebugExt(config) {
|
|
945
|
-
var ns = _aiNamespace;
|
|
946
|
-
if (!ns && config.disableDbgExt !== true) {
|
|
947
|
-
ns = _aiNamespace || _getExtensionNamespace();
|
|
948
|
-
}
|
|
949
|
-
return ns ? ns["ChromeDbgExt"] : null;
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
var AiNonUserActionablePrefix = "AI (Internal): ";
|
|
953
|
-
var AiUserActionablePrefix = "AI: ";
|
|
954
|
-
var AIInternalMessagePrefix = "AITR_";
|
|
955
|
-
function _sanitizeDiagnosticText(text) {
|
|
956
|
-
if (text) {
|
|
957
|
-
return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$2) + "\"";
|
|
958
|
-
}
|
|
959
|
-
return STR_EMPTY$2;
|
|
960
|
-
}
|
|
961
|
-
function _logToConsole(func, message) {
|
|
962
|
-
var theConsole = getConsole();
|
|
963
|
-
if (!!theConsole) {
|
|
964
|
-
var logFunc = "log";
|
|
965
|
-
if (theConsole[func]) {
|
|
966
|
-
logFunc = func;
|
|
967
|
-
}
|
|
968
|
-
if (isFunction(theConsole[logFunc])) {
|
|
969
|
-
theConsole[logFunc](message);
|
|
970
|
-
}
|
|
971
|
-
}
|
|
972
|
-
}
|
|
973
|
-
var _InternalLogMessage = /** @class */ (function () {
|
|
974
|
-
function _InternalLogMessage(msgId, msg, isUserAct, properties) {
|
|
975
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
976
|
-
var _self = this;
|
|
977
|
-
_self[_DYN_MESSAGE_ID ] = msgId;
|
|
978
|
-
_self[_DYN_MESSAGE ] =
|
|
979
|
-
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
980
|
-
msgId;
|
|
981
|
-
var strProps = STR_EMPTY$2;
|
|
982
|
-
if (hasJSON()) {
|
|
983
|
-
strProps = getJSON().stringify(properties);
|
|
984
|
-
}
|
|
985
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$2) +
|
|
986
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$2);
|
|
987
|
-
_self[_DYN_MESSAGE ] += diagnosticText;
|
|
988
|
-
}
|
|
989
|
-
_InternalLogMessage.dataType = "MessageData";
|
|
990
|
-
return _InternalLogMessage;
|
|
991
|
-
}());
|
|
992
|
-
function safeGetLogger(core, config) {
|
|
993
|
-
return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
|
|
994
|
-
}
|
|
995
|
-
var DiagnosticLogger = /** @class */ (function () {
|
|
996
|
-
function DiagnosticLogger(config) {
|
|
997
|
-
this.identifier = "DiagnosticLogger";
|
|
998
|
-
this.queue = [];
|
|
999
|
-
var _messageCount = 0;
|
|
1000
|
-
var _messageLogged = {};
|
|
1001
|
-
var _loggingLevelConsole;
|
|
1002
|
-
var _loggingLevelTelemetry;
|
|
1003
|
-
var _maxInternalMessageLimit;
|
|
1004
|
-
var _enableDebug;
|
|
1005
|
-
dynamicProto(DiagnosticLogger, this, function (_self) {
|
|
1006
|
-
_setDefaultsFromConfig(config || {});
|
|
1007
|
-
_self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
|
|
1008
|
-
_self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
|
|
1009
|
-
_self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
|
|
1010
|
-
_self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebug; };
|
|
1011
|
-
_self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
|
|
1012
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
1013
|
-
var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
|
|
1014
|
-
if (_enableDebug) {
|
|
1015
|
-
throw dumpObj(message);
|
|
1016
|
-
}
|
|
1017
|
-
else {
|
|
1018
|
-
var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
|
|
1019
|
-
if (!isUndefined(message[_DYN_MESSAGE ])) {
|
|
1020
|
-
if (isUserAct) {
|
|
1021
|
-
var messageKey = +message[_DYN_MESSAGE_ID ];
|
|
1022
|
-
if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
|
|
1023
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
1024
|
-
_messageLogged[messageKey] = true;
|
|
1025
|
-
}
|
|
1026
|
-
}
|
|
1027
|
-
else {
|
|
1028
|
-
if (_loggingLevelConsole >= severity) {
|
|
1029
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
1030
|
-
}
|
|
1031
|
-
}
|
|
1032
|
-
_logInternalMessage(severity, message);
|
|
1033
|
-
}
|
|
1034
|
-
else {
|
|
1035
|
-
_debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
};
|
|
1039
|
-
_self[STR_WARN_TO_CONSOLE ] = function (message) {
|
|
1040
|
-
_logToConsole("warn", message);
|
|
1041
|
-
_debugExtMsg("warning", message);
|
|
1042
|
-
};
|
|
1043
|
-
_self[STR_ERROR_TO_CONSOLE ] = function (message) {
|
|
1044
|
-
_logToConsole("error", message);
|
|
1045
|
-
_debugExtMsg("error", message);
|
|
1046
|
-
};
|
|
1047
|
-
_self.resetInternalMessageCount = function () {
|
|
1048
|
-
_messageCount = 0;
|
|
1049
|
-
_messageLogged = {};
|
|
1050
|
-
};
|
|
1051
|
-
_self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
|
|
1052
|
-
function _logInternalMessage(severity, message) {
|
|
1053
|
-
if (_areInternalMessagesThrottled()) {
|
|
1054
|
-
return;
|
|
1055
|
-
}
|
|
1056
|
-
var logMessage = true;
|
|
1057
|
-
var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
|
|
1058
|
-
if (_messageLogged[messageKey]) {
|
|
1059
|
-
logMessage = false;
|
|
1060
|
-
}
|
|
1061
|
-
else {
|
|
1062
|
-
_messageLogged[messageKey] = true;
|
|
1063
|
-
}
|
|
1064
|
-
if (logMessage) {
|
|
1065
|
-
if (severity <= _loggingLevelTelemetry) {
|
|
1066
|
-
_self.queue[_DYN_PUSH ](message);
|
|
1067
|
-
_messageCount++;
|
|
1068
|
-
_debugExtMsg((severity === 1 ? "error" : "warn"), message);
|
|
1069
|
-
}
|
|
1070
|
-
if (_messageCount === _maxInternalMessageLimit) {
|
|
1071
|
-
var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
|
|
1072
|
-
var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
|
|
1073
|
-
_self.queue[_DYN_PUSH ](throttleMessage);
|
|
1074
|
-
if (severity === 1 ) {
|
|
1075
|
-
_self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
|
|
1076
|
-
}
|
|
1077
|
-
else {
|
|
1078
|
-
_self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
|
|
1079
|
-
}
|
|
1080
|
-
}
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
function _setDefaultsFromConfig(config) {
|
|
1084
|
-
_loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
|
|
1085
|
-
_loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
|
|
1086
|
-
_maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
|
|
1087
|
-
_enableDebug = getCfgValue(config.enableDebug, getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false));
|
|
1088
|
-
}
|
|
1089
|
-
function _areInternalMessagesThrottled() {
|
|
1090
|
-
return _messageCount >= _maxInternalMessageLimit;
|
|
1091
|
-
}
|
|
1092
|
-
function _debugExtMsg(name, data) {
|
|
1093
|
-
var dbgExt = getDebugExt(config || {});
|
|
1094
|
-
if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
|
|
1095
|
-
dbgExt[_DYN_DIAG_LOG ](name, data);
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
});
|
|
1099
|
-
}
|
|
1100
|
-
DiagnosticLogger.__ieDyn=1;
|
|
1101
|
-
return DiagnosticLogger;
|
|
1102
|
-
}());
|
|
1103
|
-
function _getLogger(logger) {
|
|
1104
|
-
return (logger || new DiagnosticLogger());
|
|
1105
|
-
}
|
|
1106
|
-
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1107
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
1108
|
-
_getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1109
|
-
}
|
|
1110
|
-
function _warnToConsole(logger, message) {
|
|
1111
|
-
_getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
|
|
1112
|
-
}
|
|
1113
|
-
|
|
1114
|
-
var strExecutionContextKey = "ctx";
|
|
1115
|
-
var strParentContextKey = "ParentContextKey";
|
|
1116
|
-
var strChildrenContextKey = "ChildrenContextKey";
|
|
1117
|
-
var PerfEvent = /** @class */ (function () {
|
|
1118
|
-
function PerfEvent(name, payloadDetails, isAsync) {
|
|
1119
|
-
var _self = this;
|
|
1120
|
-
var accessorDefined = false;
|
|
1121
|
-
_self.start = dateNow();
|
|
1122
|
-
_self[_DYN_NAME ] = name;
|
|
1123
|
-
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
1124
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
1125
|
-
if (isFunction(payloadDetails)) {
|
|
1126
|
-
var theDetails_1;
|
|
1127
|
-
accessorDefined = objDefineAccessors(_self, "payload", function () {
|
|
1128
|
-
if (!theDetails_1 && isFunction(payloadDetails)) {
|
|
1129
|
-
theDetails_1 = payloadDetails();
|
|
1130
|
-
payloadDetails = null;
|
|
1131
|
-
}
|
|
1132
|
-
return theDetails_1;
|
|
1133
|
-
});
|
|
1134
|
-
}
|
|
1135
|
-
_self[_DYN_GET_CTX ] = function (key) {
|
|
1136
|
-
if (key) {
|
|
1137
|
-
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
1138
|
-
return _self[key];
|
|
1139
|
-
}
|
|
1140
|
-
return (_self[strExecutionContextKey] || {})[key];
|
|
1141
|
-
}
|
|
1142
|
-
return null;
|
|
1143
|
-
};
|
|
1144
|
-
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
1145
|
-
if (key) {
|
|
1146
|
-
if (key === PerfEvent[strParentContextKey]) {
|
|
1147
|
-
if (!_self[key]) {
|
|
1148
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
1149
|
-
}
|
|
1150
|
-
_self[key] = value;
|
|
1151
|
-
}
|
|
1152
|
-
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
1153
|
-
_self[key] = value;
|
|
1154
|
-
}
|
|
1155
|
-
else {
|
|
1156
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
1157
|
-
ctx[key] = value;
|
|
1158
|
-
}
|
|
1159
|
-
}
|
|
1160
|
-
};
|
|
1161
|
-
_self[_DYN_COMPLETE ] = function () {
|
|
1162
|
-
var childTime = 0;
|
|
1163
|
-
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1164
|
-
if (isArray(childEvts)) {
|
|
1165
|
-
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
1166
|
-
var childEvt = childEvts[lp];
|
|
1167
|
-
if (childEvt) {
|
|
1168
|
-
childTime += childEvt[_DYN_TIME ];
|
|
1169
|
-
}
|
|
1170
|
-
}
|
|
1171
|
-
}
|
|
1172
|
-
_self[_DYN_TIME ] = dateNow() - _self.start;
|
|
1173
|
-
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
1174
|
-
_self[_DYN_COMPLETE ] = function () { };
|
|
1175
|
-
if (!accessorDefined && isFunction(payloadDetails)) {
|
|
1176
|
-
_self.payload = payloadDetails();
|
|
1177
|
-
}
|
|
1178
|
-
};
|
|
1179
|
-
}
|
|
1180
|
-
PerfEvent.ParentContextKey = "parent";
|
|
1181
|
-
PerfEvent.ChildrenContextKey = "childEvts";
|
|
1182
|
-
return PerfEvent;
|
|
1183
|
-
}());
|
|
1184
|
-
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
1185
|
-
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
1186
|
-
if (mgrSource) {
|
|
1187
|
-
var perfMgr = mgrSource;
|
|
1188
|
-
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
1189
|
-
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
1190
|
-
}
|
|
1191
|
-
if (perfMgr) {
|
|
1192
|
-
var perfEvt = void 0;
|
|
1193
|
-
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
1194
|
-
try {
|
|
1195
|
-
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
1196
|
-
if (perfEvt) {
|
|
1197
|
-
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
1198
|
-
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
1199
|
-
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
1200
|
-
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1201
|
-
if (!children) {
|
|
1202
|
-
children = [];
|
|
1203
|
-
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
1204
|
-
}
|
|
1205
|
-
children[_DYN_PUSH ](perfEvt);
|
|
1206
|
-
}
|
|
1207
|
-
}
|
|
1208
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
1209
|
-
return func(perfEvt);
|
|
1210
|
-
}
|
|
1211
|
-
}
|
|
1212
|
-
catch (ex) {
|
|
1213
|
-
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
1214
|
-
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
1215
|
-
}
|
|
1216
|
-
}
|
|
1217
|
-
finally {
|
|
1218
|
-
if (perfEvt) {
|
|
1219
|
-
perfMgr.fire(perfEvt);
|
|
1220
|
-
}
|
|
1221
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
1222
|
-
}
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
return func();
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
var UInt32Mask = 0x100000000;
|
|
1229
|
-
var MaxUInt32 = 0xffffffff;
|
|
1230
|
-
var _mwcSeeded = false;
|
|
1231
|
-
var _mwcW = 123456789;
|
|
1232
|
-
var _mwcZ = 987654321;
|
|
1233
|
-
function _mwcSeed(seedValue) {
|
|
1234
|
-
if (seedValue < 0) {
|
|
1235
|
-
seedValue >>>= 0;
|
|
1236
|
-
}
|
|
1237
|
-
_mwcW = (123456789 + seedValue) & MaxUInt32;
|
|
1238
|
-
_mwcZ = (987654321 - seedValue) & MaxUInt32;
|
|
1239
|
-
_mwcSeeded = true;
|
|
1240
|
-
}
|
|
1241
|
-
function _autoSeedMwc() {
|
|
1242
|
-
try {
|
|
1243
|
-
var now = dateNow() & 0x7fffffff;
|
|
1244
|
-
_mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
|
|
1245
|
-
}
|
|
1246
|
-
catch (e) {
|
|
1247
|
-
}
|
|
1248
|
-
}
|
|
1249
|
-
function random32(signed) {
|
|
1250
|
-
var value = 0;
|
|
1251
|
-
var c = getCrypto() || getMsCrypto();
|
|
1252
|
-
if (c && c.getRandomValues) {
|
|
1253
|
-
value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
|
|
1254
|
-
}
|
|
1255
|
-
if (value === 0 && isIE()) {
|
|
1256
|
-
if (!_mwcSeeded) {
|
|
1257
|
-
_autoSeedMwc();
|
|
1258
|
-
}
|
|
1259
|
-
value = mwcRandom32() & MaxUInt32;
|
|
1260
|
-
}
|
|
1261
|
-
if (value === 0) {
|
|
1262
|
-
value = Math.floor((UInt32Mask * Math.random()) | 0);
|
|
1263
|
-
}
|
|
1264
|
-
if (!signed) {
|
|
1265
|
-
value >>>= 0;
|
|
1266
|
-
}
|
|
1267
|
-
return value;
|
|
1268
|
-
}
|
|
1269
|
-
function mwcRandom32(signed) {
|
|
1270
|
-
_mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
|
|
1271
|
-
_mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
|
|
1272
|
-
var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
|
|
1273
|
-
if (!signed) {
|
|
1274
|
-
value >>>= 0;
|
|
1275
|
-
}
|
|
1276
|
-
return value;
|
|
1277
|
-
}
|
|
1278
|
-
function newId(maxLength) {
|
|
1279
|
-
if (maxLength === void 0) { maxLength = 22; }
|
|
1280
|
-
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1281
|
-
var number = random32() >>> 0;
|
|
1282
|
-
var chars = 0;
|
|
1283
|
-
var result = STR_EMPTY$2;
|
|
1284
|
-
while (result[_DYN_LENGTH ] < maxLength) {
|
|
1285
|
-
chars++;
|
|
1286
|
-
result += base64chars.charAt(number & 0x3F);
|
|
1287
|
-
number >>>= 6;
|
|
1288
|
-
if (chars === 5) {
|
|
1289
|
-
number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
|
|
1290
|
-
chars = 0;
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
return result;
|
|
1294
|
-
}
|
|
1295
|
-
|
|
1296
|
-
var _objDefineProperty = ObjDefineProperty;
|
|
1297
|
-
var version = '2.8.13';
|
|
1298
|
-
var instanceName = "." + newId(6);
|
|
1299
|
-
var _dataUid = 0;
|
|
1300
|
-
function _createAccessor(target, prop, value) {
|
|
1301
|
-
if (_objDefineProperty) {
|
|
1302
|
-
try {
|
|
1303
|
-
_objDefineProperty(target, prop, {
|
|
1304
|
-
value: value,
|
|
1305
|
-
enumerable: false,
|
|
1306
|
-
configurable: true
|
|
1307
|
-
});
|
|
1308
|
-
return true;
|
|
1309
|
-
}
|
|
1310
|
-
catch (e) {
|
|
1311
|
-
}
|
|
1312
|
-
}
|
|
1313
|
-
return false;
|
|
1314
|
-
}
|
|
1315
|
-
function _canAcceptData(target) {
|
|
1316
|
-
return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
|
|
1317
|
-
}
|
|
1318
|
-
function _getCache(data, target) {
|
|
1319
|
-
var theCache = target[data.id];
|
|
1320
|
-
if (!theCache) {
|
|
1321
|
-
theCache = {};
|
|
1322
|
-
try {
|
|
1323
|
-
if (_canAcceptData(target)) {
|
|
1324
|
-
if (!_createAccessor(target, data.id, theCache)) {
|
|
1325
|
-
target[data.id] = theCache;
|
|
1326
|
-
}
|
|
1327
|
-
}
|
|
1328
|
-
}
|
|
1329
|
-
catch (e) {
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
return theCache;
|
|
1333
|
-
}
|
|
1334
|
-
function createUniqueNamespace(name, includeVersion) {
|
|
1335
|
-
if (includeVersion === void 0) { includeVersion = false; }
|
|
1336
|
-
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$2) + instanceName);
|
|
1337
|
-
}
|
|
1338
|
-
function createElmNodeData(name) {
|
|
1339
|
-
var data = {
|
|
1340
|
-
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$2) + "." + version),
|
|
1341
|
-
accept: function (target) {
|
|
1342
|
-
return _canAcceptData(target);
|
|
1343
|
-
},
|
|
1344
|
-
get: function (target, name, defValue, addDefault) {
|
|
1345
|
-
var theCache = target[data.id];
|
|
1346
|
-
if (!theCache) {
|
|
1347
|
-
if (addDefault) {
|
|
1348
|
-
theCache = _getCache(data, target);
|
|
1349
|
-
theCache[normalizeJsName(name)] = defValue;
|
|
1350
|
-
}
|
|
1351
|
-
return defValue;
|
|
1352
|
-
}
|
|
1353
|
-
return theCache[normalizeJsName(name)];
|
|
1354
|
-
},
|
|
1355
|
-
kill: function (target, name) {
|
|
1356
|
-
if (target && target[name]) {
|
|
1357
|
-
try {
|
|
1358
|
-
delete target[name];
|
|
1359
|
-
}
|
|
1360
|
-
catch (e) {
|
|
1361
|
-
}
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1364
|
-
};
|
|
1365
|
-
return data;
|
|
1366
|
-
}
|
|
1367
|
-
|
|
1368
|
-
var strOnPrefix = "on";
|
|
1369
|
-
var strAttachEvent = "attachEvent";
|
|
1370
|
-
var strAddEventHelper = "addEventListener";
|
|
1371
|
-
var strDetachEvent = "detachEvent";
|
|
1372
|
-
var strRemoveEventListener = "removeEventListener";
|
|
1373
|
-
var strEvents = "events";
|
|
1374
|
-
var strVisibilityChangeEvt = "visibilitychange";
|
|
1375
|
-
var strPageHide = "pagehide";
|
|
1376
|
-
var strPageShow = "pageshow";
|
|
1377
|
-
var strUnload = "unload";
|
|
1378
|
-
var strBeforeUnload = "beforeunload";
|
|
1379
|
-
var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
|
|
1380
|
-
var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
|
|
1381
|
-
var rRemoveEmptyNs = /\.[\.]+/g;
|
|
1382
|
-
var rRemoveTrailingEmptyNs = /[\.]+$/;
|
|
1383
|
-
var _guid = 1;
|
|
1384
|
-
var elmNodeData = createElmNodeData("events");
|
|
1385
|
-
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1386
|
-
function _normalizeNamespace(name) {
|
|
1387
|
-
if (name && name[_DYN_REPLACE ]) {
|
|
1388
|
-
return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY$2);
|
|
1389
|
-
}
|
|
1390
|
-
return name;
|
|
1391
|
-
}
|
|
1392
|
-
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1393
|
-
var _a;
|
|
1394
|
-
if (evtNamespace) {
|
|
1395
|
-
var theNamespace_1 = STR_EMPTY$2;
|
|
1396
|
-
if (isArray(evtNamespace)) {
|
|
1397
|
-
theNamespace_1 = STR_EMPTY$2;
|
|
1398
|
-
arrForEach(evtNamespace, function (name) {
|
|
1399
|
-
name = _normalizeNamespace(name);
|
|
1400
|
-
if (name) {
|
|
1401
|
-
if (name[0] !== ".") {
|
|
1402
|
-
name = "." + name;
|
|
1403
|
-
}
|
|
1404
|
-
theNamespace_1 += name;
|
|
1405
|
-
}
|
|
1406
|
-
});
|
|
1407
|
-
}
|
|
1408
|
-
else {
|
|
1409
|
-
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1410
|
-
}
|
|
1411
|
-
if (theNamespace_1) {
|
|
1412
|
-
if (theNamespace_1[0] !== ".") {
|
|
1413
|
-
theNamespace_1 = "." + theNamespace_1;
|
|
1414
|
-
}
|
|
1415
|
-
eventName = (eventName || STR_EMPTY$2) + theNamespace_1;
|
|
1416
|
-
}
|
|
1417
|
-
}
|
|
1418
|
-
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$2) || []);
|
|
1419
|
-
return _a = {},
|
|
1420
|
-
_a[_DYN_TYPE ] = parsedEvent[1],
|
|
1421
|
-
_a.ns = ((parsedEvent[2] || STR_EMPTY$2).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$2)[_DYN_SPLIT ](".").sort()).join("."),
|
|
1422
|
-
_a;
|
|
1423
|
-
}
|
|
1424
|
-
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1425
|
-
if (addDefault === void 0) { addDefault = true; }
|
|
1426
|
-
var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
|
|
1427
|
-
var registeredEvents = aiEvts[evtName];
|
|
1428
|
-
if (!registeredEvents) {
|
|
1429
|
-
registeredEvents = aiEvts[evtName] = [];
|
|
1430
|
-
}
|
|
1431
|
-
return registeredEvents;
|
|
1432
|
-
}
|
|
1433
|
-
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1434
|
-
if (obj && evtName && evtName[_DYN_TYPE ]) {
|
|
1435
|
-
if (obj[strRemoveEventListener]) {
|
|
1436
|
-
obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1437
|
-
}
|
|
1438
|
-
else if (obj[strDetachEvent]) {
|
|
1439
|
-
obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1440
|
-
}
|
|
1441
|
-
}
|
|
1442
|
-
}
|
|
1443
|
-
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1444
|
-
var result = false;
|
|
1445
|
-
if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
|
|
1446
|
-
if (obj[strAddEventHelper]) {
|
|
1447
|
-
obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1448
|
-
result = true;
|
|
1449
|
-
}
|
|
1450
|
-
else if (obj[strAttachEvent]) {
|
|
1451
|
-
obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1452
|
-
result = true;
|
|
1453
|
-
}
|
|
1454
|
-
}
|
|
1455
|
-
return result;
|
|
1456
|
-
}
|
|
1457
|
-
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1458
|
-
var idx = events[_DYN_LENGTH ];
|
|
1459
|
-
while (idx--) {
|
|
1460
|
-
var theEvent = events[idx];
|
|
1461
|
-
if (theEvent) {
|
|
1462
|
-
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1463
|
-
if (!unRegFn || unRegFn(theEvent)) {
|
|
1464
|
-
_doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
|
|
1465
|
-
events[_DYN_SPLICE ](idx, 1);
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
}
|
|
1470
|
-
}
|
|
1471
|
-
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1472
|
-
if (evtName[_DYN_TYPE ]) {
|
|
1473
|
-
_doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
|
|
1474
|
-
}
|
|
1475
|
-
else {
|
|
1476
|
-
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1477
|
-
objForEachKey(eventCache, function (evtType, events) {
|
|
1478
|
-
_doUnregister(target, events, evtName, unRegFn);
|
|
1479
|
-
});
|
|
1480
|
-
if (objKeys(eventCache)[_DYN_LENGTH ] === 0) {
|
|
1481
|
-
elmNodeData.kill(target, strEvents);
|
|
1482
|
-
}
|
|
1483
|
-
}
|
|
1484
|
-
}
|
|
1485
|
-
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1486
|
-
var newNamespaces;
|
|
1487
|
-
if (namespaces) {
|
|
1488
|
-
if (isArray(namespaces)) {
|
|
1489
|
-
newNamespaces = [theNamespace].concat(namespaces);
|
|
1490
|
-
}
|
|
1491
|
-
else {
|
|
1492
|
-
newNamespaces = [theNamespace, namespaces];
|
|
1493
|
-
}
|
|
1494
|
-
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT ](".");
|
|
1495
|
-
}
|
|
1496
|
-
else {
|
|
1497
|
-
newNamespaces = theNamespace;
|
|
1498
|
-
}
|
|
1499
|
-
return newNamespaces;
|
|
1500
|
-
}
|
|
1501
|
-
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1502
|
-
var _a;
|
|
1503
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
1504
|
-
var result = false;
|
|
1505
|
-
if (target) {
|
|
1506
|
-
try {
|
|
1507
|
-
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1508
|
-
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1509
|
-
if (result && elmNodeData.accept(target)) {
|
|
1510
|
-
var registeredEvent = (_a = {
|
|
1511
|
-
guid: _guid++,
|
|
1512
|
-
evtName: evtName
|
|
1513
|
-
},
|
|
1514
|
-
_a[_DYN_HANDLER ] = handlerRef,
|
|
1515
|
-
_a.capture = useCapture,
|
|
1516
|
-
_a);
|
|
1517
|
-
_getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
|
|
1518
|
-
}
|
|
1519
|
-
}
|
|
1520
|
-
catch (e) {
|
|
1521
|
-
}
|
|
1522
|
-
}
|
|
1523
|
-
return result;
|
|
1524
|
-
}
|
|
1525
|
-
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1526
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
1527
|
-
if (target) {
|
|
1528
|
-
try {
|
|
1529
|
-
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1530
|
-
var found_1 = false;
|
|
1531
|
-
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1532
|
-
if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
|
|
1533
|
-
found_1 = true;
|
|
1534
|
-
return true;
|
|
1535
|
-
}
|
|
1536
|
-
return false;
|
|
1537
|
-
});
|
|
1538
|
-
if (!found_1) {
|
|
1539
|
-
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
1540
|
-
}
|
|
1541
|
-
}
|
|
1542
|
-
catch (e) {
|
|
1543
|
-
}
|
|
1544
|
-
}
|
|
1545
|
-
}
|
|
1546
|
-
function addEventHandler(eventName, callback, evtNamespace) {
|
|
1547
|
-
var result = false;
|
|
1548
|
-
var w = getWindow();
|
|
1549
|
-
if (w) {
|
|
1550
|
-
result = eventOn(w, eventName, callback, evtNamespace);
|
|
1551
|
-
result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
|
|
1552
|
-
}
|
|
1553
|
-
var doc = getDocument();
|
|
1554
|
-
if (doc) {
|
|
1555
|
-
result = eventOn(doc, eventName, callback, evtNamespace) || result;
|
|
1556
|
-
}
|
|
1557
|
-
return result;
|
|
1558
|
-
}
|
|
1559
|
-
function removeEventHandler(eventName, callback, evtNamespace) {
|
|
1560
|
-
var w = getWindow();
|
|
1561
|
-
if (w) {
|
|
1562
|
-
eventOff(w, eventName, callback, evtNamespace);
|
|
1563
|
-
eventOff(w["body"], eventName, callback, evtNamespace);
|
|
1564
|
-
}
|
|
1565
|
-
var doc = getDocument();
|
|
1566
|
-
if (doc) {
|
|
1567
|
-
eventOff(doc, eventName, callback, evtNamespace);
|
|
1568
|
-
}
|
|
1569
|
-
}
|
|
1570
|
-
function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
1571
|
-
var added = false;
|
|
1572
|
-
if (listener && events && events[_DYN_LENGTH ] > 0) {
|
|
1573
|
-
arrForEach(events, function (name) {
|
|
1574
|
-
if (name) {
|
|
1575
|
-
if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
|
|
1576
|
-
added = addEventHandler(name, listener, evtNamespace) || added;
|
|
1577
|
-
}
|
|
1578
|
-
}
|
|
1579
|
-
});
|
|
1580
|
-
}
|
|
1581
|
-
return added;
|
|
1582
|
-
}
|
|
1583
|
-
function addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
1584
|
-
var added = false;
|
|
1585
|
-
if (listener && events && isArray(events)) {
|
|
1586
|
-
added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
|
|
1587
|
-
if (!added && excludeEvents && excludeEvents[_DYN_LENGTH ] > 0) {
|
|
1588
|
-
added = _addEventListeners(events, listener, null, evtNamespace);
|
|
1589
|
-
}
|
|
1590
|
-
}
|
|
1591
|
-
return added;
|
|
1592
|
-
}
|
|
1593
|
-
function removeEventListeners(events, listener, evtNamespace) {
|
|
1594
|
-
if (events && isArray(events)) {
|
|
1595
|
-
arrForEach(events, function (name) {
|
|
1596
|
-
if (name) {
|
|
1597
|
-
removeEventHandler(name, listener, evtNamespace);
|
|
1598
|
-
}
|
|
1599
|
-
});
|
|
1600
|
-
}
|
|
1601
|
-
}
|
|
1602
|
-
function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
|
|
1603
|
-
return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
|
|
1604
|
-
}
|
|
1605
|
-
function removePageUnloadEventListener(listener, evtNamespace) {
|
|
1606
|
-
removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
|
|
1607
|
-
}
|
|
1608
|
-
function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
|
|
1609
|
-
function _handlePageVisibility(evt) {
|
|
1610
|
-
var doc = getDocument();
|
|
1611
|
-
if (listener && doc && doc.visibilityState === "hidden") {
|
|
1612
|
-
listener(evt);
|
|
1613
|
-
}
|
|
1614
|
-
}
|
|
1615
|
-
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
1616
|
-
var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
|
|
1617
|
-
if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
|
|
1618
|
-
pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
|
|
1619
|
-
}
|
|
1620
|
-
if (!pageUnloadAdded && excludeEvents) {
|
|
1621
|
-
pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
|
|
1622
|
-
}
|
|
1623
|
-
return pageUnloadAdded;
|
|
1624
|
-
}
|
|
1625
|
-
function removePageHideEventListener(listener, evtNamespace) {
|
|
1626
|
-
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
1627
|
-
removeEventListeners([strPageHide], listener, newNamespaces);
|
|
1628
|
-
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
1629
|
-
}
|
|
1630
|
-
function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
|
|
1631
|
-
function _handlePageVisibility(evt) {
|
|
1632
|
-
var doc = getDocument();
|
|
1633
|
-
if (listener && doc && doc.visibilityState === "visible") {
|
|
1634
|
-
listener(evt);
|
|
1635
|
-
}
|
|
1636
|
-
}
|
|
1637
|
-
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
1638
|
-
var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
|
|
1639
|
-
pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
|
|
1640
|
-
if (!pageShowAdded && excludeEvents) {
|
|
1641
|
-
pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
|
|
1642
|
-
}
|
|
1643
|
-
return pageShowAdded;
|
|
1644
|
-
}
|
|
1645
|
-
function removePageShowEventListener(listener, evtNamespace) {
|
|
1646
|
-
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
1647
|
-
removeEventListeners([strPageShow], listener, newNamespaces);
|
|
1648
|
-
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
1649
|
-
}
|
|
1650
|
-
|
|
1651
|
-
function perfNow() {
|
|
1652
|
-
var perf = getPerformance();
|
|
1653
|
-
if (perf && perf.now) {
|
|
1654
|
-
return perf.now();
|
|
1655
|
-
}
|
|
1656
|
-
return dateNow();
|
|
1657
|
-
}
|
|
1658
|
-
|
|
1659
|
-
var pluginStateData = createElmNodeData("plugin");
|
|
1660
|
-
function _getPluginState(plugin) {
|
|
1661
|
-
return pluginStateData.get(plugin, "state", {}, true);
|
|
1662
|
-
}
|
|
1663
|
-
|
|
1664
|
-
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
1665
|
-
var strHasRunFlags = "_hasRun";
|
|
1666
|
-
var strGetTelCtx = "_getTelCtx";
|
|
1667
|
-
var _chainId = 0;
|
|
1668
|
-
function _getNextProxyStart(proxy, core, startAt) {
|
|
1669
|
-
while (proxy) {
|
|
1670
|
-
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
1671
|
-
return proxy;
|
|
1672
|
-
}
|
|
1673
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
1674
|
-
}
|
|
1675
|
-
return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
|
|
1676
|
-
}
|
|
1677
|
-
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1678
|
-
var _nextProxy = null;
|
|
1679
|
-
var _onComplete = [];
|
|
1680
|
-
if (startAt !== null) {
|
|
1681
|
-
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
1682
|
-
}
|
|
1683
|
-
var context = {
|
|
1684
|
-
_next: _moveNext,
|
|
1685
|
-
ctx: {
|
|
1686
|
-
core: function () {
|
|
1687
|
-
return core;
|
|
1688
|
-
},
|
|
1689
|
-
diagLog: function () {
|
|
1690
|
-
return safeGetLogger(core, config);
|
|
1691
|
-
},
|
|
1692
|
-
getCfg: function () {
|
|
1693
|
-
return config;
|
|
1694
|
-
},
|
|
1695
|
-
getExtCfg: _getExtCfg,
|
|
1696
|
-
getConfig: _getConfig,
|
|
1697
|
-
hasNext: function () {
|
|
1698
|
-
return !!_nextProxy;
|
|
1699
|
-
},
|
|
1700
|
-
getNext: function () {
|
|
1701
|
-
return _nextProxy;
|
|
1702
|
-
},
|
|
1703
|
-
setNext: function (nextPlugin) {
|
|
1704
|
-
_nextProxy = nextPlugin;
|
|
1705
|
-
},
|
|
1706
|
-
iterate: _iterateChain,
|
|
1707
|
-
onComplete: _addOnComplete
|
|
1708
|
-
}
|
|
1709
|
-
};
|
|
1710
|
-
function _addOnComplete(onComplete, that) {
|
|
1711
|
-
var args = [];
|
|
1712
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1713
|
-
args[_i - 2] = arguments[_i];
|
|
1714
|
-
}
|
|
1715
|
-
if (onComplete) {
|
|
1716
|
-
_onComplete[_DYN_PUSH ]({
|
|
1717
|
-
func: onComplete,
|
|
1718
|
-
self: !isUndefined(that) ? that : context.ctx,
|
|
1719
|
-
args: args
|
|
1720
|
-
});
|
|
1721
|
-
}
|
|
1722
|
-
}
|
|
1723
|
-
function _moveNext() {
|
|
1724
|
-
var nextProxy = _nextProxy;
|
|
1725
|
-
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
1726
|
-
if (!nextProxy) {
|
|
1727
|
-
var onComplete = _onComplete;
|
|
1728
|
-
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
1729
|
-
arrForEach(onComplete, function (completeDetails) {
|
|
1730
|
-
try {
|
|
1731
|
-
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
1732
|
-
}
|
|
1733
|
-
catch (e) {
|
|
1734
|
-
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1735
|
-
}
|
|
1736
|
-
});
|
|
1737
|
-
_onComplete = [];
|
|
1738
|
-
}
|
|
1739
|
-
}
|
|
1740
|
-
return nextProxy;
|
|
1741
|
-
}
|
|
1742
|
-
function _getExtCfg(identifier, defaultValue, mergeDefault) {
|
|
1743
|
-
if (defaultValue === void 0) { defaultValue = {}; }
|
|
1744
|
-
if (mergeDefault === void 0) { mergeDefault = 0 ; }
|
|
1745
|
-
var theConfig;
|
|
1746
|
-
if (config) {
|
|
1747
|
-
var extConfig = config[STR_EXTENSION_CONFIG ];
|
|
1748
|
-
if (extConfig && identifier) {
|
|
1749
|
-
theConfig = extConfig[identifier];
|
|
1750
|
-
}
|
|
1751
|
-
}
|
|
1752
|
-
if (!theConfig) {
|
|
1753
|
-
theConfig = defaultValue;
|
|
1754
|
-
}
|
|
1755
|
-
else if (isObject(defaultValue)) {
|
|
1756
|
-
if (mergeDefault !== 0 ) {
|
|
1757
|
-
var newConfig_1 = objExtend(true, defaultValue, theConfig);
|
|
1758
|
-
if (config && mergeDefault === 2 ) {
|
|
1759
|
-
objForEachKey(defaultValue, function (field) {
|
|
1760
|
-
if (isNullOrUndefined(newConfig_1[field])) {
|
|
1761
|
-
var cfgValue = config[field];
|
|
1762
|
-
if (!isNullOrUndefined(cfgValue)) {
|
|
1763
|
-
newConfig_1[field] = cfgValue;
|
|
1764
|
-
}
|
|
1765
|
-
}
|
|
1766
|
-
});
|
|
1767
|
-
}
|
|
1768
|
-
theConfig = newConfig_1;
|
|
1769
|
-
}
|
|
1770
|
-
}
|
|
1771
|
-
return theConfig;
|
|
1772
|
-
}
|
|
1773
|
-
function _getConfig(identifier, field, defaultValue) {
|
|
1774
|
-
if (defaultValue === void 0) { defaultValue = false; }
|
|
1775
|
-
var theValue;
|
|
1776
|
-
var extConfig = _getExtCfg(identifier, null);
|
|
1777
|
-
if (extConfig && !isNullOrUndefined(extConfig[field])) {
|
|
1778
|
-
theValue = extConfig[field];
|
|
1779
|
-
}
|
|
1780
|
-
else if (config && !isNullOrUndefined(config[field])) {
|
|
1781
|
-
theValue = config[field];
|
|
1782
|
-
}
|
|
1783
|
-
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
1784
|
-
}
|
|
1785
|
-
function _iterateChain(cb) {
|
|
1786
|
-
var nextPlugin;
|
|
1787
|
-
while (!!(nextPlugin = context._next())) {
|
|
1788
|
-
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
1789
|
-
if (plugin) {
|
|
1790
|
-
cb(plugin);
|
|
1791
|
-
}
|
|
1792
|
-
}
|
|
1793
|
-
}
|
|
1794
|
-
return context;
|
|
1795
|
-
}
|
|
1796
|
-
function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
|
|
1797
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1798
|
-
var context = internalContext.ctx;
|
|
1799
|
-
function _processNext(env) {
|
|
1800
|
-
var nextPlugin = internalContext._next();
|
|
1801
|
-
nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
1802
|
-
return !nextPlugin;
|
|
1803
|
-
}
|
|
1804
|
-
function _createNew(plugins, startAt) {
|
|
1805
|
-
if (plugins === void 0) { plugins = null; }
|
|
1806
|
-
if (isArray(plugins)) {
|
|
1807
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1808
|
-
}
|
|
1809
|
-
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
|
|
1810
|
-
}
|
|
1811
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1812
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1813
|
-
return context;
|
|
1814
|
-
}
|
|
1815
|
-
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
1816
|
-
var config = core[_DYN_CONFIG ] || {};
|
|
1817
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1818
|
-
var context = internalContext.ctx;
|
|
1819
|
-
function _processNext(unloadState) {
|
|
1820
|
-
var nextPlugin = internalContext._next();
|
|
1821
|
-
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
1822
|
-
return !nextPlugin;
|
|
1823
|
-
}
|
|
1824
|
-
function _createNew(plugins, startAt) {
|
|
1825
|
-
if (plugins === void 0) { plugins = null; }
|
|
1826
|
-
if (isArray(plugins)) {
|
|
1827
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1828
|
-
}
|
|
1829
|
-
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1830
|
-
}
|
|
1831
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1832
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1833
|
-
return context;
|
|
1834
|
-
}
|
|
1835
|
-
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
1836
|
-
var config = core[_DYN_CONFIG ] || {};
|
|
1837
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1838
|
-
var context = internalContext.ctx;
|
|
1839
|
-
function _processNext(updateState) {
|
|
1840
|
-
return context.iterate(function (plugin) {
|
|
1841
|
-
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
1842
|
-
plugin[_DYN_UPDATE ](context, updateState);
|
|
1843
|
-
}
|
|
1844
|
-
});
|
|
1845
|
-
}
|
|
1846
|
-
function _createNew(plugins, startAt) {
|
|
1847
|
-
if (plugins === void 0) { plugins = null; }
|
|
1848
|
-
if (isArray(plugins)) {
|
|
1849
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1850
|
-
}
|
|
1851
|
-
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1852
|
-
}
|
|
1853
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1854
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1855
|
-
return context;
|
|
1856
|
-
}
|
|
1857
|
-
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1858
|
-
var firstProxy = null;
|
|
1859
|
-
var add = startAt ? false : true;
|
|
1860
|
-
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
1861
|
-
var lastProxy_1 = null;
|
|
1862
|
-
arrForEach(plugins, function (thePlugin) {
|
|
1863
|
-
if (!add && startAt === thePlugin) {
|
|
1864
|
-
add = true;
|
|
1865
|
-
}
|
|
1866
|
-
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
1867
|
-
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
1868
|
-
if (!firstProxy) {
|
|
1869
|
-
firstProxy = newProxy;
|
|
1870
|
-
}
|
|
1871
|
-
if (lastProxy_1) {
|
|
1872
|
-
lastProxy_1._setNext(newProxy);
|
|
1873
|
-
}
|
|
1874
|
-
lastProxy_1 = newProxy;
|
|
1875
|
-
}
|
|
1876
|
-
});
|
|
1877
|
-
}
|
|
1878
|
-
if (startAt && !firstProxy) {
|
|
1879
|
-
return createTelemetryProxyChain([startAt], config, core);
|
|
1880
|
-
}
|
|
1881
|
-
return firstProxy;
|
|
1882
|
-
}
|
|
1883
|
-
function createTelemetryPluginProxy(plugin, config, core) {
|
|
1884
|
-
var nextProxy = null;
|
|
1885
|
-
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
1886
|
-
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
1887
|
-
var chainId;
|
|
1888
|
-
if (plugin) {
|
|
1889
|
-
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
1890
|
-
}
|
|
1891
|
-
else {
|
|
1892
|
-
chainId = "Unknown-0-" + _chainId++;
|
|
1893
|
-
}
|
|
1894
|
-
var proxyChain = {
|
|
1895
|
-
getPlugin: function () {
|
|
1896
|
-
return plugin;
|
|
1897
|
-
},
|
|
1898
|
-
getNext: function () {
|
|
1899
|
-
return nextProxy;
|
|
1900
|
-
},
|
|
1901
|
-
processTelemetry: _processTelemetry,
|
|
1902
|
-
unload: _unloadPlugin,
|
|
1903
|
-
update: _updatePlugin,
|
|
1904
|
-
_id: chainId,
|
|
1905
|
-
_setNext: function (nextPlugin) {
|
|
1906
|
-
nextProxy = nextPlugin;
|
|
1907
|
-
}
|
|
1908
|
-
};
|
|
1909
|
-
function _getTelCtx() {
|
|
1910
|
-
var itemCtx;
|
|
1911
|
-
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
1912
|
-
itemCtx = plugin[strGetTelCtx]();
|
|
1913
|
-
}
|
|
1914
|
-
if (!itemCtx) {
|
|
1915
|
-
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
1916
|
-
}
|
|
1917
|
-
return itemCtx;
|
|
1918
|
-
}
|
|
1919
|
-
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
1920
|
-
var hasRun = false;
|
|
1921
|
-
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
1922
|
-
var hasRunContext = itemCtx[strHasRunFlags];
|
|
1923
|
-
if (!hasRunContext) {
|
|
1924
|
-
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
1925
|
-
}
|
|
1926
|
-
itemCtx.setNext(nextProxy);
|
|
1927
|
-
if (plugin) {
|
|
1928
|
-
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
1929
|
-
hasRunContext[chainId] = true;
|
|
1930
|
-
try {
|
|
1931
|
-
var nextId = nextProxy ? nextProxy._id : STR_EMPTY$2;
|
|
1932
|
-
if (nextId) {
|
|
1933
|
-
hasRunContext[nextId] = false;
|
|
1934
|
-
}
|
|
1935
|
-
hasRun = processPluginFn(itemCtx);
|
|
1936
|
-
}
|
|
1937
|
-
catch (error) {
|
|
1938
|
-
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
1939
|
-
if (hasNextRun) {
|
|
1940
|
-
hasRun = true;
|
|
1941
|
-
}
|
|
1942
|
-
if (!nextProxy || !hasNextRun) {
|
|
1943
|
-
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1944
|
-
}
|
|
1945
|
-
}
|
|
1946
|
-
}, details, isAsync);
|
|
1947
|
-
}
|
|
1948
|
-
return hasRun;
|
|
1949
|
-
}
|
|
1950
|
-
function _processTelemetry(env, itemCtx) {
|
|
1951
|
-
itemCtx = itemCtx || _getTelCtx();
|
|
1952
|
-
function _callProcessTelemetry(itemCtx) {
|
|
1953
|
-
if (!plugin || !hasProcessTelemetry) {
|
|
1954
|
-
return false;
|
|
1955
|
-
}
|
|
1956
|
-
var pluginState = _getPluginState(plugin);
|
|
1957
|
-
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
1958
|
-
return false;
|
|
1959
|
-
}
|
|
1960
|
-
if (hasSetNext) {
|
|
1961
|
-
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
1962
|
-
}
|
|
1963
|
-
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
1964
|
-
return true;
|
|
1965
|
-
}
|
|
1966
|
-
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
1967
|
-
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1968
|
-
}
|
|
1969
|
-
}
|
|
1970
|
-
function _unloadPlugin(unloadCtx, unloadState) {
|
|
1971
|
-
function _callTeardown() {
|
|
1972
|
-
var hasRun = false;
|
|
1973
|
-
if (plugin) {
|
|
1974
|
-
var pluginState = _getPluginState(plugin);
|
|
1975
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1976
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1977
|
-
pluginState[STR_CORE ] = null;
|
|
1978
|
-
pluginState[_DYN_TEARDOWN ] = true;
|
|
1979
|
-
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
1980
|
-
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
1981
|
-
hasRun = true;
|
|
1982
|
-
}
|
|
1983
|
-
}
|
|
1984
|
-
}
|
|
1985
|
-
return hasRun;
|
|
1986
|
-
}
|
|
1987
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
1988
|
-
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
1989
|
-
}
|
|
1990
|
-
}
|
|
1991
|
-
function _updatePlugin(updateCtx, updateState) {
|
|
1992
|
-
function _callUpdate() {
|
|
1993
|
-
var hasRun = false;
|
|
1994
|
-
if (plugin) {
|
|
1995
|
-
var pluginState = _getPluginState(plugin);
|
|
1996
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1997
|
-
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1998
|
-
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
1999
|
-
hasRun = true;
|
|
2000
|
-
}
|
|
2001
|
-
}
|
|
2002
|
-
}
|
|
2003
|
-
return hasRun;
|
|
2004
|
-
}
|
|
2005
|
-
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
2006
|
-
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
2007
|
-
}
|
|
2008
|
-
}
|
|
2009
|
-
return objFreeze(proxyChain);
|
|
2010
|
-
}
|
|
2011
|
-
|
|
2012
|
-
function createUnloadHandlerContainer() {
|
|
2013
|
-
var handlers = [];
|
|
2014
|
-
function _addHandler(handler) {
|
|
2015
|
-
if (handler) {
|
|
2016
|
-
handlers[_DYN_PUSH ](handler);
|
|
2017
|
-
}
|
|
2018
|
-
}
|
|
2019
|
-
function _runHandlers(unloadCtx, unloadState) {
|
|
2020
|
-
arrForEach(handlers, function (handler) {
|
|
2021
|
-
try {
|
|
2022
|
-
handler(unloadCtx, unloadState);
|
|
2023
|
-
}
|
|
2024
|
-
catch (e) {
|
|
2025
|
-
_throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
2026
|
-
}
|
|
2027
|
-
});
|
|
2028
|
-
handlers = [];
|
|
2029
|
-
}
|
|
2030
|
-
return {
|
|
2031
|
-
add: _addHandler,
|
|
2032
|
-
run: _runHandlers
|
|
2033
|
-
};
|
|
2034
|
-
}
|
|
2035
|
-
|
|
2036
|
-
var strGetPlugin = "getPlugin";
|
|
2037
|
-
var BaseTelemetryPlugin = /** @class */ (function () {
|
|
2038
|
-
function BaseTelemetryPlugin() {
|
|
2039
|
-
var _self = this;
|
|
2040
|
-
var _isinitialized;
|
|
2041
|
-
var _rootCtx;
|
|
2042
|
-
var _nextPlugin;
|
|
2043
|
-
var _unloadHandlerContainer;
|
|
2044
|
-
var _hooks;
|
|
2045
|
-
_initDefaults();
|
|
2046
|
-
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
2047
|
-
_self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
|
|
2048
|
-
_setDefaults(config, core, pluginChain);
|
|
2049
|
-
_isinitialized = true;
|
|
2050
|
-
};
|
|
2051
|
-
_self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
|
|
2052
|
-
var _a;
|
|
2053
|
-
var core = _self[STR_CORE ];
|
|
2054
|
-
if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
|
|
2055
|
-
return;
|
|
2056
|
-
}
|
|
2057
|
-
var result;
|
|
2058
|
-
var unloadDone = false;
|
|
2059
|
-
var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
2060
|
-
var theUnloadState = unloadState || (_a = {
|
|
2061
|
-
reason: 0
|
|
2062
|
-
},
|
|
2063
|
-
_a[_DYN_IS_ASYNC ] = false,
|
|
2064
|
-
_a);
|
|
2065
|
-
function _unloadCallback() {
|
|
2066
|
-
if (!unloadDone) {
|
|
2067
|
-
unloadDone = true;
|
|
2068
|
-
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
2069
|
-
var oldHooks = _hooks;
|
|
2070
|
-
_hooks = [];
|
|
2071
|
-
arrForEach(oldHooks, function (fn) {
|
|
2072
|
-
fn.rm();
|
|
2073
|
-
});
|
|
2074
|
-
if (result === true) {
|
|
2075
|
-
theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
2076
|
-
}
|
|
2077
|
-
_initDefaults();
|
|
2078
|
-
}
|
|
2079
|
-
}
|
|
2080
|
-
if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
|
|
2081
|
-
_unloadCallback();
|
|
2082
|
-
}
|
|
2083
|
-
else {
|
|
2084
|
-
result = true;
|
|
2085
|
-
}
|
|
2086
|
-
return result;
|
|
2087
|
-
};
|
|
2088
|
-
_self[_DYN_UPDATE ] = function (updateCtx, updateState) {
|
|
2089
|
-
var core = _self[STR_CORE ];
|
|
2090
|
-
if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
|
|
2091
|
-
return;
|
|
2092
|
-
}
|
|
2093
|
-
var result;
|
|
2094
|
-
var updateDone = false;
|
|
2095
|
-
var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
2096
|
-
var theUpdateState = updateState || {
|
|
2097
|
-
reason: 0
|
|
2098
|
-
};
|
|
2099
|
-
function _updateCallback() {
|
|
2100
|
-
if (!updateDone) {
|
|
2101
|
-
updateDone = true;
|
|
2102
|
-
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
|
|
2103
|
-
}
|
|
2104
|
-
}
|
|
2105
|
-
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
2106
|
-
_updateCallback();
|
|
2107
|
-
}
|
|
2108
|
-
else {
|
|
2109
|
-
result = true;
|
|
2110
|
-
}
|
|
2111
|
-
return result;
|
|
2112
|
-
};
|
|
2113
|
-
_self._addHook = function (hooks) {
|
|
2114
|
-
if (hooks) {
|
|
2115
|
-
if (isArray(hooks)) {
|
|
2116
|
-
_hooks = _hooks.concat(hooks);
|
|
2117
|
-
}
|
|
2118
|
-
else {
|
|
2119
|
-
_hooks[_DYN_PUSH ](hooks);
|
|
2120
|
-
}
|
|
2121
|
-
}
|
|
2122
|
-
};
|
|
2123
|
-
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
2124
|
-
});
|
|
2125
|
-
_self[_DYN_DIAG_LOG ] = function (itemCtx) {
|
|
2126
|
-
return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
|
|
2127
|
-
};
|
|
2128
|
-
_self[_DYN_IS_INITIALIZED ] = function () {
|
|
2129
|
-
return _isinitialized;
|
|
2130
|
-
};
|
|
2131
|
-
_self.setInitialized = function (isInitialized) {
|
|
2132
|
-
_isinitialized = isInitialized;
|
|
2133
|
-
};
|
|
2134
|
-
_self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
|
|
2135
|
-
_nextPlugin = next;
|
|
2136
|
-
};
|
|
2137
|
-
_self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
|
|
2138
|
-
if (itemCtx) {
|
|
2139
|
-
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
2140
|
-
}
|
|
2141
|
-
else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
|
|
2142
|
-
_nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
|
|
2143
|
-
}
|
|
2144
|
-
};
|
|
2145
|
-
_self._getTelCtx = _getTelCtx;
|
|
2146
|
-
function _getTelCtx(currentCtx) {
|
|
2147
|
-
if (currentCtx === void 0) { currentCtx = null; }
|
|
2148
|
-
var itemCtx = currentCtx;
|
|
2149
|
-
if (!itemCtx) {
|
|
2150
|
-
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
|
|
2151
|
-
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
2152
|
-
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
|
|
2153
|
-
}
|
|
2154
|
-
else {
|
|
2155
|
-
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
|
|
2156
|
-
}
|
|
2157
|
-
}
|
|
2158
|
-
return itemCtx;
|
|
2159
|
-
}
|
|
2160
|
-
function _setDefaults(config, core, pluginChain) {
|
|
2161
|
-
if (config) {
|
|
2162
|
-
setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
|
|
2163
|
-
}
|
|
2164
|
-
if (!pluginChain && core) {
|
|
2165
|
-
pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
|
|
2166
|
-
}
|
|
2167
|
-
var nextPlugin = _nextPlugin;
|
|
2168
|
-
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
2169
|
-
nextPlugin = _nextPlugin[strGetPlugin]();
|
|
2170
|
-
}
|
|
2171
|
-
_self[STR_CORE ] = core;
|
|
2172
|
-
_rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
|
|
2173
|
-
}
|
|
2174
|
-
function _initDefaults() {
|
|
2175
|
-
_isinitialized = false;
|
|
2176
|
-
_self[STR_CORE ] = null;
|
|
2177
|
-
_rootCtx = null;
|
|
2178
|
-
_nextPlugin = null;
|
|
2179
|
-
_hooks = [];
|
|
2180
|
-
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
2181
|
-
}
|
|
2182
|
-
}
|
|
2183
|
-
BaseTelemetryPlugin.__ieDyn=1;
|
|
2184
|
-
return BaseTelemetryPlugin;
|
|
2185
|
-
}());
|
|
2186
|
-
|
|
2187
|
-
var STR_EMPTY$1 = "";
|
|
2188
|
-
|
|
2189
|
-
var _a$1;
|
|
2190
|
-
var Version = '3.2.11';
|
|
2191
|
-
var FullVersionString = "1DS-Web-JS-" + Version;
|
|
2192
|
-
var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
2193
|
-
var strWithCredentials = "withCredentials";
|
|
2194
|
-
var strTimeout = "timeout";
|
|
2195
|
-
var _fieldTypeEventPropMap = (_a$1 = {},
|
|
2196
|
-
_a$1[0 ] = 0 ,
|
|
2197
|
-
_a$1[2 ] = 6 ,
|
|
2198
|
-
_a$1[1 ] = 1 ,
|
|
2199
|
-
_a$1[3 ] = 7 ,
|
|
2200
|
-
_a$1[4096 | 2 ] = 6 ,
|
|
2201
|
-
_a$1[4096 | 1 ] = 1 ,
|
|
2202
|
-
_a$1[4096 | 3 ] = 7 ,
|
|
2203
|
-
_a$1);
|
|
2204
|
-
Boolean(getDocument());
|
|
2205
|
-
Boolean(getWindow());
|
|
2206
|
-
function isValueAssigned(value) {
|
|
2207
|
-
return !(value === STR_EMPTY$1 || isNullOrUndefined(value));
|
|
2208
|
-
}
|
|
2209
|
-
function getTenantId(apiKey) {
|
|
2210
|
-
if (apiKey) {
|
|
2211
|
-
var indexTenantId = apiKey.indexOf("-");
|
|
2212
|
-
if (indexTenantId > -1) {
|
|
2213
|
-
return apiKey.substring(0, indexTenantId);
|
|
2214
|
-
}
|
|
2215
|
-
}
|
|
2216
|
-
return STR_EMPTY$1;
|
|
2217
|
-
}
|
|
2218
|
-
function sanitizeProperty(name, property, stringifyObjects) {
|
|
2219
|
-
if ((!property && !isValueAssigned(property)) || typeof name !== "string") {
|
|
2220
|
-
return null;
|
|
2221
|
-
}
|
|
2222
|
-
var propType = typeof property;
|
|
2223
|
-
if (propType === "string" || propType === "number" || propType === "boolean" || isArray(property)) {
|
|
2224
|
-
property = { value: property };
|
|
2225
|
-
}
|
|
2226
|
-
else if (propType === "object" && !ObjHasOwnProperty.call(property, "value")) {
|
|
2227
|
-
property = { value: stringifyObjects ? JSON.stringify(property) : property };
|
|
2228
|
-
}
|
|
2229
|
-
else if (isNullOrUndefined(property.value)
|
|
2230
|
-
|| property.value === STR_EMPTY$1 || (!isString(property.value)
|
|
2231
|
-
&& !isNumber(property.value) && !isBoolean(property.value)
|
|
2232
|
-
&& !isArray(property.value))) {
|
|
2233
|
-
return null;
|
|
2234
|
-
}
|
|
2235
|
-
if (isArray(property.value) &&
|
|
2236
|
-
!isArrayValid(property.value)) {
|
|
2237
|
-
return null;
|
|
2238
|
-
}
|
|
2239
|
-
if (!isNullOrUndefined(property.kind)) {
|
|
2240
|
-
if (isArray(property.value) || !isValueKind(property.kind)) {
|
|
2241
|
-
return null;
|
|
2242
|
-
}
|
|
2243
|
-
property.value = property.value.toString();
|
|
2244
|
-
}
|
|
2245
|
-
return property;
|
|
2246
|
-
}
|
|
2247
|
-
function getCommonSchemaMetaData(value, kind, type) {
|
|
2248
|
-
var encodedTypeValue = -1;
|
|
2249
|
-
if (!isUndefined(value)) {
|
|
2250
|
-
if (kind > 0) {
|
|
2251
|
-
if (kind === 32) {
|
|
2252
|
-
encodedTypeValue = (1 << 13);
|
|
2253
|
-
}
|
|
2254
|
-
else if (kind <= 13) {
|
|
2255
|
-
encodedTypeValue = (kind << 5);
|
|
2256
|
-
}
|
|
2257
|
-
}
|
|
2258
|
-
if (isDataType(type)) {
|
|
2259
|
-
if (encodedTypeValue === -1) {
|
|
2260
|
-
encodedTypeValue = 0;
|
|
2261
|
-
}
|
|
2262
|
-
encodedTypeValue |= type;
|
|
2263
|
-
}
|
|
2264
|
-
else {
|
|
2265
|
-
var propType = _fieldTypeEventPropMap[getFieldValueType(value)] || -1;
|
|
2266
|
-
if (encodedTypeValue !== -1 && propType !== -1) {
|
|
2267
|
-
encodedTypeValue |= propType;
|
|
2268
|
-
}
|
|
2269
|
-
else if (propType === 6 ) {
|
|
2270
|
-
encodedTypeValue = propType;
|
|
2271
|
-
}
|
|
2272
|
-
}
|
|
2273
|
-
}
|
|
2274
|
-
return encodedTypeValue;
|
|
2275
|
-
}
|
|
2276
|
-
function extend(obj, obj2, obj3, obj4, obj5) {
|
|
2277
|
-
var extended = {};
|
|
2278
|
-
var deep = false;
|
|
2279
|
-
var i = 0;
|
|
2280
|
-
var length = arguments.length;
|
|
2281
|
-
var objProto = Object[strShimPrototype];
|
|
2282
|
-
var theArgs = arguments;
|
|
2283
|
-
if (objProto.toString.call(theArgs[0]) === "[object Boolean]") {
|
|
2284
|
-
deep = theArgs[0];
|
|
2285
|
-
i++;
|
|
2286
|
-
}
|
|
2287
|
-
for (; i < length; i++) {
|
|
2288
|
-
var obj = theArgs[i];
|
|
2289
|
-
objForEachKey(obj, function (prop, value) {
|
|
2290
|
-
if (deep && value && isObject(value)) {
|
|
2291
|
-
if (isArray(value)) {
|
|
2292
|
-
extended[prop] = extended[prop] || [];
|
|
2293
|
-
arrForEach(value, function (arrayValue, arrayIndex) {
|
|
2294
|
-
if (arrayValue && isObject(arrayValue)) {
|
|
2295
|
-
extended[prop][arrayIndex] = extend(true, extended[prop][arrayIndex], arrayValue);
|
|
2296
|
-
}
|
|
2297
|
-
else {
|
|
2298
|
-
extended[prop][arrayIndex] = arrayValue;
|
|
2299
|
-
}
|
|
2300
|
-
});
|
|
2301
|
-
}
|
|
2302
|
-
else {
|
|
2303
|
-
extended[prop] = extend(true, extended[prop], value);
|
|
2304
|
-
}
|
|
2305
|
-
}
|
|
2306
|
-
else {
|
|
2307
|
-
extended[prop] = value;
|
|
2308
|
-
}
|
|
2309
|
-
});
|
|
2310
|
-
}
|
|
2311
|
-
return extended;
|
|
2312
|
-
}
|
|
2313
|
-
var getTime = perfNow;
|
|
2314
|
-
function isValueKind(value) {
|
|
2315
|
-
if (value === 0 || ((value > 0 && value <= 13 ) || value === 32 )) {
|
|
2316
|
-
return true;
|
|
2317
|
-
}
|
|
2318
|
-
return false;
|
|
2319
|
-
}
|
|
2320
|
-
function isDataType(value) {
|
|
2321
|
-
if (value >= 0 && value <= 9) {
|
|
2322
|
-
return true;
|
|
2323
|
-
}
|
|
2324
|
-
return false;
|
|
2325
|
-
}
|
|
2326
|
-
function isArrayValid(value) {
|
|
2327
|
-
return value.length > 0;
|
|
2328
|
-
}
|
|
2329
|
-
function setProcessTelemetryTimings(event, identifier) {
|
|
2330
|
-
var evt = event;
|
|
2331
|
-
evt.timings = evt.timings || {};
|
|
2332
|
-
evt.timings.processTelemetryStart = evt.timings.processTelemetryStart || {};
|
|
2333
|
-
evt.timings.processTelemetryStart[identifier] = getTime();
|
|
2334
|
-
}
|
|
2335
|
-
function getFieldValueType(value) {
|
|
2336
|
-
var theType = 0 ;
|
|
2337
|
-
if (value !== null && value !== undefined) {
|
|
2338
|
-
var objType = typeof value;
|
|
2339
|
-
if (objType === "string") {
|
|
2340
|
-
theType = 1 ;
|
|
2341
|
-
}
|
|
2342
|
-
else if (objType === "number") {
|
|
2343
|
-
theType = 2 ;
|
|
2344
|
-
}
|
|
2345
|
-
else if (objType === "boolean") {
|
|
2346
|
-
theType = 3 ;
|
|
2347
|
-
}
|
|
2348
|
-
else if (objType === strShimObject) {
|
|
2349
|
-
theType = 4 ;
|
|
2350
|
-
if (isArray(value)) {
|
|
2351
|
-
theType = 4096 ;
|
|
2352
|
-
if (value.length > 0) {
|
|
2353
|
-
theType |= getFieldValueType(value[0]);
|
|
2354
|
-
}
|
|
2355
|
-
}
|
|
2356
|
-
else if (ObjHasOwnProperty.call(value, "value")) {
|
|
2357
|
-
theType = 8192 | getFieldValueType(value.value);
|
|
2358
|
-
}
|
|
2359
|
-
}
|
|
2360
|
-
}
|
|
2361
|
-
return theType;
|
|
2362
|
-
}
|
|
2363
|
-
function isChromium() {
|
|
2364
|
-
return !!getGlobalInst("chrome");
|
|
2365
|
-
}
|
|
2366
|
-
function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {
|
|
2367
|
-
if (disabled === void 0) { disabled = false; }
|
|
2368
|
-
if (isSync === void 0) { isSync = false; }
|
|
2369
|
-
function _wrapSetXhrProp(xhr, prop, value) {
|
|
2370
|
-
try {
|
|
2371
|
-
xhr[prop] = value;
|
|
2372
|
-
}
|
|
2373
|
-
catch (e) {
|
|
2374
|
-
}
|
|
2375
|
-
}
|
|
2376
|
-
var xhr = new XMLHttpRequest();
|
|
2377
|
-
if (disabled) {
|
|
2378
|
-
_wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);
|
|
2379
|
-
}
|
|
2380
|
-
if (withCredentials) {
|
|
2381
|
-
_wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
|
|
2382
|
-
}
|
|
2383
|
-
xhr.open(method, urlString, !isSync);
|
|
2384
|
-
if (withCredentials) {
|
|
2385
|
-
_wrapSetXhrProp(xhr, strWithCredentials, withCredentials);
|
|
2386
|
-
}
|
|
2387
|
-
if (!isSync && timeout) {
|
|
2388
|
-
_wrapSetXhrProp(xhr, strTimeout, timeout);
|
|
2389
|
-
}
|
|
2390
|
-
return xhr;
|
|
2391
|
-
}
|
|
2392
|
-
|
|
2393
|
-
var RT_PROFILE = "REAL_TIME";
|
|
2394
|
-
var NRT_PROFILE = "NEAR_REAL_TIME";
|
|
2395
|
-
var BE_PROFILE = "BEST_EFFORT";
|
|
2396
|
-
|
|
2397
|
-
var STR_EMPTY = "";
|
|
2398
|
-
var STR_POST_METHOD = "POST";
|
|
2399
|
-
var STR_DISABLED_PROPERTY_NAME = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
2400
|
-
var STR_DROPPED = "drop";
|
|
2401
|
-
var STR_SENDING = "send";
|
|
2402
|
-
var STR_REQUEUE = "requeue";
|
|
2403
|
-
var STR_RESPONSE_FAIL = "rspFail";
|
|
2404
|
-
var STR_OTHER = "oth";
|
|
2405
|
-
var DEFAULT_CACHE_CONTROL = "no-cache, no-store";
|
|
2406
|
-
var DEFAULT_CONTENT_TYPE = "application/x-json-stream";
|
|
2407
|
-
var STR_CACHE_CONTROL = "cache-control";
|
|
2408
|
-
var STR_CONTENT_TYPE_HEADER = "content-type";
|
|
2409
|
-
var STR_KILL_TOKENS_HEADER = "kill-tokens";
|
|
2410
|
-
var STR_KILL_DURATION_HEADER = "kill-duration";
|
|
2411
|
-
var STR_KILL_DURATION_SECONDS_HEADER = "kill-duration-seconds";
|
|
2412
|
-
var STR_TIME_DELTA_HEADER = "time-delta-millis";
|
|
2413
|
-
var STR_CLIENT_VERSION = "client-version";
|
|
2414
|
-
var STR_CLIENT_ID = "client-id";
|
|
2415
|
-
var STR_TIME_DELTA_TO_APPLY = "time-delta-to-apply-millis";
|
|
2416
|
-
var STR_UPLOAD_TIME = "upload-time";
|
|
2417
|
-
var STR_API_KEY = "apikey";
|
|
2418
|
-
var STR_MSA_DEVICE_TICKET = "AuthMsaDeviceTicket";
|
|
2419
|
-
var STR_AUTH_XTOKEN = "AuthXToken";
|
|
2420
|
-
var STR_NO_RESPONSE_BODY = "NoResponseBody";
|
|
2421
|
-
var STR_MSFPC = "msfpc";
|
|
2422
|
-
var STR_TRACE = "trace";
|
|
2423
|
-
var STR_USER = "user";
|
|
2424
|
-
|
|
2425
|
-
function _getEventMsfpc(theEvent) {
|
|
2426
|
-
var intWeb = ((theEvent.ext || {})["intweb"]);
|
|
2427
|
-
if (intWeb && isValueAssigned(intWeb[STR_MSFPC])) {
|
|
2428
|
-
return intWeb[STR_MSFPC];
|
|
2429
|
-
}
|
|
2430
|
-
return null;
|
|
2431
|
-
}
|
|
2432
|
-
function _getMsfpc(theEvents) {
|
|
2433
|
-
var msfpc = null;
|
|
2434
|
-
for (var lp = 0; msfpc === null && lp < theEvents.length; lp++) {
|
|
2435
|
-
msfpc = _getEventMsfpc(theEvents[lp]);
|
|
2436
|
-
}
|
|
2437
|
-
return msfpc;
|
|
2438
|
-
}
|
|
2439
|
-
var EventBatch = /** @class */ (function () {
|
|
2440
|
-
function EventBatch(iKey, addEvents) {
|
|
2441
|
-
var events = addEvents ? [].concat(addEvents) : [];
|
|
2442
|
-
var _self = this;
|
|
2443
|
-
var _msfpc = _getMsfpc(events);
|
|
2444
|
-
_self.iKey = function () {
|
|
2445
|
-
return iKey;
|
|
2446
|
-
};
|
|
2447
|
-
_self.Msfpc = function () {
|
|
2448
|
-
return _msfpc || STR_EMPTY;
|
|
2449
|
-
};
|
|
2450
|
-
_self.count = function () {
|
|
2451
|
-
return events.length;
|
|
2452
|
-
};
|
|
2453
|
-
_self.events = function () {
|
|
2454
|
-
return events;
|
|
2455
|
-
};
|
|
2456
|
-
_self.addEvent = function (theEvent) {
|
|
2457
|
-
if (theEvent) {
|
|
2458
|
-
events.push(theEvent);
|
|
2459
|
-
if (!_msfpc) {
|
|
2460
|
-
_msfpc = _getEventMsfpc(theEvent);
|
|
2461
|
-
}
|
|
2462
|
-
return true;
|
|
2463
|
-
}
|
|
2464
|
-
return false;
|
|
2465
|
-
};
|
|
2466
|
-
_self.split = function (fromEvent, numEvents) {
|
|
2467
|
-
var theEvents;
|
|
2468
|
-
if (fromEvent < events.length) {
|
|
2469
|
-
var cnt = events.length - fromEvent;
|
|
2470
|
-
if (!isNullOrUndefined(numEvents)) {
|
|
2471
|
-
cnt = numEvents < cnt ? numEvents : cnt;
|
|
2472
|
-
}
|
|
2473
|
-
theEvents = events.splice(fromEvent, cnt);
|
|
2474
|
-
_msfpc = _getMsfpc(events);
|
|
2475
|
-
}
|
|
2476
|
-
return new EventBatch(iKey, theEvents);
|
|
2477
|
-
};
|
|
2478
|
-
}
|
|
2479
|
-
EventBatch.create = function (iKey, theEvents) {
|
|
2480
|
-
return new EventBatch(iKey, theEvents);
|
|
2481
|
-
};
|
|
2482
|
-
return EventBatch;
|
|
2483
|
-
}());
|
|
2484
|
-
|
|
2485
|
-
var ClockSkewManager = /** @class */ (function () {
|
|
2486
|
-
function ClockSkewManager() {
|
|
2487
|
-
var _allowRequestSending = true;
|
|
2488
|
-
var _shouldAddClockSkewHeaders = true;
|
|
2489
|
-
var _isFirstRequest = true;
|
|
2490
|
-
var _clockSkewHeaderValue = "use-collector-delta";
|
|
2491
|
-
var _clockSkewSet = false;
|
|
2492
|
-
dynamicProto(ClockSkewManager, this, function (_self) {
|
|
2493
|
-
_self.allowRequestSending = function () {
|
|
2494
|
-
return _allowRequestSending;
|
|
2495
|
-
};
|
|
2496
|
-
_self.firstRequestSent = function () {
|
|
2497
|
-
if (_isFirstRequest) {
|
|
2498
|
-
_isFirstRequest = false;
|
|
2499
|
-
if (!_clockSkewSet) {
|
|
2500
|
-
_allowRequestSending = false;
|
|
2501
|
-
}
|
|
2502
|
-
}
|
|
2503
|
-
};
|
|
2504
|
-
_self.shouldAddClockSkewHeaders = function () {
|
|
2505
|
-
return _shouldAddClockSkewHeaders;
|
|
2506
|
-
};
|
|
2507
|
-
_self.getClockSkewHeaderValue = function () {
|
|
2508
|
-
return _clockSkewHeaderValue;
|
|
2509
|
-
};
|
|
2510
|
-
_self.setClockSkew = function (timeDeltaInMillis) {
|
|
2511
|
-
if (!_clockSkewSet) {
|
|
2512
|
-
if (timeDeltaInMillis) {
|
|
2513
|
-
_clockSkewHeaderValue = timeDeltaInMillis;
|
|
2514
|
-
_shouldAddClockSkewHeaders = true;
|
|
2515
|
-
_clockSkewSet = true;
|
|
2516
|
-
}
|
|
2517
|
-
else {
|
|
2518
|
-
_shouldAddClockSkewHeaders = false;
|
|
2519
|
-
}
|
|
2520
|
-
_allowRequestSending = true;
|
|
2521
|
-
}
|
|
2522
|
-
};
|
|
2523
|
-
});
|
|
2524
|
-
}
|
|
2525
|
-
ClockSkewManager.__ieDyn=1;
|
|
2526
|
-
return ClockSkewManager;
|
|
2527
|
-
}());
|
|
2528
|
-
var EVTClockSkewManager = ClockSkewManager;
|
|
2529
|
-
|
|
2530
|
-
var SecToMsMultiplier = 1000;
|
|
2531
|
-
var KillSwitch = /** @class */ (function () {
|
|
2532
|
-
function KillSwitch() {
|
|
2533
|
-
var _killedTokenDictionary = {};
|
|
2534
|
-
function _normalizeTenants(values) {
|
|
2535
|
-
var result = [];
|
|
2536
|
-
if (values) {
|
|
2537
|
-
arrForEach(values, function (value) {
|
|
2538
|
-
result.push(strTrim(value));
|
|
2539
|
-
});
|
|
2540
|
-
}
|
|
2541
|
-
return result;
|
|
2542
|
-
}
|
|
2543
|
-
dynamicProto(KillSwitch, this, function (_self) {
|
|
2544
|
-
_self.setKillSwitchTenants = function (killTokens, killDuration) {
|
|
2545
|
-
if (killTokens && killDuration) {
|
|
2546
|
-
try {
|
|
2547
|
-
var killedTokens = _normalizeTenants(killTokens.split(","));
|
|
2548
|
-
if (killDuration === "this-request-only") {
|
|
2549
|
-
return killedTokens;
|
|
2550
|
-
}
|
|
2551
|
-
var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
|
|
2552
|
-
for (var i = 0; i < killedTokens.length; ++i) {
|
|
2553
|
-
_killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
|
|
2554
|
-
}
|
|
2555
|
-
}
|
|
2556
|
-
catch (ex) {
|
|
2557
|
-
return [];
|
|
2558
|
-
}
|
|
2559
|
-
}
|
|
2560
|
-
return [];
|
|
2561
|
-
};
|
|
2562
|
-
_self.isTenantKilled = function (tenantToken) {
|
|
2563
|
-
var killDictionary = _killedTokenDictionary;
|
|
2564
|
-
var name = strTrim(tenantToken);
|
|
2565
|
-
if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
|
|
2566
|
-
return true;
|
|
2567
|
-
}
|
|
2568
|
-
delete killDictionary[name];
|
|
2569
|
-
return false;
|
|
2570
|
-
};
|
|
2571
|
-
});
|
|
2572
|
-
}
|
|
2573
|
-
KillSwitch.__ieDyn=1;
|
|
2574
|
-
return KillSwitch;
|
|
2575
|
-
}());
|
|
2576
|
-
var EVTKillSwitch = KillSwitch;
|
|
2577
|
-
|
|
2578
|
-
var RandomizationLowerThreshold = 0.8;
|
|
2579
|
-
var RandomizationUpperThreshold = 1.2;
|
|
2580
|
-
var BaseBackoff = 3000;
|
|
2581
|
-
var MaxBackoff = 600000;
|
|
2582
|
-
function retryPolicyShouldRetryForStatus(httpStatusCode) {
|
|
2583
|
-
return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
|
|
2584
|
-
|| (httpStatusCode == 501)
|
|
2585
|
-
|| (httpStatusCode == 505));
|
|
2586
|
-
}
|
|
2587
|
-
function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
|
|
2588
|
-
var waitDuration = 0;
|
|
2589
|
-
var minBackoff = BaseBackoff * RandomizationLowerThreshold;
|
|
2590
|
-
var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
|
|
2591
|
-
var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
|
|
2592
|
-
waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
|
|
2593
|
-
return Math.min(waitDuration, MaxBackoff);
|
|
2594
|
-
}
|
|
2595
|
-
|
|
2596
|
-
var _MAX_STRING_JOINS = 20;
|
|
2597
|
-
var RequestSizeLimitBytes = 3984588;
|
|
2598
|
-
var BeaconRequestSizeLimitBytes = 65000;
|
|
2599
|
-
var MaxRecordSize = 2000000;
|
|
2600
|
-
var MaxBeaconRecordSize = Math.min(MaxRecordSize, BeaconRequestSizeLimitBytes);
|
|
2601
|
-
var metadata = "metadata";
|
|
2602
|
-
var f = "f";
|
|
2603
|
-
var rCheckDot = /\./;
|
|
2604
|
-
var Serializer = /** @class */ (function () {
|
|
2605
|
-
function Serializer(perfManager, valueSanitizer, stringifyObjects, enableCompoundKey) {
|
|
2606
|
-
var strData = "data";
|
|
2607
|
-
var strBaseData = "baseData";
|
|
2608
|
-
var strExt = "ext";
|
|
2609
|
-
var _checkForCompoundkey = !!enableCompoundKey;
|
|
2610
|
-
var _processSubMetaData = true;
|
|
2611
|
-
var _theSanitizer = valueSanitizer;
|
|
2612
|
-
var _isReservedCache = {};
|
|
2613
|
-
dynamicProto(Serializer, this, function (_self) {
|
|
2614
|
-
_self.createPayload = function (retryCnt, isTeardown, isSync, isReducedPayload, sendReason, sendType) {
|
|
2615
|
-
return {
|
|
2616
|
-
apiKeys: [],
|
|
2617
|
-
payloadBlob: STR_EMPTY,
|
|
2618
|
-
overflow: null,
|
|
2619
|
-
sizeExceed: [],
|
|
2620
|
-
failedEvts: [],
|
|
2621
|
-
batches: [],
|
|
2622
|
-
numEvents: 0,
|
|
2623
|
-
retryCnt: retryCnt,
|
|
2624
|
-
isTeardown: isTeardown,
|
|
2625
|
-
isSync: isSync,
|
|
2626
|
-
isBeacon: isReducedPayload,
|
|
2627
|
-
sendType: sendType,
|
|
2628
|
-
sendReason: sendReason
|
|
2629
|
-
};
|
|
2630
|
-
};
|
|
2631
|
-
_self.appendPayload = function (payload, theBatch, maxEventsPerBatch) {
|
|
2632
|
-
var canAddEvents = payload && theBatch && !payload.overflow;
|
|
2633
|
-
if (canAddEvents) {
|
|
2634
|
-
doPerf(perfManager, function () { return "Serializer:appendPayload"; }, function () {
|
|
2635
|
-
var theEvents = theBatch.events();
|
|
2636
|
-
var payloadBlob = payload.payloadBlob;
|
|
2637
|
-
var payloadEvents = payload.numEvents;
|
|
2638
|
-
var eventsAdded = false;
|
|
2639
|
-
var sizeExceeded = [];
|
|
2640
|
-
var failedEvts = [];
|
|
2641
|
-
var isBeaconPayload = payload.isBeacon;
|
|
2642
|
-
var requestMaxSize = isBeaconPayload ? BeaconRequestSizeLimitBytes : RequestSizeLimitBytes;
|
|
2643
|
-
var recordMaxSize = isBeaconPayload ? MaxBeaconRecordSize : MaxRecordSize;
|
|
2644
|
-
var lp = 0;
|
|
2645
|
-
var joinCount = 0;
|
|
2646
|
-
while (lp < theEvents.length) {
|
|
2647
|
-
var theEvent = theEvents[lp];
|
|
2648
|
-
if (theEvent) {
|
|
2649
|
-
if (payloadEvents >= maxEventsPerBatch) {
|
|
2650
|
-
payload.overflow = theBatch.split(lp);
|
|
2651
|
-
break;
|
|
2652
|
-
}
|
|
2653
|
-
var eventBlob = _self.getEventBlob(theEvent);
|
|
2654
|
-
if (eventBlob && eventBlob.length <= recordMaxSize) {
|
|
2655
|
-
var blobLength = eventBlob.length;
|
|
2656
|
-
var currentSize = payloadBlob.length;
|
|
2657
|
-
if (currentSize + blobLength > requestMaxSize) {
|
|
2658
|
-
payload.overflow = theBatch.split(lp);
|
|
2659
|
-
break;
|
|
2660
|
-
}
|
|
2661
|
-
if (payloadBlob) {
|
|
2662
|
-
payloadBlob += "\n";
|
|
2663
|
-
}
|
|
2664
|
-
payloadBlob += eventBlob;
|
|
2665
|
-
joinCount++;
|
|
2666
|
-
if (joinCount > _MAX_STRING_JOINS) {
|
|
2667
|
-
payloadBlob.substr(0, 1);
|
|
2668
|
-
joinCount = 0;
|
|
2669
|
-
}
|
|
2670
|
-
eventsAdded = true;
|
|
2671
|
-
payloadEvents++;
|
|
2672
|
-
}
|
|
2673
|
-
else {
|
|
2674
|
-
if (eventBlob) {
|
|
2675
|
-
sizeExceeded.push(theEvent);
|
|
2676
|
-
}
|
|
2677
|
-
else {
|
|
2678
|
-
failedEvts.push(theEvent);
|
|
2679
|
-
}
|
|
2680
|
-
theEvents.splice(lp, 1);
|
|
2681
|
-
lp--;
|
|
2682
|
-
}
|
|
2683
|
-
}
|
|
2684
|
-
lp++;
|
|
2685
|
-
}
|
|
2686
|
-
if (sizeExceeded && sizeExceeded.length > 0) {
|
|
2687
|
-
payload.sizeExceed.push(EventBatch.create(theBatch.iKey(), sizeExceeded));
|
|
2688
|
-
}
|
|
2689
|
-
if (failedEvts && failedEvts.length > 0) {
|
|
2690
|
-
payload.failedEvts.push(EventBatch.create(theBatch.iKey(), failedEvts));
|
|
2691
|
-
}
|
|
2692
|
-
if (eventsAdded) {
|
|
2693
|
-
payload.batches.push(theBatch);
|
|
2694
|
-
payload.payloadBlob = payloadBlob;
|
|
2695
|
-
payload.numEvents = payloadEvents;
|
|
2696
|
-
var apiKey = theBatch.iKey();
|
|
2697
|
-
if (arrIndexOf(payload.apiKeys, apiKey) === -1) {
|
|
2698
|
-
payload.apiKeys.push(apiKey);
|
|
2699
|
-
}
|
|
2700
|
-
}
|
|
2701
|
-
}, function () { return ({ payload: payload, theBatch: { iKey: theBatch.iKey(), evts: theBatch.events() }, max: maxEventsPerBatch }); });
|
|
2702
|
-
}
|
|
2703
|
-
return canAddEvents;
|
|
2704
|
-
};
|
|
2705
|
-
_self.getEventBlob = function (eventData) {
|
|
2706
|
-
try {
|
|
2707
|
-
return doPerf(perfManager, function () { return "Serializer.getEventBlob"; }, function () {
|
|
2708
|
-
var serializedEvent = {};
|
|
2709
|
-
serializedEvent.name = eventData.name;
|
|
2710
|
-
serializedEvent.time = eventData.time;
|
|
2711
|
-
serializedEvent.ver = eventData.ver;
|
|
2712
|
-
serializedEvent.iKey = "o:" + getTenantId(eventData.iKey);
|
|
2713
|
-
var serializedExt = {};
|
|
2714
|
-
var eventExt = eventData[strExt];
|
|
2715
|
-
if (eventExt) {
|
|
2716
|
-
serializedEvent[strExt] = serializedExt;
|
|
2717
|
-
objForEachKey(eventExt, function (key, value) {
|
|
2718
|
-
var data = serializedExt[key] = {};
|
|
2719
|
-
_processPathKeys(value, data, "ext." + key, true, null, null, true);
|
|
2720
|
-
});
|
|
2721
|
-
}
|
|
2722
|
-
var serializedData = serializedEvent[strData] = {};
|
|
2723
|
-
serializedData.baseType = eventData.baseType;
|
|
2724
|
-
var serializedBaseData = serializedData[strBaseData] = {};
|
|
2725
|
-
_processPathKeys(eventData.baseData, serializedBaseData, strBaseData, false, [strBaseData], function (pathKeys, name, value) {
|
|
2726
|
-
_addJSONPropertyMetaData(serializedExt, pathKeys, name, value);
|
|
2727
|
-
}, _processSubMetaData);
|
|
2728
|
-
_processPathKeys(eventData.data, serializedData, strData, false, [], function (pathKeys, name, value) {
|
|
2729
|
-
_addJSONPropertyMetaData(serializedExt, pathKeys, name, value);
|
|
2730
|
-
}, _processSubMetaData);
|
|
2731
|
-
return JSON.stringify(serializedEvent);
|
|
2732
|
-
}, function () { return ({ item: eventData }); });
|
|
2733
|
-
}
|
|
2734
|
-
catch (e) {
|
|
2735
|
-
return null;
|
|
2736
|
-
}
|
|
2737
|
-
};
|
|
2738
|
-
function _isReservedField(path, name) {
|
|
2739
|
-
var result = _isReservedCache[path];
|
|
2740
|
-
if (result === undefined) {
|
|
2741
|
-
if (path.length >= 7) {
|
|
2742
|
-
result = strStartsWith(path, "ext.metadata") || strStartsWith(path, "ext.web");
|
|
2743
|
-
}
|
|
2744
|
-
_isReservedCache[path] = result;
|
|
2745
|
-
}
|
|
2746
|
-
return result;
|
|
2747
|
-
}
|
|
2748
|
-
function _processPathKeys(srcObj, target, thePath, checkReserved, metadataPathKeys, metadataCallback, processSubKeys) {
|
|
2749
|
-
objForEachKey(srcObj, function (key, srcValue) {
|
|
2750
|
-
var prop = null;
|
|
2751
|
-
if (srcValue || isValueAssigned(srcValue)) {
|
|
2752
|
-
var path = thePath;
|
|
2753
|
-
var name_1 = key;
|
|
2754
|
-
var theMetaPathKeys = metadataPathKeys;
|
|
2755
|
-
var destObj = target;
|
|
2756
|
-
if (_checkForCompoundkey && !checkReserved && rCheckDot.test(key)) {
|
|
2757
|
-
var subKeys = key.split(".");
|
|
2758
|
-
var keyLen = subKeys.length;
|
|
2759
|
-
if (keyLen > 1) {
|
|
2760
|
-
if (theMetaPathKeys) {
|
|
2761
|
-
theMetaPathKeys = theMetaPathKeys.slice();
|
|
2762
|
-
}
|
|
2763
|
-
for (var lp = 0; lp < keyLen - 1; lp++) {
|
|
2764
|
-
var subKey = subKeys[lp];
|
|
2765
|
-
destObj = destObj[subKey] = destObj[subKey] || {};
|
|
2766
|
-
path += "." + subKey;
|
|
2767
|
-
if (theMetaPathKeys) {
|
|
2768
|
-
theMetaPathKeys.push(subKey);
|
|
2769
|
-
}
|
|
2770
|
-
}
|
|
2771
|
-
name_1 = subKeys[keyLen - 1];
|
|
2772
|
-
}
|
|
2773
|
-
}
|
|
2774
|
-
var isReserved = checkReserved && _isReservedField(path);
|
|
2775
|
-
if (!isReserved && _theSanitizer && _theSanitizer.handleField(path, name_1)) {
|
|
2776
|
-
prop = _theSanitizer.value(path, name_1, srcValue, stringifyObjects);
|
|
2777
|
-
}
|
|
2778
|
-
else {
|
|
2779
|
-
prop = sanitizeProperty(name_1, srcValue, stringifyObjects);
|
|
2780
|
-
}
|
|
2781
|
-
if (prop) {
|
|
2782
|
-
var newValue = prop.value;
|
|
2783
|
-
destObj[name_1] = newValue;
|
|
2784
|
-
if (metadataCallback) {
|
|
2785
|
-
metadataCallback(theMetaPathKeys, name_1, prop);
|
|
2786
|
-
}
|
|
2787
|
-
if (processSubKeys && typeof newValue === "object" && !isArray(newValue)) {
|
|
2788
|
-
var newPath = theMetaPathKeys;
|
|
2789
|
-
if (newPath) {
|
|
2790
|
-
newPath = newPath.slice();
|
|
2791
|
-
newPath.push(name_1);
|
|
2792
|
-
}
|
|
2793
|
-
_processPathKeys(srcValue, newValue, path + "." + name_1, checkReserved, newPath, metadataCallback, processSubKeys);
|
|
2794
|
-
}
|
|
2795
|
-
}
|
|
2796
|
-
}
|
|
2797
|
-
});
|
|
2798
|
-
}
|
|
2799
|
-
});
|
|
2800
|
-
}
|
|
2801
|
-
Serializer.__ieDyn=1;
|
|
2802
|
-
return Serializer;
|
|
2803
|
-
}());
|
|
2804
|
-
function _addJSONPropertyMetaData(json, propKeys, name, propertyValue) {
|
|
2805
|
-
if (propertyValue && json) {
|
|
2806
|
-
var encodedTypeValue = getCommonSchemaMetaData(propertyValue.value, propertyValue.kind, propertyValue.propertyType);
|
|
2807
|
-
if (encodedTypeValue > -1) {
|
|
2808
|
-
var metaData = json[metadata];
|
|
2809
|
-
if (!metaData) {
|
|
2810
|
-
metaData = json[metadata] = { f: {} };
|
|
2811
|
-
}
|
|
2812
|
-
var metaTarget = metaData[f];
|
|
2813
|
-
if (!metaTarget) {
|
|
2814
|
-
metaTarget = metaData[f] = {};
|
|
2815
|
-
}
|
|
2816
|
-
if (propKeys) {
|
|
2817
|
-
for (var lp = 0; lp < propKeys.length; lp++) {
|
|
2818
|
-
var key = propKeys[lp];
|
|
2819
|
-
if (!metaTarget[key]) {
|
|
2820
|
-
metaTarget[key] = { f: {} };
|
|
2821
|
-
}
|
|
2822
|
-
var newTarget = metaTarget[key][f];
|
|
2823
|
-
if (!newTarget) {
|
|
2824
|
-
newTarget = metaTarget[key][f] = {};
|
|
2825
|
-
}
|
|
2826
|
-
metaTarget = newTarget;
|
|
2827
|
-
}
|
|
2828
|
-
}
|
|
2829
|
-
metaTarget = metaTarget[name] = {};
|
|
2830
|
-
if (isArray(propertyValue.value)) {
|
|
2831
|
-
metaTarget["a"] = {
|
|
2832
|
-
t: encodedTypeValue
|
|
2833
|
-
};
|
|
2834
|
-
}
|
|
2835
|
-
else {
|
|
2836
|
-
metaTarget["t"] = encodedTypeValue;
|
|
2837
|
-
}
|
|
2838
|
-
}
|
|
2839
|
-
}
|
|
2840
|
-
}
|
|
2841
|
-
|
|
2842
|
-
var _a;
|
|
2843
|
-
var strSendAttempt = "sendAttempt";
|
|
2844
|
-
var _noResponseQs = "&" + STR_NO_RESPONSE_BODY + "=true";
|
|
2845
|
-
var _eventActionMap = (_a = {},
|
|
2846
|
-
_a[1 ] = STR_REQUEUE,
|
|
2847
|
-
_a[100 ] = STR_REQUEUE,
|
|
2848
|
-
_a[200 ] = "sent",
|
|
2849
|
-
_a[8004 ] = STR_DROPPED,
|
|
2850
|
-
_a[8003 ] = STR_DROPPED,
|
|
2851
|
-
_a);
|
|
2852
|
-
var _collectorQsHeaders = {};
|
|
2853
|
-
var _collectorHeaderToQs = {};
|
|
2854
|
-
function _addCollectorHeaderQsMapping(qsName, headerName, allowQs) {
|
|
2855
|
-
_collectorQsHeaders[qsName] = headerName;
|
|
2856
|
-
if (allowQs !== false) {
|
|
2857
|
-
_collectorHeaderToQs[headerName] = qsName;
|
|
2858
|
-
}
|
|
2859
|
-
}
|
|
2860
|
-
_addCollectorHeaderQsMapping(STR_MSA_DEVICE_TICKET, STR_MSA_DEVICE_TICKET, false);
|
|
2861
|
-
_addCollectorHeaderQsMapping(STR_CLIENT_VERSION, STR_CLIENT_VERSION);
|
|
2862
|
-
_addCollectorHeaderQsMapping(STR_CLIENT_ID, "Client-Id");
|
|
2863
|
-
_addCollectorHeaderQsMapping(STR_API_KEY, STR_API_KEY);
|
|
2864
|
-
_addCollectorHeaderQsMapping(STR_TIME_DELTA_TO_APPLY, STR_TIME_DELTA_TO_APPLY);
|
|
2865
|
-
_addCollectorHeaderQsMapping(STR_UPLOAD_TIME, STR_UPLOAD_TIME);
|
|
2866
|
-
_addCollectorHeaderQsMapping(STR_AUTH_XTOKEN, STR_AUTH_XTOKEN);
|
|
2867
|
-
function _getResponseText(xhr) {
|
|
2868
|
-
try {
|
|
2869
|
-
return xhr.responseText;
|
|
2870
|
-
}
|
|
2871
|
-
catch (e) {
|
|
2872
|
-
}
|
|
2873
|
-
return STR_EMPTY;
|
|
2874
|
-
}
|
|
2875
|
-
function _hasHeader(headers, header) {
|
|
2876
|
-
var hasHeader = false;
|
|
2877
|
-
if (headers && header) {
|
|
2878
|
-
var keys = objKeys(headers);
|
|
2879
|
-
if (keys && keys.length > 0) {
|
|
2880
|
-
var lowerHeader = header.toLowerCase();
|
|
2881
|
-
for (var lp = 0; lp < keys.length; lp++) {
|
|
2882
|
-
var value = keys[lp];
|
|
2883
|
-
if (value && hasOwnProperty(header, value) &&
|
|
2884
|
-
value.toLowerCase() === lowerHeader) {
|
|
2885
|
-
hasHeader = true;
|
|
2886
|
-
break;
|
|
2887
|
-
}
|
|
2888
|
-
}
|
|
2889
|
-
}
|
|
2890
|
-
}
|
|
2891
|
-
return hasHeader;
|
|
2892
|
-
}
|
|
2893
|
-
function _addRequestDetails(details, name, value, useHeaders) {
|
|
2894
|
-
if (name && value && value.length > 0) {
|
|
2895
|
-
if (useHeaders && _collectorQsHeaders[name]) {
|
|
2896
|
-
details.hdrs[_collectorQsHeaders[name]] = value;
|
|
2897
|
-
details.useHdrs = true;
|
|
2898
|
-
}
|
|
2899
|
-
else {
|
|
2900
|
-
details.url += "&" + name + "=" + value;
|
|
2901
|
-
}
|
|
2902
|
-
}
|
|
2903
|
-
}
|
|
2904
|
-
function _prependTransports(theTransports, newTransports) {
|
|
2905
|
-
if (newTransports) {
|
|
2906
|
-
if (isNumber(newTransports)) {
|
|
2907
|
-
theTransports = [newTransports].concat(theTransports);
|
|
2908
|
-
}
|
|
2909
|
-
else if (isArray(newTransports)) {
|
|
2910
|
-
theTransports = newTransports.concat(theTransports);
|
|
2911
|
-
}
|
|
2912
|
-
}
|
|
2913
|
-
return theTransports;
|
|
2914
|
-
}
|
|
2915
|
-
var HttpManager = /** @class */ (function () {
|
|
2916
|
-
function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
|
|
2917
|
-
this._responseHandlers = [];
|
|
2918
|
-
var _urlString = "?cors=true&" + STR_CONTENT_TYPE_HEADER.toLowerCase() + "=" + DEFAULT_CONTENT_TYPE;
|
|
2919
|
-
var _killSwitch = new EVTKillSwitch();
|
|
2920
|
-
var _paused = false;
|
|
2921
|
-
var _clockSkewManager = new EVTClockSkewManager();
|
|
2922
|
-
var _useBeacons = false;
|
|
2923
|
-
var _outstandingRequests = 0;
|
|
2924
|
-
var _postManager;
|
|
2925
|
-
var _logger;
|
|
2926
|
-
var _sendInterfaces;
|
|
2927
|
-
var _core;
|
|
2928
|
-
var _customHttpInterface = true;
|
|
2929
|
-
var _queryStringParameters = [];
|
|
2930
|
-
var _headers = {};
|
|
2931
|
-
var _batchQueue = [];
|
|
2932
|
-
var _serializer = null;
|
|
2933
|
-
var _enableEventTimings = false;
|
|
2934
|
-
var _cookieMgr;
|
|
2935
|
-
var _isUnloading = false;
|
|
2936
|
-
var _useHeaders = false;
|
|
2937
|
-
var _xhrTimeout;
|
|
2938
|
-
var _disableXhrSync;
|
|
2939
|
-
var _disableFetchKeepAlive;
|
|
2940
|
-
var _canHaveReducedPayload;
|
|
2941
|
-
var _addNoResponse;
|
|
2942
|
-
dynamicProto(HttpManager, this, function (_self) {
|
|
2943
|
-
var _sendCredentials = true;
|
|
2944
|
-
_self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
|
|
2945
|
-
var _a;
|
|
2946
|
-
if (!channelConfig) {
|
|
2947
|
-
channelConfig = {};
|
|
2948
|
-
}
|
|
2949
|
-
_urlString = endpointUrl + _urlString;
|
|
2950
|
-
_useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : true;
|
|
2951
|
-
_core = core;
|
|
2952
|
-
_cookieMgr = core.getCookieMgr();
|
|
2953
|
-
_enableEventTimings = !_core.config.disableEventTimings;
|
|
2954
|
-
var enableCompoundKey = !!_core.config.enableCompoundKey;
|
|
2955
|
-
_postManager = postChannel;
|
|
2956
|
-
_logger = _postManager.diagLog();
|
|
2957
|
-
var valueSanitizer = channelConfig.valueSanitizer;
|
|
2958
|
-
var stringifyObjects = channelConfig.stringifyObjects;
|
|
2959
|
-
if (!isUndefined(channelConfig.enableCompoundKey)) {
|
|
2960
|
-
enableCompoundKey = !!channelConfig.enableCompoundKey;
|
|
2961
|
-
}
|
|
2962
|
-
_xhrTimeout = channelConfig.xhrTimeout;
|
|
2963
|
-
_disableXhrSync = !!channelConfig.disableXhrSync;
|
|
2964
|
-
_disableFetchKeepAlive = !!channelConfig.disableFetchKeepAlive;
|
|
2965
|
-
_addNoResponse = channelConfig.addNoResponse !== false;
|
|
2966
|
-
_useBeacons = !isReactNative();
|
|
2967
|
-
_serializer = new Serializer(_core, valueSanitizer, stringifyObjects, enableCompoundKey);
|
|
2968
|
-
if (!isNullOrUndefined(channelConfig.useSendBeacon)) {
|
|
2969
|
-
_useBeacons = !!channelConfig.useSendBeacon;
|
|
2970
|
-
}
|
|
2971
|
-
var syncHttpInterface = httpInterface;
|
|
2972
|
-
var beaconHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
|
|
2973
|
-
var fetchSyncHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
|
|
2974
|
-
var beaconUnloadTransports = [3 , 2 ];
|
|
2975
|
-
if (!httpInterface) {
|
|
2976
|
-
_customHttpInterface = false;
|
|
2977
|
-
var location_1 = getLocation();
|
|
2978
|
-
if (location_1 && location_1.protocol && location_1.protocol.toLowerCase() === "file:") {
|
|
2979
|
-
_sendCredentials = false;
|
|
2980
|
-
}
|
|
2981
|
-
var theTransports = [];
|
|
2982
|
-
if (isReactNative()) {
|
|
2983
|
-
theTransports = [2 , 1 ];
|
|
2984
|
-
beaconUnloadTransports = [2 , 1 , 3 ];
|
|
2985
|
-
}
|
|
2986
|
-
else {
|
|
2987
|
-
theTransports = [1 , 2 , 3 ];
|
|
2988
|
-
}
|
|
2989
|
-
theTransports = _prependTransports(theTransports, channelConfig.transports);
|
|
2990
|
-
httpInterface = _getSenderInterface(theTransports, false);
|
|
2991
|
-
if (!httpInterface) {
|
|
2992
|
-
_warnToConsole(_logger, "No available transport to send events");
|
|
2993
|
-
}
|
|
2994
|
-
syncHttpInterface = _getSenderInterface(theTransports, true);
|
|
2995
|
-
}
|
|
2996
|
-
if (!beaconHttpInterface) {
|
|
2997
|
-
beaconUnloadTransports = _prependTransports(beaconUnloadTransports, channelConfig.unloadTransports);
|
|
2998
|
-
beaconHttpInterface = _getSenderInterface(beaconUnloadTransports, true);
|
|
2999
|
-
}
|
|
3000
|
-
_canHaveReducedPayload = !_customHttpInterface && ((_useBeacons && isBeaconsSupported()) || (!_disableFetchKeepAlive && isFetchSupported(true)));
|
|
3001
|
-
_sendInterfaces = (_a = {},
|
|
3002
|
-
_a[0 ] = httpInterface,
|
|
3003
|
-
_a[1 ] = syncHttpInterface || _getSenderInterface([1 , 2 , 3 ], true),
|
|
3004
|
-
_a[2 ] = beaconHttpInterface || syncHttpInterface || _getSenderInterface([1 ], true),
|
|
3005
|
-
_a[3 ] = fetchSyncHttpInterface || _getSenderInterface([2 , 3 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
|
|
3006
|
-
_a);
|
|
3007
|
-
};
|
|
3008
|
-
function _getSenderInterface(transports, syncSupport) {
|
|
3009
|
-
var transportType = 0 ;
|
|
3010
|
-
var sendPostFunc = null;
|
|
3011
|
-
var lp = 0;
|
|
3012
|
-
while (sendPostFunc == null && lp < transports.length) {
|
|
3013
|
-
transportType = transports[lp];
|
|
3014
|
-
if (transportType === 1 ) {
|
|
3015
|
-
if (useXDomainRequest()) {
|
|
3016
|
-
sendPostFunc = _xdrSendPost;
|
|
3017
|
-
}
|
|
3018
|
-
else if (isXhrSupported()) {
|
|
3019
|
-
sendPostFunc = _xhrSendPost;
|
|
3020
|
-
}
|
|
3021
|
-
}
|
|
3022
|
-
else if (transportType === 2 && isFetchSupported(syncSupport) && (!syncSupport || (syncSupport && !_disableFetchKeepAlive))) {
|
|
3023
|
-
sendPostFunc = _fetchSendPost;
|
|
3024
|
-
}
|
|
3025
|
-
else if (_useBeacons && transportType === 3 && isBeaconsSupported()) {
|
|
3026
|
-
sendPostFunc = _beaconSendPost;
|
|
3027
|
-
}
|
|
3028
|
-
lp++;
|
|
3029
|
-
}
|
|
3030
|
-
if (sendPostFunc) {
|
|
3031
|
-
return {
|
|
3032
|
-
_transport: transportType,
|
|
3033
|
-
_isSync: syncSupport,
|
|
3034
|
-
sendPOST: sendPostFunc
|
|
3035
|
-
};
|
|
3036
|
-
}
|
|
3037
|
-
return null;
|
|
3038
|
-
}
|
|
3039
|
-
_self["_getDbgPlgTargets"] = function () {
|
|
3040
|
-
return [_sendInterfaces[0 ], _killSwitch, _serializer, _sendInterfaces];
|
|
3041
|
-
};
|
|
3042
|
-
function _xdrSendPost(payload, oncomplete, sync) {
|
|
3043
|
-
var xdr = new XDomainRequest();
|
|
3044
|
-
xdr.open(STR_POST_METHOD, payload.urlString);
|
|
3045
|
-
if (payload.timeout) {
|
|
3046
|
-
xdr.timeout = payload.timeout;
|
|
3047
|
-
}
|
|
3048
|
-
xdr.onload = function () {
|
|
3049
|
-
var response = _getResponseText(xdr);
|
|
3050
|
-
_doOnComplete(oncomplete, 200, {}, response);
|
|
3051
|
-
_handleCollectorResponse(response);
|
|
3052
|
-
};
|
|
3053
|
-
xdr.onerror = function () {
|
|
3054
|
-
_doOnComplete(oncomplete, 400, {});
|
|
3055
|
-
};
|
|
3056
|
-
xdr.ontimeout = function () {
|
|
3057
|
-
_doOnComplete(oncomplete, 500, {});
|
|
3058
|
-
};
|
|
3059
|
-
xdr.onprogress = function () { };
|
|
3060
|
-
if (sync) {
|
|
3061
|
-
xdr.send(payload.data);
|
|
3062
|
-
}
|
|
3063
|
-
else {
|
|
3064
|
-
timeoutOverride.set(function () {
|
|
3065
|
-
xdr.send(payload.data);
|
|
3066
|
-
}, 0);
|
|
3067
|
-
}
|
|
3068
|
-
}
|
|
3069
|
-
function _fetchSendPost(payload, oncomplete, sync) {
|
|
3070
|
-
var _a;
|
|
3071
|
-
var theUrl = payload.urlString;
|
|
3072
|
-
var ignoreResponse = false;
|
|
3073
|
-
var responseHandled = false;
|
|
3074
|
-
var requestInit = (_a = {
|
|
3075
|
-
body: payload.data,
|
|
3076
|
-
method: STR_POST_METHOD
|
|
3077
|
-
},
|
|
3078
|
-
_a[STR_DISABLED_PROPERTY_NAME] = true,
|
|
3079
|
-
_a);
|
|
3080
|
-
if (sync) {
|
|
3081
|
-
requestInit.keepalive = true;
|
|
3082
|
-
if (payload._sendReason === 2 ) {
|
|
3083
|
-
ignoreResponse = true;
|
|
3084
|
-
if (_addNoResponse) {
|
|
3085
|
-
theUrl += _noResponseQs;
|
|
3086
|
-
}
|
|
3087
|
-
}
|
|
3088
|
-
}
|
|
3089
|
-
if (_sendCredentials) {
|
|
3090
|
-
requestInit.credentials = "include";
|
|
3091
|
-
}
|
|
3092
|
-
if (payload.headers && objKeys(payload.headers).length > 0) {
|
|
3093
|
-
requestInit.headers = payload.headers;
|
|
3094
|
-
}
|
|
3095
|
-
fetch(theUrl, requestInit).then(function (response) {
|
|
3096
|
-
var headerMap = {};
|
|
3097
|
-
var responseText = STR_EMPTY;
|
|
3098
|
-
var headers = response.headers;
|
|
3099
|
-
if (headers) {
|
|
3100
|
-
headers["forEach"](function (value, name) {
|
|
3101
|
-
headerMap[name] = value;
|
|
3102
|
-
});
|
|
3103
|
-
}
|
|
3104
|
-
if (response.body) {
|
|
3105
|
-
response.text().then(function (text) {
|
|
3106
|
-
responseText = text;
|
|
3107
|
-
});
|
|
3108
|
-
}
|
|
3109
|
-
if (!responseHandled) {
|
|
3110
|
-
responseHandled = true;
|
|
3111
|
-
_doOnComplete(oncomplete, response.status, headerMap, responseText);
|
|
3112
|
-
_handleCollectorResponse(responseText);
|
|
3113
|
-
}
|
|
3114
|
-
})["catch"](function (error) {
|
|
3115
|
-
if (!responseHandled) {
|
|
3116
|
-
responseHandled = true;
|
|
3117
|
-
_doOnComplete(oncomplete, 0, {});
|
|
3118
|
-
}
|
|
3119
|
-
});
|
|
3120
|
-
if (ignoreResponse && !responseHandled) {
|
|
3121
|
-
responseHandled = true;
|
|
3122
|
-
_doOnComplete(oncomplete, 200, {});
|
|
3123
|
-
}
|
|
3124
|
-
if (!responseHandled && payload.timeout > 0) {
|
|
3125
|
-
timeoutOverride.set(function () {
|
|
3126
|
-
if (!responseHandled) {
|
|
3127
|
-
responseHandled = true;
|
|
3128
|
-
_doOnComplete(oncomplete, 500, {});
|
|
3129
|
-
}
|
|
3130
|
-
}, payload.timeout);
|
|
3131
|
-
}
|
|
3132
|
-
}
|
|
3133
|
-
function _xhrSendPost(payload, oncomplete, sync) {
|
|
3134
|
-
var theUrl = payload.urlString;
|
|
3135
|
-
function _appendHeader(theHeaders, xhr, name) {
|
|
3136
|
-
if (!theHeaders[name] && xhr && xhr.getResponseHeader) {
|
|
3137
|
-
var value = xhr.getResponseHeader(name);
|
|
3138
|
-
if (value) {
|
|
3139
|
-
theHeaders[name] = strTrim(value);
|
|
3140
|
-
}
|
|
3141
|
-
}
|
|
3142
|
-
return theHeaders;
|
|
3143
|
-
}
|
|
3144
|
-
function _getAllResponseHeaders(xhr) {
|
|
3145
|
-
var theHeaders = {};
|
|
3146
|
-
if (!xhr.getAllResponseHeaders) {
|
|
3147
|
-
theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);
|
|
3148
|
-
theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);
|
|
3149
|
-
theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);
|
|
3150
|
-
}
|
|
3151
|
-
else {
|
|
3152
|
-
theHeaders = _convertAllHeadersToMap(xhr.getAllResponseHeaders());
|
|
3153
|
-
}
|
|
3154
|
-
return theHeaders;
|
|
3155
|
-
}
|
|
3156
|
-
function xhrComplete(xhr, responseTxt) {
|
|
3157
|
-
_doOnComplete(oncomplete, xhr.status, _getAllResponseHeaders(xhr), responseTxt);
|
|
3158
|
-
}
|
|
3159
|
-
if (sync && payload.disableXhrSync) {
|
|
3160
|
-
sync = false;
|
|
3161
|
-
}
|
|
3162
|
-
var xhrRequest = openXhr(STR_POST_METHOD, theUrl, _sendCredentials, true, sync, payload.timeout);
|
|
3163
|
-
objForEachKey(payload.headers, function (name, value) {
|
|
3164
|
-
xhrRequest.setRequestHeader(name, value);
|
|
3165
|
-
});
|
|
3166
|
-
xhrRequest.onload = function () {
|
|
3167
|
-
var response = _getResponseText(xhrRequest);
|
|
3168
|
-
xhrComplete(xhrRequest, response);
|
|
3169
|
-
_handleCollectorResponse(response);
|
|
3170
|
-
};
|
|
3171
|
-
xhrRequest.onerror = function () {
|
|
3172
|
-
xhrComplete(xhrRequest);
|
|
3173
|
-
};
|
|
3174
|
-
xhrRequest.ontimeout = function () {
|
|
3175
|
-
xhrComplete(xhrRequest);
|
|
3176
|
-
};
|
|
3177
|
-
xhrRequest.send(payload.data);
|
|
3178
|
-
}
|
|
3179
|
-
function _doOnComplete(oncomplete, status, headers, response) {
|
|
3180
|
-
try {
|
|
3181
|
-
oncomplete(status, headers, response);
|
|
3182
|
-
}
|
|
3183
|
-
catch (e) {
|
|
3184
|
-
_throwInternal(_logger, 2 , 518 , dumpObj(e));
|
|
3185
|
-
}
|
|
3186
|
-
}
|
|
3187
|
-
function _beaconSendPost(payload, oncomplete, sync) {
|
|
3188
|
-
var internalPayloadData = payload;
|
|
3189
|
-
var status = 200;
|
|
3190
|
-
var thePayload = internalPayloadData._thePayload;
|
|
3191
|
-
var theUrl = payload.urlString + (_addNoResponse ? _noResponseQs : STR_EMPTY);
|
|
3192
|
-
try {
|
|
3193
|
-
var nav_1 = getNavigator();
|
|
3194
|
-
if (!nav_1.sendBeacon(theUrl, payload.data)) {
|
|
3195
|
-
if (thePayload) {
|
|
3196
|
-
var droppedBatches_1 = [];
|
|
3197
|
-
arrForEach(thePayload.batches, function (theBatch) {
|
|
3198
|
-
if (droppedBatches_1 && theBatch && theBatch.count() > 0) {
|
|
3199
|
-
var theEvents = theBatch.events();
|
|
3200
|
-
for (var lp = 0; lp < theEvents.length; lp++) {
|
|
3201
|
-
if (!nav_1.sendBeacon(theUrl, _serializer.getEventBlob(theEvents[lp]))) {
|
|
3202
|
-
droppedBatches_1.push(theBatch.split(lp));
|
|
3203
|
-
break;
|
|
3204
|
-
}
|
|
3205
|
-
}
|
|
3206
|
-
}
|
|
3207
|
-
else {
|
|
3208
|
-
droppedBatches_1.push(theBatch.split(0));
|
|
3209
|
-
}
|
|
3210
|
-
});
|
|
3211
|
-
_sendBatchesNotification(droppedBatches_1, 8003 , thePayload.sendType, true);
|
|
3212
|
-
}
|
|
3213
|
-
else {
|
|
3214
|
-
status = 0;
|
|
3215
|
-
}
|
|
3216
|
-
}
|
|
3217
|
-
}
|
|
3218
|
-
catch (ex) {
|
|
3219
|
-
_warnToConsole(_logger, "Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
|
|
3220
|
-
status = 0;
|
|
3221
|
-
}
|
|
3222
|
-
finally {
|
|
3223
|
-
_doOnComplete(oncomplete, status, {}, STR_EMPTY);
|
|
3224
|
-
}
|
|
3225
|
-
}
|
|
3226
|
-
function _isBeaconPayload(sendType) {
|
|
3227
|
-
return sendType === 2 || sendType === 3 ;
|
|
3228
|
-
}
|
|
3229
|
-
function _adjustSendType(sendType) {
|
|
3230
|
-
if (_isUnloading && _isBeaconPayload(sendType)) {
|
|
3231
|
-
sendType = 2 ;
|
|
3232
|
-
}
|
|
3233
|
-
return sendType;
|
|
3234
|
-
}
|
|
3235
|
-
_self.addQueryStringParameter = function (name, value) {
|
|
3236
|
-
for (var i = 0; i < _queryStringParameters.length; i++) {
|
|
3237
|
-
if (_queryStringParameters[i].name === name) {
|
|
3238
|
-
_queryStringParameters[i].value = value;
|
|
3239
|
-
return;
|
|
3240
|
-
}
|
|
3241
|
-
}
|
|
3242
|
-
_queryStringParameters.push({ name: name, value: value });
|
|
3243
|
-
};
|
|
3244
|
-
_self.addHeader = function (name, value) {
|
|
3245
|
-
_headers[name] = value;
|
|
3246
|
-
};
|
|
3247
|
-
_self.canSendRequest = function () {
|
|
3248
|
-
return _hasIdleConnection() && _clockSkewManager.allowRequestSending();
|
|
3249
|
-
};
|
|
3250
|
-
_self.sendQueuedRequests = function (sendType, sendReason) {
|
|
3251
|
-
if (isUndefined(sendType)) {
|
|
3252
|
-
sendType = 0 ;
|
|
3253
|
-
}
|
|
3254
|
-
if (_isUnloading) {
|
|
3255
|
-
sendType = _adjustSendType(sendType);
|
|
3256
|
-
sendReason = 2 ;
|
|
3257
|
-
}
|
|
3258
|
-
if (_canSendPayload(_batchQueue, sendType, 0)) {
|
|
3259
|
-
_sendBatches(_clearQueue(), 0, false, sendType, sendReason || 0 );
|
|
3260
|
-
}
|
|
3261
|
-
};
|
|
3262
|
-
_self.isCompletelyIdle = function () {
|
|
3263
|
-
return !_paused && _outstandingRequests === 0 && _batchQueue.length === 0;
|
|
3264
|
-
};
|
|
3265
|
-
_self.setUnloading = function (value) {
|
|
3266
|
-
_isUnloading = value;
|
|
3267
|
-
};
|
|
3268
|
-
_self.addBatch = function (theBatch) {
|
|
3269
|
-
if (theBatch && theBatch.count() > 0) {
|
|
3270
|
-
if (_killSwitch.isTenantKilled(theBatch.iKey())) {
|
|
3271
|
-
return false;
|
|
3272
|
-
}
|
|
3273
|
-
_batchQueue.push(theBatch);
|
|
3274
|
-
}
|
|
3275
|
-
return true;
|
|
3276
|
-
};
|
|
3277
|
-
_self.teardown = function () {
|
|
3278
|
-
if (_batchQueue.length > 0) {
|
|
3279
|
-
_sendBatches(_clearQueue(), 0, true, 2 , 2 );
|
|
3280
|
-
}
|
|
3281
|
-
};
|
|
3282
|
-
_self.pause = function () {
|
|
3283
|
-
_paused = true;
|
|
3284
|
-
};
|
|
3285
|
-
_self.resume = function () {
|
|
3286
|
-
_paused = false;
|
|
3287
|
-
_self.sendQueuedRequests(0 , 4 );
|
|
3288
|
-
};
|
|
3289
|
-
_self.sendSynchronousBatch = function (batch, sendType, sendReason) {
|
|
3290
|
-
if (batch && batch.count() > 0) {
|
|
3291
|
-
if (isNullOrUndefined(sendType)) {
|
|
3292
|
-
sendType = 1 ;
|
|
3293
|
-
}
|
|
3294
|
-
if (_isUnloading) {
|
|
3295
|
-
sendType = _adjustSendType(sendType);
|
|
3296
|
-
sendReason = 2 ;
|
|
3297
|
-
}
|
|
3298
|
-
_sendBatches([batch], 0, false, sendType, sendReason || 0 );
|
|
3299
|
-
}
|
|
3300
|
-
};
|
|
3301
|
-
function _hasIdleConnection() {
|
|
3302
|
-
return !_paused && _outstandingRequests < maxConnections;
|
|
3303
|
-
}
|
|
3304
|
-
function _clearQueue() {
|
|
3305
|
-
var theQueue = _batchQueue;
|
|
3306
|
-
_batchQueue = [];
|
|
3307
|
-
return theQueue;
|
|
3308
|
-
}
|
|
3309
|
-
function _canSendPayload(theBatches, sendType, retryCnt) {
|
|
3310
|
-
var result = false;
|
|
3311
|
-
if (theBatches && theBatches.length > 0 && !_paused && _sendInterfaces[sendType] && _serializer) {
|
|
3312
|
-
result = (sendType !== 0 ) || (_hasIdleConnection() && (retryCnt > 0 || _clockSkewManager.allowRequestSending()));
|
|
3313
|
-
}
|
|
3314
|
-
return result;
|
|
3315
|
-
}
|
|
3316
|
-
function _createDebugBatches(theBatches) {
|
|
3317
|
-
var values = {};
|
|
3318
|
-
if (theBatches) {
|
|
3319
|
-
arrForEach(theBatches, function (theBatch, idx) {
|
|
3320
|
-
values[idx] = {
|
|
3321
|
-
iKey: theBatch.iKey(),
|
|
3322
|
-
evts: theBatch.events()
|
|
3323
|
-
};
|
|
3324
|
-
});
|
|
3325
|
-
}
|
|
3326
|
-
return values;
|
|
3327
|
-
}
|
|
3328
|
-
function _sendBatches(theBatches, retryCount, isTeardown, sendType, sendReason) {
|
|
3329
|
-
if (!theBatches || theBatches.length === 0) {
|
|
3330
|
-
return;
|
|
3331
|
-
}
|
|
3332
|
-
if (_paused) {
|
|
3333
|
-
_sendBatchesNotification(theBatches, 1 , sendType);
|
|
3334
|
-
return;
|
|
3335
|
-
}
|
|
3336
|
-
sendType = _adjustSendType(sendType);
|
|
3337
|
-
try {
|
|
3338
|
-
var orgBatches_1 = theBatches;
|
|
3339
|
-
var isSynchronous_1 = sendType !== 0 ;
|
|
3340
|
-
doPerf(_core, function () { return "HttpManager:_sendBatches"; }, function (perfEvt) {
|
|
3341
|
-
if (perfEvt) {
|
|
3342
|
-
theBatches = theBatches.slice(0);
|
|
3343
|
-
}
|
|
3344
|
-
var droppedBatches = [];
|
|
3345
|
-
var thePayload = null;
|
|
3346
|
-
var serializationStart = getTime();
|
|
3347
|
-
var sendInterface = _sendInterfaces[sendType] || (isSynchronous_1 ? _sendInterfaces[1 ] : _sendInterfaces[0 ]);
|
|
3348
|
-
var sendTransport = sendInterface && sendInterface._transport;
|
|
3349
|
-
var isReducedPayload = _canHaveReducedPayload && (_isUnloading || _isBeaconPayload(sendType) || (sendTransport === 3 || (sendInterface._isSync && sendTransport === 2 )));
|
|
3350
|
-
while (_canSendPayload(theBatches, sendType, retryCount)) {
|
|
3351
|
-
var theBatch = theBatches.shift();
|
|
3352
|
-
if (theBatch && theBatch.count() > 0) {
|
|
3353
|
-
if (!_killSwitch.isTenantKilled(theBatch.iKey())) {
|
|
3354
|
-
thePayload = thePayload || _serializer.createPayload(retryCount, isTeardown, isSynchronous_1, isReducedPayload, sendReason, sendType);
|
|
3355
|
-
if (!_serializer.appendPayload(thePayload, theBatch, maxEventsPerBatch)) {
|
|
3356
|
-
_doPayloadSend(thePayload, serializationStart, getTime(), sendReason);
|
|
3357
|
-
serializationStart = getTime();
|
|
3358
|
-
theBatches = [theBatch].concat(theBatches);
|
|
3359
|
-
thePayload = null;
|
|
3360
|
-
}
|
|
3361
|
-
else if (thePayload.overflow !== null) {
|
|
3362
|
-
theBatches = [thePayload.overflow].concat(theBatches);
|
|
3363
|
-
thePayload.overflow = null;
|
|
3364
|
-
_doPayloadSend(thePayload, serializationStart, getTime(), sendReason);
|
|
3365
|
-
serializationStart = getTime();
|
|
3366
|
-
thePayload = null;
|
|
3367
|
-
}
|
|
3368
|
-
}
|
|
3369
|
-
else {
|
|
3370
|
-
droppedBatches.push(theBatch);
|
|
3371
|
-
}
|
|
3372
|
-
}
|
|
3373
|
-
}
|
|
3374
|
-
if (thePayload) {
|
|
3375
|
-
_doPayloadSend(thePayload, serializationStart, getTime(), sendReason);
|
|
3376
|
-
}
|
|
3377
|
-
if (theBatches.length > 0) {
|
|
3378
|
-
_batchQueue = theBatches.concat(_batchQueue);
|
|
3379
|
-
}
|
|
3380
|
-
_sendBatchesNotification(droppedBatches, 8004 , sendType);
|
|
3381
|
-
}, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
|
|
3382
|
-
}
|
|
3383
|
-
catch (ex) {
|
|
3384
|
-
_throwInternal(_logger, 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
|
|
3385
|
-
}
|
|
3386
|
-
}
|
|
3387
|
-
function _buildRequestDetails(thePayload, useHeaders) {
|
|
3388
|
-
var requestDetails = {
|
|
3389
|
-
url: _urlString,
|
|
3390
|
-
hdrs: {},
|
|
3391
|
-
useHdrs: false
|
|
3392
|
-
};
|
|
3393
|
-
if (!useHeaders) {
|
|
3394
|
-
objForEachKey(_headers, function (name, value) {
|
|
3395
|
-
if (_collectorHeaderToQs[name]) {
|
|
3396
|
-
_addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);
|
|
3397
|
-
}
|
|
3398
|
-
else {
|
|
3399
|
-
requestDetails.hdrs[name] = value;
|
|
3400
|
-
requestDetails.useHdrs = true;
|
|
3401
|
-
}
|
|
3402
|
-
});
|
|
3403
|
-
}
|
|
3404
|
-
else {
|
|
3405
|
-
requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
|
|
3406
|
-
requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
|
|
3407
|
-
}
|
|
3408
|
-
_addRequestDetails(requestDetails, STR_CLIENT_ID, "NO_AUTH", useHeaders);
|
|
3409
|
-
_addRequestDetails(requestDetails, STR_CLIENT_VERSION, FullVersionString, useHeaders);
|
|
3410
|
-
var apiQsKeys = STR_EMPTY;
|
|
3411
|
-
arrForEach(thePayload.apiKeys, function (apiKey) {
|
|
3412
|
-
if (apiQsKeys.length > 0) {
|
|
3413
|
-
apiQsKeys += ",";
|
|
3414
|
-
}
|
|
3415
|
-
apiQsKeys += apiKey;
|
|
3416
|
-
});
|
|
3417
|
-
_addRequestDetails(requestDetails, STR_API_KEY, apiQsKeys, useHeaders);
|
|
3418
|
-
_addRequestDetails(requestDetails, STR_UPLOAD_TIME, dateNow().toString(), useHeaders);
|
|
3419
|
-
var msfpc = _getMsfpc(thePayload);
|
|
3420
|
-
if (isValueAssigned(msfpc)) {
|
|
3421
|
-
requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
|
|
3422
|
-
}
|
|
3423
|
-
if (_clockSkewManager.shouldAddClockSkewHeaders()) {
|
|
3424
|
-
_addRequestDetails(requestDetails, STR_TIME_DELTA_TO_APPLY, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
|
|
3425
|
-
}
|
|
3426
|
-
if (_core.getWParam) {
|
|
3427
|
-
var wParam = _core.getWParam();
|
|
3428
|
-
if (wParam >= 0) {
|
|
3429
|
-
requestDetails.url += "&w=" + wParam;
|
|
3430
|
-
}
|
|
3431
|
-
}
|
|
3432
|
-
for (var i = 0; i < _queryStringParameters.length; i++) {
|
|
3433
|
-
requestDetails.url += "&" + _queryStringParameters[i].name + "=" + _queryStringParameters[i].value;
|
|
3434
|
-
}
|
|
3435
|
-
return requestDetails;
|
|
3436
|
-
}
|
|
3437
|
-
function _setTimingValue(timings, name, value) {
|
|
3438
|
-
timings[name] = timings[name] || {};
|
|
3439
|
-
timings[name][_postManager.identifier] = value;
|
|
3440
|
-
}
|
|
3441
|
-
function _doPayloadSend(thePayload, serializationStart, serializationCompleted, sendReason) {
|
|
3442
|
-
if (thePayload && thePayload.payloadBlob && thePayload.payloadBlob.length > 0) {
|
|
3443
|
-
var useSendHook_1 = !!_self.sendHook;
|
|
3444
|
-
var sendInterface_1 = _sendInterfaces[thePayload.sendType];
|
|
3445
|
-
if (!_isBeaconPayload(thePayload.sendType) && thePayload.isBeacon && thePayload.sendReason === 2 ) {
|
|
3446
|
-
sendInterface_1 = _sendInterfaces[2 ] || _sendInterfaces[3 ] || sendInterface_1;
|
|
3447
|
-
}
|
|
3448
|
-
var useHeaders_1 = _useHeaders;
|
|
3449
|
-
if (thePayload.isBeacon || sendInterface_1._transport === 3 ) {
|
|
3450
|
-
useHeaders_1 = false;
|
|
3451
|
-
}
|
|
3452
|
-
var requestDetails_1 = _buildRequestDetails(thePayload, useHeaders_1);
|
|
3453
|
-
useHeaders_1 = useHeaders_1 || requestDetails_1.useHdrs;
|
|
3454
|
-
var sendEventStart_1 = getTime();
|
|
3455
|
-
doPerf(_core, function () { return "HttpManager:_doPayloadSend"; }, function () {
|
|
3456
|
-
for (var batchLp = 0; batchLp < thePayload.batches.length; batchLp++) {
|
|
3457
|
-
var theBatch = thePayload.batches[batchLp];
|
|
3458
|
-
var theEvents = theBatch.events();
|
|
3459
|
-
for (var evtLp = 0; evtLp < theEvents.length; evtLp++) {
|
|
3460
|
-
var telemetryItem = theEvents[evtLp];
|
|
3461
|
-
if (_enableEventTimings) {
|
|
3462
|
-
var timings = telemetryItem.timings = telemetryItem.timings || {};
|
|
3463
|
-
_setTimingValue(timings, "sendEventStart", sendEventStart_1);
|
|
3464
|
-
_setTimingValue(timings, "serializationStart", serializationStart);
|
|
3465
|
-
_setTimingValue(timings, "serializationCompleted", serializationCompleted);
|
|
3466
|
-
}
|
|
3467
|
-
telemetryItem[strSendAttempt] > 0 ? telemetryItem[strSendAttempt]++ : telemetryItem[strSendAttempt] = 1;
|
|
3468
|
-
}
|
|
3469
|
-
}
|
|
3470
|
-
_sendBatchesNotification(thePayload.batches, (1000 + (sendReason || 0 )), thePayload.sendType, true);
|
|
3471
|
-
var orgPayloadData = {
|
|
3472
|
-
data: thePayload.payloadBlob,
|
|
3473
|
-
urlString: requestDetails_1.url,
|
|
3474
|
-
headers: requestDetails_1.hdrs,
|
|
3475
|
-
_thePayload: thePayload,
|
|
3476
|
-
_sendReason: sendReason,
|
|
3477
|
-
timeout: _xhrTimeout,
|
|
3478
|
-
disableXhrSync: _disableXhrSync,
|
|
3479
|
-
disableFetchKeepAlive: _disableFetchKeepAlive
|
|
3480
|
-
};
|
|
3481
|
-
if (useHeaders_1) {
|
|
3482
|
-
if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
|
|
3483
|
-
orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
|
|
3484
|
-
}
|
|
3485
|
-
if (!_hasHeader(orgPayloadData.headers, STR_CONTENT_TYPE_HEADER)) {
|
|
3486
|
-
orgPayloadData.headers[STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;
|
|
3487
|
-
}
|
|
3488
|
-
}
|
|
3489
|
-
var sender = null;
|
|
3490
|
-
if (sendInterface_1) {
|
|
3491
|
-
sender = function (payload) {
|
|
3492
|
-
_clockSkewManager.firstRequestSent();
|
|
3493
|
-
var onComplete = function (status, headers) {
|
|
3494
|
-
_retryRequestIfNeeded(status, headers, thePayload, sendReason);
|
|
3495
|
-
};
|
|
3496
|
-
var isSync = thePayload.isTeardown || thePayload.isSync;
|
|
3497
|
-
try {
|
|
3498
|
-
sendInterface_1.sendPOST(payload, onComplete, isSync);
|
|
3499
|
-
if (_self.sendListener) {
|
|
3500
|
-
_self.sendListener(orgPayloadData, payload, isSync, thePayload.isBeacon);
|
|
3501
|
-
}
|
|
3502
|
-
}
|
|
3503
|
-
catch (ex) {
|
|
3504
|
-
_warnToConsole(_logger, "Unexpected exception sending payload. Ex:" + dumpObj(ex));
|
|
3505
|
-
_doOnComplete(onComplete, 0, {});
|
|
3506
|
-
}
|
|
3507
|
-
};
|
|
3508
|
-
}
|
|
3509
|
-
doPerf(_core, function () { return "HttpManager:_doPayloadSend.sender"; }, function () {
|
|
3510
|
-
if (sender) {
|
|
3511
|
-
if (thePayload.sendType === 0 ) {
|
|
3512
|
-
_outstandingRequests++;
|
|
3513
|
-
}
|
|
3514
|
-
if (useSendHook_1 && !thePayload.isBeacon && sendInterface_1._transport !== 3 ) {
|
|
3515
|
-
var hookData_1 = {
|
|
3516
|
-
data: orgPayloadData.data,
|
|
3517
|
-
urlString: orgPayloadData.urlString,
|
|
3518
|
-
headers: extend({}, orgPayloadData.headers),
|
|
3519
|
-
timeout: orgPayloadData.timeout,
|
|
3520
|
-
disableXhrSync: orgPayloadData.disableXhrSync,
|
|
3521
|
-
disableFetchKeepAlive: orgPayloadData.disableFetchKeepAlive
|
|
3522
|
-
};
|
|
3523
|
-
var senderCalled_1 = false;
|
|
3524
|
-
doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
|
|
3525
|
-
try {
|
|
3526
|
-
_self.sendHook(hookData_1, function (payload) {
|
|
3527
|
-
senderCalled_1 = true;
|
|
3528
|
-
if (!_customHttpInterface && !payload._thePayload) {
|
|
3529
|
-
payload._thePayload = payload._thePayload || orgPayloadData._thePayload;
|
|
3530
|
-
payload._sendReason = payload._sendReason || orgPayloadData._sendReason;
|
|
3531
|
-
}
|
|
3532
|
-
sender(payload);
|
|
3533
|
-
}, thePayload.isSync || thePayload.isTeardown);
|
|
3534
|
-
}
|
|
3535
|
-
catch (ex) {
|
|
3536
|
-
if (!senderCalled_1) {
|
|
3537
|
-
sender(orgPayloadData);
|
|
3538
|
-
}
|
|
3539
|
-
}
|
|
3540
|
-
});
|
|
3541
|
-
}
|
|
3542
|
-
else {
|
|
3543
|
-
sender(orgPayloadData);
|
|
3544
|
-
}
|
|
3545
|
-
}
|
|
3546
|
-
});
|
|
3547
|
-
}, function () { return ({ thePayload: thePayload, serializationStart: serializationStart, serializationCompleted: serializationCompleted, sendReason: sendReason }); }, thePayload.isSync);
|
|
3548
|
-
}
|
|
3549
|
-
if (thePayload.sizeExceed && thePayload.sizeExceed.length > 0) {
|
|
3550
|
-
_sendBatchesNotification(thePayload.sizeExceed, 8003 , thePayload.sendType);
|
|
3551
|
-
}
|
|
3552
|
-
if (thePayload.failedEvts && thePayload.failedEvts.length > 0) {
|
|
3553
|
-
_sendBatchesNotification(thePayload.failedEvts, 8002 , thePayload.sendType);
|
|
3554
|
-
}
|
|
3555
|
-
}
|
|
3556
|
-
function _addEventCompletedTimings(theEvents, sendEventCompleted) {
|
|
3557
|
-
if (_enableEventTimings) {
|
|
3558
|
-
arrForEach(theEvents, function (theEvent) {
|
|
3559
|
-
var timings = theEvent.timings = theEvent.timings || {};
|
|
3560
|
-
_setTimingValue(timings, "sendEventCompleted", sendEventCompleted);
|
|
3561
|
-
});
|
|
3562
|
-
}
|
|
3563
|
-
}
|
|
3564
|
-
function _retryRequestIfNeeded(status, headers, thePayload, sendReason) {
|
|
3565
|
-
var reason = 9000 ;
|
|
3566
|
-
var droppedBatches = null;
|
|
3567
|
-
var isRetrying = false;
|
|
3568
|
-
var backOffTrans = false;
|
|
3569
|
-
try {
|
|
3570
|
-
var shouldRetry = true;
|
|
3571
|
-
if (typeof status !== strShimUndefined) {
|
|
3572
|
-
if (headers) {
|
|
3573
|
-
_clockSkewManager.setClockSkew(headers[STR_TIME_DELTA_HEADER]);
|
|
3574
|
-
var killDuration = headers[STR_KILL_DURATION_HEADER] || headers["kill-duration-seconds"];
|
|
3575
|
-
arrForEach(_killSwitch.setKillSwitchTenants(headers[STR_KILL_TOKENS_HEADER], killDuration), function (killToken) {
|
|
3576
|
-
arrForEach(thePayload.batches, function (theBatch) {
|
|
3577
|
-
if (theBatch.iKey() === killToken) {
|
|
3578
|
-
droppedBatches = droppedBatches || [];
|
|
3579
|
-
var removedEvents = theBatch.split(0);
|
|
3580
|
-
thePayload.numEvents -= removedEvents.count();
|
|
3581
|
-
droppedBatches.push(removedEvents);
|
|
3582
|
-
}
|
|
3583
|
-
});
|
|
3584
|
-
});
|
|
3585
|
-
}
|
|
3586
|
-
if (status == 200 || status == 204) {
|
|
3587
|
-
reason = 200 ;
|
|
3588
|
-
return;
|
|
3589
|
-
}
|
|
3590
|
-
if (!retryPolicyShouldRetryForStatus(status) || thePayload.numEvents <= 0) {
|
|
3591
|
-
shouldRetry = false;
|
|
3592
|
-
}
|
|
3593
|
-
reason = 9000 + (status % 1000);
|
|
3594
|
-
}
|
|
3595
|
-
if (shouldRetry) {
|
|
3596
|
-
reason = 100 ;
|
|
3597
|
-
var retryCount_1 = thePayload.retryCnt;
|
|
3598
|
-
if (thePayload.sendType === 0 ) {
|
|
3599
|
-
if (retryCount_1 < maxRequestRetriesBeforeBackoff) {
|
|
3600
|
-
isRetrying = true;
|
|
3601
|
-
_doAction(function () {
|
|
3602
|
-
if (thePayload.sendType === 0 ) {
|
|
3603
|
-
_outstandingRequests--;
|
|
3604
|
-
}
|
|
3605
|
-
_sendBatches(thePayload.batches, retryCount_1 + 1, thePayload.isTeardown, _isUnloading ? 2 : thePayload.sendType, 5 );
|
|
3606
|
-
}, _isUnloading, retryPolicyGetMillisToBackoffForRetry(retryCount_1));
|
|
3607
|
-
}
|
|
3608
|
-
else {
|
|
3609
|
-
backOffTrans = true;
|
|
3610
|
-
if (_isUnloading) {
|
|
3611
|
-
reason = 8001 ;
|
|
3612
|
-
}
|
|
3613
|
-
}
|
|
3614
|
-
}
|
|
3615
|
-
}
|
|
3616
|
-
}
|
|
3617
|
-
finally {
|
|
3618
|
-
if (!isRetrying) {
|
|
3619
|
-
_clockSkewManager.setClockSkew();
|
|
3620
|
-
_handleRequestFinished(thePayload, reason, sendReason, backOffTrans);
|
|
3621
|
-
}
|
|
3622
|
-
_sendBatchesNotification(droppedBatches, 8004 , thePayload.sendType);
|
|
3623
|
-
}
|
|
3624
|
-
}
|
|
3625
|
-
function _handleRequestFinished(thePayload, batchReason, sendReason, backOffTrans) {
|
|
3626
|
-
try {
|
|
3627
|
-
if (backOffTrans) {
|
|
3628
|
-
_postManager._backOffTransmission();
|
|
3629
|
-
}
|
|
3630
|
-
if (batchReason === 200 ) {
|
|
3631
|
-
if (!backOffTrans && !thePayload.isSync) {
|
|
3632
|
-
_postManager._clearBackOff();
|
|
3633
|
-
}
|
|
3634
|
-
_addCompleteTimings(thePayload.batches);
|
|
3635
|
-
}
|
|
3636
|
-
_sendBatchesNotification(thePayload.batches, batchReason, thePayload.sendType, true);
|
|
3637
|
-
}
|
|
3638
|
-
finally {
|
|
3639
|
-
if (thePayload.sendType === 0 ) {
|
|
3640
|
-
_outstandingRequests--;
|
|
3641
|
-
if (sendReason !== 5 ) {
|
|
3642
|
-
_self.sendQueuedRequests(thePayload.sendType, sendReason);
|
|
3643
|
-
}
|
|
3644
|
-
}
|
|
3645
|
-
}
|
|
3646
|
-
}
|
|
3647
|
-
function _addCompleteTimings(theBatches) {
|
|
3648
|
-
if (_enableEventTimings) {
|
|
3649
|
-
var sendEventCompleted_1 = getTime();
|
|
3650
|
-
arrForEach(theBatches, function (theBatch) {
|
|
3651
|
-
if (theBatch && theBatch.count() > 0) {
|
|
3652
|
-
_addEventCompletedTimings(theBatch.events(), sendEventCompleted_1);
|
|
3653
|
-
}
|
|
3654
|
-
});
|
|
3655
|
-
}
|
|
3656
|
-
}
|
|
3657
|
-
function _doAction(cb, isSync, interval) {
|
|
3658
|
-
if (isSync) {
|
|
3659
|
-
cb();
|
|
3660
|
-
}
|
|
3661
|
-
else {
|
|
3662
|
-
timeoutOverride.set(cb, interval);
|
|
3663
|
-
}
|
|
3664
|
-
}
|
|
3665
|
-
function _convertAllHeadersToMap(headersString) {
|
|
3666
|
-
var headers = {};
|
|
3667
|
-
if (isString(headersString)) {
|
|
3668
|
-
var headersArray = strTrim(headersString).split(/[\r\n]+/);
|
|
3669
|
-
arrForEach(headersArray, function (headerEntry) {
|
|
3670
|
-
if (headerEntry) {
|
|
3671
|
-
var idx = headerEntry.indexOf(": ");
|
|
3672
|
-
if (idx !== -1) {
|
|
3673
|
-
var header = strTrim(headerEntry.substring(0, idx)).toLowerCase();
|
|
3674
|
-
var value = strTrim(headerEntry.substring(idx + 1));
|
|
3675
|
-
headers[header] = value;
|
|
3676
|
-
}
|
|
3677
|
-
else {
|
|
3678
|
-
headers[strTrim(headerEntry)] = 1;
|
|
3679
|
-
}
|
|
3680
|
-
}
|
|
3681
|
-
});
|
|
3682
|
-
}
|
|
3683
|
-
return headers;
|
|
3684
|
-
}
|
|
3685
|
-
function _getMsfpc(thePayload) {
|
|
3686
|
-
for (var lp = 0; lp < thePayload.batches.length; lp++) {
|
|
3687
|
-
var msfpc = thePayload.batches[lp].Msfpc();
|
|
3688
|
-
if (msfpc) {
|
|
3689
|
-
return encodeURIComponent(msfpc);
|
|
3690
|
-
}
|
|
3691
|
-
}
|
|
3692
|
-
return STR_EMPTY;
|
|
3693
|
-
}
|
|
3694
|
-
function _handleCollectorResponse(responseText) {
|
|
3695
|
-
var responseHandlers = _self._responseHandlers;
|
|
3696
|
-
try {
|
|
3697
|
-
for (var i = 0; i < responseHandlers.length; i++) {
|
|
3698
|
-
try {
|
|
3699
|
-
responseHandlers[i](responseText);
|
|
3700
|
-
}
|
|
3701
|
-
catch (e) {
|
|
3702
|
-
_throwInternal(_logger, 1 , 519 , "Response handler failed: " + e);
|
|
3703
|
-
}
|
|
3704
|
-
}
|
|
3705
|
-
if (responseText) {
|
|
3706
|
-
var response = JSON.parse(responseText);
|
|
3707
|
-
if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[STR_MSFPC])) {
|
|
3708
|
-
_cookieMgr.set("MSFPC", response.webResult[STR_MSFPC], 365 * 86400);
|
|
3709
|
-
}
|
|
3710
|
-
}
|
|
3711
|
-
}
|
|
3712
|
-
catch (ex) {
|
|
3713
|
-
}
|
|
3714
|
-
}
|
|
3715
|
-
function _sendBatchesNotification(theBatches, batchReason, sendType, sendSync) {
|
|
3716
|
-
if (theBatches && theBatches.length > 0 && actions) {
|
|
3717
|
-
var theAction_1 = actions[_getNotificationAction(batchReason)];
|
|
3718
|
-
if (theAction_1) {
|
|
3719
|
-
var isSyncRequest_1 = sendType !== 0 ;
|
|
3720
|
-
doPerf(_core, function () { return "HttpManager:_sendBatchesNotification"; }, function () {
|
|
3721
|
-
_doAction(function () {
|
|
3722
|
-
try {
|
|
3723
|
-
theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
|
|
3724
|
-
}
|
|
3725
|
-
catch (e) {
|
|
3726
|
-
_throwInternal(_logger, 1 , 74 , "send request notification failed: " + e);
|
|
3727
|
-
}
|
|
3728
|
-
}, sendSync || isSyncRequest_1, 0);
|
|
3729
|
-
}, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
|
|
3730
|
-
}
|
|
3731
|
-
}
|
|
3732
|
-
}
|
|
3733
|
-
function _getNotificationAction(reason) {
|
|
3734
|
-
var action = _eventActionMap[reason];
|
|
3735
|
-
if (!isValueAssigned(action)) {
|
|
3736
|
-
action = STR_OTHER;
|
|
3737
|
-
if (reason >= 9000 && reason <= 9999 ) {
|
|
3738
|
-
action = STR_RESPONSE_FAIL;
|
|
3739
|
-
}
|
|
3740
|
-
else if (reason >= 8000 && reason <= 8999 ) {
|
|
3741
|
-
action = STR_DROPPED;
|
|
3742
|
-
}
|
|
3743
|
-
else if (reason >= 1000 && reason <= 1999 ) {
|
|
3744
|
-
action = STR_SENDING;
|
|
3745
|
-
}
|
|
3746
|
-
}
|
|
3747
|
-
return action;
|
|
3748
|
-
}
|
|
3749
|
-
});
|
|
3750
|
-
}
|
|
3751
|
-
HttpManager.__ieDyn=1;
|
|
3752
|
-
return HttpManager;
|
|
3753
|
-
}());
|
|
3754
|
-
|
|
3755
|
-
function defaultSetTimeout(callback, ms) {
|
|
3756
|
-
var args = [];
|
|
3757
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
3758
|
-
args[_i - 2] = arguments[_i];
|
|
3759
|
-
}
|
|
3760
|
-
return setTimeout(callback, ms, args);
|
|
3761
|
-
}
|
|
3762
|
-
function defaultClearTimeout(timeoutId) {
|
|
3763
|
-
clearTimeout(timeoutId);
|
|
3764
|
-
}
|
|
3765
|
-
function createTimeoutWrapper(argSetTimeout, argClearTimeout) {
|
|
3766
|
-
return {
|
|
3767
|
-
set: argSetTimeout || defaultSetTimeout,
|
|
3768
|
-
clear: argClearTimeout || defaultClearTimeout
|
|
3769
|
-
};
|
|
3770
|
-
}
|
|
3771
|
-
|
|
3772
|
-
var FlushCheckTimer = 0.250;
|
|
3773
|
-
var MaxNumberEventPerBatch = 500;
|
|
3774
|
-
var EventsDroppedAtOneTime = 20;
|
|
3775
|
-
var MaxSendAttempts = 6;
|
|
3776
|
-
var MaxSyncUnloadSendAttempts = 2;
|
|
3777
|
-
var MaxBackoffCount = 4;
|
|
3778
|
-
var MaxConnections = 2;
|
|
3779
|
-
var MaxRequestRetriesBeforeBackoff = 1;
|
|
3780
|
-
var strEventsDiscarded = "eventsDiscarded";
|
|
3781
|
-
var strOverrideInstrumentationKey = "overrideInstrumentationKey";
|
|
3782
|
-
var strMaxEventRetryAttempts = "maxEventRetryAttempts";
|
|
3783
|
-
var strMaxUnloadEventRetryAttempts = "maxUnloadEventRetryAttempts";
|
|
3784
|
-
var strAddUnloadCb = "addUnloadCb";
|
|
3785
|
-
var PostChannel = /** @class */ (function (_super) {
|
|
3786
|
-
__extendsFn(PostChannel, _super);
|
|
3787
|
-
function PostChannel() {
|
|
3788
|
-
var _this = _super.call(this) || this;
|
|
3789
|
-
_this.identifier = "PostChannel";
|
|
3790
|
-
_this.priority = 1011;
|
|
3791
|
-
_this.version = '3.2.11';
|
|
3792
|
-
var _config;
|
|
3793
|
-
var _isTeardownCalled = false;
|
|
3794
|
-
var _flushCallbackQueue = [];
|
|
3795
|
-
var _flushCallbackTimerId = null;
|
|
3796
|
-
var _paused = false;
|
|
3797
|
-
var _immediateQueueSize = 0;
|
|
3798
|
-
var _immediateQueueSizeLimit = 500;
|
|
3799
|
-
var _queueSize = 0;
|
|
3800
|
-
var _queueSizeLimit = 10000;
|
|
3801
|
-
var _profiles = {};
|
|
3802
|
-
var _currentProfile = RT_PROFILE;
|
|
3803
|
-
var _scheduledTimerId = null;
|
|
3804
|
-
var _immediateTimerId = null;
|
|
3805
|
-
var _currentBackoffCount = 0;
|
|
3806
|
-
var _timerCount = 0;
|
|
3807
|
-
var _xhrOverride;
|
|
3808
|
-
var _httpManager;
|
|
3809
|
-
var _batchQueues = {};
|
|
3810
|
-
var _autoFlushEventsLimit;
|
|
3811
|
-
var _autoFlushBatchLimit;
|
|
3812
|
-
var _delayedBatchSendLatency = -1;
|
|
3813
|
-
var _delayedBatchReason;
|
|
3814
|
-
var _optimizeObject = true;
|
|
3815
|
-
var _isPageUnloadTriggered = false;
|
|
3816
|
-
var _maxEventSendAttempts = MaxSendAttempts;
|
|
3817
|
-
var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
3818
|
-
var _evtNamespace;
|
|
3819
|
-
var _timeoutWrapper;
|
|
3820
|
-
dynamicProto(PostChannel, _this, function (_self, _base) {
|
|
3821
|
-
_initDefaults();
|
|
3822
|
-
_self["_getDbgPlgTargets"] = function () {
|
|
3823
|
-
return [_httpManager];
|
|
3824
|
-
};
|
|
3825
|
-
_self.initialize = function (coreConfig, core, extensions) {
|
|
3826
|
-
doPerf(core, function () { return "PostChannel:initialize"; }, function () {
|
|
3827
|
-
var extendedCore = core;
|
|
3828
|
-
_base.initialize(coreConfig, core, extensions);
|
|
3829
|
-
try {
|
|
3830
|
-
var hasAddUnloadCb = !!core[strAddUnloadCb];
|
|
3831
|
-
_evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());
|
|
3832
|
-
var ctx = _self._getTelCtx();
|
|
3833
|
-
coreConfig.extensionConfig[_self.identifier] = coreConfig.extensionConfig[_self.identifier] || {};
|
|
3834
|
-
_config = ctx.getExtCfg(_self.identifier);
|
|
3835
|
-
_timeoutWrapper = createTimeoutWrapper(_config.setTimeoutOverride, _config.clearTimeoutOverride);
|
|
3836
|
-
_optimizeObject = !_config.disableOptimizeObj && isChromium();
|
|
3837
|
-
_hookWParam(extendedCore);
|
|
3838
|
-
if (_config.eventsLimitInMem > 0) {
|
|
3839
|
-
_queueSizeLimit = _config.eventsLimitInMem;
|
|
3840
|
-
}
|
|
3841
|
-
if (_config.immediateEventLimit > 0) {
|
|
3842
|
-
_immediateQueueSizeLimit = _config.immediateEventLimit;
|
|
3843
|
-
}
|
|
3844
|
-
if (_config.autoFlushEventsLimit > 0) {
|
|
3845
|
-
_autoFlushEventsLimit = _config.autoFlushEventsLimit;
|
|
3846
|
-
}
|
|
3847
|
-
if (isNumber(_config[strMaxEventRetryAttempts])) {
|
|
3848
|
-
_maxEventSendAttempts = _config[strMaxEventRetryAttempts];
|
|
3849
|
-
}
|
|
3850
|
-
if (isNumber(_config[strMaxUnloadEventRetryAttempts])) {
|
|
3851
|
-
_maxUnloadEventSendAttempts = _config[strMaxUnloadEventRetryAttempts];
|
|
3852
|
-
}
|
|
3853
|
-
_setAutoLimits();
|
|
3854
|
-
if (_config.httpXHROverride && _config.httpXHROverride.sendPOST) {
|
|
3855
|
-
_xhrOverride = _config.httpXHROverride;
|
|
3856
|
-
}
|
|
3857
|
-
if (isValueAssigned(coreConfig.anonCookieName)) {
|
|
3858
|
-
_httpManager.addQueryStringParameter("anoncknm", coreConfig.anonCookieName);
|
|
3859
|
-
}
|
|
3860
|
-
_httpManager.sendHook = _config.payloadPreprocessor;
|
|
3861
|
-
_httpManager.sendListener = _config.payloadListener;
|
|
3862
|
-
var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
|
|
3863
|
-
_self._notificationManager = core.getNotifyMgr();
|
|
3864
|
-
_httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
|
|
3865
|
-
var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
|
|
3866
|
-
addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
|
|
3867
|
-
addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
|
|
3868
|
-
addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents, _evtNamespace);
|
|
3869
|
-
}
|
|
3870
|
-
catch (e) {
|
|
3871
|
-
_self.setInitialized(false);
|
|
3872
|
-
throw e;
|
|
3873
|
-
}
|
|
3874
|
-
}, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
|
|
3875
|
-
};
|
|
3876
|
-
_self.processTelemetry = function (ev, itemCtx) {
|
|
3877
|
-
setProcessTelemetryTimings(ev, _self.identifier);
|
|
3878
|
-
itemCtx = _self._getTelCtx(itemCtx);
|
|
3879
|
-
var channelConfig = itemCtx.getExtCfg(_self.identifier);
|
|
3880
|
-
var disableTelemetry = !!_config.disableTelemetry;
|
|
3881
|
-
if (channelConfig) {
|
|
3882
|
-
disableTelemetry = disableTelemetry || !!channelConfig.disableTelemetry;
|
|
3883
|
-
}
|
|
3884
|
-
var event = ev;
|
|
3885
|
-
if (!disableTelemetry && !_isTeardownCalled) {
|
|
3886
|
-
if (_config[strOverrideInstrumentationKey]) {
|
|
3887
|
-
event.iKey = _config[strOverrideInstrumentationKey];
|
|
3888
|
-
}
|
|
3889
|
-
if (channelConfig && channelConfig[strOverrideInstrumentationKey]) {
|
|
3890
|
-
event.iKey = channelConfig[strOverrideInstrumentationKey];
|
|
3891
|
-
}
|
|
3892
|
-
_addEventToQueues(event, true);
|
|
3893
|
-
if (_isPageUnloadTriggered) {
|
|
3894
|
-
_releaseAllQueues(2 , 2 );
|
|
3895
|
-
}
|
|
3896
|
-
else {
|
|
3897
|
-
_scheduleTimer();
|
|
3898
|
-
}
|
|
3899
|
-
}
|
|
3900
|
-
_self.processNext(event, itemCtx);
|
|
3901
|
-
};
|
|
3902
|
-
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
3903
|
-
_releaseAllQueues(2 , 2 );
|
|
3904
|
-
_isTeardownCalled = true;
|
|
3905
|
-
_httpManager.teardown();
|
|
3906
|
-
removePageUnloadEventListener(null, _evtNamespace);
|
|
3907
|
-
removePageHideEventListener(null, _evtNamespace);
|
|
3908
|
-
removePageShowEventListener(null, _evtNamespace);
|
|
3909
|
-
_initDefaults();
|
|
3910
|
-
};
|
|
3911
|
-
function _hookWParam(extendedCore) {
|
|
3912
|
-
var existingGetWParamMethod = extendedCore.getWParam;
|
|
3913
|
-
extendedCore.getWParam = function () {
|
|
3914
|
-
var wparam = 0;
|
|
3915
|
-
if (_config.ignoreMc1Ms0CookieProcessing) {
|
|
3916
|
-
wparam = wparam | 2;
|
|
3917
|
-
}
|
|
3918
|
-
return wparam | existingGetWParamMethod();
|
|
3919
|
-
};
|
|
3920
|
-
}
|
|
3921
|
-
function _handleUnloadEvents(evt) {
|
|
3922
|
-
var theEvt = evt || getWindow().event;
|
|
3923
|
-
if (theEvt.type !== "beforeunload") {
|
|
3924
|
-
_isPageUnloadTriggered = true;
|
|
3925
|
-
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
3926
|
-
}
|
|
3927
|
-
_releaseAllQueues(2 , 2 );
|
|
3928
|
-
}
|
|
3929
|
-
function _handleShowEvents(evt) {
|
|
3930
|
-
_isPageUnloadTriggered = false;
|
|
3931
|
-
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
3932
|
-
}
|
|
3933
|
-
function _addEventToQueues(event, append) {
|
|
3934
|
-
if (!event.sendAttempt) {
|
|
3935
|
-
event.sendAttempt = 0;
|
|
3936
|
-
}
|
|
3937
|
-
if (!event.latency) {
|
|
3938
|
-
event.latency = 1 ;
|
|
3939
|
-
}
|
|
3940
|
-
if (event.ext && event.ext[STR_TRACE]) {
|
|
3941
|
-
delete (event.ext[STR_TRACE]);
|
|
3942
|
-
}
|
|
3943
|
-
if (event.ext && event.ext[STR_USER] && event.ext[STR_USER]["id"]) {
|
|
3944
|
-
delete (event.ext[STR_USER]["id"]);
|
|
3945
|
-
}
|
|
3946
|
-
if (_optimizeObject) {
|
|
3947
|
-
event.ext = optimizeObject(event.ext);
|
|
3948
|
-
if (event.baseData) {
|
|
3949
|
-
event.baseData = optimizeObject(event.baseData);
|
|
3950
|
-
}
|
|
3951
|
-
if (event.data) {
|
|
3952
|
-
event.data = optimizeObject(event.data);
|
|
3953
|
-
}
|
|
3954
|
-
}
|
|
3955
|
-
if (event.sync) {
|
|
3956
|
-
if (_currentBackoffCount || _paused) {
|
|
3957
|
-
event.latency = 3 ;
|
|
3958
|
-
event.sync = false;
|
|
3959
|
-
}
|
|
3960
|
-
else {
|
|
3961
|
-
if (_httpManager) {
|
|
3962
|
-
if (_optimizeObject) {
|
|
3963
|
-
event = optimizeObject(event);
|
|
3964
|
-
}
|
|
3965
|
-
_httpManager.sendSynchronousBatch(EventBatch.create(event.iKey, [event]), event.sync === true ? 1 : event.sync, 3 );
|
|
3966
|
-
return;
|
|
3967
|
-
}
|
|
3968
|
-
}
|
|
3969
|
-
}
|
|
3970
|
-
var evtLatency = event.latency;
|
|
3971
|
-
var queueSize = _queueSize;
|
|
3972
|
-
var queueLimit = _queueSizeLimit;
|
|
3973
|
-
if (evtLatency === 4 ) {
|
|
3974
|
-
queueSize = _immediateQueueSize;
|
|
3975
|
-
queueLimit = _immediateQueueSizeLimit;
|
|
3976
|
-
}
|
|
3977
|
-
var eventDropped = false;
|
|
3978
|
-
if (queueSize < queueLimit) {
|
|
3979
|
-
eventDropped = !_addEventToProperQueue(event, append);
|
|
3980
|
-
}
|
|
3981
|
-
else {
|
|
3982
|
-
var dropLatency = 1 ;
|
|
3983
|
-
var dropNumber = EventsDroppedAtOneTime;
|
|
3984
|
-
if (evtLatency === 4 ) {
|
|
3985
|
-
dropLatency = 4 ;
|
|
3986
|
-
dropNumber = 1;
|
|
3987
|
-
}
|
|
3988
|
-
eventDropped = true;
|
|
3989
|
-
if (_dropEventWithLatencyOrLess(event.iKey, event.latency, dropLatency, dropNumber)) {
|
|
3990
|
-
eventDropped = !_addEventToProperQueue(event, append);
|
|
3991
|
-
}
|
|
3992
|
-
}
|
|
3993
|
-
if (eventDropped) {
|
|
3994
|
-
_notifyEvents(strEventsDiscarded, [event], EventsDiscardedReason.QueueFull);
|
|
3995
|
-
}
|
|
3996
|
-
}
|
|
3997
|
-
_self.setEventQueueLimits = function (eventLimit, autoFlushLimit) {
|
|
3998
|
-
_queueSizeLimit = eventLimit > 0 ? eventLimit : 10000;
|
|
3999
|
-
_autoFlushEventsLimit = autoFlushLimit > 0 ? autoFlushLimit : 0;
|
|
4000
|
-
_setAutoLimits();
|
|
4001
|
-
var doFlush = _queueSize > eventLimit;
|
|
4002
|
-
if (!doFlush && _autoFlushBatchLimit > 0) {
|
|
4003
|
-
for (var latency = 1 ; !doFlush && latency <= 3 ; latency++) {
|
|
4004
|
-
var batchQueue = _batchQueues[latency];
|
|
4005
|
-
if (batchQueue && batchQueue.batches) {
|
|
4006
|
-
arrForEach(batchQueue.batches, function (theBatch) {
|
|
4007
|
-
if (theBatch && theBatch.count() >= _autoFlushBatchLimit) {
|
|
4008
|
-
doFlush = true;
|
|
4009
|
-
}
|
|
4010
|
-
});
|
|
4011
|
-
}
|
|
4012
|
-
}
|
|
4013
|
-
}
|
|
4014
|
-
_performAutoFlush(true, doFlush);
|
|
4015
|
-
};
|
|
4016
|
-
_self.pause = function () {
|
|
4017
|
-
_clearScheduledTimer();
|
|
4018
|
-
_paused = true;
|
|
4019
|
-
_httpManager.pause();
|
|
4020
|
-
};
|
|
4021
|
-
_self.resume = function () {
|
|
4022
|
-
_paused = false;
|
|
4023
|
-
_httpManager.resume();
|
|
4024
|
-
_scheduleTimer();
|
|
4025
|
-
};
|
|
4026
|
-
_self.addResponseHandler = function (responseHandler) {
|
|
4027
|
-
_httpManager._responseHandlers.push(responseHandler);
|
|
4028
|
-
};
|
|
4029
|
-
_self._loadTransmitProfiles = function (profiles) {
|
|
4030
|
-
_resetTransmitProfiles();
|
|
4031
|
-
objForEachKey(profiles, function (profileName, profileValue) {
|
|
4032
|
-
var profLen = profileValue.length;
|
|
4033
|
-
if (profLen >= 2) {
|
|
4034
|
-
var directValue = (profLen > 2 ? profileValue[2] : 0);
|
|
4035
|
-
profileValue.splice(0, profLen - 2);
|
|
4036
|
-
if (profileValue[1] < 0) {
|
|
4037
|
-
profileValue[0] = -1;
|
|
4038
|
-
}
|
|
4039
|
-
if (profileValue[1] > 0 && profileValue[0] > 0) {
|
|
4040
|
-
var timerMultiplier = profileValue[0] / profileValue[1];
|
|
4041
|
-
profileValue[0] = Math.ceil(timerMultiplier) * profileValue[1];
|
|
4042
|
-
}
|
|
4043
|
-
if (directValue >= 0 && profileValue[1] >= 0 && directValue > profileValue[1]) {
|
|
4044
|
-
directValue = profileValue[1];
|
|
4045
|
-
}
|
|
4046
|
-
profileValue.push(directValue);
|
|
4047
|
-
_profiles[profileName] = profileValue;
|
|
4048
|
-
}
|
|
4049
|
-
});
|
|
4050
|
-
};
|
|
4051
|
-
_self.flush = function (async, callback, sendReason) {
|
|
4052
|
-
if (async === void 0) { async = true; }
|
|
4053
|
-
if (!_paused) {
|
|
4054
|
-
sendReason = sendReason || 1 ;
|
|
4055
|
-
if (async) {
|
|
4056
|
-
if (_flushCallbackTimerId == null) {
|
|
4057
|
-
_clearScheduledTimer();
|
|
4058
|
-
_queueBatches(1 , 0 , sendReason);
|
|
4059
|
-
_flushCallbackTimerId = _createTimer(function () {
|
|
4060
|
-
_flushCallbackTimerId = null;
|
|
4061
|
-
_flushImpl(callback, sendReason);
|
|
4062
|
-
}, 0);
|
|
4063
|
-
}
|
|
4064
|
-
else {
|
|
4065
|
-
_flushCallbackQueue.push(callback);
|
|
4066
|
-
}
|
|
4067
|
-
}
|
|
4068
|
-
else {
|
|
4069
|
-
var cleared = _clearScheduledTimer();
|
|
4070
|
-
_sendEventsForLatencyAndAbove(1 , 1 , sendReason);
|
|
4071
|
-
if (callback !== null && callback !== undefined) {
|
|
4072
|
-
callback();
|
|
4073
|
-
}
|
|
4074
|
-
if (cleared) {
|
|
4075
|
-
_scheduleTimer();
|
|
4076
|
-
}
|
|
4077
|
-
}
|
|
4078
|
-
}
|
|
4079
|
-
};
|
|
4080
|
-
_self.setMsaAuthTicket = function (ticket) {
|
|
4081
|
-
_httpManager.addHeader(STR_MSA_DEVICE_TICKET, ticket);
|
|
4082
|
-
};
|
|
4083
|
-
_self.hasEvents = _hasEvents;
|
|
4084
|
-
_self._setTransmitProfile = function (profileName) {
|
|
4085
|
-
if (_currentProfile !== profileName && _profiles[profileName] !== undefined) {
|
|
4086
|
-
_clearScheduledTimer();
|
|
4087
|
-
_currentProfile = profileName;
|
|
4088
|
-
_scheduleTimer();
|
|
4089
|
-
}
|
|
4090
|
-
};
|
|
4091
|
-
function _sendEventsForLatencyAndAbove(latency, sendType, sendReason) {
|
|
4092
|
-
var queued = _queueBatches(latency, sendType, sendReason);
|
|
4093
|
-
_httpManager.sendQueuedRequests(sendType, sendReason);
|
|
4094
|
-
return queued;
|
|
4095
|
-
}
|
|
4096
|
-
function _hasEvents() {
|
|
4097
|
-
return _queueSize > 0;
|
|
4098
|
-
}
|
|
4099
|
-
function _scheduleTimer() {
|
|
4100
|
-
if (_delayedBatchSendLatency >= 0 && _queueBatches(_delayedBatchSendLatency, 0 , _delayedBatchReason)) {
|
|
4101
|
-
_httpManager.sendQueuedRequests(0 , _delayedBatchReason);
|
|
4102
|
-
}
|
|
4103
|
-
if (_immediateQueueSize > 0 && !_immediateTimerId && !_paused) {
|
|
4104
|
-
var immediateTimeOut = _profiles[_currentProfile][2];
|
|
4105
|
-
if (immediateTimeOut >= 0) {
|
|
4106
|
-
_immediateTimerId = _createTimer(function () {
|
|
4107
|
-
_immediateTimerId = null;
|
|
4108
|
-
_sendEventsForLatencyAndAbove(4 , 0 , 1 );
|
|
4109
|
-
_scheduleTimer();
|
|
4110
|
-
}, immediateTimeOut);
|
|
4111
|
-
}
|
|
4112
|
-
}
|
|
4113
|
-
var timeOut = _profiles[_currentProfile][1];
|
|
4114
|
-
if (!_scheduledTimerId && !_flushCallbackTimerId && timeOut >= 0 && !_paused) {
|
|
4115
|
-
if (_hasEvents()) {
|
|
4116
|
-
_scheduledTimerId = _createTimer(function () {
|
|
4117
|
-
_scheduledTimerId = null;
|
|
4118
|
-
_sendEventsForLatencyAndAbove(_timerCount === 0 ? 3 : 1 , 0 , 1 );
|
|
4119
|
-
_timerCount++;
|
|
4120
|
-
_timerCount %= 2;
|
|
4121
|
-
_scheduleTimer();
|
|
4122
|
-
}, timeOut);
|
|
4123
|
-
}
|
|
4124
|
-
else {
|
|
4125
|
-
_timerCount = 0;
|
|
4126
|
-
}
|
|
4127
|
-
}
|
|
4128
|
-
}
|
|
4129
|
-
_self._backOffTransmission = function () {
|
|
4130
|
-
if (_currentBackoffCount < MaxBackoffCount) {
|
|
4131
|
-
_currentBackoffCount++;
|
|
4132
|
-
_clearScheduledTimer();
|
|
4133
|
-
_scheduleTimer();
|
|
4134
|
-
}
|
|
4135
|
-
};
|
|
4136
|
-
_self._clearBackOff = function () {
|
|
4137
|
-
if (_currentBackoffCount) {
|
|
4138
|
-
_currentBackoffCount = 0;
|
|
4139
|
-
_clearScheduledTimer();
|
|
4140
|
-
_scheduleTimer();
|
|
4141
|
-
}
|
|
4142
|
-
};
|
|
4143
|
-
function _initDefaults() {
|
|
4144
|
-
_config = null;
|
|
4145
|
-
_isTeardownCalled = false;
|
|
4146
|
-
_flushCallbackQueue = [];
|
|
4147
|
-
_flushCallbackTimerId = null;
|
|
4148
|
-
_paused = false;
|
|
4149
|
-
_immediateQueueSize = 0;
|
|
4150
|
-
_immediateQueueSizeLimit = 500;
|
|
4151
|
-
_queueSize = 0;
|
|
4152
|
-
_queueSizeLimit = 10000;
|
|
4153
|
-
_profiles = {};
|
|
4154
|
-
_currentProfile = RT_PROFILE;
|
|
4155
|
-
_scheduledTimerId = null;
|
|
4156
|
-
_immediateTimerId = null;
|
|
4157
|
-
_currentBackoffCount = 0;
|
|
4158
|
-
_timerCount = 0;
|
|
4159
|
-
_xhrOverride = null;
|
|
4160
|
-
_batchQueues = {};
|
|
4161
|
-
_autoFlushEventsLimit = undefined;
|
|
4162
|
-
_autoFlushBatchLimit = 0;
|
|
4163
|
-
_delayedBatchSendLatency = -1;
|
|
4164
|
-
_delayedBatchReason = null;
|
|
4165
|
-
_optimizeObject = true;
|
|
4166
|
-
_isPageUnloadTriggered = false;
|
|
4167
|
-
_maxEventSendAttempts = MaxSendAttempts;
|
|
4168
|
-
_maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
4169
|
-
_evtNamespace = null;
|
|
4170
|
-
_timeoutWrapper = createTimeoutWrapper();
|
|
4171
|
-
_httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
|
|
4172
|
-
requeue: _requeueEvents,
|
|
4173
|
-
send: _sendingEvent,
|
|
4174
|
-
sent: _eventsSentEvent,
|
|
4175
|
-
drop: _eventsDropped,
|
|
4176
|
-
rspFail: _eventsResponseFail,
|
|
4177
|
-
oth: _otherEvent
|
|
4178
|
-
}, _timeoutWrapper);
|
|
4179
|
-
_initializeProfiles();
|
|
4180
|
-
_clearQueues();
|
|
4181
|
-
_setAutoLimits();
|
|
4182
|
-
}
|
|
4183
|
-
function _createTimer(theTimerFunc, timeOut) {
|
|
4184
|
-
if (timeOut === 0 && _currentBackoffCount) {
|
|
4185
|
-
timeOut = 1;
|
|
4186
|
-
}
|
|
4187
|
-
var timerMultiplier = 1000;
|
|
4188
|
-
if (_currentBackoffCount) {
|
|
4189
|
-
timerMultiplier = retryPolicyGetMillisToBackoffForRetry(_currentBackoffCount - 1);
|
|
4190
|
-
}
|
|
4191
|
-
return _timeoutWrapper.set(theTimerFunc, timeOut * timerMultiplier);
|
|
4192
|
-
}
|
|
4193
|
-
function _clearScheduledTimer() {
|
|
4194
|
-
if (_scheduledTimerId !== null) {
|
|
4195
|
-
_timeoutWrapper.clear(_scheduledTimerId);
|
|
4196
|
-
_scheduledTimerId = null;
|
|
4197
|
-
_timerCount = 0;
|
|
4198
|
-
return true;
|
|
4199
|
-
}
|
|
4200
|
-
return false;
|
|
4201
|
-
}
|
|
4202
|
-
function _releaseAllQueues(sendType, sendReason) {
|
|
4203
|
-
_clearScheduledTimer();
|
|
4204
|
-
if (_flushCallbackTimerId) {
|
|
4205
|
-
_timeoutWrapper.clear(_flushCallbackTimerId);
|
|
4206
|
-
_flushCallbackTimerId = null;
|
|
4207
|
-
}
|
|
4208
|
-
if (!_paused) {
|
|
4209
|
-
_sendEventsForLatencyAndAbove(1 , sendType, sendReason);
|
|
4210
|
-
}
|
|
4211
|
-
}
|
|
4212
|
-
function _clearQueues() {
|
|
4213
|
-
_batchQueues[4 ] = {
|
|
4214
|
-
batches: [],
|
|
4215
|
-
iKeyMap: {}
|
|
4216
|
-
};
|
|
4217
|
-
_batchQueues[3 ] = {
|
|
4218
|
-
batches: [],
|
|
4219
|
-
iKeyMap: {}
|
|
4220
|
-
};
|
|
4221
|
-
_batchQueues[2 ] = {
|
|
4222
|
-
batches: [],
|
|
4223
|
-
iKeyMap: {}
|
|
4224
|
-
};
|
|
4225
|
-
_batchQueues[1 ] = {
|
|
4226
|
-
batches: [],
|
|
4227
|
-
iKeyMap: {}
|
|
4228
|
-
};
|
|
4229
|
-
}
|
|
4230
|
-
function _getEventBatch(iKey, latency, create) {
|
|
4231
|
-
var batchQueue = _batchQueues[latency];
|
|
4232
|
-
if (!batchQueue) {
|
|
4233
|
-
latency = 1 ;
|
|
4234
|
-
batchQueue = _batchQueues[latency];
|
|
4235
|
-
}
|
|
4236
|
-
var eventBatch = batchQueue.iKeyMap[iKey];
|
|
4237
|
-
if (!eventBatch && create) {
|
|
4238
|
-
eventBatch = EventBatch.create(iKey);
|
|
4239
|
-
batchQueue.batches.push(eventBatch);
|
|
4240
|
-
batchQueue.iKeyMap[iKey] = eventBatch;
|
|
4241
|
-
}
|
|
4242
|
-
return eventBatch;
|
|
4243
|
-
}
|
|
4244
|
-
function _performAutoFlush(isAsync, doFlush) {
|
|
4245
|
-
if (_httpManager.canSendRequest() && !_currentBackoffCount) {
|
|
4246
|
-
if (_autoFlushEventsLimit > 0 && _queueSize > _autoFlushEventsLimit) {
|
|
4247
|
-
doFlush = true;
|
|
4248
|
-
}
|
|
4249
|
-
if (doFlush && _flushCallbackTimerId == null) {
|
|
4250
|
-
_self.flush(isAsync, null, 20 );
|
|
4251
|
-
}
|
|
4252
|
-
}
|
|
4253
|
-
}
|
|
4254
|
-
function _addEventToProperQueue(event, append) {
|
|
4255
|
-
if (_optimizeObject) {
|
|
4256
|
-
event = optimizeObject(event);
|
|
4257
|
-
}
|
|
4258
|
-
var latency = event.latency;
|
|
4259
|
-
var eventBatch = _getEventBatch(event.iKey, latency, true);
|
|
4260
|
-
if (eventBatch.addEvent(event)) {
|
|
4261
|
-
if (latency !== 4 ) {
|
|
4262
|
-
_queueSize++;
|
|
4263
|
-
if (append && event.sendAttempt === 0) {
|
|
4264
|
-
_performAutoFlush(!event.sync, _autoFlushBatchLimit > 0 && eventBatch.count() >= _autoFlushBatchLimit);
|
|
4265
|
-
}
|
|
4266
|
-
}
|
|
4267
|
-
else {
|
|
4268
|
-
_immediateQueueSize++;
|
|
4269
|
-
}
|
|
4270
|
-
return true;
|
|
4271
|
-
}
|
|
4272
|
-
return false;
|
|
4273
|
-
}
|
|
4274
|
-
function _dropEventWithLatencyOrLess(iKey, latency, currentLatency, dropNumber) {
|
|
4275
|
-
while (currentLatency <= latency) {
|
|
4276
|
-
var eventBatch = _getEventBatch(iKey, latency, true);
|
|
4277
|
-
if (eventBatch && eventBatch.count() > 0) {
|
|
4278
|
-
var droppedEvents = eventBatch.split(0, dropNumber);
|
|
4279
|
-
var droppedCount = droppedEvents.count();
|
|
4280
|
-
if (droppedCount > 0) {
|
|
4281
|
-
if (currentLatency === 4 ) {
|
|
4282
|
-
_immediateQueueSize -= droppedCount;
|
|
4283
|
-
}
|
|
4284
|
-
else {
|
|
4285
|
-
_queueSize -= droppedCount;
|
|
4286
|
-
}
|
|
4287
|
-
_notifyBatchEvents(strEventsDiscarded, [droppedEvents], EventsDiscardedReason.QueueFull);
|
|
4288
|
-
return true;
|
|
4289
|
-
}
|
|
4290
|
-
}
|
|
4291
|
-
currentLatency++;
|
|
4292
|
-
}
|
|
4293
|
-
_resetQueueCounts();
|
|
4294
|
-
return false;
|
|
4295
|
-
}
|
|
4296
|
-
function _resetQueueCounts() {
|
|
4297
|
-
var immediateQueue = 0;
|
|
4298
|
-
var normalQueue = 0;
|
|
4299
|
-
var _loop_1 = function (latency) {
|
|
4300
|
-
var batchQueue = _batchQueues[latency];
|
|
4301
|
-
if (batchQueue && batchQueue.batches) {
|
|
4302
|
-
arrForEach(batchQueue.batches, function (theBatch) {
|
|
4303
|
-
if (latency === 4 ) {
|
|
4304
|
-
immediateQueue += theBatch.count();
|
|
4305
|
-
}
|
|
4306
|
-
else {
|
|
4307
|
-
normalQueue += theBatch.count();
|
|
4308
|
-
}
|
|
4309
|
-
});
|
|
4310
|
-
}
|
|
4311
|
-
};
|
|
4312
|
-
for (var latency = 1 ; latency <= 4 ; latency++) {
|
|
4313
|
-
_loop_1(latency);
|
|
4314
|
-
}
|
|
4315
|
-
_queueSize = normalQueue;
|
|
4316
|
-
_immediateQueueSize = immediateQueue;
|
|
4317
|
-
}
|
|
4318
|
-
function _queueBatches(latency, sendType, sendReason) {
|
|
4319
|
-
var eventsQueued = false;
|
|
4320
|
-
var isAsync = sendType === 0 ;
|
|
4321
|
-
if (!isAsync || _httpManager.canSendRequest()) {
|
|
4322
|
-
doPerf(_self.core, function () { return "PostChannel._queueBatches"; }, function () {
|
|
4323
|
-
var droppedEvents = [];
|
|
4324
|
-
var latencyToProcess = 4 ;
|
|
4325
|
-
while (latencyToProcess >= latency) {
|
|
4326
|
-
var batchQueue = _batchQueues[latencyToProcess];
|
|
4327
|
-
if (batchQueue && batchQueue.batches && batchQueue.batches.length > 0) {
|
|
4328
|
-
arrForEach(batchQueue.batches, function (theBatch) {
|
|
4329
|
-
if (!_httpManager.addBatch(theBatch)) {
|
|
4330
|
-
droppedEvents = droppedEvents.concat(theBatch.events());
|
|
4331
|
-
}
|
|
4332
|
-
else {
|
|
4333
|
-
eventsQueued = eventsQueued || (theBatch && theBatch.count() > 0);
|
|
4334
|
-
}
|
|
4335
|
-
if (latencyToProcess === 4 ) {
|
|
4336
|
-
_immediateQueueSize -= theBatch.count();
|
|
4337
|
-
}
|
|
4338
|
-
else {
|
|
4339
|
-
_queueSize -= theBatch.count();
|
|
4340
|
-
}
|
|
4341
|
-
});
|
|
4342
|
-
batchQueue.batches = [];
|
|
4343
|
-
batchQueue.iKeyMap = {};
|
|
4344
|
-
}
|
|
4345
|
-
latencyToProcess--;
|
|
4346
|
-
}
|
|
4347
|
-
if (droppedEvents.length > 0) {
|
|
4348
|
-
_notifyEvents(strEventsDiscarded, droppedEvents, EventsDiscardedReason.KillSwitch);
|
|
4349
|
-
}
|
|
4350
|
-
if (eventsQueued && _delayedBatchSendLatency >= latency) {
|
|
4351
|
-
_delayedBatchSendLatency = -1;
|
|
4352
|
-
_delayedBatchReason = 0 ;
|
|
4353
|
-
}
|
|
4354
|
-
}, function () { return ({ latency: latency, sendType: sendType, sendReason: sendReason }); }, !isAsync);
|
|
4355
|
-
}
|
|
4356
|
-
else {
|
|
4357
|
-
_delayedBatchSendLatency = _delayedBatchSendLatency >= 0 ? Math.min(_delayedBatchSendLatency, latency) : latency;
|
|
4358
|
-
_delayedBatchReason = Math.max(_delayedBatchReason, sendReason);
|
|
4359
|
-
}
|
|
4360
|
-
return eventsQueued;
|
|
4361
|
-
}
|
|
4362
|
-
function _flushImpl(callback, sendReason) {
|
|
4363
|
-
_sendEventsForLatencyAndAbove(1 , 0 , sendReason);
|
|
4364
|
-
_resetQueueCounts();
|
|
4365
|
-
_waitForIdleManager(function () {
|
|
4366
|
-
if (callback) {
|
|
4367
|
-
callback();
|
|
4368
|
-
}
|
|
4369
|
-
if (_flushCallbackQueue.length > 0) {
|
|
4370
|
-
_flushCallbackTimerId = _createTimer(function () {
|
|
4371
|
-
_flushCallbackTimerId = null;
|
|
4372
|
-
_flushImpl(_flushCallbackQueue.shift(), sendReason);
|
|
4373
|
-
}, 0);
|
|
4374
|
-
}
|
|
4375
|
-
else {
|
|
4376
|
-
_flushCallbackTimerId = null;
|
|
4377
|
-
_scheduleTimer();
|
|
4378
|
-
}
|
|
4379
|
-
});
|
|
4380
|
-
}
|
|
4381
|
-
function _waitForIdleManager(callback) {
|
|
4382
|
-
if (_httpManager.isCompletelyIdle()) {
|
|
4383
|
-
callback();
|
|
4384
|
-
}
|
|
4385
|
-
else {
|
|
4386
|
-
_flushCallbackTimerId = _createTimer(function () {
|
|
4387
|
-
_flushCallbackTimerId = null;
|
|
4388
|
-
_waitForIdleManager(callback);
|
|
4389
|
-
}, FlushCheckTimer);
|
|
4390
|
-
}
|
|
4391
|
-
}
|
|
4392
|
-
function _resetTransmitProfiles() {
|
|
4393
|
-
_clearScheduledTimer();
|
|
4394
|
-
_initializeProfiles();
|
|
4395
|
-
_currentProfile = RT_PROFILE;
|
|
4396
|
-
_scheduleTimer();
|
|
4397
|
-
}
|
|
4398
|
-
function _initializeProfiles() {
|
|
4399
|
-
_profiles = {};
|
|
4400
|
-
_profiles[RT_PROFILE] = [2, 1, 0];
|
|
4401
|
-
_profiles[NRT_PROFILE] = [6, 3, 0];
|
|
4402
|
-
_profiles[BE_PROFILE] = [18, 9, 0];
|
|
4403
|
-
}
|
|
4404
|
-
function _requeueEvents(batches, reason) {
|
|
4405
|
-
var droppedEvents = [];
|
|
4406
|
-
var maxSendAttempts = _maxEventSendAttempts;
|
|
4407
|
-
if (_isPageUnloadTriggered) {
|
|
4408
|
-
maxSendAttempts = _maxUnloadEventSendAttempts;
|
|
4409
|
-
}
|
|
4410
|
-
arrForEach(batches, function (theBatch) {
|
|
4411
|
-
if (theBatch && theBatch.count() > 0) {
|
|
4412
|
-
arrForEach(theBatch.events(), function (theEvent) {
|
|
4413
|
-
if (theEvent) {
|
|
4414
|
-
if (theEvent.sync) {
|
|
4415
|
-
theEvent.latency = 4 ;
|
|
4416
|
-
theEvent.sync = false;
|
|
4417
|
-
}
|
|
4418
|
-
if (theEvent.sendAttempt < maxSendAttempts) {
|
|
4419
|
-
setProcessTelemetryTimings(theEvent, _self.identifier);
|
|
4420
|
-
_addEventToQueues(theEvent, false);
|
|
4421
|
-
}
|
|
4422
|
-
else {
|
|
4423
|
-
droppedEvents.push(theEvent);
|
|
4424
|
-
}
|
|
4425
|
-
}
|
|
4426
|
-
});
|
|
4427
|
-
}
|
|
4428
|
-
});
|
|
4429
|
-
if (droppedEvents.length > 0) {
|
|
4430
|
-
_notifyEvents(strEventsDiscarded, droppedEvents, EventsDiscardedReason.NonRetryableStatus);
|
|
4431
|
-
}
|
|
4432
|
-
if (_isPageUnloadTriggered) {
|
|
4433
|
-
_releaseAllQueues(2 , 2 );
|
|
4434
|
-
}
|
|
4435
|
-
}
|
|
4436
|
-
function _callNotification(evtName, theArgs) {
|
|
4437
|
-
var manager = (_self._notificationManager || {});
|
|
4438
|
-
var notifyFunc = manager[evtName];
|
|
4439
|
-
if (notifyFunc) {
|
|
4440
|
-
try {
|
|
4441
|
-
notifyFunc.apply(manager, theArgs);
|
|
4442
|
-
}
|
|
4443
|
-
catch (e) {
|
|
4444
|
-
_throwInternal(_self.diagLog(), 1 , 74 , evtName + " notification failed: " + e);
|
|
4445
|
-
}
|
|
4446
|
-
}
|
|
4447
|
-
}
|
|
4448
|
-
function _notifyEvents(evtName, theEvents) {
|
|
4449
|
-
var extraArgs = [];
|
|
4450
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
4451
|
-
extraArgs[_i - 2] = arguments[_i];
|
|
4452
|
-
}
|
|
4453
|
-
if (theEvents && theEvents.length > 0) {
|
|
4454
|
-
_callNotification(evtName, [theEvents].concat(extraArgs));
|
|
4455
|
-
}
|
|
4456
|
-
}
|
|
4457
|
-
function _notifyBatchEvents(evtName, batches) {
|
|
4458
|
-
var extraArgs = [];
|
|
4459
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
4460
|
-
extraArgs[_i - 2] = arguments[_i];
|
|
4461
|
-
}
|
|
4462
|
-
if (batches && batches.length > 0) {
|
|
4463
|
-
arrForEach(batches, function (theBatch) {
|
|
4464
|
-
if (theBatch && theBatch.count() > 0) {
|
|
4465
|
-
_callNotification(evtName, [theBatch.events()].concat(extraArgs));
|
|
4466
|
-
}
|
|
4467
|
-
});
|
|
4468
|
-
}
|
|
4469
|
-
}
|
|
4470
|
-
function _sendingEvent(batches, reason, isSyncRequest) {
|
|
4471
|
-
if (batches && batches.length > 0) {
|
|
4472
|
-
_callNotification("eventsSendRequest", [(reason >= 1000 && reason <= 1999 ?
|
|
4473
|
-
reason - 1000 :
|
|
4474
|
-
0 ), isSyncRequest !== true]);
|
|
4475
|
-
}
|
|
4476
|
-
}
|
|
4477
|
-
function _eventsSentEvent(batches, reason) {
|
|
4478
|
-
_notifyBatchEvents("eventsSent", batches, reason);
|
|
4479
|
-
_scheduleTimer();
|
|
4480
|
-
}
|
|
4481
|
-
function _eventsDropped(batches, reason) {
|
|
4482
|
-
_notifyBatchEvents(strEventsDiscarded, batches, (reason >= 8000 && reason <= 8999 ?
|
|
4483
|
-
reason - 8000 :
|
|
4484
|
-
EventsDiscardedReason.Unknown));
|
|
4485
|
-
}
|
|
4486
|
-
function _eventsResponseFail(batches) {
|
|
4487
|
-
_notifyBatchEvents(strEventsDiscarded, batches, EventsDiscardedReason.NonRetryableStatus);
|
|
4488
|
-
_scheduleTimer();
|
|
4489
|
-
}
|
|
4490
|
-
function _otherEvent(batches, reason) {
|
|
4491
|
-
_notifyBatchEvents(strEventsDiscarded, batches, EventsDiscardedReason.Unknown);
|
|
4492
|
-
_scheduleTimer();
|
|
4493
|
-
}
|
|
4494
|
-
function _setAutoLimits() {
|
|
4495
|
-
if (!_config || !_config.disableAutoBatchFlushLimit) {
|
|
4496
|
-
_autoFlushBatchLimit = Math.max(MaxNumberEventPerBatch * (MaxConnections + 1), _queueSizeLimit / 6);
|
|
4497
|
-
}
|
|
4498
|
-
else {
|
|
4499
|
-
_autoFlushBatchLimit = 0;
|
|
4500
|
-
}
|
|
4501
|
-
}
|
|
4502
|
-
objDefineAccessors(_self, "_setTimeoutOverride", function () { return _timeoutWrapper.set; }, function (value) {
|
|
4503
|
-
_timeoutWrapper = createTimeoutWrapper(value, _timeoutWrapper.clear);
|
|
4504
|
-
});
|
|
4505
|
-
objDefineAccessors(_self, "_clearTimeoutOverride", function () { return _timeoutWrapper.clear; }, function (value) {
|
|
4506
|
-
_timeoutWrapper = createTimeoutWrapper(_timeoutWrapper.set, value);
|
|
4507
|
-
});
|
|
4508
|
-
});
|
|
4509
|
-
return _this;
|
|
4510
|
-
}
|
|
4511
|
-
PostChannel.__ieDyn=1;
|
|
4512
|
-
return PostChannel;
|
|
4513
|
-
}(BaseTelemetryPlugin));
|
|
4514
|
-
var PostChannel$1 = PostChannel;
|
|
4515
|
-
|
|
4516
|
-
exports.BE_PROFILE = BE_PROFILE;
|
|
4517
|
-
exports.NRT_PROFILE = NRT_PROFILE;
|
|
4518
|
-
exports.PostChannel = PostChannel$1;
|
|
4519
|
-
exports.RT_PROFILE = RT_PROFILE;
|
|
4520
|
-
|
|
4521
|
-
(function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
|
|
4522
|
-
|
|
4523
|
-
})(this.oneDS = this.oneDS || {});
|
|
4524
|
-
//# sourceMappingURL=ms.post-3.2.11.gbl.js.map
|