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