@microsoft/1ds-post-js 3.1.11 → 3.2.2
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 +2 -2
- package/bundle/{ms.post-3.1.11.gbl.js → ms.post-3.2.2.gbl.js} +1278 -548
- package/bundle/ms.post-3.2.2.gbl.js.map +1 -0
- package/bundle/ms.post-3.2.2.gbl.min.js +7 -0
- package/bundle/ms.post-3.2.2.gbl.min.js.map +1 -0
- package/bundle/ms.post-3.2.2.integrity.json +46 -0
- package/bundle/{ms.post-3.1.11.js → ms.post-3.2.2.js} +1278 -548
- package/bundle/ms.post-3.2.2.js.map +1 -0
- package/bundle/ms.post-3.2.2.min.js +7 -0
- package/bundle/ms.post-3.2.2.min.js.map +1 -0
- package/bundle/ms.post.gbl.js +1277 -547
- 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 +1277 -547
- 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 +212 -128
- package/dist/ms.post.js.map +1 -1
- package/dist/ms.post.min.js +2 -2
- package/dist/ms.post.min.js.map +1 -1
- package/dist-esm/src/BatchNotificationActions.js +1 -1
- package/dist-esm/src/ClockSkewManager.js +1 -1
- package/dist-esm/src/Constants.js +1 -1
- package/dist-esm/src/DataModels.js +1 -1
- package/dist-esm/src/EventBatch.js +1 -1
- package/dist-esm/src/HttpManager.d.ts +2 -1
- package/dist-esm/src/HttpManager.js +45 -40
- package/dist-esm/src/HttpManager.js.map +1 -1
- package/dist-esm/src/Index.js +1 -1
- package/dist-esm/src/KillSwitch.js +1 -1
- package/dist-esm/src/PostChannel.d.ts +2 -9
- package/dist-esm/src/PostChannel.js +151 -97
- package/dist-esm/src/PostChannel.js.map +1 -1
- package/dist-esm/src/RetryPolicy.d.ts +20 -25
- package/dist-esm/src/RetryPolicy.js +35 -44
- package/dist-esm/src/RetryPolicy.js.map +1 -1
- package/dist-esm/src/Serializer.js +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 +3 -3
- package/src/HttpManager.ts +48 -51
- package/src/PostChannel.ts +186 -119
- package/src/RetryPolicy.ts +33 -38
- package/src/TimeoutOverrideWrapper.ts +29 -0
- package/bundle/ms.post-3.1.11.gbl.js.map +0 -1
- package/bundle/ms.post-3.1.11.gbl.min.js +0 -7
- package/bundle/ms.post-3.1.11.gbl.min.js.map +0 -1
- package/bundle/ms.post-3.1.11.integrity.json +0 -46
- package/bundle/ms.post-3.1.11.js.map +0 -1
- package/bundle/ms.post-3.1.11.min.js +0 -7
- package/bundle/ms.post-3.1.11.min.js.map +0 -1
package/bundle/ms.post.gbl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* 1DS JS SDK POST plugin, 3.
|
|
2
|
+
* 1DS JS SDK POST plugin, 3.2.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
* (Microsoft Internal Only)
|
|
5
5
|
*/
|
|
@@ -59,18 +59,6 @@
|
|
|
59
59
|
|
|
60
60
|
(getGlobal() || {})["Symbol"];
|
|
61
61
|
(getGlobal() || {})["Reflect"];
|
|
62
|
-
var __objAssignFnImpl = function (t) {
|
|
63
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
64
|
-
s = arguments[i];
|
|
65
|
-
for (var p in s) {
|
|
66
|
-
if (ObjProto[strShimHasOwnProperty].call(s, p)) {
|
|
67
|
-
t[p] = s[p];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return t;
|
|
72
|
-
};
|
|
73
|
-
var __assignFn = ObjAssign || __objAssignFnImpl;
|
|
74
62
|
var extendStaticsFn = function (d, b) {
|
|
75
63
|
extendStaticsFn = ObjClass["setPrototypeOf"] ||
|
|
76
64
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
@@ -92,17 +80,8 @@
|
|
|
92
80
|
d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
|
|
93
81
|
}
|
|
94
82
|
|
|
95
|
-
var EventsDiscardedReason = {
|
|
96
|
-
Unknown: 0,
|
|
97
|
-
NonRetryableStatus: 1,
|
|
98
|
-
InvalidEvent: 2,
|
|
99
|
-
SizeLimitExceeded: 3,
|
|
100
|
-
KillSwitch: 4,
|
|
101
|
-
QueueFull: 5
|
|
102
|
-
};
|
|
103
|
-
|
|
104
83
|
/*!
|
|
105
|
-
* Microsoft Dynamic Proto Utility, 1.1.
|
|
84
|
+
* Microsoft Dynamic Proto Utility, 1.1.6
|
|
106
85
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
107
86
|
*/
|
|
108
87
|
var Constructor = 'constructor';
|
|
@@ -116,11 +95,14 @@
|
|
|
116
95
|
var DynAllowInstChkTag = DynInstChkTag;
|
|
117
96
|
var DynProtoDefaultOptions = '_dfOpts';
|
|
118
97
|
var UnknownValue = '_unknown_';
|
|
119
|
-
var str__Proto = "__proto__";
|
|
98
|
+
var str__Proto$1 = "__proto__";
|
|
99
|
+
var DynProtoBaseProto = "_dyn" + str__Proto$1;
|
|
100
|
+
var DynProtoCurrent = "_dynInstProto";
|
|
120
101
|
var strUseBaseInst = 'useBaseInst';
|
|
121
102
|
var strSetInstFuncs = 'setInstFuncs';
|
|
122
103
|
var Obj = Object;
|
|
123
|
-
var _objGetPrototypeOf = Obj["getPrototypeOf"];
|
|
104
|
+
var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
|
|
105
|
+
var _objGetOwnProps = Obj["getOwnPropertyNames"];
|
|
124
106
|
var _dynamicNames = 0;
|
|
125
107
|
function _hasOwnProperty(obj, prop) {
|
|
126
108
|
return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
|
|
@@ -131,23 +113,26 @@
|
|
|
131
113
|
function _isObjectArrayOrFunctionPrototype(target) {
|
|
132
114
|
return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
|
|
133
115
|
}
|
|
134
|
-
function _getObjProto(target) {
|
|
116
|
+
function _getObjProto$1(target) {
|
|
117
|
+
var newProto;
|
|
135
118
|
if (target) {
|
|
136
|
-
if (_objGetPrototypeOf) {
|
|
137
|
-
return _objGetPrototypeOf(target);
|
|
119
|
+
if (_objGetPrototypeOf$1) {
|
|
120
|
+
return _objGetPrototypeOf$1(target);
|
|
138
121
|
}
|
|
139
|
-
var
|
|
140
|
-
|
|
141
|
-
|
|
122
|
+
var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
|
|
123
|
+
newProto = target[DynProtoBaseProto] || curProto;
|
|
124
|
+
if (!_hasOwnProperty(target, DynProtoBaseProto)) {
|
|
125
|
+
delete target[DynProtoCurrent];
|
|
126
|
+
newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
|
|
127
|
+
target[DynProtoCurrent] = curProto;
|
|
142
128
|
}
|
|
143
129
|
}
|
|
144
|
-
return
|
|
130
|
+
return newProto;
|
|
145
131
|
}
|
|
146
132
|
function _forEachProp(target, func) {
|
|
147
133
|
var props = [];
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
props = getOwnProps(target);
|
|
134
|
+
if (_objGetOwnProps) {
|
|
135
|
+
props = _objGetOwnProps(target);
|
|
151
136
|
}
|
|
152
137
|
else {
|
|
153
138
|
for (var name_1 in target) {
|
|
@@ -202,16 +187,16 @@
|
|
|
202
187
|
_forEachProp(instFuncs, function (name) {
|
|
203
188
|
baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
|
|
204
189
|
});
|
|
205
|
-
var baseProto = _getObjProto(classProto);
|
|
190
|
+
var baseProto = _getObjProto$1(classProto);
|
|
206
191
|
var visited = [];
|
|
207
192
|
while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
|
|
208
193
|
_forEachProp(baseProto, function (name) {
|
|
209
|
-
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {
|
|
194
|
+
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
|
|
210
195
|
baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
|
|
211
196
|
}
|
|
212
197
|
});
|
|
213
198
|
visited.push(baseProto);
|
|
214
|
-
baseProto = _getObjProto(baseProto);
|
|
199
|
+
baseProto = _getObjProto$1(baseProto);
|
|
215
200
|
}
|
|
216
201
|
return baseFuncs;
|
|
217
202
|
}
|
|
@@ -225,7 +210,7 @@
|
|
|
225
210
|
}
|
|
226
211
|
if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
|
|
227
212
|
var canAddInst = !_hasOwnProperty(target, funcName);
|
|
228
|
-
var objProto = _getObjProto(target);
|
|
213
|
+
var objProto = _getObjProto$1(target);
|
|
229
214
|
var visited = [];
|
|
230
215
|
while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
|
|
231
216
|
var protoFunc = objProto[funcName];
|
|
@@ -234,7 +219,7 @@
|
|
|
234
219
|
break;
|
|
235
220
|
}
|
|
236
221
|
visited.push(objProto);
|
|
237
|
-
objProto = _getObjProto(objProto);
|
|
222
|
+
objProto = _getObjProto$1(objProto);
|
|
238
223
|
}
|
|
239
224
|
try {
|
|
240
225
|
if (canAddInst) {
|
|
@@ -252,7 +237,7 @@
|
|
|
252
237
|
function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
|
|
253
238
|
var protoFunc = proto[funcName];
|
|
254
239
|
if (protoFunc === currentDynProtoProxy) {
|
|
255
|
-
protoFunc = _getObjProto(proto)[funcName];
|
|
240
|
+
protoFunc = _getObjProto$1(proto)[funcName];
|
|
256
241
|
}
|
|
257
242
|
if (typeof protoFunc !== strFunction) {
|
|
258
243
|
_throwTypeError("[" + funcName + "] is not a " + strFunction);
|
|
@@ -286,18 +271,19 @@
|
|
|
286
271
|
}
|
|
287
272
|
}
|
|
288
273
|
function _checkPrototype(classProto, thisTarget) {
|
|
289
|
-
if (_objGetPrototypeOf) {
|
|
274
|
+
if (_objGetPrototypeOf$1) {
|
|
290
275
|
var visited = [];
|
|
291
|
-
var thisProto = _getObjProto(thisTarget);
|
|
276
|
+
var thisProto = _getObjProto$1(thisTarget);
|
|
292
277
|
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
|
|
293
278
|
if (thisProto === classProto) {
|
|
294
279
|
return true;
|
|
295
280
|
}
|
|
296
281
|
visited.push(thisProto);
|
|
297
|
-
thisProto = _getObjProto(thisProto);
|
|
282
|
+
thisProto = _getObjProto$1(thisProto);
|
|
298
283
|
}
|
|
284
|
+
return false;
|
|
299
285
|
}
|
|
300
|
-
return
|
|
286
|
+
return true;
|
|
301
287
|
}
|
|
302
288
|
function _getObjName(target, unknownValue) {
|
|
303
289
|
if (_hasOwnProperty(target, Prototype)) {
|
|
@@ -330,7 +316,7 @@
|
|
|
330
316
|
var instFuncs = _getInstanceFuncs(target);
|
|
331
317
|
var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
|
|
332
318
|
delegateFunc(target, baseFuncs);
|
|
333
|
-
var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];
|
|
319
|
+
var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
|
|
334
320
|
if (setInstanceFunc && options) {
|
|
335
321
|
setInstanceFunc = !!options[strSetInstFuncs];
|
|
336
322
|
}
|
|
@@ -342,104 +328,23 @@
|
|
|
342
328
|
};
|
|
343
329
|
dynamicProto[DynProtoDefaultOptions] = perfDefaults;
|
|
344
330
|
|
|
345
|
-
var
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
var
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
BrowserCannotReadSessionStorage: 2,
|
|
354
|
-
BrowserCannotWriteLocalStorage: 3,
|
|
355
|
-
BrowserCannotWriteSessionStorage: 4,
|
|
356
|
-
BrowserFailedRemovalFromLocalStorage: 5,
|
|
357
|
-
BrowserFailedRemovalFromSessionStorage: 6,
|
|
358
|
-
CannotSendEmptyTelemetry: 7,
|
|
359
|
-
ClientPerformanceMathError: 8,
|
|
360
|
-
ErrorParsingAISessionCookie: 9,
|
|
361
|
-
ErrorPVCalc: 10,
|
|
362
|
-
ExceptionWhileLoggingError: 11,
|
|
363
|
-
FailedAddingTelemetryToBuffer: 12,
|
|
364
|
-
FailedMonitorAjaxAbort: 13,
|
|
365
|
-
FailedMonitorAjaxDur: 14,
|
|
366
|
-
FailedMonitorAjaxOpen: 15,
|
|
367
|
-
FailedMonitorAjaxRSC: 16,
|
|
368
|
-
FailedMonitorAjaxSend: 17,
|
|
369
|
-
FailedMonitorAjaxGetCorrelationHeader: 18,
|
|
370
|
-
FailedToAddHandlerForOnBeforeUnload: 19,
|
|
371
|
-
FailedToSendQueuedTelemetry: 20,
|
|
372
|
-
FailedToReportDataLoss: 21,
|
|
373
|
-
FlushFailed: 22,
|
|
374
|
-
MessageLimitPerPVExceeded: 23,
|
|
375
|
-
MissingRequiredFieldSpecification: 24,
|
|
376
|
-
NavigationTimingNotSupported: 25,
|
|
377
|
-
OnError: 26,
|
|
378
|
-
SessionRenewalDateIsZero: 27,
|
|
379
|
-
SenderNotInitialized: 28,
|
|
380
|
-
StartTrackEventFailed: 29,
|
|
381
|
-
StopTrackEventFailed: 30,
|
|
382
|
-
StartTrackFailed: 31,
|
|
383
|
-
StopTrackFailed: 32,
|
|
384
|
-
TelemetrySampledAndNotSent: 33,
|
|
385
|
-
TrackEventFailed: 34,
|
|
386
|
-
TrackExceptionFailed: 35,
|
|
387
|
-
TrackMetricFailed: 36,
|
|
388
|
-
TrackPVFailed: 37,
|
|
389
|
-
TrackPVFailedCalc: 38,
|
|
390
|
-
TrackTraceFailed: 39,
|
|
391
|
-
TransmissionFailed: 40,
|
|
392
|
-
FailedToSetStorageBuffer: 41,
|
|
393
|
-
FailedToRestoreStorageBuffer: 42,
|
|
394
|
-
InvalidBackendResponse: 43,
|
|
395
|
-
FailedToFixDepricatedValues: 44,
|
|
396
|
-
InvalidDurationValue: 45,
|
|
397
|
-
TelemetryEnvelopeInvalid: 46,
|
|
398
|
-
CreateEnvelopeError: 47,
|
|
399
|
-
CannotSerializeObject: 48,
|
|
400
|
-
CannotSerializeObjectNonSerializable: 49,
|
|
401
|
-
CircularReferenceDetected: 50,
|
|
402
|
-
ClearAuthContextFailed: 51,
|
|
403
|
-
ExceptionTruncated: 52,
|
|
404
|
-
IllegalCharsInName: 53,
|
|
405
|
-
ItemNotInArray: 54,
|
|
406
|
-
MaxAjaxPerPVExceeded: 55,
|
|
407
|
-
MessageTruncated: 56,
|
|
408
|
-
NameTooLong: 57,
|
|
409
|
-
SampleRateOutOfRange: 58,
|
|
410
|
-
SetAuthContextFailed: 59,
|
|
411
|
-
SetAuthContextFailedAccountName: 60,
|
|
412
|
-
StringValueTooLong: 61,
|
|
413
|
-
StartCalledMoreThanOnce: 62,
|
|
414
|
-
StopCalledWithoutStart: 63,
|
|
415
|
-
TelemetryInitializerFailed: 64,
|
|
416
|
-
TrackArgumentsNotSpecified: 65,
|
|
417
|
-
UrlTooLong: 66,
|
|
418
|
-
SessionStorageBufferFull: 67,
|
|
419
|
-
CannotAccessCookie: 68,
|
|
420
|
-
IdTooLong: 69,
|
|
421
|
-
InvalidEvent: 70,
|
|
422
|
-
FailedMonitorAjaxSetRequestHeader: 71,
|
|
423
|
-
SendBrowserInfoOnUserInit: 72,
|
|
424
|
-
PluginException: 73,
|
|
425
|
-
NotificationException: 74,
|
|
426
|
-
SnippetScriptLoadFailure: 99,
|
|
427
|
-
InvalidInstrumentationKey: 100,
|
|
428
|
-
CannotParseAiBlobValue: 101,
|
|
429
|
-
InvalidContentBlob: 102,
|
|
430
|
-
TrackPageActionEventFailed: 103,
|
|
431
|
-
FailedAddingCustomDefinedRequestContext: 104,
|
|
432
|
-
InMemoryStorageBufferFull: 105
|
|
433
|
-
};
|
|
331
|
+
var strEmpty = "";
|
|
332
|
+
var strSetNextPlugin = "setNextPlugin";
|
|
333
|
+
var strIsInitialized = "isInitialized";
|
|
334
|
+
var strTeardown = "teardown";
|
|
335
|
+
var strCore = "core";
|
|
336
|
+
var strUpdate = "update";
|
|
337
|
+
var strDisabled = "disabled";
|
|
338
|
+
var strDoTeardown = "_doTeardown";
|
|
434
339
|
|
|
435
|
-
var strOnPrefix = "on";
|
|
436
|
-
var strAttachEvent = "attachEvent";
|
|
437
|
-
var strAddEventHelper = "addEventListener";
|
|
438
340
|
var cStrStartsWith = "startsWith";
|
|
439
341
|
var strIndexOf = "indexOf";
|
|
440
342
|
var cStrTrim = "trim";
|
|
441
343
|
var strToString = "toString";
|
|
442
|
-
var
|
|
344
|
+
var str__Proto = "__proto__";
|
|
345
|
+
var strConstructor = "constructor";
|
|
346
|
+
var _objDefineProperty$1 = ObjDefineProperty;
|
|
347
|
+
var _objFreeze = ObjClass.freeze;
|
|
443
348
|
var _objKeys = ObjClass.keys;
|
|
444
349
|
var StringProto = String[strShimPrototype];
|
|
445
350
|
var _strTrim = StringProto[cStrTrim];
|
|
@@ -447,7 +352,23 @@
|
|
|
447
352
|
var _isArray = Array.isArray;
|
|
448
353
|
var _objToString = ObjProto[strToString];
|
|
449
354
|
var _fnToString = ObjHasOwnProperty[strToString];
|
|
450
|
-
_fnToString.call(ObjClass);
|
|
355
|
+
var _objFunctionString = _fnToString.call(ObjClass);
|
|
356
|
+
var rCamelCase = /-([a-z])/g;
|
|
357
|
+
var rNormalizeInvalid = /([^\w\d_$])/g;
|
|
358
|
+
var rLeadingNumeric = /^(\d+[\w\d_$])/;
|
|
359
|
+
var _objGetPrototypeOf = Object["getPrototypeOf"];
|
|
360
|
+
function _getObjProto(target) {
|
|
361
|
+
if (target) {
|
|
362
|
+
if (_objGetPrototypeOf) {
|
|
363
|
+
return _objGetPrototypeOf(target);
|
|
364
|
+
}
|
|
365
|
+
var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
|
|
366
|
+
if (newProto) {
|
|
367
|
+
return newProto;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
451
372
|
function isUndefined(value) {
|
|
452
373
|
return value === undefined || typeof value === strShimUndefined;
|
|
453
374
|
}
|
|
@@ -463,24 +384,18 @@
|
|
|
463
384
|
function isFunction(value) {
|
|
464
385
|
return !!(value && typeof value === strShimFunction);
|
|
465
386
|
}
|
|
466
|
-
function
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);
|
|
477
|
-
result = true;
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
catch (e) {
|
|
481
|
-
}
|
|
387
|
+
function normalizeJsName(name) {
|
|
388
|
+
var value = name;
|
|
389
|
+
if (value && isString(value)) {
|
|
390
|
+
value = value.replace(rCamelCase, function (_all, letter) {
|
|
391
|
+
return letter.toUpperCase();
|
|
392
|
+
});
|
|
393
|
+
value = value.replace(rNormalizeInvalid, "_");
|
|
394
|
+
value = value.replace(rLeadingNumeric, function (_all, match) {
|
|
395
|
+
return "_" + match;
|
|
396
|
+
});
|
|
482
397
|
}
|
|
483
|
-
return
|
|
398
|
+
return value;
|
|
484
399
|
}
|
|
485
400
|
function objForEachKey(target, callbackfn) {
|
|
486
401
|
if (target) {
|
|
@@ -511,6 +426,12 @@
|
|
|
511
426
|
}
|
|
512
427
|
return result;
|
|
513
428
|
}
|
|
429
|
+
function strContains(value, search) {
|
|
430
|
+
if (value && search) {
|
|
431
|
+
return value.indexOf(search) !== -1;
|
|
432
|
+
}
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
514
435
|
var isArray = _isArray || _isArrayPoly;
|
|
515
436
|
function _isArrayPoly(obj) {
|
|
516
437
|
return !!(obj && _objToString.call(obj) === "[object Array]");
|
|
@@ -524,6 +445,22 @@
|
|
|
524
445
|
function isBoolean(value) {
|
|
525
446
|
return typeof value === "boolean";
|
|
526
447
|
}
|
|
448
|
+
function isPlainObject(value) {
|
|
449
|
+
var result = false;
|
|
450
|
+
if (value && typeof value === "object") {
|
|
451
|
+
var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
|
|
452
|
+
if (!proto) {
|
|
453
|
+
result = true;
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
if (proto[strConstructor] && ObjHasOwnProperty.call(proto, strConstructor)) {
|
|
457
|
+
proto = proto[strConstructor];
|
|
458
|
+
}
|
|
459
|
+
result = typeof proto === strShimFunction && _fnToString.call(proto) === _objFunctionString;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return result;
|
|
463
|
+
}
|
|
527
464
|
function arrForEach(arr, callbackfn, thisArg) {
|
|
528
465
|
var len = arr.length;
|
|
529
466
|
try {
|
|
@@ -598,7 +535,7 @@
|
|
|
598
535
|
return result;
|
|
599
536
|
}
|
|
600
537
|
function objDefineAccessors(target, prop, getProp, setProp) {
|
|
601
|
-
if (_objDefineProperty) {
|
|
538
|
+
if (_objDefineProperty$1) {
|
|
602
539
|
try {
|
|
603
540
|
var descriptor = {
|
|
604
541
|
enumerable: true,
|
|
@@ -610,7 +547,7 @@
|
|
|
610
547
|
if (setProp) {
|
|
611
548
|
descriptor.set = setProp;
|
|
612
549
|
}
|
|
613
|
-
_objDefineProperty(target, prop, descriptor);
|
|
550
|
+
_objDefineProperty$1(target, prop, descriptor);
|
|
614
551
|
return true;
|
|
615
552
|
}
|
|
616
553
|
catch (e) {
|
|
@@ -618,6 +555,20 @@
|
|
|
618
555
|
}
|
|
619
556
|
return false;
|
|
620
557
|
}
|
|
558
|
+
function _doNothing(value) {
|
|
559
|
+
return value;
|
|
560
|
+
}
|
|
561
|
+
function deepFreeze(obj) {
|
|
562
|
+
if (_objFreeze) {
|
|
563
|
+
objForEachKey(obj, function (name, value) {
|
|
564
|
+
if (isArray(value) || isObject(value)) {
|
|
565
|
+
_objFreeze(value);
|
|
566
|
+
}
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
return objFreeze(obj);
|
|
570
|
+
}
|
|
571
|
+
var objFreeze = _objFreeze || _doNothing;
|
|
621
572
|
function dateNow() {
|
|
622
573
|
var dt = Date;
|
|
623
574
|
return dt.now ? dt.now() : new dt().getTime();
|
|
@@ -633,12 +584,100 @@
|
|
|
633
584
|
}
|
|
634
585
|
return theValue;
|
|
635
586
|
}
|
|
587
|
+
function _createProxyFunction(source, funcName) {
|
|
588
|
+
var srcFunc = null;
|
|
589
|
+
var src = null;
|
|
590
|
+
if (isFunction(source)) {
|
|
591
|
+
srcFunc = source;
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
src = source;
|
|
595
|
+
}
|
|
596
|
+
return function () {
|
|
597
|
+
var originalArguments = arguments;
|
|
598
|
+
if (srcFunc) {
|
|
599
|
+
src = srcFunc();
|
|
600
|
+
}
|
|
601
|
+
if (src) {
|
|
602
|
+
return src[funcName].apply(src, originalArguments);
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
}
|
|
606
|
+
function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {
|
|
607
|
+
if (target && name && source) {
|
|
608
|
+
if (overwriteTarget !== false || isUndefined(target[name])) {
|
|
609
|
+
target[name] = _createProxyFunction(source, theFunc);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
636
613
|
function optimizeObject(theObject) {
|
|
637
614
|
if (theObject && ObjAssign) {
|
|
638
615
|
theObject = ObjClass(ObjAssign({}, theObject));
|
|
639
616
|
}
|
|
640
617
|
return theObject;
|
|
641
618
|
}
|
|
619
|
+
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
620
|
+
var theArgs = arguments;
|
|
621
|
+
var extended = theArgs[0] || {};
|
|
622
|
+
var argLen = theArgs.length;
|
|
623
|
+
var deep = false;
|
|
624
|
+
var idx = 1;
|
|
625
|
+
if (argLen > 0 && isBoolean(extended)) {
|
|
626
|
+
deep = extended;
|
|
627
|
+
extended = theArgs[idx] || {};
|
|
628
|
+
idx++;
|
|
629
|
+
}
|
|
630
|
+
if (!isObject(extended)) {
|
|
631
|
+
extended = {};
|
|
632
|
+
}
|
|
633
|
+
for (; idx < argLen; idx++) {
|
|
634
|
+
var arg = theArgs[idx];
|
|
635
|
+
var isArgArray = isArray(arg);
|
|
636
|
+
var isArgObj = isObject(arg);
|
|
637
|
+
for (var prop in arg) {
|
|
638
|
+
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty.call(arg, prop)));
|
|
639
|
+
if (!propOk) {
|
|
640
|
+
continue;
|
|
641
|
+
}
|
|
642
|
+
var newValue = arg[prop];
|
|
643
|
+
var isNewArray = void 0;
|
|
644
|
+
if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {
|
|
645
|
+
var clone = extended[prop];
|
|
646
|
+
if (isNewArray) {
|
|
647
|
+
if (!isArray(clone)) {
|
|
648
|
+
clone = [];
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
else if (!isPlainObject(clone)) {
|
|
652
|
+
clone = {};
|
|
653
|
+
}
|
|
654
|
+
newValue = objExtend(deep, clone, newValue);
|
|
655
|
+
}
|
|
656
|
+
if (newValue !== undefined) {
|
|
657
|
+
extended[prop] = newValue;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
return extended;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
function createEnumStyle(values) {
|
|
665
|
+
var enumClass = {};
|
|
666
|
+
objForEachKey(values, function (field, value) {
|
|
667
|
+
enumClass[field] = value;
|
|
668
|
+
enumClass[value] = field;
|
|
669
|
+
});
|
|
670
|
+
return deepFreeze(enumClass);
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
var EventsDiscardedReason = createEnumStyle({
|
|
674
|
+
Unknown: 0 ,
|
|
675
|
+
NonRetryableStatus: 1 ,
|
|
676
|
+
InvalidEvent: 2 ,
|
|
677
|
+
SizeLimitExceeded: 3 ,
|
|
678
|
+
KillSwitch: 4 ,
|
|
679
|
+
QueueFull: 5
|
|
680
|
+
});
|
|
642
681
|
|
|
643
682
|
var strWindow = "window";
|
|
644
683
|
var strDocument = "document";
|
|
@@ -647,7 +686,14 @@
|
|
|
647
686
|
var strConsole = "console";
|
|
648
687
|
var strPerformance = "performance";
|
|
649
688
|
var strJSON = "JSON";
|
|
689
|
+
var strCrypto = "crypto";
|
|
690
|
+
var strMsCrypto = "msCrypto";
|
|
650
691
|
var strReactNative = "ReactNative";
|
|
692
|
+
var strMsie = "msie";
|
|
693
|
+
var strTrident = "trident/";
|
|
694
|
+
var strXMLHttpRequest = "XMLHttpRequest";
|
|
695
|
+
var _isTrident = null;
|
|
696
|
+
var _navUserAgentCheck = null;
|
|
651
697
|
var _enableMocks = false;
|
|
652
698
|
var _useXDomainRequest = null;
|
|
653
699
|
var _beaconsSupported = null;
|
|
@@ -743,6 +789,12 @@
|
|
|
743
789
|
}
|
|
744
790
|
return null;
|
|
745
791
|
}
|
|
792
|
+
function getCrypto() {
|
|
793
|
+
return getGlobalInst(strCrypto);
|
|
794
|
+
}
|
|
795
|
+
function getMsCrypto() {
|
|
796
|
+
return getGlobalInst(strMsCrypto);
|
|
797
|
+
}
|
|
746
798
|
function isReactNative() {
|
|
747
799
|
var nav = getNavigator();
|
|
748
800
|
if (nav && nav.product) {
|
|
@@ -750,9 +802,18 @@
|
|
|
750
802
|
}
|
|
751
803
|
return false;
|
|
752
804
|
}
|
|
805
|
+
function isIE() {
|
|
806
|
+
var nav = getNavigator();
|
|
807
|
+
if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {
|
|
808
|
+
_navUserAgentCheck = nav.userAgent;
|
|
809
|
+
var userAgent = (_navUserAgentCheck || strEmpty).toLowerCase();
|
|
810
|
+
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
811
|
+
}
|
|
812
|
+
return _isTrident;
|
|
813
|
+
}
|
|
753
814
|
function dumpObj(object) {
|
|
754
815
|
var objectTypeDump = Object[strShimPrototype].toString.call(object);
|
|
755
|
-
var propertyValueDump =
|
|
816
|
+
var propertyValueDump = strEmpty;
|
|
756
817
|
if (objectTypeDump === "[object Error]") {
|
|
757
818
|
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
|
|
758
819
|
}
|
|
@@ -770,8 +831,7 @@
|
|
|
770
831
|
function isFetchSupported(withKeepAlive) {
|
|
771
832
|
var isSupported = false;
|
|
772
833
|
try {
|
|
773
|
-
|
|
774
|
-
isSupported = !!fetchApi;
|
|
834
|
+
isSupported = !!getGlobalInst("fetch");
|
|
775
835
|
var request = getGlobalInst("Request");
|
|
776
836
|
if (isSupported && withKeepAlive && request) {
|
|
777
837
|
isSupported = _hasProperty(request, "keepalive");
|
|
@@ -783,9 +843,9 @@
|
|
|
783
843
|
}
|
|
784
844
|
function useXDomainRequest() {
|
|
785
845
|
if (_useXDomainRequest === null) {
|
|
786
|
-
_useXDomainRequest = (typeof XDomainRequest !==
|
|
846
|
+
_useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);
|
|
787
847
|
if (_useXDomainRequest && isXhrSupported()) {
|
|
788
|
-
_useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(
|
|
848
|
+
_useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), "withCredentials");
|
|
789
849
|
}
|
|
790
850
|
}
|
|
791
851
|
return _useXDomainRequest;
|
|
@@ -793,7 +853,7 @@
|
|
|
793
853
|
function isXhrSupported() {
|
|
794
854
|
var isSupported = false;
|
|
795
855
|
try {
|
|
796
|
-
var xmlHttpRequest = getGlobalInst(
|
|
856
|
+
var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);
|
|
797
857
|
isSupported = !!xmlHttpRequest;
|
|
798
858
|
}
|
|
799
859
|
catch (e) {
|
|
@@ -824,9 +884,9 @@
|
|
|
824
884
|
var strWarnToConsole = "warnToConsole";
|
|
825
885
|
function _sanitizeDiagnosticText(text) {
|
|
826
886
|
if (text) {
|
|
827
|
-
return "\"" + text.replace(/\"/g,
|
|
887
|
+
return "\"" + text.replace(/\"/g, strEmpty) + "\"";
|
|
828
888
|
}
|
|
829
|
-
return
|
|
889
|
+
return strEmpty;
|
|
830
890
|
}
|
|
831
891
|
function _logToConsole(func, message) {
|
|
832
892
|
var theConsole = getConsole();
|
|
@@ -848,12 +908,12 @@
|
|
|
848
908
|
_self.message =
|
|
849
909
|
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
850
910
|
msgId;
|
|
851
|
-
var strProps =
|
|
911
|
+
var strProps = strEmpty;
|
|
852
912
|
if (hasJSON()) {
|
|
853
913
|
strProps = getJSON().stringify(properties);
|
|
854
914
|
}
|
|
855
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) :
|
|
856
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) :
|
|
915
|
+
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : strEmpty) +
|
|
916
|
+
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : strEmpty);
|
|
857
917
|
_self.message += diagnosticText;
|
|
858
918
|
}
|
|
859
919
|
_InternalLogMessage.dataType = "MessageData";
|
|
@@ -880,10 +940,10 @@
|
|
|
880
940
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
881
941
|
var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
|
|
882
942
|
if (_self.enableDebugExceptions()) {
|
|
883
|
-
throw message;
|
|
943
|
+
throw dumpObj(message);
|
|
884
944
|
}
|
|
885
945
|
else {
|
|
886
|
-
var logFunc = severity ===
|
|
946
|
+
var logFunc = severity === 1 ? strErrorToConsole : strWarnToConsole;
|
|
887
947
|
if (!isUndefined(message.message)) {
|
|
888
948
|
var logLevel = _self.consoleLoggingLevel();
|
|
889
949
|
if (isUserAct) {
|
|
@@ -901,7 +961,7 @@
|
|
|
901
961
|
_self.logInternalMessage(severity, message);
|
|
902
962
|
}
|
|
903
963
|
else {
|
|
904
|
-
_debugExtMsg("throw" + (severity ===
|
|
964
|
+
_debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
|
|
905
965
|
}
|
|
906
966
|
}
|
|
907
967
|
};
|
|
@@ -933,13 +993,13 @@
|
|
|
933
993
|
if (severity <= _self.telemetryLoggingLevel()) {
|
|
934
994
|
_self.queue.push(message);
|
|
935
995
|
_messageCount++;
|
|
936
|
-
_debugExtMsg((severity ===
|
|
996
|
+
_debugExtMsg((severity === 1 ? "error" : "warn"), message);
|
|
937
997
|
}
|
|
938
998
|
if (_messageCount === _self.maxInternalMessageLimit()) {
|
|
939
999
|
var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
|
|
940
|
-
var throttleMessage = new _InternalLogMessage(
|
|
1000
|
+
var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
|
|
941
1001
|
_self.queue.push(throttleMessage);
|
|
942
|
-
if (severity ===
|
|
1002
|
+
if (severity === 1 ) {
|
|
943
1003
|
_self.errorToConsole(throttleLimitMessage);
|
|
944
1004
|
}
|
|
945
1005
|
else {
|
|
@@ -968,6 +1028,10 @@
|
|
|
968
1028
|
}
|
|
969
1029
|
return DiagnosticLogger;
|
|
970
1030
|
}());
|
|
1031
|
+
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1032
|
+
if (isUserAct === void 0) { isUserAct = false; }
|
|
1033
|
+
(logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1034
|
+
}
|
|
971
1035
|
|
|
972
1036
|
var strExecutionContextKey = "ctx";
|
|
973
1037
|
var PerfEvent = /** @class */ (function () {
|
|
@@ -1081,207 +1145,621 @@
|
|
|
1081
1145
|
return func();
|
|
1082
1146
|
}
|
|
1083
1147
|
|
|
1084
|
-
var
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1148
|
+
var UInt32Mask = 0x100000000;
|
|
1149
|
+
var MaxUInt32 = 0xffffffff;
|
|
1150
|
+
var _mwcSeeded = false;
|
|
1151
|
+
var _mwcW = 123456789;
|
|
1152
|
+
var _mwcZ = 987654321;
|
|
1153
|
+
function _mwcSeed(seedValue) {
|
|
1154
|
+
if (seedValue < 0) {
|
|
1155
|
+
seedValue >>>= 0;
|
|
1156
|
+
}
|
|
1157
|
+
_mwcW = (123456789 + seedValue) & MaxUInt32;
|
|
1158
|
+
_mwcZ = (987654321 - seedValue) & MaxUInt32;
|
|
1159
|
+
_mwcSeeded = true;
|
|
1160
|
+
}
|
|
1161
|
+
function _autoSeedMwc() {
|
|
1162
|
+
try {
|
|
1163
|
+
var now = dateNow() & 0x7fffffff;
|
|
1164
|
+
_mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
|
|
1165
|
+
}
|
|
1166
|
+
catch (e) {
|
|
1167
|
+
}
|
|
1168
|
+
}
|
|
1169
|
+
function random32(signed) {
|
|
1170
|
+
var value = 0;
|
|
1171
|
+
var c = getCrypto() || getMsCrypto();
|
|
1172
|
+
if (c && c.getRandomValues) {
|
|
1173
|
+
value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
|
|
1174
|
+
}
|
|
1175
|
+
if (value === 0 && isIE()) {
|
|
1176
|
+
if (!_mwcSeeded) {
|
|
1177
|
+
_autoSeedMwc();
|
|
1178
|
+
}
|
|
1179
|
+
value = mwcRandom32() & MaxUInt32;
|
|
1180
|
+
}
|
|
1181
|
+
if (value === 0) {
|
|
1182
|
+
value = Math.floor((UInt32Mask * Math.random()) | 0);
|
|
1183
|
+
}
|
|
1184
|
+
if (!signed) {
|
|
1185
|
+
value >>>= 0;
|
|
1186
|
+
}
|
|
1187
|
+
return value;
|
|
1188
|
+
}
|
|
1189
|
+
function mwcRandom32(signed) {
|
|
1190
|
+
_mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
|
|
1191
|
+
_mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
|
|
1192
|
+
var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
|
|
1193
|
+
if (!signed) {
|
|
1194
|
+
value >>>= 0;
|
|
1195
|
+
}
|
|
1196
|
+
return value;
|
|
1197
|
+
}
|
|
1198
|
+
function newId(maxLength) {
|
|
1199
|
+
if (maxLength === void 0) { maxLength = 22; }
|
|
1200
|
+
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1201
|
+
var number = random32() >>> 0;
|
|
1202
|
+
var chars = 0;
|
|
1203
|
+
var result = strEmpty;
|
|
1204
|
+
while (result.length < maxLength) {
|
|
1205
|
+
chars++;
|
|
1206
|
+
result += base64chars.charAt(number & 0x3F);
|
|
1207
|
+
number >>>= 6;
|
|
1208
|
+
if (chars === 5) {
|
|
1209
|
+
number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
|
|
1210
|
+
chars = 0;
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
return result;
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
var _objDefineProperty = ObjDefineProperty;
|
|
1217
|
+
var version = "2.8.3";
|
|
1218
|
+
var instanceName = "." + newId(6);
|
|
1219
|
+
var _dataUid = 0;
|
|
1220
|
+
function _createAccessor(target, prop, value) {
|
|
1221
|
+
if (_objDefineProperty) {
|
|
1222
|
+
try {
|
|
1223
|
+
_objDefineProperty(target, prop, {
|
|
1224
|
+
value: value,
|
|
1225
|
+
enumerable: false,
|
|
1226
|
+
configurable: true
|
|
1227
|
+
});
|
|
1228
|
+
return true;
|
|
1229
|
+
}
|
|
1230
|
+
catch (e) {
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
return false;
|
|
1234
|
+
}
|
|
1235
|
+
function _canAcceptData(target) {
|
|
1236
|
+
return target.nodeType === 1 || target.nodeType === 9 || !(+target.nodeType);
|
|
1237
|
+
}
|
|
1238
|
+
function _getCache(data, target) {
|
|
1239
|
+
var theCache = target[data.id];
|
|
1240
|
+
if (!theCache) {
|
|
1241
|
+
theCache = {};
|
|
1242
|
+
try {
|
|
1243
|
+
if (_canAcceptData(target)) {
|
|
1244
|
+
if (!_createAccessor(target, data.id, theCache)) {
|
|
1245
|
+
target[data.id] = theCache;
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
catch (e) {
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
return theCache;
|
|
1253
|
+
}
|
|
1254
|
+
function createUniqueNamespace(name, includeVersion) {
|
|
1255
|
+
if (includeVersion === void 0) { includeVersion = false; }
|
|
1256
|
+
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : "") + instanceName);
|
|
1257
|
+
}
|
|
1258
|
+
function createElmNodeData(name) {
|
|
1259
|
+
var data = {
|
|
1260
|
+
id: createUniqueNamespace("_aiData-" + (name || "") + "." + version),
|
|
1261
|
+
accept: function (target) {
|
|
1262
|
+
return _canAcceptData(target);
|
|
1263
|
+
},
|
|
1264
|
+
get: function (target, name, defValue, addDefault) {
|
|
1265
|
+
var theCache = target[data.id];
|
|
1266
|
+
if (!theCache) {
|
|
1267
|
+
if (addDefault) {
|
|
1268
|
+
theCache = _getCache(data, target);
|
|
1269
|
+
theCache[normalizeJsName(name)] = defValue;
|
|
1270
|
+
}
|
|
1271
|
+
return defValue;
|
|
1272
|
+
}
|
|
1273
|
+
return theCache[normalizeJsName(name)];
|
|
1274
|
+
},
|
|
1275
|
+
kill: function (target, name) {
|
|
1276
|
+
if (target && target[name]) {
|
|
1277
|
+
try {
|
|
1278
|
+
delete target[name];
|
|
1279
|
+
}
|
|
1280
|
+
catch (e) {
|
|
1281
|
+
}
|
|
1103
1282
|
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1283
|
+
}
|
|
1284
|
+
};
|
|
1285
|
+
return data;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
var pluginStateData = createElmNodeData("plugin");
|
|
1289
|
+
function _getPluginState(plugin) {
|
|
1290
|
+
return pluginStateData.get(plugin, "state", {}, true);
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
1294
|
+
var strHasRunFlags = "_hasRun";
|
|
1295
|
+
var strGetTelCtx = "_getTelCtx";
|
|
1296
|
+
var _chainId = 0;
|
|
1297
|
+
function _getNextProxyStart(proxy, core, startAt) {
|
|
1298
|
+
while (proxy) {
|
|
1299
|
+
if (proxy.getPlugin() === startAt) {
|
|
1300
|
+
return proxy;
|
|
1301
|
+
}
|
|
1302
|
+
proxy = proxy.getNext();
|
|
1303
|
+
}
|
|
1304
|
+
return createTelemetryProxyChain([startAt], core.config || {}, core);
|
|
1305
|
+
}
|
|
1306
|
+
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1307
|
+
var _nextProxy = null;
|
|
1308
|
+
var _onComplete = [];
|
|
1309
|
+
if (startAt !== null) {
|
|
1310
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
1311
|
+
}
|
|
1312
|
+
var context = {
|
|
1313
|
+
_next: _moveNext,
|
|
1314
|
+
ctx: {
|
|
1315
|
+
core: function () {
|
|
1316
|
+
return core;
|
|
1317
|
+
},
|
|
1318
|
+
diagLog: function () {
|
|
1319
|
+
return safeGetLogger(core, config);
|
|
1320
|
+
},
|
|
1321
|
+
getCfg: function () {
|
|
1322
|
+
return config;
|
|
1323
|
+
},
|
|
1324
|
+
getExtCfg: _getExtCfg,
|
|
1325
|
+
getConfig: _getConfig,
|
|
1326
|
+
hasNext: function () {
|
|
1327
|
+
return !!_nextProxy;
|
|
1328
|
+
},
|
|
1329
|
+
getNext: function () {
|
|
1330
|
+
return _nextProxy;
|
|
1331
|
+
},
|
|
1332
|
+
setNext: function (nextPlugin) {
|
|
1333
|
+
_nextProxy = nextPlugin;
|
|
1334
|
+
},
|
|
1335
|
+
iterate: _iterateChain,
|
|
1336
|
+
onComplete: _addOnComplete
|
|
1337
|
+
}
|
|
1338
|
+
};
|
|
1339
|
+
function _addOnComplete(onComplete, that) {
|
|
1340
|
+
var args = [];
|
|
1341
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1342
|
+
args[_i - 2] = arguments[_i];
|
|
1343
|
+
}
|
|
1344
|
+
if (onComplete) {
|
|
1345
|
+
_onComplete.push({
|
|
1346
|
+
func: onComplete,
|
|
1347
|
+
self: !isUndefined(that) ? that : context.ctx,
|
|
1348
|
+
args: args
|
|
1349
|
+
});
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
function _moveNext() {
|
|
1353
|
+
var nextProxy = _nextProxy;
|
|
1354
|
+
_nextProxy = nextProxy ? nextProxy.getNext() : null;
|
|
1355
|
+
if (!nextProxy) {
|
|
1356
|
+
var onComplete = _onComplete;
|
|
1357
|
+
if (onComplete && onComplete.length > 0) {
|
|
1358
|
+
arrForEach(onComplete, function (completeDetails) {
|
|
1108
1359
|
try {
|
|
1109
|
-
|
|
1110
|
-
if (_hasSetNext) {
|
|
1111
|
-
plugin.setNextPlugin(_nextProxy);
|
|
1112
|
-
}
|
|
1113
|
-
_nextProxy && (_nextProxy._hasRun = false);
|
|
1114
|
-
plugin.processTelemetry(env, itemCtx);
|
|
1360
|
+
completeDetails.func.call(completeDetails.self, completeDetails.args);
|
|
1115
1361
|
}
|
|
1116
|
-
catch (
|
|
1117
|
-
|
|
1118
|
-
if (!_nextProxy || !hasRun) {
|
|
1119
|
-
itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, "Plugin [" + plugin.identifier + "] failed during processTelemetry - " + dumpObj(error));
|
|
1120
|
-
}
|
|
1121
|
-
if (_nextProxy && !hasRun) {
|
|
1122
|
-
_nextProxy.processTelemetry(env, itemCtx);
|
|
1123
|
-
}
|
|
1362
|
+
catch (e) {
|
|
1363
|
+
_throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1124
1364
|
}
|
|
1125
|
-
}
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
}, function () { return ({ item: env }); }, !(env.sync));
|
|
1131
|
-
};
|
|
1365
|
+
});
|
|
1366
|
+
_onComplete = [];
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
return nextProxy;
|
|
1132
1370
|
}
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1371
|
+
function _getExtCfg(identifier, defaultValue, mergeDefault) {
|
|
1372
|
+
if (defaultValue === void 0) { defaultValue = {}; }
|
|
1373
|
+
if (mergeDefault === void 0) { mergeDefault = 0 ; }
|
|
1374
|
+
var theConfig;
|
|
1375
|
+
if (config) {
|
|
1376
|
+
var extConfig = config.extensionConfig;
|
|
1377
|
+
if (extConfig && identifier) {
|
|
1378
|
+
theConfig = extConfig[identifier];
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
if (!theConfig) {
|
|
1382
|
+
theConfig = defaultValue;
|
|
1383
|
+
}
|
|
1384
|
+
else if (isObject(defaultValue)) {
|
|
1385
|
+
if (mergeDefault !== 0 ) {
|
|
1386
|
+
var newConfig_1 = objExtend(true, defaultValue, theConfig);
|
|
1387
|
+
if (config && mergeDefault === 2 ) {
|
|
1388
|
+
objForEachKey(defaultValue, function (field) {
|
|
1389
|
+
if (isNullOrUndefined(newConfig_1[field])) {
|
|
1390
|
+
var cfgValue = config[field];
|
|
1391
|
+
if (!isNullOrUndefined(cfgValue)) {
|
|
1392
|
+
newConfig_1[field] = cfgValue;
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
});
|
|
1147
1396
|
}
|
|
1148
|
-
|
|
1397
|
+
theConfig = newConfig_1;
|
|
1149
1398
|
}
|
|
1150
1399
|
}
|
|
1400
|
+
return theConfig;
|
|
1151
1401
|
}
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1402
|
+
function _getConfig(identifier, field, defaultValue) {
|
|
1403
|
+
if (defaultValue === void 0) { defaultValue = false; }
|
|
1404
|
+
var theValue;
|
|
1405
|
+
var extConfig = _getExtCfg(identifier, null);
|
|
1406
|
+
if (extConfig && !isNullOrUndefined(extConfig[field])) {
|
|
1407
|
+
theValue = extConfig[field];
|
|
1408
|
+
}
|
|
1409
|
+
else if (config && !isNullOrUndefined(config[field])) {
|
|
1410
|
+
theValue = config[field];
|
|
1411
|
+
}
|
|
1412
|
+
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
1413
|
+
}
|
|
1414
|
+
function _iterateChain(cb) {
|
|
1415
|
+
var nextPlugin;
|
|
1416
|
+
while (!!(nextPlugin = context._next())) {
|
|
1417
|
+
var plugin = nextPlugin.getPlugin();
|
|
1418
|
+
if (plugin) {
|
|
1419
|
+
cb(plugin);
|
|
1163
1420
|
}
|
|
1164
|
-
proxy = proxy.getNext();
|
|
1165
1421
|
}
|
|
1166
1422
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1423
|
+
return context;
|
|
1424
|
+
}
|
|
1425
|
+
function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
|
|
1426
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1427
|
+
var context = internalContext.ctx;
|
|
1428
|
+
function _processNext(env) {
|
|
1429
|
+
var nextPlugin = internalContext._next();
|
|
1430
|
+
nextPlugin && nextPlugin.processTelemetry(env, context);
|
|
1431
|
+
return !nextPlugin;
|
|
1432
|
+
}
|
|
1433
|
+
function _createNew(plugins, startAt) {
|
|
1434
|
+
if (plugins === void 0) { plugins = null; }
|
|
1435
|
+
if (isArray(plugins)) {
|
|
1436
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1437
|
+
}
|
|
1438
|
+
return createProcessTelemetryContext(plugins || context.getNext(), config, core, startAt);
|
|
1169
1439
|
}
|
|
1170
|
-
|
|
1440
|
+
context.processNext = _processNext;
|
|
1441
|
+
context.createNew = _createNew;
|
|
1442
|
+
return context;
|
|
1171
1443
|
}
|
|
1172
|
-
function
|
|
1173
|
-
var
|
|
1174
|
-
var
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1444
|
+
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
1445
|
+
var config = core.config || {};
|
|
1446
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1447
|
+
var context = internalContext.ctx;
|
|
1448
|
+
function _processNext(unloadState) {
|
|
1449
|
+
var nextPlugin = internalContext._next();
|
|
1450
|
+
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
1451
|
+
return !nextPlugin;
|
|
1452
|
+
}
|
|
1453
|
+
function _createNew(plugins, startAt) {
|
|
1454
|
+
if (plugins === void 0) { plugins = null; }
|
|
1455
|
+
if (isArray(plugins)) {
|
|
1456
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1457
|
+
}
|
|
1458
|
+
return createProcessTelemetryUnloadContext(plugins || context.getNext(), core, startAt);
|
|
1459
|
+
}
|
|
1460
|
+
context.processNext = _processNext;
|
|
1461
|
+
context.createNew = _createNew;
|
|
1462
|
+
return context;
|
|
1463
|
+
}
|
|
1464
|
+
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
1465
|
+
var config = core.config || {};
|
|
1466
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1467
|
+
var context = internalContext.ctx;
|
|
1468
|
+
function _processNext(updateState) {
|
|
1469
|
+
return context.iterate(function (plugin) {
|
|
1470
|
+
if (isFunction(plugin.update)) {
|
|
1471
|
+
plugin.update(context, updateState);
|
|
1181
1472
|
}
|
|
1182
1473
|
});
|
|
1183
1474
|
}
|
|
1184
|
-
|
|
1185
|
-
if (
|
|
1186
|
-
|
|
1475
|
+
function _createNew(plugins, startAt) {
|
|
1476
|
+
if (plugins === void 0) { plugins = null; }
|
|
1477
|
+
if (isArray(plugins)) {
|
|
1478
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1187
1479
|
}
|
|
1188
|
-
plugins.
|
|
1480
|
+
return createProcessTelemetryUpdateContext(plugins || context.getNext(), core, startAt);
|
|
1189
1481
|
}
|
|
1190
|
-
|
|
1482
|
+
context.processNext = _processNext;
|
|
1483
|
+
context.createNew = _createNew;
|
|
1484
|
+
return context;
|
|
1191
1485
|
}
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1486
|
+
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1487
|
+
var firstProxy = null;
|
|
1488
|
+
var add = startAt ? false : true;
|
|
1489
|
+
if (isArray(plugins) && plugins.length > 0) {
|
|
1490
|
+
var lastProxy_1 = null;
|
|
1491
|
+
arrForEach(plugins, function (thePlugin) {
|
|
1492
|
+
if (!add && startAt === thePlugin) {
|
|
1493
|
+
add = true;
|
|
1199
1494
|
}
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1495
|
+
if (add && thePlugin && isFunction(thePlugin.processTelemetry)) {
|
|
1496
|
+
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
1497
|
+
if (!firstProxy) {
|
|
1498
|
+
firstProxy = newProxy;
|
|
1203
1499
|
}
|
|
1204
|
-
|
|
1205
|
-
|
|
1500
|
+
if (lastProxy_1) {
|
|
1501
|
+
lastProxy_1._setNext(newProxy);
|
|
1206
1502
|
}
|
|
1503
|
+
lastProxy_1 = newProxy;
|
|
1207
1504
|
}
|
|
1505
|
+
});
|
|
1506
|
+
}
|
|
1507
|
+
if (startAt && !firstProxy) {
|
|
1508
|
+
return createTelemetryProxyChain([startAt], config, core);
|
|
1509
|
+
}
|
|
1510
|
+
return firstProxy;
|
|
1511
|
+
}
|
|
1512
|
+
function createTelemetryPluginProxy(plugin, config, core) {
|
|
1513
|
+
var nextProxy = null;
|
|
1514
|
+
var hasProcessTelemetry = isFunction(plugin.processTelemetry);
|
|
1515
|
+
var hasSetNext = isFunction(plugin.setNextPlugin);
|
|
1516
|
+
var chainId;
|
|
1517
|
+
if (plugin) {
|
|
1518
|
+
chainId = plugin.identifier + "-" + plugin.priority + "-" + _chainId++;
|
|
1519
|
+
}
|
|
1520
|
+
else {
|
|
1521
|
+
chainId = "Unknown-0-" + _chainId++;
|
|
1522
|
+
}
|
|
1523
|
+
var proxyChain = {
|
|
1524
|
+
getPlugin: function () {
|
|
1525
|
+
return plugin;
|
|
1526
|
+
},
|
|
1527
|
+
getNext: function () {
|
|
1528
|
+
return nextProxy;
|
|
1529
|
+
},
|
|
1530
|
+
processTelemetry: _processTelemetry,
|
|
1531
|
+
unload: _unloadPlugin,
|
|
1532
|
+
update: _updatePlugin,
|
|
1533
|
+
_id: chainId,
|
|
1534
|
+
_setNext: function (nextPlugin) {
|
|
1535
|
+
nextProxy = nextPlugin;
|
|
1208
1536
|
}
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
}
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1537
|
+
};
|
|
1538
|
+
function _getTelCtx() {
|
|
1539
|
+
var itemCtx;
|
|
1540
|
+
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
1541
|
+
itemCtx = plugin[strGetTelCtx]();
|
|
1542
|
+
}
|
|
1543
|
+
if (!itemCtx) {
|
|
1544
|
+
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
1545
|
+
}
|
|
1546
|
+
return itemCtx;
|
|
1547
|
+
}
|
|
1548
|
+
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
1549
|
+
var hasRun = false;
|
|
1550
|
+
var identifier = plugin ? plugin.identifier : strTelemetryPluginChain;
|
|
1551
|
+
var hasRunContext = itemCtx[strHasRunFlags];
|
|
1552
|
+
if (!hasRunContext) {
|
|
1553
|
+
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
1554
|
+
}
|
|
1555
|
+
itemCtx.setNext(nextProxy);
|
|
1556
|
+
if (plugin) {
|
|
1557
|
+
doPerf(itemCtx[strCore](), function () { return identifier + ":" + name; }, function () {
|
|
1558
|
+
hasRunContext[chainId] = true;
|
|
1559
|
+
try {
|
|
1560
|
+
var nextId = nextProxy ? nextProxy._id : strEmpty;
|
|
1561
|
+
if (nextId) {
|
|
1562
|
+
hasRunContext[nextId] = false;
|
|
1563
|
+
}
|
|
1564
|
+
hasRun = processPluginFn(itemCtx);
|
|
1225
1565
|
}
|
|
1566
|
+
catch (error) {
|
|
1567
|
+
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
1568
|
+
if (hasNextRun) {
|
|
1569
|
+
hasRun = true;
|
|
1570
|
+
}
|
|
1571
|
+
if (!nextProxy || !hasNextRun) {
|
|
1572
|
+
_throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
}, details, isAsync);
|
|
1576
|
+
}
|
|
1577
|
+
return hasRun;
|
|
1578
|
+
}
|
|
1579
|
+
function _processTelemetry(env, itemCtx) {
|
|
1580
|
+
itemCtx = itemCtx || _getTelCtx();
|
|
1581
|
+
function _callProcessTelemetry(itemCtx) {
|
|
1582
|
+
if (!plugin || !hasProcessTelemetry) {
|
|
1583
|
+
return false;
|
|
1226
1584
|
}
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
if (defaultValue === void 0) { defaultValue = false; }
|
|
1231
|
-
var theValue;
|
|
1232
|
-
var extConfig = _self.getExtCfg(identifier, null);
|
|
1233
|
-
if (extConfig && !isNullOrUndefined(extConfig[field])) {
|
|
1234
|
-
theValue = extConfig[field];
|
|
1585
|
+
var pluginState = _getPluginState(plugin);
|
|
1586
|
+
if (pluginState.teardown || pluginState[strDisabled]) {
|
|
1587
|
+
return false;
|
|
1235
1588
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1589
|
+
if (hasSetNext) {
|
|
1590
|
+
plugin.setNextPlugin(nextProxy);
|
|
1238
1591
|
}
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1592
|
+
plugin.processTelemetry(env, itemCtx);
|
|
1593
|
+
return true;
|
|
1594
|
+
}
|
|
1595
|
+
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
1596
|
+
itemCtx.processNext(env);
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
function _unloadPlugin(unloadCtx, unloadState) {
|
|
1600
|
+
function _callTeardown() {
|
|
1601
|
+
var hasRun = false;
|
|
1602
|
+
if (plugin) {
|
|
1603
|
+
var pluginState = _getPluginState(plugin);
|
|
1604
|
+
var pluginCore = plugin[strCore] || pluginState.core;
|
|
1605
|
+
if (plugin && (!pluginCore || pluginCore === unloadCtx[strCore]()) && !pluginState[strTeardown]) {
|
|
1606
|
+
pluginState[strCore] = null;
|
|
1607
|
+
pluginState[strTeardown] = true;
|
|
1608
|
+
pluginState[strIsInitialized] = false;
|
|
1609
|
+
if (plugin[strTeardown] && plugin[strTeardown](unloadCtx, unloadState) === true) {
|
|
1610
|
+
hasRun = true;
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1255
1613
|
}
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
}
|
|
1614
|
+
return hasRun;
|
|
1615
|
+
}
|
|
1616
|
+
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState.isAsync)) {
|
|
1617
|
+
unloadCtx.processNext(unloadState);
|
|
1618
|
+
}
|
|
1261
1619
|
}
|
|
1262
|
-
|
|
1263
|
-
|
|
1620
|
+
function _updatePlugin(updateCtx, updateState) {
|
|
1621
|
+
function _callUpdate() {
|
|
1622
|
+
var hasRun = false;
|
|
1623
|
+
if (plugin) {
|
|
1624
|
+
var pluginState = _getPluginState(plugin);
|
|
1625
|
+
var pluginCore = plugin[strCore] || pluginState.core;
|
|
1626
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
|
|
1627
|
+
if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
|
|
1628
|
+
hasRun = true;
|
|
1629
|
+
}
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
return hasRun;
|
|
1633
|
+
}
|
|
1634
|
+
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1635
|
+
updateCtx.processNext(updateState);
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1638
|
+
return objFreeze(proxyChain);
|
|
1639
|
+
}
|
|
1264
1640
|
|
|
1265
1641
|
var strExtensionConfig = "extensionConfig";
|
|
1266
1642
|
|
|
1643
|
+
function createUnloadHandlerContainer() {
|
|
1644
|
+
var handlers = [];
|
|
1645
|
+
function _addHandler(handler) {
|
|
1646
|
+
if (handler) {
|
|
1647
|
+
handlers.push(handler);
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
function _runHandlers(unloadCtx, unloadState) {
|
|
1651
|
+
arrForEach(handlers, function (handler) {
|
|
1652
|
+
try {
|
|
1653
|
+
handler(unloadCtx, unloadState);
|
|
1654
|
+
}
|
|
1655
|
+
catch (e) {
|
|
1656
|
+
_throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
1657
|
+
}
|
|
1658
|
+
});
|
|
1659
|
+
handlers = [];
|
|
1660
|
+
}
|
|
1661
|
+
return {
|
|
1662
|
+
add: _addHandler,
|
|
1663
|
+
run: _runHandlers
|
|
1664
|
+
};
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1267
1667
|
var strGetPlugin = "getPlugin";
|
|
1268
1668
|
var BaseTelemetryPlugin = /** @class */ (function () {
|
|
1269
1669
|
function BaseTelemetryPlugin() {
|
|
1270
1670
|
var _self = this;
|
|
1271
|
-
var _isinitialized
|
|
1272
|
-
var _rootCtx
|
|
1273
|
-
var _nextPlugin
|
|
1274
|
-
|
|
1671
|
+
var _isinitialized;
|
|
1672
|
+
var _rootCtx;
|
|
1673
|
+
var _nextPlugin;
|
|
1674
|
+
var _unloadHandlerContainer;
|
|
1675
|
+
var _hooks;
|
|
1676
|
+
_initDefaults();
|
|
1677
|
+
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
1678
|
+
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
1679
|
+
_setDefaults(config, core, pluginChain);
|
|
1680
|
+
_isinitialized = true;
|
|
1681
|
+
};
|
|
1682
|
+
_self.teardown = function (unloadCtx, unloadState) {
|
|
1683
|
+
var core = _self.core;
|
|
1684
|
+
if (!core || (unloadCtx && core !== unloadCtx.core())) {
|
|
1685
|
+
return;
|
|
1686
|
+
}
|
|
1687
|
+
var result;
|
|
1688
|
+
var unloadDone = false;
|
|
1689
|
+
var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1690
|
+
var theUnloadState = unloadState || {
|
|
1691
|
+
reason: 0 ,
|
|
1692
|
+
isAsync: false
|
|
1693
|
+
};
|
|
1694
|
+
function _unloadCallback() {
|
|
1695
|
+
if (!unloadDone) {
|
|
1696
|
+
unloadDone = true;
|
|
1697
|
+
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
1698
|
+
arrForEach(_hooks, function (fn) {
|
|
1699
|
+
fn.rm();
|
|
1700
|
+
});
|
|
1701
|
+
_hooks = [];
|
|
1702
|
+
if (result === true) {
|
|
1703
|
+
theUnloadCtx.processNext(theUnloadState);
|
|
1704
|
+
}
|
|
1705
|
+
_initDefaults();
|
|
1706
|
+
}
|
|
1707
|
+
}
|
|
1708
|
+
if (!_self[strDoTeardown] || _self[strDoTeardown](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
|
|
1709
|
+
_unloadCallback();
|
|
1710
|
+
}
|
|
1711
|
+
else {
|
|
1712
|
+
result = true;
|
|
1713
|
+
}
|
|
1714
|
+
return result;
|
|
1715
|
+
};
|
|
1716
|
+
_self.update = function (updateCtx, updateState) {
|
|
1717
|
+
var core = _self.core;
|
|
1718
|
+
if (!core || (updateCtx && core !== updateCtx.core())) {
|
|
1719
|
+
return;
|
|
1720
|
+
}
|
|
1721
|
+
var result;
|
|
1722
|
+
var updateDone = false;
|
|
1723
|
+
var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1724
|
+
var theUpdateState = updateState || {
|
|
1725
|
+
reason: 0
|
|
1726
|
+
};
|
|
1727
|
+
function _updateCallback() {
|
|
1728
|
+
if (!updateDone) {
|
|
1729
|
+
updateDone = true;
|
|
1730
|
+
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
|
|
1731
|
+
}
|
|
1732
|
+
}
|
|
1733
|
+
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
1734
|
+
_updateCallback();
|
|
1735
|
+
}
|
|
1736
|
+
else {
|
|
1737
|
+
result = true;
|
|
1738
|
+
}
|
|
1739
|
+
return result;
|
|
1740
|
+
};
|
|
1741
|
+
_self._addHook = function (hooks) {
|
|
1742
|
+
if (hooks) {
|
|
1743
|
+
if (isArray(hooks)) {
|
|
1744
|
+
_hooks = _hooks.concat(hooks);
|
|
1745
|
+
}
|
|
1746
|
+
else {
|
|
1747
|
+
_hooks.push(hooks);
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
};
|
|
1751
|
+
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
1752
|
+
});
|
|
1275
1753
|
_self.diagLog = function (itemCtx) {
|
|
1276
|
-
return
|
|
1754
|
+
return _getTelCtx(itemCtx).diagLog();
|
|
1277
1755
|
};
|
|
1278
|
-
_self
|
|
1756
|
+
_self[strIsInitialized] = function () {
|
|
1279
1757
|
return _isinitialized;
|
|
1280
1758
|
};
|
|
1281
1759
|
_self.setInitialized = function (isInitialized) {
|
|
1282
1760
|
_isinitialized = isInitialized;
|
|
1283
1761
|
};
|
|
1284
|
-
_self
|
|
1762
|
+
_self[strSetNextPlugin] = function (next) {
|
|
1285
1763
|
_nextPlugin = next;
|
|
1286
1764
|
};
|
|
1287
1765
|
_self.processNext = function (env, itemCtx) {
|
|
@@ -1292,11 +1770,12 @@
|
|
|
1292
1770
|
_nextPlugin.processTelemetry(env, null);
|
|
1293
1771
|
}
|
|
1294
1772
|
};
|
|
1295
|
-
_self._getTelCtx =
|
|
1773
|
+
_self._getTelCtx = _getTelCtx;
|
|
1774
|
+
function _getTelCtx(currentCtx) {
|
|
1296
1775
|
if (currentCtx === void 0) { currentCtx = null; }
|
|
1297
1776
|
var itemCtx = currentCtx;
|
|
1298
1777
|
if (!itemCtx) {
|
|
1299
|
-
var rootCtx = _rootCtx ||
|
|
1778
|
+
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self.core);
|
|
1300
1779
|
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
1301
1780
|
itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);
|
|
1302
1781
|
}
|
|
@@ -1305,8 +1784,8 @@
|
|
|
1305
1784
|
}
|
|
1306
1785
|
}
|
|
1307
1786
|
return itemCtx;
|
|
1308
|
-
}
|
|
1309
|
-
|
|
1787
|
+
}
|
|
1788
|
+
function _setDefaults(config, core, pluginChain) {
|
|
1310
1789
|
if (config) {
|
|
1311
1790
|
setValue(config, strExtensionConfig, [], null, isNullOrUndefined);
|
|
1312
1791
|
}
|
|
@@ -1318,93 +1797,300 @@
|
|
|
1318
1797
|
nextPlugin = _nextPlugin[strGetPlugin]();
|
|
1319
1798
|
}
|
|
1320
1799
|
_self.core = core;
|
|
1321
|
-
_rootCtx =
|
|
1322
|
-
|
|
1323
|
-
|
|
1800
|
+
_rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
|
|
1801
|
+
}
|
|
1802
|
+
function _initDefaults() {
|
|
1803
|
+
_isinitialized = false;
|
|
1804
|
+
_self.core = null;
|
|
1805
|
+
_rootCtx = null;
|
|
1806
|
+
_nextPlugin = null;
|
|
1807
|
+
_hooks = [];
|
|
1808
|
+
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
1809
|
+
}
|
|
1324
1810
|
}
|
|
1325
|
-
BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {
|
|
1326
|
-
this._baseTelInit(config, core, extensions, pluginChain);
|
|
1327
|
-
};
|
|
1328
1811
|
return BaseTelemetryPlugin;
|
|
1329
1812
|
}());
|
|
1330
1813
|
|
|
1814
|
+
var strOnPrefix = "on";
|
|
1815
|
+
var strAttachEvent = "attachEvent";
|
|
1816
|
+
var strAddEventHelper = "addEventListener";
|
|
1817
|
+
var strDetachEvent = "detachEvent";
|
|
1818
|
+
var strRemoveEventListener = "removeEventListener";
|
|
1819
|
+
var strEvents = "events";
|
|
1331
1820
|
var strVisibilityChangeEvt = "visibilitychange";
|
|
1332
1821
|
var strPageHide = "pagehide";
|
|
1333
1822
|
var strPageShow = "pageshow";
|
|
1334
|
-
|
|
1823
|
+
var strUnload = "unload";
|
|
1824
|
+
var strBeforeUnload = "beforeunload";
|
|
1825
|
+
var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
|
|
1826
|
+
var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
|
|
1827
|
+
var rRemoveEmptyNs = /\.[\.]+/g;
|
|
1828
|
+
var rRemoveTrailingEmptyNs = /[\.]+$/;
|
|
1829
|
+
var _guid = 1;
|
|
1830
|
+
var elmNodeData = createElmNodeData("events");
|
|
1831
|
+
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1832
|
+
function _normalizeNamespace(name) {
|
|
1833
|
+
if (name && name.replace) {
|
|
1834
|
+
return name.replace(/^\s*\.*|\.*\s*$/g, "");
|
|
1835
|
+
}
|
|
1836
|
+
return name;
|
|
1837
|
+
}
|
|
1838
|
+
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1839
|
+
if (evtNamespace) {
|
|
1840
|
+
var theNamespace_1 = "";
|
|
1841
|
+
if (isArray(evtNamespace)) {
|
|
1842
|
+
theNamespace_1 = "";
|
|
1843
|
+
arrForEach(evtNamespace, function (name) {
|
|
1844
|
+
name = _normalizeNamespace(name);
|
|
1845
|
+
if (name) {
|
|
1846
|
+
if (name[0] !== ".") {
|
|
1847
|
+
name = "." + name;
|
|
1848
|
+
}
|
|
1849
|
+
theNamespace_1 += name;
|
|
1850
|
+
}
|
|
1851
|
+
});
|
|
1852
|
+
}
|
|
1853
|
+
else {
|
|
1854
|
+
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1855
|
+
}
|
|
1856
|
+
if (theNamespace_1) {
|
|
1857
|
+
if (theNamespace_1[0] !== ".") {
|
|
1858
|
+
theNamespace_1 = "." + theNamespace_1;
|
|
1859
|
+
}
|
|
1860
|
+
eventName = (eventName || "") + theNamespace_1;
|
|
1861
|
+
}
|
|
1862
|
+
}
|
|
1863
|
+
var parsedEvent = (eventNamespace.exec(eventName || "") || []);
|
|
1864
|
+
return {
|
|
1865
|
+
type: parsedEvent[1],
|
|
1866
|
+
ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
|
|
1867
|
+
};
|
|
1868
|
+
}
|
|
1869
|
+
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1870
|
+
if (addDefault === void 0) { addDefault = true; }
|
|
1871
|
+
var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
|
|
1872
|
+
var registeredEvents = aiEvts[evtName];
|
|
1873
|
+
if (!registeredEvents) {
|
|
1874
|
+
registeredEvents = aiEvts[evtName] = [];
|
|
1875
|
+
}
|
|
1876
|
+
return registeredEvents;
|
|
1877
|
+
}
|
|
1878
|
+
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1879
|
+
if (obj && evtName && evtName.type) {
|
|
1880
|
+
if (obj[strRemoveEventListener]) {
|
|
1881
|
+
obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
|
|
1882
|
+
}
|
|
1883
|
+
else if (obj[strDetachEvent]) {
|
|
1884
|
+
obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1887
|
+
}
|
|
1888
|
+
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1889
|
+
var result = false;
|
|
1890
|
+
if (obj && evtName && evtName.type && handlerRef) {
|
|
1891
|
+
if (obj[strAddEventHelper]) {
|
|
1892
|
+
obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
|
|
1893
|
+
result = true;
|
|
1894
|
+
}
|
|
1895
|
+
else if (obj[strAttachEvent]) {
|
|
1896
|
+
obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
1897
|
+
result = true;
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
return result;
|
|
1901
|
+
}
|
|
1902
|
+
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1903
|
+
var idx = events.length;
|
|
1904
|
+
while (idx--) {
|
|
1905
|
+
var theEvent = events[idx];
|
|
1906
|
+
if (theEvent) {
|
|
1907
|
+
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1908
|
+
if (!unRegFn || unRegFn(theEvent)) {
|
|
1909
|
+
_doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
|
|
1910
|
+
events.splice(idx, 1);
|
|
1911
|
+
}
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1917
|
+
if (evtName.type) {
|
|
1918
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
|
|
1919
|
+
}
|
|
1920
|
+
else {
|
|
1921
|
+
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1922
|
+
objForEachKey(eventCache, function (evtType, events) {
|
|
1923
|
+
_doUnregister(target, events, evtName, unRegFn);
|
|
1924
|
+
});
|
|
1925
|
+
if (objKeys(eventCache).length === 0) {
|
|
1926
|
+
elmNodeData.kill(target, strEvents);
|
|
1927
|
+
}
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1931
|
+
var newNamespaces;
|
|
1932
|
+
if (namespaces) {
|
|
1933
|
+
if (isArray(namespaces)) {
|
|
1934
|
+
newNamespaces = [theNamespace].concat(namespaces);
|
|
1935
|
+
}
|
|
1936
|
+
else {
|
|
1937
|
+
newNamespaces = [theNamespace, namespaces];
|
|
1938
|
+
}
|
|
1939
|
+
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
|
|
1940
|
+
}
|
|
1941
|
+
else {
|
|
1942
|
+
newNamespaces = theNamespace;
|
|
1943
|
+
}
|
|
1944
|
+
return newNamespaces;
|
|
1945
|
+
}
|
|
1946
|
+
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1947
|
+
if (useCapture === void 0) { useCapture = false; }
|
|
1948
|
+
var result = false;
|
|
1949
|
+
if (target) {
|
|
1950
|
+
try {
|
|
1951
|
+
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1952
|
+
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1953
|
+
if (result && elmNodeData.accept(target)) {
|
|
1954
|
+
var registeredEvent = {
|
|
1955
|
+
guid: _guid++,
|
|
1956
|
+
evtName: evtName,
|
|
1957
|
+
handler: handlerRef,
|
|
1958
|
+
capture: useCapture
|
|
1959
|
+
};
|
|
1960
|
+
_getRegisteredEvents(target, evtName.type).push(registeredEvent);
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
catch (e) {
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
return result;
|
|
1967
|
+
}
|
|
1968
|
+
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1969
|
+
if (useCapture === void 0) { useCapture = false; }
|
|
1970
|
+
if (target) {
|
|
1971
|
+
try {
|
|
1972
|
+
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1973
|
+
var found_1 = false;
|
|
1974
|
+
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1975
|
+
if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
|
|
1976
|
+
found_1 = true;
|
|
1977
|
+
return true;
|
|
1978
|
+
}
|
|
1979
|
+
return false;
|
|
1980
|
+
});
|
|
1981
|
+
if (!found_1) {
|
|
1982
|
+
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
catch (e) {
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
function addEventHandler(eventName, callback, evtNamespace) {
|
|
1335
1990
|
var result = false;
|
|
1336
1991
|
var w = getWindow();
|
|
1337
1992
|
if (w) {
|
|
1338
|
-
result =
|
|
1339
|
-
result =
|
|
1993
|
+
result = eventOn(w, eventName, callback, evtNamespace);
|
|
1994
|
+
result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
|
|
1340
1995
|
}
|
|
1341
1996
|
var doc = getDocument();
|
|
1342
1997
|
if (doc) {
|
|
1343
|
-
result =
|
|
1998
|
+
result = eventOn(doc, eventName, callback, evtNamespace) || result;
|
|
1344
1999
|
}
|
|
1345
2000
|
return result;
|
|
1346
2001
|
}
|
|
1347
|
-
function
|
|
2002
|
+
function removeEventHandler(eventName, callback, evtNamespace) {
|
|
2003
|
+
var w = getWindow();
|
|
2004
|
+
if (w) {
|
|
2005
|
+
eventOff(w, eventName, callback, evtNamespace);
|
|
2006
|
+
eventOff(w["body"], eventName, callback, evtNamespace);
|
|
2007
|
+
}
|
|
2008
|
+
var doc = getDocument();
|
|
2009
|
+
if (doc) {
|
|
2010
|
+
eventOff(doc, eventName, callback, evtNamespace);
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
1348
2014
|
var added = false;
|
|
1349
|
-
if (listener && events &&
|
|
1350
|
-
var excluded_1 = [];
|
|
2015
|
+
if (listener && events && events.length > 0) {
|
|
1351
2016
|
arrForEach(events, function (name) {
|
|
1352
|
-
if (
|
|
2017
|
+
if (name) {
|
|
1353
2018
|
if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
|
|
1354
|
-
added = addEventHandler(name, listener) || added;
|
|
1355
|
-
}
|
|
1356
|
-
else {
|
|
1357
|
-
excluded_1.push(name);
|
|
2019
|
+
added = addEventHandler(name, listener, evtNamespace) || added;
|
|
1358
2020
|
}
|
|
1359
2021
|
}
|
|
1360
2022
|
});
|
|
1361
|
-
|
|
1362
|
-
|
|
2023
|
+
}
|
|
2024
|
+
return added;
|
|
2025
|
+
}
|
|
2026
|
+
function addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
2027
|
+
var added = false;
|
|
2028
|
+
if (listener && events && isArray(events)) {
|
|
2029
|
+
added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
|
|
2030
|
+
if (!added && excludeEvents && excludeEvents.length > 0) {
|
|
2031
|
+
added = _addEventListeners(events, listener, null, evtNamespace);
|
|
1363
2032
|
}
|
|
1364
2033
|
}
|
|
1365
2034
|
return added;
|
|
1366
2035
|
}
|
|
1367
|
-
function
|
|
1368
|
-
|
|
2036
|
+
function removeEventListeners(events, listener, evtNamespace) {
|
|
2037
|
+
if (events && isArray(events)) {
|
|
2038
|
+
arrForEach(events, function (name) {
|
|
2039
|
+
if (name) {
|
|
2040
|
+
removeEventHandler(name, listener, evtNamespace);
|
|
2041
|
+
}
|
|
2042
|
+
});
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
|
|
2046
|
+
return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
|
|
2047
|
+
}
|
|
2048
|
+
function removePageUnloadEventListener(listener, evtNamespace) {
|
|
2049
|
+
removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
|
|
1369
2050
|
}
|
|
1370
|
-
function addPageHideEventListener(listener, excludeEvents) {
|
|
2051
|
+
function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
|
|
1371
2052
|
function _handlePageVisibility(evt) {
|
|
1372
2053
|
var doc = getDocument();
|
|
1373
2054
|
if (listener && doc && doc.visibilityState === "hidden") {
|
|
1374
2055
|
listener(evt);
|
|
1375
2056
|
}
|
|
1376
2057
|
}
|
|
1377
|
-
var
|
|
1378
|
-
|
|
1379
|
-
pageUnloadAdded = addEventHandler(strPageHide, listener);
|
|
1380
|
-
}
|
|
2058
|
+
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
2059
|
+
var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
|
|
1381
2060
|
if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
|
|
1382
|
-
pageUnloadAdded =
|
|
2061
|
+
pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
|
|
1383
2062
|
}
|
|
1384
2063
|
if (!pageUnloadAdded && excludeEvents) {
|
|
1385
|
-
pageUnloadAdded = addPageHideEventListener(listener);
|
|
2064
|
+
pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
|
|
1386
2065
|
}
|
|
1387
2066
|
return pageUnloadAdded;
|
|
1388
2067
|
}
|
|
1389
|
-
function
|
|
2068
|
+
function removePageHideEventListener(listener, evtNamespace) {
|
|
2069
|
+
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
2070
|
+
removeEventListeners([strPageHide], listener, newNamespaces);
|
|
2071
|
+
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
2072
|
+
}
|
|
2073
|
+
function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
|
|
1390
2074
|
function _handlePageVisibility(evt) {
|
|
1391
2075
|
var doc = getDocument();
|
|
1392
2076
|
if (listener && doc && doc.visibilityState === "visible") {
|
|
1393
2077
|
listener(evt);
|
|
1394
2078
|
}
|
|
1395
2079
|
}
|
|
1396
|
-
var
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
}
|
|
1400
|
-
if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
|
|
1401
|
-
pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;
|
|
1402
|
-
}
|
|
2080
|
+
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
2081
|
+
var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
|
|
2082
|
+
pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
|
|
1403
2083
|
if (!pageShowAdded && excludeEvents) {
|
|
1404
|
-
pageShowAdded = addPageShowEventListener(listener);
|
|
2084
|
+
pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
|
|
1405
2085
|
}
|
|
1406
2086
|
return pageShowAdded;
|
|
1407
2087
|
}
|
|
2088
|
+
function removePageShowEventListener(listener, evtNamespace) {
|
|
2089
|
+
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
2090
|
+
removeEventListeners([strPageShow], listener, newNamespaces);
|
|
2091
|
+
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
2092
|
+
}
|
|
2093
|
+
|
|
1408
2094
|
function perfNow() {
|
|
1409
2095
|
var perf = getPerformance();
|
|
1410
2096
|
if (perf && perf.now) {
|
|
@@ -1413,60 +2099,23 @@
|
|
|
1413
2099
|
return dateNow();
|
|
1414
2100
|
}
|
|
1415
2101
|
|
|
1416
|
-
var ValueKind = {
|
|
1417
|
-
NotSet: 0,
|
|
1418
|
-
Pii_DistinguishedName: 1,
|
|
1419
|
-
Pii_GenericData: 2,
|
|
1420
|
-
Pii_IPV4Address: 3,
|
|
1421
|
-
Pii_IPv6Address: 4,
|
|
1422
|
-
Pii_MailSubject: 5,
|
|
1423
|
-
Pii_PhoneNumber: 6,
|
|
1424
|
-
Pii_QueryString: 7,
|
|
1425
|
-
Pii_SipAddress: 8,
|
|
1426
|
-
Pii_SmtpAddress: 9,
|
|
1427
|
-
Pii_Identity: 10,
|
|
1428
|
-
Pii_Uri: 11,
|
|
1429
|
-
Pii_Fqdn: 12,
|
|
1430
|
-
Pii_IPV4AddressLegacy: 13,
|
|
1431
|
-
CustomerContent_GenericContent: 32
|
|
1432
|
-
};
|
|
1433
|
-
var EventLatency = {
|
|
1434
|
-
Normal: 1 ,
|
|
1435
|
-
CostDeferred: 2 ,
|
|
1436
|
-
RealTime: 3 ,
|
|
1437
|
-
Immediate: 4
|
|
1438
|
-
};
|
|
1439
|
-
var EventPropertyType = {
|
|
1440
|
-
Unspecified: 0,
|
|
1441
|
-
String: 1,
|
|
1442
|
-
Int32: 2,
|
|
1443
|
-
UInt32: 3,
|
|
1444
|
-
Int64: 4,
|
|
1445
|
-
UInt64: 5,
|
|
1446
|
-
Double: 6,
|
|
1447
|
-
Bool: 7,
|
|
1448
|
-
Guid: 8,
|
|
1449
|
-
DateTime: 9
|
|
1450
|
-
};
|
|
1451
|
-
var _ExtendedInternalMessageId = __assignFn(__assignFn({}, _InternalMessageId), { AuthHandShakeError: 501, AuthRedirectFail: 502, BrowserCannotReadLocalStorage: 503, BrowserCannotWriteLocalStorage: 504, BrowserDoesNotSupportLocalStorage: 505, CannotParseBiBlobValue: 506, CannotParseDataAttribute: 507, CVPluginNotAvailable: 508, DroppedEvent: 509, ErrorParsingAISessionCookie: 510, ErrorProvidedChannels: 511, FailedToGetCookies: 512, FailedToInitializeCorrelationVector: 513, FailedToInitializeSDK: 514, InvalidContentBlob: 515, InvalidCorrelationValue: 516, SessionRenewalDateIsZero: 517, SendPostOnCompleteFailure: 518, PostResponseHandler: 519, SDKNotInitialized: 520 });
|
|
1452
|
-
|
|
1453
2102
|
var _a$1;
|
|
1454
|
-
var Version = '3.
|
|
2103
|
+
var Version = '3.2.2';
|
|
1455
2104
|
var FullVersionString = "1DS-Web-JS-" + Version;
|
|
1456
2105
|
var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
1457
2106
|
var strWithCredentials = "withCredentials";
|
|
1458
2107
|
var strTimeout = "timeout";
|
|
1459
2108
|
var _fieldTypeEventPropMap = (_a$1 = {},
|
|
1460
|
-
_a$1[0 ] =
|
|
1461
|
-
_a$1[2 ] =
|
|
1462
|
-
_a$1[1 ] =
|
|
1463
|
-
_a$1[3 ] =
|
|
1464
|
-
_a$1[4096 | 2 ] =
|
|
1465
|
-
_a$1[4096 | 1 ] =
|
|
1466
|
-
_a$1[4096 | 3 ] =
|
|
2109
|
+
_a$1[0 ] = 0 ,
|
|
2110
|
+
_a$1[2 ] = 6 ,
|
|
2111
|
+
_a$1[1 ] = 1 ,
|
|
2112
|
+
_a$1[3 ] = 7 ,
|
|
2113
|
+
_a$1[4096 | 2 ] = 6 ,
|
|
2114
|
+
_a$1[4096 | 1 ] = 1 ,
|
|
2115
|
+
_a$1[4096 | 3 ] = 7 ,
|
|
1467
2116
|
_a$1);
|
|
1468
2117
|
Boolean(getDocument());
|
|
1469
|
-
|
|
2118
|
+
Boolean(getWindow());
|
|
1470
2119
|
function isValueAssigned(value) {
|
|
1471
2120
|
return !(value === "" || isNullOrUndefined(value));
|
|
1472
2121
|
}
|
|
@@ -1530,7 +2179,7 @@
|
|
|
1530
2179
|
if (encodedTypeValue !== -1 && propType !== -1) {
|
|
1531
2180
|
encodedTypeValue |= propType;
|
|
1532
2181
|
}
|
|
1533
|
-
else if (propType ===
|
|
2182
|
+
else if (propType === 6 ) {
|
|
1534
2183
|
encodedTypeValue = propType;
|
|
1535
2184
|
}
|
|
1536
2185
|
}
|
|
@@ -1576,7 +2225,7 @@
|
|
|
1576
2225
|
}
|
|
1577
2226
|
var getTime = perfNow;
|
|
1578
2227
|
function isValueKind(value) {
|
|
1579
|
-
if (value ===
|
|
2228
|
+
if (value === 0 || ((value > 0 && value <= 13 ) || value === 32 )) {
|
|
1580
2229
|
return true;
|
|
1581
2230
|
}
|
|
1582
2231
|
return false;
|
|
@@ -1679,6 +2328,7 @@
|
|
|
1679
2328
|
var strUploadTime = "upload-time";
|
|
1680
2329
|
var strApiKey = "apikey";
|
|
1681
2330
|
var strMsaDeviceTicket = "AuthMsaDeviceTicket";
|
|
2331
|
+
var strAuthXToken = "AuthXToken";
|
|
1682
2332
|
var strNoResponseBody = "NoResponseBody";
|
|
1683
2333
|
var strMsfpc = "msfpc";
|
|
1684
2334
|
|
|
@@ -1991,25 +2641,19 @@
|
|
|
1991
2641
|
var RandomizationUpperThreshold = 1.2;
|
|
1992
2642
|
var BaseBackoff = 3000;
|
|
1993
2643
|
var MaxBackoff = 600000;
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
|
|
2008
|
-
return Math.min(waitDuration, MaxBackoff);
|
|
2009
|
-
};
|
|
2010
|
-
return RetryPolicy;
|
|
2011
|
-
}());
|
|
2012
|
-
var RetryPolicy$1 = RetryPolicy;
|
|
2644
|
+
function retryPolicyShouldRetryForStatus(httpStatusCode) {
|
|
2645
|
+
return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
|
|
2646
|
+
|| (httpStatusCode == 501)
|
|
2647
|
+
|| (httpStatusCode == 505));
|
|
2648
|
+
}
|
|
2649
|
+
function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
|
|
2650
|
+
var waitDuration = 0;
|
|
2651
|
+
var minBackoff = BaseBackoff * RandomizationLowerThreshold;
|
|
2652
|
+
var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
|
|
2653
|
+
var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
|
|
2654
|
+
waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
|
|
2655
|
+
return Math.min(waitDuration, MaxBackoff);
|
|
2656
|
+
}
|
|
2013
2657
|
|
|
2014
2658
|
var SecToMsMultiplier = 1000;
|
|
2015
2659
|
var KillSwitch = /** @class */ (function () {
|
|
@@ -2114,11 +2758,19 @@
|
|
|
2114
2758
|
_a);
|
|
2115
2759
|
var _collectorQsHeaders = {};
|
|
2116
2760
|
var _collectorHeaderToQs = {};
|
|
2117
|
-
function _addCollectorHeaderQsMapping(qsName, headerName) {
|
|
2761
|
+
function _addCollectorHeaderQsMapping(qsName, headerName, allowQs) {
|
|
2118
2762
|
_collectorQsHeaders[qsName] = headerName;
|
|
2119
|
-
|
|
2763
|
+
if (allowQs !== false) {
|
|
2764
|
+
_collectorHeaderToQs[headerName] = qsName;
|
|
2765
|
+
}
|
|
2120
2766
|
}
|
|
2121
|
-
_addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket);
|
|
2767
|
+
_addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket, false);
|
|
2768
|
+
_addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
|
|
2769
|
+
_addCollectorHeaderQsMapping(strClientId, "Client-Id");
|
|
2770
|
+
_addCollectorHeaderQsMapping(strApiKey, strApiKey);
|
|
2771
|
+
_addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
|
|
2772
|
+
_addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
|
|
2773
|
+
_addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
|
|
2122
2774
|
function _getResponseText(xhr) {
|
|
2123
2775
|
try {
|
|
2124
2776
|
return xhr.responseText;
|
|
@@ -2157,7 +2809,7 @@
|
|
|
2157
2809
|
}
|
|
2158
2810
|
}
|
|
2159
2811
|
var HttpManager = /** @class */ (function () {
|
|
2160
|
-
function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions) {
|
|
2812
|
+
function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
|
|
2161
2813
|
this._responseHandlers = [];
|
|
2162
2814
|
var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
|
|
2163
2815
|
var _killSwitch = new EVTKillSwitch();
|
|
@@ -2187,7 +2839,7 @@
|
|
|
2187
2839
|
channelConfig = {};
|
|
2188
2840
|
}
|
|
2189
2841
|
_urlString = endpointUrl + _urlString;
|
|
2190
|
-
_useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions :
|
|
2842
|
+
_useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : true;
|
|
2191
2843
|
_core = core;
|
|
2192
2844
|
_cookieMgr = core.getCookieMgr();
|
|
2193
2845
|
_enableEventTimings = !_core.config.disableEventTimings;
|
|
@@ -2296,7 +2948,7 @@
|
|
|
2296
2948
|
xdr.send(payload.data);
|
|
2297
2949
|
}
|
|
2298
2950
|
else {
|
|
2299
|
-
|
|
2951
|
+
timeoutOverride.set(function () {
|
|
2300
2952
|
xdr.send(payload.data);
|
|
2301
2953
|
}, 0);
|
|
2302
2954
|
}
|
|
@@ -2354,7 +3006,7 @@
|
|
|
2354
3006
|
_doOnComplete(oncomplete, 200, {});
|
|
2355
3007
|
}
|
|
2356
3008
|
if (!responseHandled && payload.timeout > 0) {
|
|
2357
|
-
|
|
3009
|
+
timeoutOverride.set(function () {
|
|
2358
3010
|
if (!responseHandled) {
|
|
2359
3011
|
responseHandled = true;
|
|
2360
3012
|
_doOnComplete(oncomplete, 500, {});
|
|
@@ -2413,7 +3065,7 @@
|
|
|
2413
3065
|
oncomplete(status, headers, response);
|
|
2414
3066
|
}
|
|
2415
3067
|
catch (e) {
|
|
2416
|
-
_postManager.diagLog()
|
|
3068
|
+
_throwInternal(_postManager.diagLog(), 2 , 518 , dumpObj(e));
|
|
2417
3069
|
}
|
|
2418
3070
|
}
|
|
2419
3071
|
function _beaconSendPost(payload, oncomplete, sync) {
|
|
@@ -2448,7 +3100,7 @@
|
|
|
2448
3100
|
}
|
|
2449
3101
|
}
|
|
2450
3102
|
catch (ex) {
|
|
2451
|
-
_postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + ex);
|
|
3103
|
+
_postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
|
|
2452
3104
|
status = 0;
|
|
2453
3105
|
}
|
|
2454
3106
|
finally {
|
|
@@ -2612,7 +3264,7 @@
|
|
|
2612
3264
|
}, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
|
|
2613
3265
|
}
|
|
2614
3266
|
catch (ex) {
|
|
2615
|
-
_postManager.diagLog()
|
|
3267
|
+
_throwInternal(_postManager.diagLog(), 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
|
|
2616
3268
|
}
|
|
2617
3269
|
}
|
|
2618
3270
|
function _buildRequestDetails(thePayload, useHeaders) {
|
|
@@ -2621,8 +3273,21 @@
|
|
|
2621
3273
|
hdrs: {},
|
|
2622
3274
|
useHdrs: false
|
|
2623
3275
|
};
|
|
2624
|
-
|
|
2625
|
-
|
|
3276
|
+
if (!useHeaders) {
|
|
3277
|
+
objForEachKey(_headers, function (name, value) {
|
|
3278
|
+
if (_collectorHeaderToQs[name]) {
|
|
3279
|
+
_addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);
|
|
3280
|
+
}
|
|
3281
|
+
else {
|
|
3282
|
+
requestDetails.hdrs[name] = value;
|
|
3283
|
+
requestDetails.useHdrs = true;
|
|
3284
|
+
}
|
|
3285
|
+
});
|
|
3286
|
+
}
|
|
3287
|
+
else {
|
|
3288
|
+
requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
|
|
3289
|
+
requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
|
|
3290
|
+
}
|
|
2626
3291
|
_addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
|
|
2627
3292
|
_addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
|
|
2628
3293
|
var apiQsKeys = "";
|
|
@@ -2808,7 +3473,7 @@
|
|
|
2808
3473
|
reason = 200 ;
|
|
2809
3474
|
return;
|
|
2810
3475
|
}
|
|
2811
|
-
if (!
|
|
3476
|
+
if (!retryPolicyShouldRetryForStatus(status) || thePayload.numEvents <= 0) {
|
|
2812
3477
|
shouldRetry = false;
|
|
2813
3478
|
}
|
|
2814
3479
|
reason = 9000 + (status % 1000);
|
|
@@ -2824,7 +3489,7 @@
|
|
|
2824
3489
|
_outstandingRequests--;
|
|
2825
3490
|
}
|
|
2826
3491
|
_sendBatches(thePayload.batches, retryCount_1 + 1, thePayload.isTeardown, _isUnloading ? 2 : thePayload.sendType, 5 );
|
|
2827
|
-
}, _isUnloading,
|
|
3492
|
+
}, _isUnloading, retryPolicyGetMillisToBackoffForRetry(retryCount_1));
|
|
2828
3493
|
}
|
|
2829
3494
|
else {
|
|
2830
3495
|
backOffTrans = true;
|
|
@@ -2880,7 +3545,7 @@
|
|
|
2880
3545
|
cb();
|
|
2881
3546
|
}
|
|
2882
3547
|
else {
|
|
2883
|
-
|
|
3548
|
+
timeoutOverride.set(cb, interval);
|
|
2884
3549
|
}
|
|
2885
3550
|
}
|
|
2886
3551
|
function _convertAllHeadersToMap(headersString) {
|
|
@@ -2920,7 +3585,7 @@
|
|
|
2920
3585
|
responseHandlers[i](responseText);
|
|
2921
3586
|
}
|
|
2922
3587
|
catch (e) {
|
|
2923
|
-
_postManager.diagLog()
|
|
3588
|
+
_throwInternal(_postManager.diagLog(), 1 , 519 , "Response handler failed: " + e);
|
|
2924
3589
|
}
|
|
2925
3590
|
}
|
|
2926
3591
|
if (responseText) {
|
|
@@ -2944,7 +3609,7 @@
|
|
|
2944
3609
|
theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
|
|
2945
3610
|
}
|
|
2946
3611
|
catch (e) {
|
|
2947
|
-
_postManager.diagLog()
|
|
3612
|
+
_throwInternal(_postManager.diagLog(), 1 , 74 , "send request notification failed: " + e);
|
|
2948
3613
|
}
|
|
2949
3614
|
}, sendSync || isSyncRequest_1, 0);
|
|
2950
3615
|
}, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
|
|
@@ -2972,26 +3637,43 @@
|
|
|
2972
3637
|
return HttpManager;
|
|
2973
3638
|
}());
|
|
2974
3639
|
|
|
3640
|
+
function defaultSetTimeout(callback, ms) {
|
|
3641
|
+
var args = [];
|
|
3642
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
3643
|
+
args[_i - 2] = arguments[_i];
|
|
3644
|
+
}
|
|
3645
|
+
return setTimeout(callback, ms, args);
|
|
3646
|
+
}
|
|
3647
|
+
function defaultClearTimeout(timeoutId) {
|
|
3648
|
+
clearTimeout(timeoutId);
|
|
3649
|
+
}
|
|
3650
|
+
function createTimeoutWrapper(argSetTimeout, argClearTimeout) {
|
|
3651
|
+
return {
|
|
3652
|
+
set: argSetTimeout || defaultSetTimeout,
|
|
3653
|
+
clear: argClearTimeout || defaultClearTimeout
|
|
3654
|
+
};
|
|
3655
|
+
}
|
|
3656
|
+
|
|
2975
3657
|
var FlushCheckTimer = 0.250;
|
|
2976
3658
|
var MaxNumberEventPerBatch = 500;
|
|
2977
3659
|
var EventsDroppedAtOneTime = 20;
|
|
2978
3660
|
var MaxSendAttempts = 6;
|
|
2979
3661
|
var MaxSyncUnloadSendAttempts = 2;
|
|
2980
3662
|
var MaxBackoffCount = 4;
|
|
2981
|
-
var globalContext = isWindowObjectAvailable ? window : undefined;
|
|
2982
3663
|
var MaxConnections = 2;
|
|
2983
3664
|
var MaxRequestRetriesBeforeBackoff = 1;
|
|
2984
3665
|
var strEventsDiscarded = "eventsDiscarded";
|
|
2985
3666
|
var strOverrideInstrumentationKey = "overrideInstrumentationKey";
|
|
2986
3667
|
var strMaxEventRetryAttempts = "maxEventRetryAttempts";
|
|
2987
3668
|
var strMaxUnloadEventRetryAttempts = "maxUnloadEventRetryAttempts";
|
|
3669
|
+
var strAddUnloadCb = "addUnloadCb";
|
|
2988
3670
|
var PostChannel = /** @class */ (function (_super) {
|
|
2989
3671
|
__extendsFn(PostChannel, _super);
|
|
2990
3672
|
function PostChannel() {
|
|
2991
3673
|
var _this = _super.call(this) || this;
|
|
2992
3674
|
_this.identifier = "PostChannel";
|
|
2993
3675
|
_this.priority = 1011;
|
|
2994
|
-
_this.version = '3.
|
|
3676
|
+
_this.version = '3.2.2';
|
|
2995
3677
|
var _config;
|
|
2996
3678
|
var _isTeardownCalled = false;
|
|
2997
3679
|
var _flushCallbackQueue = [];
|
|
@@ -3019,18 +3701,10 @@
|
|
|
3019
3701
|
var _disableXhrSync = false;
|
|
3020
3702
|
var _maxEventSendAttempts = MaxSendAttempts;
|
|
3021
3703
|
var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
3704
|
+
var _evtNamespace;
|
|
3705
|
+
var _timeoutWrapper;
|
|
3022
3706
|
dynamicProto(PostChannel, _this, function (_self, _base) {
|
|
3023
|
-
|
|
3024
|
-
_clearQueues();
|
|
3025
|
-
_setAutoLimits();
|
|
3026
|
-
_httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
|
|
3027
|
-
requeue: _requeueEvents,
|
|
3028
|
-
send: _sendingEvent,
|
|
3029
|
-
sent: _eventsSentEvent,
|
|
3030
|
-
drop: _eventsDropped,
|
|
3031
|
-
rspFail: _eventsResponseFail,
|
|
3032
|
-
oth: _otherEvent
|
|
3033
|
-
});
|
|
3707
|
+
_initDefaults();
|
|
3034
3708
|
_self["_getDbgPlgTargets"] = function () {
|
|
3035
3709
|
return [_httpManager];
|
|
3036
3710
|
};
|
|
@@ -3038,47 +3712,52 @@
|
|
|
3038
3712
|
doPerf(core, function () { return "PostChannel:initialize"; }, function () {
|
|
3039
3713
|
var extendedCore = core;
|
|
3040
3714
|
_base.initialize(coreConfig, core, extensions);
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3715
|
+
try {
|
|
3716
|
+
var hasAddUnloadCb = !!core[strAddUnloadCb];
|
|
3717
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());
|
|
3718
|
+
var ctx = _self._getTelCtx();
|
|
3719
|
+
coreConfig.extensionConfig[_self.identifier] = coreConfig.extensionConfig[_self.identifier] || {};
|
|
3720
|
+
_config = ctx.getExtCfg(_self.identifier);
|
|
3721
|
+
_timeoutWrapper = createTimeoutWrapper(_config.setTimeoutOverride, _config.clearTimeoutOverride);
|
|
3722
|
+
_optimizeObject = !_config.disableOptimizeObj && isChromium();
|
|
3723
|
+
_hookWParam(extendedCore);
|
|
3724
|
+
if (_config.eventsLimitInMem > 0) {
|
|
3725
|
+
_queueSizeLimit = _config.eventsLimitInMem;
|
|
3726
|
+
}
|
|
3727
|
+
if (_config.immediateEventLimit > 0) {
|
|
3728
|
+
_immediateQueueSizeLimit = _config.immediateEventLimit;
|
|
3729
|
+
}
|
|
3730
|
+
if (_config.autoFlushEventsLimit > 0) {
|
|
3731
|
+
_autoFlushEventsLimit = _config.autoFlushEventsLimit;
|
|
3732
|
+
}
|
|
3733
|
+
_disableXhrSync = _config.disableXhrSync;
|
|
3734
|
+
if (isNumber(_config[strMaxEventRetryAttempts])) {
|
|
3735
|
+
_maxEventSendAttempts = _config[strMaxEventRetryAttempts];
|
|
3736
|
+
}
|
|
3737
|
+
if (isNumber(_config[strMaxUnloadEventRetryAttempts])) {
|
|
3738
|
+
_maxUnloadEventSendAttempts = _config[strMaxUnloadEventRetryAttempts];
|
|
3739
|
+
}
|
|
3740
|
+
_setAutoLimits();
|
|
3741
|
+
if (_config.httpXHROverride && _config.httpXHROverride.sendPOST) {
|
|
3742
|
+
_xhrOverride = _config.httpXHROverride;
|
|
3743
|
+
}
|
|
3744
|
+
if (isValueAssigned(coreConfig.anonCookieName)) {
|
|
3745
|
+
_httpManager.addQueryStringParameter("anoncknm", coreConfig.anonCookieName);
|
|
3746
|
+
}
|
|
3747
|
+
_httpManager.sendHook = _config.payloadPreprocessor;
|
|
3748
|
+
_httpManager.sendListener = _config.payloadListener;
|
|
3749
|
+
var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
|
|
3750
|
+
_self._notificationManager = coreConfig.extensionConfig.NotificationManager;
|
|
3751
|
+
_httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
|
|
3752
|
+
var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
|
|
3753
|
+
addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
|
|
3754
|
+
addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
|
|
3755
|
+
addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents, _evtNamespace);
|
|
3756
|
+
}
|
|
3757
|
+
catch (e) {
|
|
3758
|
+
_self.setInitialized(false);
|
|
3759
|
+
throw e;
|
|
3760
|
+
}
|
|
3082
3761
|
}, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
|
|
3083
3762
|
};
|
|
3084
3763
|
_self.processTelemetry = function (ev, itemCtx) {
|
|
@@ -3107,6 +3786,15 @@
|
|
|
3107
3786
|
}
|
|
3108
3787
|
_self.processNext(event, itemCtx);
|
|
3109
3788
|
};
|
|
3789
|
+
_self._doTeardown = function (unloadCtx, unloadState) {
|
|
3790
|
+
_releaseAllQueues(2 , 2 );
|
|
3791
|
+
_isTeardownCalled = true;
|
|
3792
|
+
_httpManager.teardown();
|
|
3793
|
+
removePageUnloadEventListener(null, _evtNamespace);
|
|
3794
|
+
removePageHideEventListener(null, _evtNamespace);
|
|
3795
|
+
removePageShowEventListener(null, _evtNamespace);
|
|
3796
|
+
_initDefaults();
|
|
3797
|
+
};
|
|
3110
3798
|
function _hookWParam(extendedCore) {
|
|
3111
3799
|
var existingGetWParamMethod = extendedCore.getWParam;
|
|
3112
3800
|
extendedCore.getWParam = function () {
|
|
@@ -3134,7 +3822,7 @@
|
|
|
3134
3822
|
event.sendAttempt = 0;
|
|
3135
3823
|
}
|
|
3136
3824
|
if (!event.latency) {
|
|
3137
|
-
event.latency =
|
|
3825
|
+
event.latency = 1 ;
|
|
3138
3826
|
}
|
|
3139
3827
|
if (event.ext && event.ext["trace"]) {
|
|
3140
3828
|
delete (event.ext["trace"]);
|
|
@@ -3153,7 +3841,7 @@
|
|
|
3153
3841
|
}
|
|
3154
3842
|
if (event.sync) {
|
|
3155
3843
|
if (_currentBackoffCount || _paused) {
|
|
3156
|
-
event.latency =
|
|
3844
|
+
event.latency = 3 ;
|
|
3157
3845
|
event.sync = false;
|
|
3158
3846
|
}
|
|
3159
3847
|
else {
|
|
@@ -3169,7 +3857,7 @@
|
|
|
3169
3857
|
var evtLatency = event.latency;
|
|
3170
3858
|
var queueSize = _queueSize;
|
|
3171
3859
|
var queueLimit = _queueSizeLimit;
|
|
3172
|
-
if (evtLatency ===
|
|
3860
|
+
if (evtLatency === 4 ) {
|
|
3173
3861
|
queueSize = _immediateQueueSize;
|
|
3174
3862
|
queueLimit = _immediateQueueSizeLimit;
|
|
3175
3863
|
}
|
|
@@ -3178,10 +3866,10 @@
|
|
|
3178
3866
|
eventDropped = !_addEventToProperQueue(event, append);
|
|
3179
3867
|
}
|
|
3180
3868
|
else {
|
|
3181
|
-
var dropLatency =
|
|
3869
|
+
var dropLatency = 1 ;
|
|
3182
3870
|
var dropNumber = EventsDroppedAtOneTime;
|
|
3183
|
-
if (evtLatency ===
|
|
3184
|
-
dropLatency =
|
|
3871
|
+
if (evtLatency === 4 ) {
|
|
3872
|
+
dropLatency = 4 ;
|
|
3185
3873
|
dropNumber = 1;
|
|
3186
3874
|
}
|
|
3187
3875
|
eventDropped = true;
|
|
@@ -3199,7 +3887,7 @@
|
|
|
3199
3887
|
_setAutoLimits();
|
|
3200
3888
|
var doFlush = _queueSize > eventLimit;
|
|
3201
3889
|
if (!doFlush && _autoFlushBatchLimit > 0) {
|
|
3202
|
-
for (var latency =
|
|
3890
|
+
for (var latency = 1 ; !doFlush && latency <= 3 ; latency++) {
|
|
3203
3891
|
var batchQueue = _batchQueues[latency];
|
|
3204
3892
|
if (batchQueue && batchQueue.batches) {
|
|
3205
3893
|
arrForEach(batchQueue.batches, function (theBatch) {
|
|
@@ -3212,11 +3900,6 @@
|
|
|
3212
3900
|
}
|
|
3213
3901
|
_performAutoFlush(true, doFlush);
|
|
3214
3902
|
};
|
|
3215
|
-
_self.teardown = function () {
|
|
3216
|
-
_releaseAllQueues(2 , 2 );
|
|
3217
|
-
_isTeardownCalled = true;
|
|
3218
|
-
_httpManager.teardown();
|
|
3219
|
-
};
|
|
3220
3903
|
_self.pause = function () {
|
|
3221
3904
|
_clearScheduledTimer();
|
|
3222
3905
|
_paused = true;
|
|
@@ -3258,7 +3941,7 @@
|
|
|
3258
3941
|
_clearScheduledTimer();
|
|
3259
3942
|
sendReason = sendReason || 1 ;
|
|
3260
3943
|
if (async) {
|
|
3261
|
-
_queueBatches(
|
|
3944
|
+
_queueBatches(1 , 0 , sendReason);
|
|
3262
3945
|
_resetQueueCounts();
|
|
3263
3946
|
if (_flushCallbackTimerId == null) {
|
|
3264
3947
|
_flushCallbackTimerId = _createTimer(function () {
|
|
@@ -3270,7 +3953,7 @@
|
|
|
3270
3953
|
}
|
|
3271
3954
|
}
|
|
3272
3955
|
else {
|
|
3273
|
-
_sendEventsForLatencyAndAbove(
|
|
3956
|
+
_sendEventsForLatencyAndAbove(1 , 1 , sendReason);
|
|
3274
3957
|
if (callback !== null && callback !== undefined) {
|
|
3275
3958
|
callback();
|
|
3276
3959
|
}
|
|
@@ -3305,7 +3988,7 @@
|
|
|
3305
3988
|
if (immediateTimeOut >= 0) {
|
|
3306
3989
|
_immediateTimerId = _createTimer(function () {
|
|
3307
3990
|
_immediateTimerId = null;
|
|
3308
|
-
_sendEventsForLatencyAndAbove(
|
|
3991
|
+
_sendEventsForLatencyAndAbove(4 , 0 , 1 );
|
|
3309
3992
|
_scheduleTimer();
|
|
3310
3993
|
}, immediateTimeOut);
|
|
3311
3994
|
}
|
|
@@ -3315,7 +3998,7 @@
|
|
|
3315
3998
|
if (_hasEvents()) {
|
|
3316
3999
|
_scheduledTimerId = _createTimer(function () {
|
|
3317
4000
|
_scheduledTimerId = null;
|
|
3318
|
-
_sendEventsForLatencyAndAbove(_timerCount === 0 ?
|
|
4001
|
+
_sendEventsForLatencyAndAbove(_timerCount === 0 ? 3 : 1 , 0 , 1 );
|
|
3319
4002
|
_timerCount++;
|
|
3320
4003
|
_timerCount %= 2;
|
|
3321
4004
|
_scheduleTimer();
|
|
@@ -3340,19 +4023,60 @@
|
|
|
3340
4023
|
_scheduleTimer();
|
|
3341
4024
|
}
|
|
3342
4025
|
};
|
|
4026
|
+
function _initDefaults() {
|
|
4027
|
+
_config = null;
|
|
4028
|
+
_isTeardownCalled = false;
|
|
4029
|
+
_flushCallbackQueue = [];
|
|
4030
|
+
_flushCallbackTimerId = null;
|
|
4031
|
+
_paused = false;
|
|
4032
|
+
_immediateQueueSize = 0;
|
|
4033
|
+
_immediateQueueSizeLimit = 500;
|
|
4034
|
+
_queueSize = 0;
|
|
4035
|
+
_queueSizeLimit = 10000;
|
|
4036
|
+
_profiles = {};
|
|
4037
|
+
_currentProfile = RT_PROFILE;
|
|
4038
|
+
_scheduledTimerId = null;
|
|
4039
|
+
_immediateTimerId = null;
|
|
4040
|
+
_currentBackoffCount = 0;
|
|
4041
|
+
_timerCount = 0;
|
|
4042
|
+
_xhrOverride = null;
|
|
4043
|
+
_batchQueues = {};
|
|
4044
|
+
_autoFlushEventsLimit = undefined;
|
|
4045
|
+
_autoFlushBatchLimit = 0;
|
|
4046
|
+
_delayedBatchSendLatency = -1;
|
|
4047
|
+
_delayedBatchReason = null;
|
|
4048
|
+
_optimizeObject = true;
|
|
4049
|
+
_isPageUnloadTriggered = false;
|
|
4050
|
+
_disableXhrSync = false;
|
|
4051
|
+
_maxEventSendAttempts = MaxSendAttempts;
|
|
4052
|
+
_maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
4053
|
+
_evtNamespace = null;
|
|
4054
|
+
_timeoutWrapper = createTimeoutWrapper();
|
|
4055
|
+
_httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
|
|
4056
|
+
requeue: _requeueEvents,
|
|
4057
|
+
send: _sendingEvent,
|
|
4058
|
+
sent: _eventsSentEvent,
|
|
4059
|
+
drop: _eventsDropped,
|
|
4060
|
+
rspFail: _eventsResponseFail,
|
|
4061
|
+
oth: _otherEvent
|
|
4062
|
+
}, _timeoutWrapper);
|
|
4063
|
+
_initializeProfiles();
|
|
4064
|
+
_clearQueues();
|
|
4065
|
+
_setAutoLimits();
|
|
4066
|
+
}
|
|
3343
4067
|
function _createTimer(theTimerFunc, timeOut) {
|
|
3344
4068
|
if (timeOut === 0 && _currentBackoffCount) {
|
|
3345
4069
|
timeOut = 1;
|
|
3346
4070
|
}
|
|
3347
4071
|
var timerMultiplier = 1000;
|
|
3348
4072
|
if (_currentBackoffCount) {
|
|
3349
|
-
timerMultiplier =
|
|
4073
|
+
timerMultiplier = retryPolicyGetMillisToBackoffForRetry(_currentBackoffCount - 1);
|
|
3350
4074
|
}
|
|
3351
|
-
return
|
|
4075
|
+
return _timeoutWrapper.set(theTimerFunc, timeOut * timerMultiplier);
|
|
3352
4076
|
}
|
|
3353
4077
|
function _clearScheduledTimer() {
|
|
3354
4078
|
if (_scheduledTimerId !== null) {
|
|
3355
|
-
|
|
4079
|
+
_timeoutWrapper.clear(_scheduledTimerId);
|
|
3356
4080
|
_scheduledTimerId = null;
|
|
3357
4081
|
_timerCount = 0;
|
|
3358
4082
|
}
|
|
@@ -3360,27 +4084,27 @@
|
|
|
3360
4084
|
function _releaseAllQueues(sendType, sendReason) {
|
|
3361
4085
|
_clearScheduledTimer();
|
|
3362
4086
|
if (_flushCallbackTimerId) {
|
|
3363
|
-
|
|
4087
|
+
_timeoutWrapper.clear(_flushCallbackTimerId);
|
|
3364
4088
|
_flushCallbackTimerId = null;
|
|
3365
4089
|
}
|
|
3366
4090
|
if (!_paused) {
|
|
3367
|
-
_sendEventsForLatencyAndAbove(
|
|
4091
|
+
_sendEventsForLatencyAndAbove(1 , sendType, sendReason);
|
|
3368
4092
|
}
|
|
3369
4093
|
}
|
|
3370
4094
|
function _clearQueues() {
|
|
3371
|
-
_batchQueues[
|
|
4095
|
+
_batchQueues[4 ] = {
|
|
3372
4096
|
batches: [],
|
|
3373
4097
|
iKeyMap: {}
|
|
3374
4098
|
};
|
|
3375
|
-
_batchQueues[
|
|
4099
|
+
_batchQueues[3 ] = {
|
|
3376
4100
|
batches: [],
|
|
3377
4101
|
iKeyMap: {}
|
|
3378
4102
|
};
|
|
3379
|
-
_batchQueues[
|
|
4103
|
+
_batchQueues[2 ] = {
|
|
3380
4104
|
batches: [],
|
|
3381
4105
|
iKeyMap: {}
|
|
3382
4106
|
};
|
|
3383
|
-
_batchQueues[
|
|
4107
|
+
_batchQueues[1 ] = {
|
|
3384
4108
|
batches: [],
|
|
3385
4109
|
iKeyMap: {}
|
|
3386
4110
|
};
|
|
@@ -3388,7 +4112,7 @@
|
|
|
3388
4112
|
function _getEventBatch(iKey, latency, create) {
|
|
3389
4113
|
var batchQueue = _batchQueues[latency];
|
|
3390
4114
|
if (!batchQueue) {
|
|
3391
|
-
latency =
|
|
4115
|
+
latency = 1 ;
|
|
3392
4116
|
batchQueue = _batchQueues[latency];
|
|
3393
4117
|
}
|
|
3394
4118
|
var eventBatch = batchQueue.iKeyMap[iKey];
|
|
@@ -3416,7 +4140,7 @@
|
|
|
3416
4140
|
var latency = event.latency;
|
|
3417
4141
|
var eventBatch = _getEventBatch(event.iKey, latency, true);
|
|
3418
4142
|
if (eventBatch.addEvent(event)) {
|
|
3419
|
-
if (latency !==
|
|
4143
|
+
if (latency !== 4 ) {
|
|
3420
4144
|
_queueSize++;
|
|
3421
4145
|
if (append && event.sendAttempt === 0) {
|
|
3422
4146
|
_performAutoFlush(!event.sync, _autoFlushBatchLimit > 0 && eventBatch.count() >= _autoFlushBatchLimit);
|
|
@@ -3436,7 +4160,7 @@
|
|
|
3436
4160
|
var droppedEvents = eventBatch.split(0, dropNumber);
|
|
3437
4161
|
var droppedCount = droppedEvents.count();
|
|
3438
4162
|
if (droppedCount > 0) {
|
|
3439
|
-
if (currentLatency ===
|
|
4163
|
+
if (currentLatency === 4 ) {
|
|
3440
4164
|
_immediateQueueSize -= droppedCount;
|
|
3441
4165
|
}
|
|
3442
4166
|
else {
|
|
@@ -3458,7 +4182,7 @@
|
|
|
3458
4182
|
var batchQueue = _batchQueues[latency];
|
|
3459
4183
|
if (batchQueue && batchQueue.batches) {
|
|
3460
4184
|
arrForEach(batchQueue.batches, function (theBatch) {
|
|
3461
|
-
if (latency ===
|
|
4185
|
+
if (latency === 4 ) {
|
|
3462
4186
|
immediateQueue += theBatch.count();
|
|
3463
4187
|
}
|
|
3464
4188
|
else {
|
|
@@ -3467,7 +4191,7 @@
|
|
|
3467
4191
|
});
|
|
3468
4192
|
}
|
|
3469
4193
|
};
|
|
3470
|
-
for (var latency =
|
|
4194
|
+
for (var latency = 1 ; latency <= 4 ; latency++) {
|
|
3471
4195
|
_loop_1(latency);
|
|
3472
4196
|
}
|
|
3473
4197
|
_queueSize = normalQueue;
|
|
@@ -3479,7 +4203,7 @@
|
|
|
3479
4203
|
if (!isAsync || _httpManager.canSendRequest()) {
|
|
3480
4204
|
doPerf(_self.core, function () { return "PostChannel._queueBatches"; }, function () {
|
|
3481
4205
|
var droppedEvents = [];
|
|
3482
|
-
var latencyToProcess =
|
|
4206
|
+
var latencyToProcess = 4 ;
|
|
3483
4207
|
while (latencyToProcess >= latency) {
|
|
3484
4208
|
var batchQueue = _batchQueues[latencyToProcess];
|
|
3485
4209
|
if (batchQueue && batchQueue.batches && batchQueue.batches.length > 0) {
|
|
@@ -3490,7 +4214,7 @@
|
|
|
3490
4214
|
else {
|
|
3491
4215
|
eventsQueued = eventsQueued || (theBatch && theBatch.count() > 0);
|
|
3492
4216
|
}
|
|
3493
|
-
if (latencyToProcess ===
|
|
4217
|
+
if (latencyToProcess === 4 ) {
|
|
3494
4218
|
_immediateQueueSize -= theBatch.count();
|
|
3495
4219
|
}
|
|
3496
4220
|
else {
|
|
@@ -3518,7 +4242,7 @@
|
|
|
3518
4242
|
return eventsQueued;
|
|
3519
4243
|
}
|
|
3520
4244
|
function _flushImpl(callback, sendReason) {
|
|
3521
|
-
_sendEventsForLatencyAndAbove(
|
|
4245
|
+
_sendEventsForLatencyAndAbove(1 , 0 , sendReason);
|
|
3522
4246
|
_waitForIdleManager(function () {
|
|
3523
4247
|
if (callback) {
|
|
3524
4248
|
callback();
|
|
@@ -3567,7 +4291,7 @@
|
|
|
3567
4291
|
arrForEach(theBatch.events(), function (theEvent) {
|
|
3568
4292
|
if (theEvent) {
|
|
3569
4293
|
if (theEvent.sync) {
|
|
3570
|
-
theEvent.latency =
|
|
4294
|
+
theEvent.latency = 4 ;
|
|
3571
4295
|
theEvent.sync = false;
|
|
3572
4296
|
}
|
|
3573
4297
|
if (theEvent.sendAttempt < maxSendAttempts) {
|
|
@@ -3596,7 +4320,7 @@
|
|
|
3596
4320
|
notifyFunc.apply(manager, theArgs);
|
|
3597
4321
|
}
|
|
3598
4322
|
catch (e) {
|
|
3599
|
-
_self.diagLog()
|
|
4323
|
+
_throwInternal(_self.diagLog(), 1 , 74 , evtName + " notification failed: " + e);
|
|
3600
4324
|
}
|
|
3601
4325
|
}
|
|
3602
4326
|
}
|
|
@@ -3654,6 +4378,12 @@
|
|
|
3654
4378
|
_autoFlushBatchLimit = 0;
|
|
3655
4379
|
}
|
|
3656
4380
|
}
|
|
4381
|
+
objDefineAccessors(_self, "_setTimeoutOverride", function () { return _timeoutWrapper.set; }, function (value) {
|
|
4382
|
+
_timeoutWrapper = createTimeoutWrapper(value, _timeoutWrapper.clear);
|
|
4383
|
+
});
|
|
4384
|
+
objDefineAccessors(_self, "_clearTimeoutOverride", function () { return _timeoutWrapper.clear; }, function (value) {
|
|
4385
|
+
_timeoutWrapper = createTimeoutWrapper(_timeoutWrapper.set, value);
|
|
4386
|
+
});
|
|
3657
4387
|
});
|
|
3658
4388
|
return _this;
|
|
3659
4389
|
}
|