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