@microsoft/1ds-post-js 3.2.2 → 3.2.5
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/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +14 -0
- package/LICENSE.TXT +3 -3
- package/NOTICE +17 -0
- package/PRIVACY +3 -0
- package/README.md +16 -2
- package/SECURITY.md +41 -0
- package/SUPPORT.md +14 -0
- package/bundle/{ms.post-3.2.2.gbl.js → ms.post-3.2.5.gbl.js} +933 -858
- package/bundle/ms.post-3.2.5.gbl.js.map +1 -0
- package/bundle/ms.post-3.2.5.gbl.min.js +7 -0
- package/bundle/ms.post-3.2.5.gbl.min.js.map +1 -0
- package/bundle/ms.post-3.2.5.integrity.json +46 -0
- package/bundle/{ms.post-3.2.2.js → ms.post-3.2.5.js} +933 -858
- package/bundle/ms.post-3.2.5.js.map +1 -0
- package/bundle/ms.post-3.2.5.min.js +7 -0
- package/bundle/ms.post-3.2.5.min.js.map +1 -0
- package/bundle/ms.post.gbl.js +932 -857
- 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 +932 -857
- 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 +213 -197
- package/dist/ms.post.js.map +1 -1
- package/dist/ms.post.min.js +2 -2
- package/dist/ms.post.min.js.map +1 -1
- package/dist-esm/src/BatchNotificationActions.js +1 -1
- package/dist-esm/src/ClockSkewManager.js +6 -1
- package/dist-esm/src/ClockSkewManager.js.map +1 -1
- package/dist-esm/src/DataModels.js +1 -1
- package/dist-esm/src/EventBatch.d.ts +0 -5
- package/dist-esm/src/EventBatch.js +9 -4
- package/dist-esm/src/EventBatch.js.map +1 -1
- package/dist-esm/src/HttpManager.d.ts +2 -7
- package/dist-esm/src/HttpManager.js +116 -108
- package/dist-esm/src/HttpManager.js.map +1 -1
- package/dist-esm/src/Index.js +1 -1
- package/dist-esm/src/InternalConstants.d.ts +27 -0
- package/dist-esm/src/InternalConstants.js +40 -0
- package/dist-esm/src/InternalConstants.js.map +1 -0
- package/dist-esm/src/KillSwitch.js +7 -2
- package/dist-esm/src/KillSwitch.js.map +1 -1
- package/dist-esm/src/PostChannel.d.ts +1 -1
- package/dist-esm/src/PostChannel.js +79 -65
- package/dist-esm/src/PostChannel.js.map +1 -1
- package/dist-esm/src/RetryPolicy.js +1 -1
- package/dist-esm/src/Serializer.d.ts +1 -1
- package/dist-esm/src/Serializer.js +9 -3
- package/dist-esm/src/Serializer.js.map +1 -1
- package/dist-esm/src/TimeoutOverrideWrapper.d.ts +5 -5
- package/dist-esm/src/TimeoutOverrideWrapper.js +6 -6
- package/dist-esm/src/TimeoutOverrideWrapper.js.map +1 -1
- package/dist-esm/src/typings/XDomainRequest.js +1 -1
- package/package.json +4 -2
- package/src/EventBatch.ts +4 -4
- package/src/HttpManager.ts +70 -68
- package/src/InternalConstants.ts +41 -0
- package/src/KillSwitch.ts +1 -1
- package/src/PostChannel.ts +45 -36
- package/src/Serializer.ts +7 -5
- package/src/TimeoutOverrideWrapper.ts +6 -6
- package/bundle/ms.post-3.2.2.gbl.js.map +0 -1
- package/bundle/ms.post-3.2.2.gbl.min.js +0 -7
- package/bundle/ms.post-3.2.2.gbl.min.js.map +0 -1
- package/bundle/ms.post-3.2.2.integrity.json +0 -46
- package/bundle/ms.post-3.2.2.js.map +0 -1
- package/bundle/ms.post-3.2.2.min.js +0 -7
- package/bundle/ms.post-3.2.2.min.js.map +0 -1
- package/dist-esm/src/Constants.d.ts +0 -25
- package/dist-esm/src/Constants.js +0 -31
- package/dist-esm/src/Constants.js.map +0 -1
- package/src/Constants.ts +0 -28
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* 1DS JS SDK POST plugin, 3.2.
|
|
2
|
+
* 1DS JS SDK POST plugin, 3.2.5
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
* (Microsoft Internal Only)
|
|
5
5
|
*/
|
|
@@ -328,14 +328,55 @@
|
|
|
328
328
|
};
|
|
329
329
|
dynamicProto[DynProtoDefaultOptions] = perfDefaults;
|
|
330
330
|
|
|
331
|
-
var
|
|
332
|
-
var
|
|
333
|
-
var
|
|
334
|
-
var
|
|
335
|
-
var
|
|
336
|
-
var
|
|
337
|
-
var
|
|
338
|
-
var
|
|
331
|
+
var _DYN_INITIALIZE = "initialize";
|
|
332
|
+
var _DYN_NAME = "name";
|
|
333
|
+
var _DYN_IDENTIFIER = "identifier";
|
|
334
|
+
var _DYN_PUSH = "push";
|
|
335
|
+
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
336
|
+
var _DYN_CONFIG = "config";
|
|
337
|
+
var _DYN_LOGGER = "logger";
|
|
338
|
+
var _DYN_LENGTH = "length";
|
|
339
|
+
var _DYN_TIME = "time";
|
|
340
|
+
var _DYN_PROCESS_NEXT = "processNext";
|
|
341
|
+
var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
|
|
342
|
+
var _DYN_GET_PLUGIN = "getPlugin";
|
|
343
|
+
var _DYN_SPLICE = "splice";
|
|
344
|
+
var _DYN_TEARDOWN = "teardown";
|
|
345
|
+
var _DYN_MESSAGE_ID = "messageId";
|
|
346
|
+
var _DYN_MESSAGE = "message";
|
|
347
|
+
var _DYN_IS_ASYNC = "isAsync";
|
|
348
|
+
var _DYN__DO_TEARDOWN = "_doTeardown";
|
|
349
|
+
var _DYN_UPDATE = "update";
|
|
350
|
+
var _DYN_GET_NEXT = "getNext";
|
|
351
|
+
var _DYN_DIAG_LOG = "diagLog";
|
|
352
|
+
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
353
|
+
var _DYN_CREATE_NEW = "createNew";
|
|
354
|
+
var _DYN_INDEX_OF = "indexOf";
|
|
355
|
+
var _DYN_USER_AGENT = "userAgent";
|
|
356
|
+
var _DYN_SPLIT = "split";
|
|
357
|
+
var _DYN_NODE_TYPE = "nodeType";
|
|
358
|
+
var _DYN_APPLY = "apply";
|
|
359
|
+
var _DYN_REPLACE = "replace";
|
|
360
|
+
var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
|
|
361
|
+
var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
|
|
362
|
+
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
363
|
+
var _DYN_CALL = "call";
|
|
364
|
+
var _DYN_TYPE = "type";
|
|
365
|
+
var _DYN_HANDLER = "handler";
|
|
366
|
+
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
367
|
+
var _DYN_GET_CTX = "getCtx";
|
|
368
|
+
var _DYN_SET_CTX = "setCtx";
|
|
369
|
+
var _DYN_COMPLETE = "complete";
|
|
370
|
+
|
|
371
|
+
var STR_EMPTY$1 = "";
|
|
372
|
+
var STR_CORE = "core";
|
|
373
|
+
var STR_DISABLED = "disabled";
|
|
374
|
+
var STR_EXTENSION_CONFIG = "extensionConfig";
|
|
375
|
+
var STR_PROCESS_TELEMETRY = "processTelemetry";
|
|
376
|
+
var STR_PRIORITY = "priority";
|
|
377
|
+
var STR_ERROR_TO_CONSOLE = "errorToConsole";
|
|
378
|
+
var STR_WARN_TO_CONSOLE = "warnToConsole";
|
|
379
|
+
var STR_GET_PERF_MGR = "getPerfMgr";
|
|
339
380
|
|
|
340
381
|
var cStrStartsWith = "startsWith";
|
|
341
382
|
var strIndexOf = "indexOf";
|
|
@@ -352,7 +393,7 @@
|
|
|
352
393
|
var _isArray = Array.isArray;
|
|
353
394
|
var _objToString = ObjProto[strToString];
|
|
354
395
|
var _fnToString = ObjHasOwnProperty[strToString];
|
|
355
|
-
var _objFunctionString = _fnToString
|
|
396
|
+
var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
|
|
356
397
|
var rCamelCase = /-([a-z])/g;
|
|
357
398
|
var rNormalizeInvalid = /([^\w\d_$])/g;
|
|
358
399
|
var rLeadingNumeric = /^(\d+[\w\d_$])/;
|
|
@@ -376,7 +417,7 @@
|
|
|
376
417
|
return (value === null || isUndefined(value));
|
|
377
418
|
}
|
|
378
419
|
function hasOwnProperty(obj, prop) {
|
|
379
|
-
return !!(obj && ObjHasOwnProperty
|
|
420
|
+
return !!(obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop));
|
|
380
421
|
}
|
|
381
422
|
function isObject(value) {
|
|
382
423
|
return !!(value && typeof value === strShimObject);
|
|
@@ -387,11 +428,11 @@
|
|
|
387
428
|
function normalizeJsName(name) {
|
|
388
429
|
var value = name;
|
|
389
430
|
if (value && isString(value)) {
|
|
390
|
-
value = value
|
|
431
|
+
value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
|
|
391
432
|
return letter.toUpperCase();
|
|
392
433
|
});
|
|
393
|
-
value = value
|
|
394
|
-
value = value
|
|
434
|
+
value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
|
|
435
|
+
value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
|
|
395
436
|
return "_" + match;
|
|
396
437
|
});
|
|
397
438
|
}
|
|
@@ -400,8 +441,8 @@
|
|
|
400
441
|
function objForEachKey(target, callbackfn) {
|
|
401
442
|
if (target) {
|
|
402
443
|
for (var prop in target) {
|
|
403
|
-
if (ObjHasOwnProperty
|
|
404
|
-
callbackfn
|
|
444
|
+
if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
|
|
445
|
+
callbackfn[_DYN_CALL ](target, prop, target[prop]);
|
|
405
446
|
}
|
|
406
447
|
}
|
|
407
448
|
}
|
|
@@ -415,8 +456,8 @@
|
|
|
415
456
|
}
|
|
416
457
|
function _strStartsWithPoly(value, checkValue) {
|
|
417
458
|
var result = false;
|
|
418
|
-
var chkLen = checkValue ? checkValue
|
|
419
|
-
if (value && chkLen && value
|
|
459
|
+
var chkLen = checkValue ? checkValue[_DYN_LENGTH ] : 0;
|
|
460
|
+
if (value && chkLen && value[_DYN_LENGTH ] >= chkLen && !(result = value === checkValue)) {
|
|
420
461
|
for (var lp = 0; lp < chkLen; lp++) {
|
|
421
462
|
if (value[lp] !== checkValue[lp]) {
|
|
422
463
|
return false;
|
|
@@ -428,13 +469,13 @@
|
|
|
428
469
|
}
|
|
429
470
|
function strContains(value, search) {
|
|
430
471
|
if (value && search) {
|
|
431
|
-
return value
|
|
472
|
+
return value[_DYN_INDEX_OF ](search) !== -1;
|
|
432
473
|
}
|
|
433
474
|
return false;
|
|
434
475
|
}
|
|
435
476
|
var isArray = _isArray || _isArrayPoly;
|
|
436
477
|
function _isArrayPoly(obj) {
|
|
437
|
-
return !!(obj && _objToString
|
|
478
|
+
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
|
|
438
479
|
}
|
|
439
480
|
function isString(value) {
|
|
440
481
|
return typeof value === "string";
|
|
@@ -453,20 +494,20 @@
|
|
|
453
494
|
result = true;
|
|
454
495
|
}
|
|
455
496
|
else {
|
|
456
|
-
if (proto[strConstructor] && ObjHasOwnProperty
|
|
497
|
+
if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
|
|
457
498
|
proto = proto[strConstructor];
|
|
458
499
|
}
|
|
459
|
-
result = typeof proto === strShimFunction && _fnToString
|
|
500
|
+
result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
|
|
460
501
|
}
|
|
461
502
|
}
|
|
462
503
|
return result;
|
|
463
504
|
}
|
|
464
505
|
function arrForEach(arr, callbackfn, thisArg) {
|
|
465
|
-
var len = arr
|
|
506
|
+
var len = arr[_DYN_LENGTH ];
|
|
466
507
|
try {
|
|
467
508
|
for (var idx = 0; idx < len; idx++) {
|
|
468
509
|
if (idx in arr) {
|
|
469
|
-
if (callbackfn
|
|
510
|
+
if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
|
|
470
511
|
break;
|
|
471
512
|
}
|
|
472
513
|
}
|
|
@@ -480,7 +521,7 @@
|
|
|
480
521
|
if (arr[strIndexOf]) {
|
|
481
522
|
return arr[strIndexOf](searchElement, fromIndex);
|
|
482
523
|
}
|
|
483
|
-
var len = arr
|
|
524
|
+
var len = arr[_DYN_LENGTH ];
|
|
484
525
|
var from = fromIndex || 0;
|
|
485
526
|
try {
|
|
486
527
|
for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
|
|
@@ -496,7 +537,7 @@
|
|
|
496
537
|
}
|
|
497
538
|
function strTrim(str) {
|
|
498
539
|
if (str) {
|
|
499
|
-
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str
|
|
540
|
+
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|\s+$/g, STR_EMPTY$1) : str);
|
|
500
541
|
}
|
|
501
542
|
return str;
|
|
502
543
|
}
|
|
@@ -520,15 +561,15 @@
|
|
|
520
561
|
}
|
|
521
562
|
var result = [];
|
|
522
563
|
for (var prop in obj) {
|
|
523
|
-
if (obj && ObjHasOwnProperty
|
|
524
|
-
result
|
|
564
|
+
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
|
|
565
|
+
result[_DYN_PUSH ](prop);
|
|
525
566
|
}
|
|
526
567
|
}
|
|
527
568
|
if (_objKeysHasDontEnumBug) {
|
|
528
|
-
var dontEnumsLength = _objKeysDontEnums
|
|
569
|
+
var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH ];
|
|
529
570
|
for (var lp = 0; lp < dontEnumsLength; lp++) {
|
|
530
|
-
if (obj && ObjHasOwnProperty
|
|
531
|
-
result
|
|
571
|
+
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
|
|
572
|
+
result[_DYN_PUSH ](_objKeysDontEnums[lp]);
|
|
532
573
|
}
|
|
533
574
|
}
|
|
534
575
|
}
|
|
@@ -584,6 +625,9 @@
|
|
|
584
625
|
}
|
|
585
626
|
return theValue;
|
|
586
627
|
}
|
|
628
|
+
function getCfgValue(theValue, defaultValue) {
|
|
629
|
+
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
630
|
+
}
|
|
587
631
|
function _createProxyFunction(source, funcName) {
|
|
588
632
|
var srcFunc = null;
|
|
589
633
|
var src = null;
|
|
@@ -599,7 +643,7 @@
|
|
|
599
643
|
src = srcFunc();
|
|
600
644
|
}
|
|
601
645
|
if (src) {
|
|
602
|
-
return src[funcName]
|
|
646
|
+
return src[funcName][_DYN_APPLY ](src, originalArguments);
|
|
603
647
|
}
|
|
604
648
|
};
|
|
605
649
|
}
|
|
@@ -619,7 +663,7 @@
|
|
|
619
663
|
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
620
664
|
var theArgs = arguments;
|
|
621
665
|
var extended = theArgs[0] || {};
|
|
622
|
-
var argLen = theArgs
|
|
666
|
+
var argLen = theArgs[_DYN_LENGTH ];
|
|
623
667
|
var deep = false;
|
|
624
668
|
var idx = 1;
|
|
625
669
|
if (argLen > 0 && isBoolean(extended)) {
|
|
@@ -635,7 +679,7 @@
|
|
|
635
679
|
var isArgArray = isArray(arg);
|
|
636
680
|
var isArgObj = isObject(arg);
|
|
637
681
|
for (var prop in arg) {
|
|
638
|
-
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty
|
|
682
|
+
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
|
|
639
683
|
if (!propOk) {
|
|
640
684
|
continue;
|
|
641
685
|
}
|
|
@@ -804,18 +848,18 @@
|
|
|
804
848
|
}
|
|
805
849
|
function isIE() {
|
|
806
850
|
var nav = getNavigator();
|
|
807
|
-
if (nav && (nav
|
|
808
|
-
_navUserAgentCheck = nav
|
|
809
|
-
var userAgent = (_navUserAgentCheck ||
|
|
851
|
+
if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
|
|
852
|
+
_navUserAgentCheck = nav[_DYN_USER_AGENT ];
|
|
853
|
+
var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE ]();
|
|
810
854
|
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
811
855
|
}
|
|
812
856
|
return _isTrident;
|
|
813
857
|
}
|
|
814
858
|
function dumpObj(object) {
|
|
815
|
-
var objectTypeDump = Object[strShimPrototype].toString
|
|
816
|
-
var propertyValueDump =
|
|
859
|
+
var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
|
|
860
|
+
var propertyValueDump = STR_EMPTY$1;
|
|
817
861
|
if (objectTypeDump === "[object Error]") {
|
|
818
|
-
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object
|
|
862
|
+
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME ] + "'";
|
|
819
863
|
}
|
|
820
864
|
else if (hasJSON()) {
|
|
821
865
|
propertyValueDump = getJSON().stringify(object);
|
|
@@ -880,13 +924,11 @@
|
|
|
880
924
|
var AiNonUserActionablePrefix = "AI (Internal): ";
|
|
881
925
|
var AiUserActionablePrefix = "AI: ";
|
|
882
926
|
var AIInternalMessagePrefix = "AITR_";
|
|
883
|
-
var strErrorToConsole = "errorToConsole";
|
|
884
|
-
var strWarnToConsole = "warnToConsole";
|
|
885
927
|
function _sanitizeDiagnosticText(text) {
|
|
886
928
|
if (text) {
|
|
887
|
-
return "\"" + text
|
|
929
|
+
return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
|
|
888
930
|
}
|
|
889
|
-
return
|
|
931
|
+
return STR_EMPTY$1;
|
|
890
932
|
}
|
|
891
933
|
function _logToConsole(func, message) {
|
|
892
934
|
var theConsole = getConsole();
|
|
@@ -904,23 +946,23 @@
|
|
|
904
946
|
function _InternalLogMessage(msgId, msg, isUserAct, properties) {
|
|
905
947
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
906
948
|
var _self = this;
|
|
907
|
-
_self
|
|
908
|
-
_self
|
|
949
|
+
_self[_DYN_MESSAGE_ID ] = msgId;
|
|
950
|
+
_self[_DYN_MESSAGE ] =
|
|
909
951
|
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
910
952
|
msgId;
|
|
911
|
-
var strProps =
|
|
953
|
+
var strProps = STR_EMPTY$1;
|
|
912
954
|
if (hasJSON()) {
|
|
913
955
|
strProps = getJSON().stringify(properties);
|
|
914
956
|
}
|
|
915
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) :
|
|
916
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) :
|
|
917
|
-
_self
|
|
957
|
+
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
|
|
958
|
+
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
|
|
959
|
+
_self[_DYN_MESSAGE ] += diagnosticText;
|
|
918
960
|
}
|
|
919
961
|
_InternalLogMessage.dataType = "MessageData";
|
|
920
962
|
return _InternalLogMessage;
|
|
921
963
|
}());
|
|
922
964
|
function safeGetLogger(core, config) {
|
|
923
|
-
return (core || {})
|
|
965
|
+
return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
|
|
924
966
|
}
|
|
925
967
|
var DiagnosticLogger = /** @class */ (function () {
|
|
926
968
|
function DiagnosticLogger(config) {
|
|
@@ -928,48 +970,49 @@
|
|
|
928
970
|
this.queue = [];
|
|
929
971
|
var _messageCount = 0;
|
|
930
972
|
var _messageLogged = {};
|
|
973
|
+
var _loggingLevelConsole;
|
|
974
|
+
var _loggingLevelTelemetry;
|
|
975
|
+
var _maxInternalMessageLimit;
|
|
976
|
+
var _enableDebugExceptions;
|
|
931
977
|
dynamicProto(DiagnosticLogger, this, function (_self) {
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
}
|
|
935
|
-
_self.
|
|
936
|
-
_self
|
|
937
|
-
_self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
|
|
938
|
-
_self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
|
|
978
|
+
_setDefaultsFromConfig(config || {});
|
|
979
|
+
_self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
|
|
980
|
+
_self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
|
|
981
|
+
_self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
|
|
982
|
+
_self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebugExceptions; };
|
|
939
983
|
_self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
|
|
940
984
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
941
985
|
var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
|
|
942
|
-
if (
|
|
986
|
+
if (_enableDebugExceptions) {
|
|
943
987
|
throw dumpObj(message);
|
|
944
988
|
}
|
|
945
989
|
else {
|
|
946
|
-
var logFunc = severity === 1 ?
|
|
947
|
-
if (!isUndefined(message
|
|
948
|
-
var logLevel = _self.consoleLoggingLevel();
|
|
990
|
+
var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
|
|
991
|
+
if (!isUndefined(message[_DYN_MESSAGE ])) {
|
|
949
992
|
if (isUserAct) {
|
|
950
|
-
var messageKey = +message
|
|
951
|
-
if (!_messageLogged[messageKey] &&
|
|
952
|
-
_self[logFunc](message
|
|
993
|
+
var messageKey = +message[_DYN_MESSAGE_ID ];
|
|
994
|
+
if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
|
|
995
|
+
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
953
996
|
_messageLogged[messageKey] = true;
|
|
954
997
|
}
|
|
955
998
|
}
|
|
956
999
|
else {
|
|
957
|
-
if (
|
|
958
|
-
_self[logFunc](message
|
|
1000
|
+
if (_loggingLevelConsole >= severity) {
|
|
1001
|
+
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
959
1002
|
}
|
|
960
1003
|
}
|
|
961
|
-
|
|
1004
|
+
_logInternalMessage(severity, message);
|
|
962
1005
|
}
|
|
963
1006
|
else {
|
|
964
1007
|
_debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
|
|
965
1008
|
}
|
|
966
1009
|
}
|
|
967
1010
|
};
|
|
968
|
-
_self
|
|
1011
|
+
_self[STR_WARN_TO_CONSOLE ] = function (message) {
|
|
969
1012
|
_logToConsole("warn", message);
|
|
970
1013
|
_debugExtMsg("warning", message);
|
|
971
1014
|
};
|
|
972
|
-
_self
|
|
1015
|
+
_self[STR_ERROR_TO_CONSOLE ] = function (message) {
|
|
973
1016
|
_logToConsole("error", message);
|
|
974
1017
|
_debugExtMsg("error", message);
|
|
975
1018
|
};
|
|
@@ -977,12 +1020,13 @@
|
|
|
977
1020
|
_messageCount = 0;
|
|
978
1021
|
_messageLogged = {};
|
|
979
1022
|
};
|
|
980
|
-
_self
|
|
1023
|
+
_self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
|
|
1024
|
+
function _logInternalMessage(severity, message) {
|
|
981
1025
|
if (_areInternalMessagesThrottled()) {
|
|
982
1026
|
return;
|
|
983
1027
|
}
|
|
984
1028
|
var logMessage = true;
|
|
985
|
-
var messageKey = AIInternalMessagePrefix + message
|
|
1029
|
+
var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
|
|
986
1030
|
if (_messageLogged[messageKey]) {
|
|
987
1031
|
logMessage = false;
|
|
988
1032
|
}
|
|
@@ -990,58 +1034,66 @@
|
|
|
990
1034
|
_messageLogged[messageKey] = true;
|
|
991
1035
|
}
|
|
992
1036
|
if (logMessage) {
|
|
993
|
-
if (severity <=
|
|
994
|
-
_self.queue
|
|
1037
|
+
if (severity <= _loggingLevelTelemetry) {
|
|
1038
|
+
_self.queue[_DYN_PUSH ](message);
|
|
995
1039
|
_messageCount++;
|
|
996
1040
|
_debugExtMsg((severity === 1 ? "error" : "warn"), message);
|
|
997
1041
|
}
|
|
998
|
-
if (_messageCount ===
|
|
1042
|
+
if (_messageCount === _maxInternalMessageLimit) {
|
|
999
1043
|
var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
|
|
1000
1044
|
var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
|
|
1001
|
-
_self.queue
|
|
1045
|
+
_self.queue[_DYN_PUSH ](throttleMessage);
|
|
1002
1046
|
if (severity === 1 ) {
|
|
1003
|
-
_self
|
|
1047
|
+
_self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
|
|
1004
1048
|
}
|
|
1005
1049
|
else {
|
|
1006
|
-
_self
|
|
1050
|
+
_self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
|
|
1007
1051
|
}
|
|
1008
1052
|
}
|
|
1009
1053
|
}
|
|
1010
|
-
}
|
|
1011
|
-
function
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
return defValue;
|
|
1054
|
+
}
|
|
1055
|
+
function _setDefaultsFromConfig(config) {
|
|
1056
|
+
_loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
|
|
1057
|
+
_loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
|
|
1058
|
+
_maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
|
|
1059
|
+
_enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false);
|
|
1017
1060
|
}
|
|
1018
1061
|
function _areInternalMessagesThrottled() {
|
|
1019
|
-
return _messageCount >=
|
|
1062
|
+
return _messageCount >= _maxInternalMessageLimit;
|
|
1020
1063
|
}
|
|
1021
1064
|
function _debugExtMsg(name, data) {
|
|
1022
|
-
var dbgExt = getDebugExt(config);
|
|
1023
|
-
if (dbgExt && dbgExt
|
|
1024
|
-
dbgExt
|
|
1065
|
+
var dbgExt = getDebugExt(config || {});
|
|
1066
|
+
if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
|
|
1067
|
+
dbgExt[_DYN_DIAG_LOG ](name, data);
|
|
1025
1068
|
}
|
|
1026
1069
|
}
|
|
1027
1070
|
});
|
|
1028
1071
|
}
|
|
1072
|
+
DiagnosticLogger.__ieDyn=1;
|
|
1029
1073
|
return DiagnosticLogger;
|
|
1030
1074
|
}());
|
|
1075
|
+
function _getLogger(logger) {
|
|
1076
|
+
return (logger || new DiagnosticLogger());
|
|
1077
|
+
}
|
|
1031
1078
|
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1032
1079
|
if (isUserAct === void 0) { isUserAct = false; }
|
|
1033
|
-
(logger
|
|
1080
|
+
_getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1081
|
+
}
|
|
1082
|
+
function _warnToConsole(logger, message) {
|
|
1083
|
+
_getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
|
|
1034
1084
|
}
|
|
1035
1085
|
|
|
1036
1086
|
var strExecutionContextKey = "ctx";
|
|
1087
|
+
var strParentContextKey = "ParentContextKey";
|
|
1088
|
+
var strChildrenContextKey = "ChildrenContextKey";
|
|
1037
1089
|
var PerfEvent = /** @class */ (function () {
|
|
1038
1090
|
function PerfEvent(name, payloadDetails, isAsync) {
|
|
1039
1091
|
var _self = this;
|
|
1040
1092
|
var accessorDefined = false;
|
|
1041
1093
|
_self.start = dateNow();
|
|
1042
|
-
_self
|
|
1043
|
-
_self
|
|
1044
|
-
_self
|
|
1094
|
+
_self[_DYN_NAME ] = name;
|
|
1095
|
+
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
1096
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
1045
1097
|
if (isFunction(payloadDetails)) {
|
|
1046
1098
|
var theDetails_1;
|
|
1047
1099
|
accessorDefined = objDefineAccessors(_self, "payload", function () {
|
|
@@ -1052,24 +1104,24 @@
|
|
|
1052
1104
|
return theDetails_1;
|
|
1053
1105
|
});
|
|
1054
1106
|
}
|
|
1055
|
-
_self
|
|
1107
|
+
_self[_DYN_GET_CTX ] = function (key) {
|
|
1056
1108
|
if (key) {
|
|
1057
|
-
if (key === PerfEvent
|
|
1109
|
+
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
1058
1110
|
return _self[key];
|
|
1059
1111
|
}
|
|
1060
1112
|
return (_self[strExecutionContextKey] || {})[key];
|
|
1061
1113
|
}
|
|
1062
1114
|
return null;
|
|
1063
1115
|
};
|
|
1064
|
-
_self
|
|
1116
|
+
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
1065
1117
|
if (key) {
|
|
1066
|
-
if (key === PerfEvent
|
|
1118
|
+
if (key === PerfEvent[strParentContextKey]) {
|
|
1067
1119
|
if (!_self[key]) {
|
|
1068
|
-
_self
|
|
1120
|
+
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
1069
1121
|
}
|
|
1070
1122
|
_self[key] = value;
|
|
1071
1123
|
}
|
|
1072
|
-
else if (key === PerfEvent
|
|
1124
|
+
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
1073
1125
|
_self[key] = value;
|
|
1074
1126
|
}
|
|
1075
1127
|
else {
|
|
@@ -1078,20 +1130,20 @@
|
|
|
1078
1130
|
}
|
|
1079
1131
|
}
|
|
1080
1132
|
};
|
|
1081
|
-
_self
|
|
1133
|
+
_self[_DYN_COMPLETE ] = function () {
|
|
1082
1134
|
var childTime = 0;
|
|
1083
|
-
var childEvts = _self
|
|
1135
|
+
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1084
1136
|
if (isArray(childEvts)) {
|
|
1085
|
-
for (var lp = 0; lp < childEvts
|
|
1137
|
+
for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
|
|
1086
1138
|
var childEvt = childEvts[lp];
|
|
1087
1139
|
if (childEvt) {
|
|
1088
|
-
childTime += childEvt
|
|
1140
|
+
childTime += childEvt[_DYN_TIME ];
|
|
1089
1141
|
}
|
|
1090
1142
|
}
|
|
1091
1143
|
}
|
|
1092
|
-
_self
|
|
1093
|
-
_self.exTime = _self
|
|
1094
|
-
_self
|
|
1144
|
+
_self[_DYN_TIME ] = dateNow() - _self.start;
|
|
1145
|
+
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
1146
|
+
_self[_DYN_COMPLETE ] = function () { };
|
|
1095
1147
|
if (!accessorDefined && isFunction(payloadDetails)) {
|
|
1096
1148
|
_self.payload = payloadDetails();
|
|
1097
1149
|
}
|
|
@@ -1105,40 +1157,40 @@
|
|
|
1105
1157
|
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
1106
1158
|
if (mgrSource) {
|
|
1107
1159
|
var perfMgr = mgrSource;
|
|
1108
|
-
if (
|
|
1109
|
-
perfMgr = perfMgr[
|
|
1160
|
+
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
1161
|
+
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
1110
1162
|
}
|
|
1111
1163
|
if (perfMgr) {
|
|
1112
1164
|
var perfEvt = void 0;
|
|
1113
|
-
var currentActive = perfMgr
|
|
1165
|
+
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
1114
1166
|
try {
|
|
1115
1167
|
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
1116
1168
|
if (perfEvt) {
|
|
1117
|
-
if (currentActive && perfEvt
|
|
1118
|
-
perfEvt
|
|
1119
|
-
if (currentActive
|
|
1120
|
-
var children = currentActive
|
|
1169
|
+
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
1170
|
+
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
1171
|
+
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
1172
|
+
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1121
1173
|
if (!children) {
|
|
1122
1174
|
children = [];
|
|
1123
|
-
currentActive
|
|
1175
|
+
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
1124
1176
|
}
|
|
1125
|
-
children
|
|
1177
|
+
children[_DYN_PUSH ](perfEvt);
|
|
1126
1178
|
}
|
|
1127
1179
|
}
|
|
1128
|
-
perfMgr
|
|
1180
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
1129
1181
|
return func(perfEvt);
|
|
1130
1182
|
}
|
|
1131
1183
|
}
|
|
1132
1184
|
catch (ex) {
|
|
1133
|
-
if (perfEvt && perfEvt
|
|
1134
|
-
perfEvt
|
|
1185
|
+
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
1186
|
+
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
1135
1187
|
}
|
|
1136
1188
|
}
|
|
1137
1189
|
finally {
|
|
1138
1190
|
if (perfEvt) {
|
|
1139
1191
|
perfMgr.fire(perfEvt);
|
|
1140
1192
|
}
|
|
1141
|
-
perfMgr
|
|
1193
|
+
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
1142
1194
|
}
|
|
1143
1195
|
}
|
|
1144
1196
|
}
|
|
@@ -1200,8 +1252,8 @@
|
|
|
1200
1252
|
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1201
1253
|
var number = random32() >>> 0;
|
|
1202
1254
|
var chars = 0;
|
|
1203
|
-
var result =
|
|
1204
|
-
while (result
|
|
1255
|
+
var result = STR_EMPTY$1;
|
|
1256
|
+
while (result[_DYN_LENGTH ] < maxLength) {
|
|
1205
1257
|
chars++;
|
|
1206
1258
|
result += base64chars.charAt(number & 0x3F);
|
|
1207
1259
|
number >>>= 6;
|
|
@@ -1214,7 +1266,7 @@
|
|
|
1214
1266
|
}
|
|
1215
1267
|
|
|
1216
1268
|
var _objDefineProperty = ObjDefineProperty;
|
|
1217
|
-
var version =
|
|
1269
|
+
var version = '2.8.6';
|
|
1218
1270
|
var instanceName = "." + newId(6);
|
|
1219
1271
|
var _dataUid = 0;
|
|
1220
1272
|
function _createAccessor(target, prop, value) {
|
|
@@ -1233,7 +1285,7 @@
|
|
|
1233
1285
|
return false;
|
|
1234
1286
|
}
|
|
1235
1287
|
function _canAcceptData(target) {
|
|
1236
|
-
return target
|
|
1288
|
+
return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
|
|
1237
1289
|
}
|
|
1238
1290
|
function _getCache(data, target) {
|
|
1239
1291
|
var theCache = target[data.id];
|
|
@@ -1253,11 +1305,11 @@
|
|
|
1253
1305
|
}
|
|
1254
1306
|
function createUniqueNamespace(name, includeVersion) {
|
|
1255
1307
|
if (includeVersion === void 0) { includeVersion = false; }
|
|
1256
|
-
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version :
|
|
1308
|
+
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
|
|
1257
1309
|
}
|
|
1258
1310
|
function createElmNodeData(name) {
|
|
1259
1311
|
var data = {
|
|
1260
|
-
id: createUniqueNamespace("_aiData-" + (name ||
|
|
1312
|
+
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
|
|
1261
1313
|
accept: function (target) {
|
|
1262
1314
|
return _canAcceptData(target);
|
|
1263
1315
|
},
|
|
@@ -1285,214 +1337,505 @@
|
|
|
1285
1337
|
return data;
|
|
1286
1338
|
}
|
|
1287
1339
|
|
|
1288
|
-
var
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
var
|
|
1294
|
-
var
|
|
1295
|
-
var
|
|
1296
|
-
var
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1340
|
+
var strOnPrefix = "on";
|
|
1341
|
+
var strAttachEvent = "attachEvent";
|
|
1342
|
+
var strAddEventHelper = "addEventListener";
|
|
1343
|
+
var strDetachEvent = "detachEvent";
|
|
1344
|
+
var strRemoveEventListener = "removeEventListener";
|
|
1345
|
+
var strEvents = "events";
|
|
1346
|
+
var strVisibilityChangeEvt = "visibilitychange";
|
|
1347
|
+
var strPageHide = "pagehide";
|
|
1348
|
+
var strPageShow = "pageshow";
|
|
1349
|
+
var strUnload = "unload";
|
|
1350
|
+
var strBeforeUnload = "beforeunload";
|
|
1351
|
+
var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
|
|
1352
|
+
var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
|
|
1353
|
+
var rRemoveEmptyNs = /\.[\.]+/g;
|
|
1354
|
+
var rRemoveTrailingEmptyNs = /[\.]+$/;
|
|
1355
|
+
var _guid = 1;
|
|
1356
|
+
var elmNodeData = createElmNodeData("events");
|
|
1357
|
+
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1358
|
+
function _normalizeNamespace(name) {
|
|
1359
|
+
if (name && name[_DYN_REPLACE ]) {
|
|
1360
|
+
return name.replace(/^\s*\.*|\.*\s*$/g, STR_EMPTY$1);
|
|
1303
1361
|
}
|
|
1304
|
-
return
|
|
1362
|
+
return name;
|
|
1305
1363
|
}
|
|
1306
|
-
function
|
|
1307
|
-
var
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
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
|
|
1364
|
+
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1365
|
+
var _a;
|
|
1366
|
+
if (evtNamespace) {
|
|
1367
|
+
var theNamespace_1 = STR_EMPTY$1;
|
|
1368
|
+
if (isArray(evtNamespace)) {
|
|
1369
|
+
theNamespace_1 = STR_EMPTY$1;
|
|
1370
|
+
arrForEach(evtNamespace, function (name) {
|
|
1371
|
+
name = _normalizeNamespace(name);
|
|
1372
|
+
if (name) {
|
|
1373
|
+
if (name[0] !== ".") {
|
|
1374
|
+
name = "." + name;
|
|
1375
|
+
}
|
|
1376
|
+
theNamespace_1 += name;
|
|
1377
|
+
}
|
|
1349
1378
|
});
|
|
1350
1379
|
}
|
|
1351
|
-
|
|
1352
|
-
|
|
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) {
|
|
1359
|
-
try {
|
|
1360
|
-
completeDetails.func.call(completeDetails.self, completeDetails.args);
|
|
1361
|
-
}
|
|
1362
|
-
catch (e) {
|
|
1363
|
-
_throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1364
|
-
}
|
|
1365
|
-
});
|
|
1366
|
-
_onComplete = [];
|
|
1367
|
-
}
|
|
1380
|
+
else {
|
|
1381
|
+
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1368
1382
|
}
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
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];
|
|
1383
|
+
if (theNamespace_1) {
|
|
1384
|
+
if (theNamespace_1[0] !== ".") {
|
|
1385
|
+
theNamespace_1 = "." + theNamespace_1;
|
|
1379
1386
|
}
|
|
1387
|
+
eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
|
|
1380
1388
|
}
|
|
1381
|
-
|
|
1382
|
-
|
|
1389
|
+
}
|
|
1390
|
+
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
|
|
1391
|
+
return _a = {},
|
|
1392
|
+
_a[_DYN_TYPE ] = parsedEvent[1],
|
|
1393
|
+
_a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT ](".").sort()).join("."),
|
|
1394
|
+
_a;
|
|
1395
|
+
}
|
|
1396
|
+
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1397
|
+
if (addDefault === void 0) { addDefault = true; }
|
|
1398
|
+
var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
|
|
1399
|
+
var registeredEvents = aiEvts[evtName];
|
|
1400
|
+
if (!registeredEvents) {
|
|
1401
|
+
registeredEvents = aiEvts[evtName] = [];
|
|
1402
|
+
}
|
|
1403
|
+
return registeredEvents;
|
|
1404
|
+
}
|
|
1405
|
+
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1406
|
+
if (obj && evtName && evtName[_DYN_TYPE ]) {
|
|
1407
|
+
if (obj[strRemoveEventListener]) {
|
|
1408
|
+
obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1383
1409
|
}
|
|
1384
|
-
else if (
|
|
1385
|
-
|
|
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
|
-
});
|
|
1396
|
-
}
|
|
1397
|
-
theConfig = newConfig_1;
|
|
1398
|
-
}
|
|
1410
|
+
else if (obj[strDetachEvent]) {
|
|
1411
|
+
obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1399
1412
|
}
|
|
1400
|
-
return theConfig;
|
|
1401
1413
|
}
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
if (
|
|
1407
|
-
|
|
1414
|
+
}
|
|
1415
|
+
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1416
|
+
var result = false;
|
|
1417
|
+
if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
|
|
1418
|
+
if (obj[strAddEventHelper]) {
|
|
1419
|
+
obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1420
|
+
result = true;
|
|
1408
1421
|
}
|
|
1409
|
-
else if (
|
|
1410
|
-
|
|
1422
|
+
else if (obj[strAttachEvent]) {
|
|
1423
|
+
obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1424
|
+
result = true;
|
|
1411
1425
|
}
|
|
1412
|
-
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
1413
1426
|
}
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1427
|
+
return result;
|
|
1428
|
+
}
|
|
1429
|
+
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1430
|
+
var idx = events[_DYN_LENGTH ];
|
|
1431
|
+
while (idx--) {
|
|
1432
|
+
var theEvent = events[idx];
|
|
1433
|
+
if (theEvent) {
|
|
1434
|
+
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1435
|
+
if (!unRegFn || unRegFn(theEvent)) {
|
|
1436
|
+
_doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
|
|
1437
|
+
events[_DYN_SPLICE ](idx, 1);
|
|
1438
|
+
}
|
|
1420
1439
|
}
|
|
1421
1440
|
}
|
|
1422
1441
|
}
|
|
1423
|
-
return context;
|
|
1424
1442
|
}
|
|
1425
|
-
function
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
function _processNext(env) {
|
|
1429
|
-
var nextPlugin = internalContext._next();
|
|
1430
|
-
nextPlugin && nextPlugin.processTelemetry(env, context);
|
|
1431
|
-
return !nextPlugin;
|
|
1443
|
+
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1444
|
+
if (evtName[_DYN_TYPE ]) {
|
|
1445
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
|
|
1432
1446
|
}
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1447
|
+
else {
|
|
1448
|
+
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1449
|
+
objForEachKey(eventCache, function (evtType, events) {
|
|
1450
|
+
_doUnregister(target, events, evtName, unRegFn);
|
|
1451
|
+
});
|
|
1452
|
+
if (objKeys(eventCache)[_DYN_LENGTH ] === 0) {
|
|
1453
|
+
elmNodeData.kill(target, strEvents);
|
|
1437
1454
|
}
|
|
1438
|
-
return createProcessTelemetryContext(plugins || context.getNext(), config, core, startAt);
|
|
1439
1455
|
}
|
|
1440
|
-
context.processNext = _processNext;
|
|
1441
|
-
context.createNew = _createNew;
|
|
1442
|
-
return context;
|
|
1443
1456
|
}
|
|
1444
|
-
function
|
|
1445
|
-
var
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
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
|
+
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1458
|
+
var newNamespaces;
|
|
1459
|
+
if (namespaces) {
|
|
1460
|
+
if (isArray(namespaces)) {
|
|
1461
|
+
newNamespaces = [theNamespace].concat(namespaces);
|
|
1457
1462
|
}
|
|
1458
|
-
|
|
1463
|
+
else {
|
|
1464
|
+
newNamespaces = [theNamespace, namespaces];
|
|
1465
|
+
}
|
|
1466
|
+
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT ](".");
|
|
1459
1467
|
}
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1468
|
+
else {
|
|
1469
|
+
newNamespaces = theNamespace;
|
|
1470
|
+
}
|
|
1471
|
+
return newNamespaces;
|
|
1463
1472
|
}
|
|
1464
|
-
function
|
|
1465
|
-
var
|
|
1466
|
-
|
|
1467
|
-
var
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1473
|
+
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1474
|
+
var _a;
|
|
1475
|
+
if (useCapture === void 0) { useCapture = false; }
|
|
1476
|
+
var result = false;
|
|
1477
|
+
if (target) {
|
|
1478
|
+
try {
|
|
1479
|
+
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1480
|
+
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1481
|
+
if (result && elmNodeData.accept(target)) {
|
|
1482
|
+
var registeredEvent = (_a = {
|
|
1483
|
+
guid: _guid++,
|
|
1484
|
+
evtName: evtName
|
|
1485
|
+
},
|
|
1486
|
+
_a[_DYN_HANDLER ] = handlerRef,
|
|
1487
|
+
_a.capture = useCapture,
|
|
1488
|
+
_a);
|
|
1489
|
+
_getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
|
|
1472
1490
|
}
|
|
1473
|
-
});
|
|
1474
|
-
}
|
|
1475
|
-
function _createNew(plugins, startAt) {
|
|
1476
|
-
if (plugins === void 0) { plugins = null; }
|
|
1477
|
-
if (isArray(plugins)) {
|
|
1478
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1479
1491
|
}
|
|
1480
|
-
|
|
1492
|
+
catch (e) {
|
|
1493
|
+
}
|
|
1481
1494
|
}
|
|
1482
|
-
|
|
1483
|
-
context.createNew = _createNew;
|
|
1484
|
-
return context;
|
|
1495
|
+
return result;
|
|
1485
1496
|
}
|
|
1486
|
-
function
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1497
|
+
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1498
|
+
if (useCapture === void 0) { useCapture = false; }
|
|
1499
|
+
if (target) {
|
|
1500
|
+
try {
|
|
1501
|
+
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1502
|
+
var found_1 = false;
|
|
1503
|
+
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1504
|
+
if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
|
|
1505
|
+
found_1 = true;
|
|
1506
|
+
return true;
|
|
1507
|
+
}
|
|
1508
|
+
return false;
|
|
1509
|
+
});
|
|
1510
|
+
if (!found_1) {
|
|
1511
|
+
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
catch (e) {
|
|
1515
|
+
}
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
function addEventHandler(eventName, callback, evtNamespace) {
|
|
1519
|
+
var result = false;
|
|
1520
|
+
var w = getWindow();
|
|
1521
|
+
if (w) {
|
|
1522
|
+
result = eventOn(w, eventName, callback, evtNamespace);
|
|
1523
|
+
result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
|
|
1524
|
+
}
|
|
1525
|
+
var doc = getDocument();
|
|
1526
|
+
if (doc) {
|
|
1527
|
+
result = eventOn(doc, eventName, callback, evtNamespace) || result;
|
|
1528
|
+
}
|
|
1529
|
+
return result;
|
|
1530
|
+
}
|
|
1531
|
+
function removeEventHandler(eventName, callback, evtNamespace) {
|
|
1532
|
+
var w = getWindow();
|
|
1533
|
+
if (w) {
|
|
1534
|
+
eventOff(w, eventName, callback, evtNamespace);
|
|
1535
|
+
eventOff(w["body"], eventName, callback, evtNamespace);
|
|
1536
|
+
}
|
|
1537
|
+
var doc = getDocument();
|
|
1538
|
+
if (doc) {
|
|
1539
|
+
eventOff(doc, eventName, callback, evtNamespace);
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
1543
|
+
var added = false;
|
|
1544
|
+
if (listener && events && events[_DYN_LENGTH ] > 0) {
|
|
1545
|
+
arrForEach(events, function (name) {
|
|
1546
|
+
if (name) {
|
|
1547
|
+
if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
|
|
1548
|
+
added = addEventHandler(name, listener, evtNamespace) || added;
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
});
|
|
1552
|
+
}
|
|
1553
|
+
return added;
|
|
1554
|
+
}
|
|
1555
|
+
function addEventListeners(events, listener, excludeEvents, evtNamespace) {
|
|
1556
|
+
var added = false;
|
|
1557
|
+
if (listener && events && isArray(events)) {
|
|
1558
|
+
added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
|
|
1559
|
+
if (!added && excludeEvents && excludeEvents[_DYN_LENGTH ] > 0) {
|
|
1560
|
+
added = _addEventListeners(events, listener, null, evtNamespace);
|
|
1561
|
+
}
|
|
1562
|
+
}
|
|
1563
|
+
return added;
|
|
1564
|
+
}
|
|
1565
|
+
function removeEventListeners(events, listener, evtNamespace) {
|
|
1566
|
+
if (events && isArray(events)) {
|
|
1567
|
+
arrForEach(events, function (name) {
|
|
1568
|
+
if (name) {
|
|
1569
|
+
removeEventHandler(name, listener, evtNamespace);
|
|
1570
|
+
}
|
|
1571
|
+
});
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
|
|
1575
|
+
return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
|
|
1576
|
+
}
|
|
1577
|
+
function removePageUnloadEventListener(listener, evtNamespace) {
|
|
1578
|
+
removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
|
|
1579
|
+
}
|
|
1580
|
+
function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
|
|
1581
|
+
function _handlePageVisibility(evt) {
|
|
1582
|
+
var doc = getDocument();
|
|
1583
|
+
if (listener && doc && doc.visibilityState === "hidden") {
|
|
1584
|
+
listener(evt);
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1587
|
+
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
1588
|
+
var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
|
|
1589
|
+
if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
|
|
1590
|
+
pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
|
|
1591
|
+
}
|
|
1592
|
+
if (!pageUnloadAdded && excludeEvents) {
|
|
1593
|
+
pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
|
|
1594
|
+
}
|
|
1595
|
+
return pageUnloadAdded;
|
|
1596
|
+
}
|
|
1597
|
+
function removePageHideEventListener(listener, evtNamespace) {
|
|
1598
|
+
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
1599
|
+
removeEventListeners([strPageHide], listener, newNamespaces);
|
|
1600
|
+
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
1601
|
+
}
|
|
1602
|
+
function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
|
|
1603
|
+
function _handlePageVisibility(evt) {
|
|
1604
|
+
var doc = getDocument();
|
|
1605
|
+
if (listener && doc && doc.visibilityState === "visible") {
|
|
1606
|
+
listener(evt);
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
1610
|
+
var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
|
|
1611
|
+
pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
|
|
1612
|
+
if (!pageShowAdded && excludeEvents) {
|
|
1613
|
+
pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
|
|
1614
|
+
}
|
|
1615
|
+
return pageShowAdded;
|
|
1616
|
+
}
|
|
1617
|
+
function removePageShowEventListener(listener, evtNamespace) {
|
|
1618
|
+
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
1619
|
+
removeEventListeners([strPageShow], listener, newNamespaces);
|
|
1620
|
+
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
function perfNow() {
|
|
1624
|
+
var perf = getPerformance();
|
|
1625
|
+
if (perf && perf.now) {
|
|
1626
|
+
return perf.now();
|
|
1627
|
+
}
|
|
1628
|
+
return dateNow();
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
var pluginStateData = createElmNodeData("plugin");
|
|
1632
|
+
function _getPluginState(plugin) {
|
|
1633
|
+
return pluginStateData.get(plugin, "state", {}, true);
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
1637
|
+
var strHasRunFlags = "_hasRun";
|
|
1638
|
+
var strGetTelCtx = "_getTelCtx";
|
|
1639
|
+
var _chainId = 0;
|
|
1640
|
+
function _getNextProxyStart(proxy, core, startAt) {
|
|
1641
|
+
while (proxy) {
|
|
1642
|
+
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
1643
|
+
return proxy;
|
|
1644
|
+
}
|
|
1645
|
+
proxy = proxy[_DYN_GET_NEXT ]();
|
|
1646
|
+
}
|
|
1647
|
+
return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
|
|
1648
|
+
}
|
|
1649
|
+
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1650
|
+
var _nextProxy = null;
|
|
1651
|
+
var _onComplete = [];
|
|
1652
|
+
if (startAt !== null) {
|
|
1653
|
+
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
1654
|
+
}
|
|
1655
|
+
var context = {
|
|
1656
|
+
_next: _moveNext,
|
|
1657
|
+
ctx: {
|
|
1658
|
+
core: function () {
|
|
1659
|
+
return core;
|
|
1660
|
+
},
|
|
1661
|
+
diagLog: function () {
|
|
1662
|
+
return safeGetLogger(core, config);
|
|
1663
|
+
},
|
|
1664
|
+
getCfg: function () {
|
|
1665
|
+
return config;
|
|
1666
|
+
},
|
|
1667
|
+
getExtCfg: _getExtCfg,
|
|
1668
|
+
getConfig: _getConfig,
|
|
1669
|
+
hasNext: function () {
|
|
1670
|
+
return !!_nextProxy;
|
|
1671
|
+
},
|
|
1672
|
+
getNext: function () {
|
|
1673
|
+
return _nextProxy;
|
|
1674
|
+
},
|
|
1675
|
+
setNext: function (nextPlugin) {
|
|
1676
|
+
_nextProxy = nextPlugin;
|
|
1677
|
+
},
|
|
1678
|
+
iterate: _iterateChain,
|
|
1679
|
+
onComplete: _addOnComplete
|
|
1680
|
+
}
|
|
1681
|
+
};
|
|
1682
|
+
function _addOnComplete(onComplete, that) {
|
|
1683
|
+
var args = [];
|
|
1684
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1685
|
+
args[_i - 2] = arguments[_i];
|
|
1686
|
+
}
|
|
1687
|
+
if (onComplete) {
|
|
1688
|
+
_onComplete[_DYN_PUSH ]({
|
|
1689
|
+
func: onComplete,
|
|
1690
|
+
self: !isUndefined(that) ? that : context.ctx,
|
|
1691
|
+
args: args
|
|
1692
|
+
});
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
function _moveNext() {
|
|
1696
|
+
var nextProxy = _nextProxy;
|
|
1697
|
+
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
1698
|
+
if (!nextProxy) {
|
|
1699
|
+
var onComplete = _onComplete;
|
|
1700
|
+
if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
|
|
1701
|
+
arrForEach(onComplete, function (completeDetails) {
|
|
1702
|
+
try {
|
|
1703
|
+
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
1704
|
+
}
|
|
1705
|
+
catch (e) {
|
|
1706
|
+
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1707
|
+
}
|
|
1708
|
+
});
|
|
1709
|
+
_onComplete = [];
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
return nextProxy;
|
|
1713
|
+
}
|
|
1714
|
+
function _getExtCfg(identifier, defaultValue, mergeDefault) {
|
|
1715
|
+
if (defaultValue === void 0) { defaultValue = {}; }
|
|
1716
|
+
if (mergeDefault === void 0) { mergeDefault = 0 ; }
|
|
1717
|
+
var theConfig;
|
|
1718
|
+
if (config) {
|
|
1719
|
+
var extConfig = config[STR_EXTENSION_CONFIG ];
|
|
1720
|
+
if (extConfig && identifier) {
|
|
1721
|
+
theConfig = extConfig[identifier];
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1724
|
+
if (!theConfig) {
|
|
1725
|
+
theConfig = defaultValue;
|
|
1726
|
+
}
|
|
1727
|
+
else if (isObject(defaultValue)) {
|
|
1728
|
+
if (mergeDefault !== 0 ) {
|
|
1729
|
+
var newConfig_1 = objExtend(true, defaultValue, theConfig);
|
|
1730
|
+
if (config && mergeDefault === 2 ) {
|
|
1731
|
+
objForEachKey(defaultValue, function (field) {
|
|
1732
|
+
if (isNullOrUndefined(newConfig_1[field])) {
|
|
1733
|
+
var cfgValue = config[field];
|
|
1734
|
+
if (!isNullOrUndefined(cfgValue)) {
|
|
1735
|
+
newConfig_1[field] = cfgValue;
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1738
|
+
});
|
|
1739
|
+
}
|
|
1740
|
+
theConfig = newConfig_1;
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
return theConfig;
|
|
1744
|
+
}
|
|
1745
|
+
function _getConfig(identifier, field, defaultValue) {
|
|
1746
|
+
if (defaultValue === void 0) { defaultValue = false; }
|
|
1747
|
+
var theValue;
|
|
1748
|
+
var extConfig = _getExtCfg(identifier, null);
|
|
1749
|
+
if (extConfig && !isNullOrUndefined(extConfig[field])) {
|
|
1750
|
+
theValue = extConfig[field];
|
|
1751
|
+
}
|
|
1752
|
+
else if (config && !isNullOrUndefined(config[field])) {
|
|
1753
|
+
theValue = config[field];
|
|
1754
|
+
}
|
|
1755
|
+
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
1756
|
+
}
|
|
1757
|
+
function _iterateChain(cb) {
|
|
1758
|
+
var nextPlugin;
|
|
1759
|
+
while (!!(nextPlugin = context._next())) {
|
|
1760
|
+
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
1761
|
+
if (plugin) {
|
|
1762
|
+
cb(plugin);
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
return context;
|
|
1767
|
+
}
|
|
1768
|
+
function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
|
|
1769
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1770
|
+
var context = internalContext.ctx;
|
|
1771
|
+
function _processNext(env) {
|
|
1772
|
+
var nextPlugin = internalContext._next();
|
|
1773
|
+
nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
1774
|
+
return !nextPlugin;
|
|
1775
|
+
}
|
|
1776
|
+
function _createNew(plugins, startAt) {
|
|
1777
|
+
if (plugins === void 0) { plugins = null; }
|
|
1778
|
+
if (isArray(plugins)) {
|
|
1779
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1780
|
+
}
|
|
1781
|
+
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
|
|
1782
|
+
}
|
|
1783
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1784
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1785
|
+
return context;
|
|
1786
|
+
}
|
|
1787
|
+
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
1788
|
+
var config = core[_DYN_CONFIG ] || {};
|
|
1789
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1790
|
+
var context = internalContext.ctx;
|
|
1791
|
+
function _processNext(unloadState) {
|
|
1792
|
+
var nextPlugin = internalContext._next();
|
|
1793
|
+
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
1794
|
+
return !nextPlugin;
|
|
1795
|
+
}
|
|
1796
|
+
function _createNew(plugins, startAt) {
|
|
1797
|
+
if (plugins === void 0) { plugins = null; }
|
|
1798
|
+
if (isArray(plugins)) {
|
|
1799
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1800
|
+
}
|
|
1801
|
+
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1802
|
+
}
|
|
1803
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1804
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1805
|
+
return context;
|
|
1806
|
+
}
|
|
1807
|
+
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
1808
|
+
var config = core[_DYN_CONFIG ] || {};
|
|
1809
|
+
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1810
|
+
var context = internalContext.ctx;
|
|
1811
|
+
function _processNext(updateState) {
|
|
1812
|
+
return context.iterate(function (plugin) {
|
|
1813
|
+
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
1814
|
+
plugin[_DYN_UPDATE ](context, updateState);
|
|
1815
|
+
}
|
|
1816
|
+
});
|
|
1817
|
+
}
|
|
1818
|
+
function _createNew(plugins, startAt) {
|
|
1819
|
+
if (plugins === void 0) { plugins = null; }
|
|
1820
|
+
if (isArray(plugins)) {
|
|
1821
|
+
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1822
|
+
}
|
|
1823
|
+
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1824
|
+
}
|
|
1825
|
+
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1826
|
+
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1827
|
+
return context;
|
|
1828
|
+
}
|
|
1829
|
+
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1830
|
+
var firstProxy = null;
|
|
1831
|
+
var add = startAt ? false : true;
|
|
1832
|
+
if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
|
|
1490
1833
|
var lastProxy_1 = null;
|
|
1491
1834
|
arrForEach(plugins, function (thePlugin) {
|
|
1492
1835
|
if (!add && startAt === thePlugin) {
|
|
1493
1836
|
add = true;
|
|
1494
1837
|
}
|
|
1495
|
-
if (add && thePlugin && isFunction(thePlugin
|
|
1838
|
+
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
1496
1839
|
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
1497
1840
|
if (!firstProxy) {
|
|
1498
1841
|
firstProxy = newProxy;
|
|
@@ -1511,11 +1854,11 @@
|
|
|
1511
1854
|
}
|
|
1512
1855
|
function createTelemetryPluginProxy(plugin, config, core) {
|
|
1513
1856
|
var nextProxy = null;
|
|
1514
|
-
var hasProcessTelemetry = isFunction(plugin
|
|
1515
|
-
var hasSetNext = isFunction(plugin
|
|
1857
|
+
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
1858
|
+
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
1516
1859
|
var chainId;
|
|
1517
1860
|
if (plugin) {
|
|
1518
|
-
chainId = plugin
|
|
1861
|
+
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
1519
1862
|
}
|
|
1520
1863
|
else {
|
|
1521
1864
|
chainId = "Unknown-0-" + _chainId++;
|
|
@@ -1547,17 +1890,17 @@
|
|
|
1547
1890
|
}
|
|
1548
1891
|
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
1549
1892
|
var hasRun = false;
|
|
1550
|
-
var identifier = plugin ? plugin
|
|
1893
|
+
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
1551
1894
|
var hasRunContext = itemCtx[strHasRunFlags];
|
|
1552
1895
|
if (!hasRunContext) {
|
|
1553
1896
|
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
1554
1897
|
}
|
|
1555
1898
|
itemCtx.setNext(nextProxy);
|
|
1556
1899
|
if (plugin) {
|
|
1557
|
-
doPerf(itemCtx[
|
|
1900
|
+
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
1558
1901
|
hasRunContext[chainId] = true;
|
|
1559
1902
|
try {
|
|
1560
|
-
var nextId = nextProxy ? nextProxy._id :
|
|
1903
|
+
var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
|
|
1561
1904
|
if (nextId) {
|
|
1562
1905
|
hasRunContext[nextId] = false;
|
|
1563
1906
|
}
|
|
@@ -1569,7 +1912,7 @@
|
|
|
1569
1912
|
hasRun = true;
|
|
1570
1913
|
}
|
|
1571
1914
|
if (!nextProxy || !hasNextRun) {
|
|
1572
|
-
_throwInternal(itemCtx
|
|
1915
|
+
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1573
1916
|
}
|
|
1574
1917
|
}
|
|
1575
1918
|
}, details, isAsync);
|
|
@@ -1583,17 +1926,17 @@
|
|
|
1583
1926
|
return false;
|
|
1584
1927
|
}
|
|
1585
1928
|
var pluginState = _getPluginState(plugin);
|
|
1586
|
-
if (pluginState
|
|
1929
|
+
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
1587
1930
|
return false;
|
|
1588
1931
|
}
|
|
1589
1932
|
if (hasSetNext) {
|
|
1590
|
-
plugin
|
|
1933
|
+
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
1591
1934
|
}
|
|
1592
|
-
plugin
|
|
1935
|
+
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
1593
1936
|
return true;
|
|
1594
1937
|
}
|
|
1595
1938
|
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
1596
|
-
itemCtx
|
|
1939
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1597
1940
|
}
|
|
1598
1941
|
}
|
|
1599
1942
|
function _unloadPlugin(unloadCtx, unloadState) {
|
|
@@ -1601,20 +1944,20 @@
|
|
|
1601
1944
|
var hasRun = false;
|
|
1602
1945
|
if (plugin) {
|
|
1603
1946
|
var pluginState = _getPluginState(plugin);
|
|
1604
|
-
var pluginCore = plugin[
|
|
1605
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx
|
|
1606
|
-
pluginState[
|
|
1607
|
-
pluginState[
|
|
1608
|
-
pluginState[
|
|
1609
|
-
if (plugin[
|
|
1947
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1948
|
+
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1949
|
+
pluginState[STR_CORE ] = null;
|
|
1950
|
+
pluginState[_DYN_TEARDOWN ] = true;
|
|
1951
|
+
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
1952
|
+
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
1610
1953
|
hasRun = true;
|
|
1611
1954
|
}
|
|
1612
1955
|
}
|
|
1613
1956
|
}
|
|
1614
1957
|
return hasRun;
|
|
1615
1958
|
}
|
|
1616
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState
|
|
1617
|
-
unloadCtx
|
|
1959
|
+
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
1960
|
+
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
1618
1961
|
}
|
|
1619
1962
|
}
|
|
1620
1963
|
function _updatePlugin(updateCtx, updateState) {
|
|
@@ -1622,9 +1965,9 @@
|
|
|
1622
1965
|
var hasRun = false;
|
|
1623
1966
|
if (plugin) {
|
|
1624
1967
|
var pluginState = _getPluginState(plugin);
|
|
1625
|
-
var pluginCore = plugin[
|
|
1626
|
-
if (plugin && (!pluginCore || pluginCore === updateCtx
|
|
1627
|
-
if (plugin[
|
|
1968
|
+
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1969
|
+
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1970
|
+
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
1628
1971
|
hasRun = true;
|
|
1629
1972
|
}
|
|
1630
1973
|
}
|
|
@@ -1632,19 +1975,17 @@
|
|
|
1632
1975
|
return hasRun;
|
|
1633
1976
|
}
|
|
1634
1977
|
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1635
|
-
updateCtx
|
|
1978
|
+
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
1636
1979
|
}
|
|
1637
1980
|
}
|
|
1638
1981
|
return objFreeze(proxyChain);
|
|
1639
1982
|
}
|
|
1640
1983
|
|
|
1641
|
-
var strExtensionConfig = "extensionConfig";
|
|
1642
|
-
|
|
1643
1984
|
function createUnloadHandlerContainer() {
|
|
1644
1985
|
var handlers = [];
|
|
1645
1986
|
function _addHandler(handler) {
|
|
1646
1987
|
if (handler) {
|
|
1647
|
-
handlers
|
|
1988
|
+
handlers[_DYN_PUSH ](handler);
|
|
1648
1989
|
}
|
|
1649
1990
|
}
|
|
1650
1991
|
function _runHandlers(unloadCtx, unloadState) {
|
|
@@ -1653,7 +1994,7 @@
|
|
|
1653
1994
|
handler(unloadCtx, unloadState);
|
|
1654
1995
|
}
|
|
1655
1996
|
catch (e) {
|
|
1656
|
-
_throwInternal(unloadCtx
|
|
1997
|
+
_throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
1657
1998
|
}
|
|
1658
1999
|
});
|
|
1659
2000
|
handlers = [];
|
|
@@ -1675,37 +2016,40 @@
|
|
|
1675
2016
|
var _hooks;
|
|
1676
2017
|
_initDefaults();
|
|
1677
2018
|
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
1678
|
-
_self
|
|
2019
|
+
_self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
|
|
1679
2020
|
_setDefaults(config, core, pluginChain);
|
|
1680
2021
|
_isinitialized = true;
|
|
1681
2022
|
};
|
|
1682
|
-
_self
|
|
1683
|
-
var
|
|
1684
|
-
|
|
2023
|
+
_self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
|
|
2024
|
+
var _a;
|
|
2025
|
+
var core = _self[STR_CORE ];
|
|
2026
|
+
if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
|
|
1685
2027
|
return;
|
|
1686
2028
|
}
|
|
1687
2029
|
var result;
|
|
1688
2030
|
var unloadDone = false;
|
|
1689
2031
|
var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1690
|
-
var theUnloadState = unloadState || {
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
2032
|
+
var theUnloadState = unloadState || (_a = {
|
|
2033
|
+
reason: 0
|
|
2034
|
+
},
|
|
2035
|
+
_a[_DYN_IS_ASYNC ] = false,
|
|
2036
|
+
_a);
|
|
1694
2037
|
function _unloadCallback() {
|
|
1695
2038
|
if (!unloadDone) {
|
|
1696
2039
|
unloadDone = true;
|
|
1697
2040
|
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
1698
|
-
|
|
2041
|
+
var oldHooks = _hooks;
|
|
2042
|
+
_hooks = [];
|
|
2043
|
+
arrForEach(oldHooks, function (fn) {
|
|
1699
2044
|
fn.rm();
|
|
1700
2045
|
});
|
|
1701
|
-
_hooks = [];
|
|
1702
2046
|
if (result === true) {
|
|
1703
|
-
theUnloadCtx
|
|
2047
|
+
theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
1704
2048
|
}
|
|
1705
2049
|
_initDefaults();
|
|
1706
2050
|
}
|
|
1707
2051
|
}
|
|
1708
|
-
if (!_self[
|
|
2052
|
+
if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
|
|
1709
2053
|
_unloadCallback();
|
|
1710
2054
|
}
|
|
1711
2055
|
else {
|
|
@@ -1713,9 +2057,9 @@
|
|
|
1713
2057
|
}
|
|
1714
2058
|
return result;
|
|
1715
2059
|
};
|
|
1716
|
-
_self
|
|
1717
|
-
var core = _self
|
|
1718
|
-
if (!core || (updateCtx && core !== updateCtx
|
|
2060
|
+
_self[_DYN_UPDATE ] = function (updateCtx, updateState) {
|
|
2061
|
+
var core = _self[STR_CORE ];
|
|
2062
|
+
if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
|
|
1719
2063
|
return;
|
|
1720
2064
|
}
|
|
1721
2065
|
var result;
|
|
@@ -1727,7 +2071,7 @@
|
|
|
1727
2071
|
function _updateCallback() {
|
|
1728
2072
|
if (!updateDone) {
|
|
1729
2073
|
updateDone = true;
|
|
1730
|
-
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx
|
|
2074
|
+
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
|
|
1731
2075
|
}
|
|
1732
2076
|
}
|
|
1733
2077
|
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
@@ -1744,30 +2088,30 @@
|
|
|
1744
2088
|
_hooks = _hooks.concat(hooks);
|
|
1745
2089
|
}
|
|
1746
2090
|
else {
|
|
1747
|
-
_hooks
|
|
2091
|
+
_hooks[_DYN_PUSH ](hooks);
|
|
1748
2092
|
}
|
|
1749
2093
|
}
|
|
1750
2094
|
};
|
|
1751
2095
|
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
1752
2096
|
});
|
|
1753
|
-
_self
|
|
1754
|
-
return _getTelCtx(itemCtx)
|
|
2097
|
+
_self[_DYN_DIAG_LOG ] = function (itemCtx) {
|
|
2098
|
+
return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
|
|
1755
2099
|
};
|
|
1756
|
-
_self[
|
|
2100
|
+
_self[_DYN_IS_INITIALIZED ] = function () {
|
|
1757
2101
|
return _isinitialized;
|
|
1758
2102
|
};
|
|
1759
2103
|
_self.setInitialized = function (isInitialized) {
|
|
1760
2104
|
_isinitialized = isInitialized;
|
|
1761
2105
|
};
|
|
1762
|
-
_self[
|
|
2106
|
+
_self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
|
|
1763
2107
|
_nextPlugin = next;
|
|
1764
2108
|
};
|
|
1765
|
-
_self
|
|
2109
|
+
_self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
|
|
1766
2110
|
if (itemCtx) {
|
|
1767
|
-
itemCtx
|
|
2111
|
+
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1768
2112
|
}
|
|
1769
|
-
else if (_nextPlugin && isFunction(_nextPlugin
|
|
1770
|
-
_nextPlugin
|
|
2113
|
+
else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
|
|
2114
|
+
_nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
|
|
1771
2115
|
}
|
|
1772
2116
|
};
|
|
1773
2117
|
_self._getTelCtx = _getTelCtx;
|
|
@@ -1775,332 +2119,47 @@
|
|
|
1775
2119
|
if (currentCtx === void 0) { currentCtx = null; }
|
|
1776
2120
|
var itemCtx = currentCtx;
|
|
1777
2121
|
if (!itemCtx) {
|
|
1778
|
-
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self
|
|
2122
|
+
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
|
|
1779
2123
|
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
1780
|
-
itemCtx = rootCtx
|
|
2124
|
+
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
|
|
1781
2125
|
}
|
|
1782
2126
|
else {
|
|
1783
|
-
itemCtx = rootCtx
|
|
2127
|
+
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
|
|
1784
2128
|
}
|
|
1785
2129
|
}
|
|
1786
2130
|
return itemCtx;
|
|
1787
2131
|
}
|
|
1788
2132
|
function _setDefaults(config, core, pluginChain) {
|
|
1789
2133
|
if (config) {
|
|
1790
|
-
setValue(config,
|
|
2134
|
+
setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
|
|
1791
2135
|
}
|
|
1792
2136
|
if (!pluginChain && core) {
|
|
1793
|
-
pluginChain = core
|
|
2137
|
+
pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
|
|
1794
2138
|
}
|
|
1795
2139
|
var nextPlugin = _nextPlugin;
|
|
1796
2140
|
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
1797
2141
|
nextPlugin = _nextPlugin[strGetPlugin]();
|
|
1798
2142
|
}
|
|
1799
|
-
_self
|
|
2143
|
+
_self[STR_CORE ] = core;
|
|
1800
2144
|
_rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
|
|
1801
2145
|
}
|
|
1802
2146
|
function _initDefaults() {
|
|
1803
|
-
_isinitialized = false;
|
|
1804
|
-
_self
|
|
1805
|
-
_rootCtx = null;
|
|
1806
|
-
_nextPlugin = null;
|
|
1807
|
-
_hooks = [];
|
|
1808
|
-
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
1809
|
-
}
|
|
1810
|
-
}
|
|
1811
|
-
return BaseTelemetryPlugin;
|
|
1812
|
-
}());
|
|
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";
|
|
1820
|
-
var strVisibilityChangeEvt = "visibilitychange";
|
|
1821
|
-
var strPageHide = "pagehide";
|
|
1822
|
-
var strPageShow = "pageshow";
|
|
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) {
|
|
1990
|
-
var result = false;
|
|
1991
|
-
var w = getWindow();
|
|
1992
|
-
if (w) {
|
|
1993
|
-
result = eventOn(w, eventName, callback, evtNamespace);
|
|
1994
|
-
result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
|
|
1995
|
-
}
|
|
1996
|
-
var doc = getDocument();
|
|
1997
|
-
if (doc) {
|
|
1998
|
-
result = eventOn(doc, eventName, callback, evtNamespace) || result;
|
|
1999
|
-
}
|
|
2000
|
-
return result;
|
|
2001
|
-
}
|
|
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) {
|
|
2014
|
-
var added = false;
|
|
2015
|
-
if (listener && events && events.length > 0) {
|
|
2016
|
-
arrForEach(events, function (name) {
|
|
2017
|
-
if (name) {
|
|
2018
|
-
if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
|
|
2019
|
-
added = addEventHandler(name, listener, evtNamespace) || added;
|
|
2020
|
-
}
|
|
2021
|
-
}
|
|
2022
|
-
});
|
|
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);
|
|
2032
|
-
}
|
|
2033
|
-
}
|
|
2034
|
-
return added;
|
|
2035
|
-
}
|
|
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);
|
|
2050
|
-
}
|
|
2051
|
-
function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
|
|
2052
|
-
function _handlePageVisibility(evt) {
|
|
2053
|
-
var doc = getDocument();
|
|
2054
|
-
if (listener && doc && doc.visibilityState === "hidden") {
|
|
2055
|
-
listener(evt);
|
|
2056
|
-
}
|
|
2057
|
-
}
|
|
2058
|
-
var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
|
|
2059
|
-
var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
|
|
2060
|
-
if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
|
|
2061
|
-
pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
|
|
2062
|
-
}
|
|
2063
|
-
if (!pageUnloadAdded && excludeEvents) {
|
|
2064
|
-
pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
|
|
2065
|
-
}
|
|
2066
|
-
return pageUnloadAdded;
|
|
2067
|
-
}
|
|
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) {
|
|
2074
|
-
function _handlePageVisibility(evt) {
|
|
2075
|
-
var doc = getDocument();
|
|
2076
|
-
if (listener && doc && doc.visibilityState === "visible") {
|
|
2077
|
-
listener(evt);
|
|
2147
|
+
_isinitialized = false;
|
|
2148
|
+
_self[STR_CORE ] = null;
|
|
2149
|
+
_rootCtx = null;
|
|
2150
|
+
_nextPlugin = null;
|
|
2151
|
+
_hooks = [];
|
|
2152
|
+
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
2078
2153
|
}
|
|
2079
2154
|
}
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
if (!pageShowAdded && excludeEvents) {
|
|
2084
|
-
pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
|
|
2085
|
-
}
|
|
2086
|
-
return pageShowAdded;
|
|
2087
|
-
}
|
|
2088
|
-
function removePageShowEventListener(listener, evtNamespace) {
|
|
2089
|
-
var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
|
|
2090
|
-
removeEventListeners([strPageShow], listener, newNamespaces);
|
|
2091
|
-
removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
|
|
2092
|
-
}
|
|
2155
|
+
BaseTelemetryPlugin.__ieDyn=1;
|
|
2156
|
+
return BaseTelemetryPlugin;
|
|
2157
|
+
}());
|
|
2093
2158
|
|
|
2094
|
-
|
|
2095
|
-
var perf = getPerformance();
|
|
2096
|
-
if (perf && perf.now) {
|
|
2097
|
-
return perf.now();
|
|
2098
|
-
}
|
|
2099
|
-
return dateNow();
|
|
2100
|
-
}
|
|
2159
|
+
var STR_EMPTY = "";
|
|
2101
2160
|
|
|
2102
2161
|
var _a$1;
|
|
2103
|
-
var Version = '3.2.
|
|
2162
|
+
var Version = '3.2.5';
|
|
2104
2163
|
var FullVersionString = "1DS-Web-JS-" + Version;
|
|
2105
2164
|
var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
2106
2165
|
var strWithCredentials = "withCredentials";
|
|
@@ -2117,7 +2176,7 @@
|
|
|
2117
2176
|
Boolean(getDocument());
|
|
2118
2177
|
Boolean(getWindow());
|
|
2119
2178
|
function isValueAssigned(value) {
|
|
2120
|
-
return !(value ===
|
|
2179
|
+
return !(value === STR_EMPTY || isNullOrUndefined(value));
|
|
2121
2180
|
}
|
|
2122
2181
|
function getTenantId(apiKey) {
|
|
2123
2182
|
if (apiKey) {
|
|
@@ -2126,7 +2185,7 @@
|
|
|
2126
2185
|
return apiKey.substring(0, indexTenantId);
|
|
2127
2186
|
}
|
|
2128
2187
|
}
|
|
2129
|
-
return
|
|
2188
|
+
return STR_EMPTY;
|
|
2130
2189
|
}
|
|
2131
2190
|
function sanitizeProperty(name, property, stringifyObjects) {
|
|
2132
2191
|
if ((!property && !isValueAssigned(property)) || typeof name !== "string") {
|
|
@@ -2136,11 +2195,11 @@
|
|
|
2136
2195
|
if (propType === "string" || propType === "number" || propType === "boolean" || isArray(property)) {
|
|
2137
2196
|
property = { value: property };
|
|
2138
2197
|
}
|
|
2139
|
-
else if (propType === "object" && !
|
|
2198
|
+
else if (propType === "object" && !ObjHasOwnProperty.call(property, "value")) {
|
|
2140
2199
|
property = { value: stringifyObjects ? JSON.stringify(property) : property };
|
|
2141
2200
|
}
|
|
2142
2201
|
else if (isNullOrUndefined(property.value)
|
|
2143
|
-
|| property.value ===
|
|
2202
|
+
|| property.value === STR_EMPTY || (!isString(property.value)
|
|
2144
2203
|
&& !isNumber(property.value) && !isBoolean(property.value)
|
|
2145
2204
|
&& !isArray(property.value))) {
|
|
2146
2205
|
return null;
|
|
@@ -2266,7 +2325,7 @@
|
|
|
2266
2325
|
theType |= getFieldValueType(value[0]);
|
|
2267
2326
|
}
|
|
2268
2327
|
}
|
|
2269
|
-
else if (
|
|
2328
|
+
else if (ObjHasOwnProperty.call(value, "value")) {
|
|
2270
2329
|
theType = 8192 | getFieldValueType(value.value);
|
|
2271
2330
|
}
|
|
2272
2331
|
}
|
|
@@ -2307,35 +2366,37 @@
|
|
|
2307
2366
|
var NRT_PROFILE = "NEAR_REAL_TIME";
|
|
2308
2367
|
var BE_PROFILE = "BEST_EFFORT";
|
|
2309
2368
|
|
|
2310
|
-
var
|
|
2311
|
-
var
|
|
2312
|
-
var
|
|
2313
|
-
var
|
|
2314
|
-
var
|
|
2315
|
-
var
|
|
2316
|
-
var
|
|
2317
|
-
var
|
|
2318
|
-
var
|
|
2319
|
-
var
|
|
2320
|
-
var
|
|
2321
|
-
var
|
|
2322
|
-
var
|
|
2323
|
-
var
|
|
2324
|
-
var
|
|
2325
|
-
var
|
|
2326
|
-
var
|
|
2327
|
-
var
|
|
2328
|
-
var
|
|
2329
|
-
var
|
|
2330
|
-
var
|
|
2331
|
-
var
|
|
2332
|
-
var
|
|
2333
|
-
var
|
|
2369
|
+
var STR_POST_METHOD = "POST";
|
|
2370
|
+
var STR_DISABLED_PROPERTY_NAME = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
|
|
2371
|
+
var STR_DROPPED = "drop";
|
|
2372
|
+
var STR_SENDING = "send";
|
|
2373
|
+
var STR_REQUEUE = "requeue";
|
|
2374
|
+
var STR_RESPONSE_FAIL = "rspFail";
|
|
2375
|
+
var STR_OTHER = "oth";
|
|
2376
|
+
var DEFAULT_CACHE_CONTROL = "no-cache, no-store";
|
|
2377
|
+
var DEFAULT_CONTENT_TYPE = "application/x-json-stream";
|
|
2378
|
+
var STR_CACHE_CONTROL = "cache-control";
|
|
2379
|
+
var STR_CONTENT_TYPE_HEADER = "content-type";
|
|
2380
|
+
var STR_KILL_TOKENS_HEADER = "kill-tokens";
|
|
2381
|
+
var STR_KILL_DURATION_HEADER = "kill-duration";
|
|
2382
|
+
var STR_KILL_DURATION_SECONDS_HEADER = "kill-duration-seconds";
|
|
2383
|
+
var STR_TIME_DELTA_HEADER = "time-delta-millis";
|
|
2384
|
+
var STR_CLIENT_VERSION = "client-version";
|
|
2385
|
+
var STR_CLIENT_ID = "client-id";
|
|
2386
|
+
var STR_TIME_DELTA_TO_APPLY = "time-delta-to-apply-millis";
|
|
2387
|
+
var STR_UPLOAD_TIME = "upload-time";
|
|
2388
|
+
var STR_API_KEY = "apikey";
|
|
2389
|
+
var STR_MSA_DEVICE_TICKET = "AuthMsaDeviceTicket";
|
|
2390
|
+
var STR_AUTH_XTOKEN = "AuthXToken";
|
|
2391
|
+
var STR_NO_RESPONSE_BODY = "NoResponseBody";
|
|
2392
|
+
var STR_MSFPC = "msfpc";
|
|
2393
|
+
var STR_TRACE = "trace";
|
|
2394
|
+
var STR_USER = "user";
|
|
2334
2395
|
|
|
2335
2396
|
function _getEventMsfpc(theEvent) {
|
|
2336
2397
|
var intWeb = ((theEvent.ext || {})["intweb"]);
|
|
2337
|
-
if (intWeb && isValueAssigned(intWeb[
|
|
2338
|
-
return intWeb[
|
|
2398
|
+
if (intWeb && isValueAssigned(intWeb[STR_MSFPC])) {
|
|
2399
|
+
return intWeb[STR_MSFPC];
|
|
2339
2400
|
}
|
|
2340
2401
|
return null;
|
|
2341
2402
|
}
|
|
@@ -2392,6 +2453,117 @@
|
|
|
2392
2453
|
return EventBatch;
|
|
2393
2454
|
}());
|
|
2394
2455
|
|
|
2456
|
+
var ClockSkewManager = /** @class */ (function () {
|
|
2457
|
+
function ClockSkewManager() {
|
|
2458
|
+
var _allowRequestSending = true;
|
|
2459
|
+
var _shouldAddClockSkewHeaders = true;
|
|
2460
|
+
var _isFirstRequest = true;
|
|
2461
|
+
var _clockSkewHeaderValue = "use-collector-delta";
|
|
2462
|
+
var _clockSkewSet = false;
|
|
2463
|
+
dynamicProto(ClockSkewManager, this, function (_self) {
|
|
2464
|
+
_self.allowRequestSending = function () {
|
|
2465
|
+
return _allowRequestSending;
|
|
2466
|
+
};
|
|
2467
|
+
_self.firstRequestSent = function () {
|
|
2468
|
+
if (_isFirstRequest) {
|
|
2469
|
+
_isFirstRequest = false;
|
|
2470
|
+
if (!_clockSkewSet) {
|
|
2471
|
+
_allowRequestSending = false;
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
};
|
|
2475
|
+
_self.shouldAddClockSkewHeaders = function () {
|
|
2476
|
+
return _shouldAddClockSkewHeaders;
|
|
2477
|
+
};
|
|
2478
|
+
_self.getClockSkewHeaderValue = function () {
|
|
2479
|
+
return _clockSkewHeaderValue;
|
|
2480
|
+
};
|
|
2481
|
+
_self.setClockSkew = function (timeDeltaInMillis) {
|
|
2482
|
+
if (!_clockSkewSet) {
|
|
2483
|
+
if (timeDeltaInMillis) {
|
|
2484
|
+
_clockSkewHeaderValue = timeDeltaInMillis;
|
|
2485
|
+
_shouldAddClockSkewHeaders = true;
|
|
2486
|
+
_clockSkewSet = true;
|
|
2487
|
+
}
|
|
2488
|
+
else {
|
|
2489
|
+
_shouldAddClockSkewHeaders = false;
|
|
2490
|
+
}
|
|
2491
|
+
_allowRequestSending = true;
|
|
2492
|
+
}
|
|
2493
|
+
};
|
|
2494
|
+
});
|
|
2495
|
+
}
|
|
2496
|
+
ClockSkewManager.__ieDyn=1;
|
|
2497
|
+
return ClockSkewManager;
|
|
2498
|
+
}());
|
|
2499
|
+
var EVTClockSkewManager = ClockSkewManager;
|
|
2500
|
+
|
|
2501
|
+
var SecToMsMultiplier = 1000;
|
|
2502
|
+
var KillSwitch = /** @class */ (function () {
|
|
2503
|
+
function KillSwitch() {
|
|
2504
|
+
var _killedTokenDictionary = {};
|
|
2505
|
+
function _normalizeTenants(values) {
|
|
2506
|
+
var result = [];
|
|
2507
|
+
if (values) {
|
|
2508
|
+
arrForEach(values, function (value) {
|
|
2509
|
+
result.push(strTrim(value));
|
|
2510
|
+
});
|
|
2511
|
+
}
|
|
2512
|
+
return result;
|
|
2513
|
+
}
|
|
2514
|
+
dynamicProto(KillSwitch, this, function (_self) {
|
|
2515
|
+
_self.setKillSwitchTenants = function (killTokens, killDuration) {
|
|
2516
|
+
if (killTokens && killDuration) {
|
|
2517
|
+
try {
|
|
2518
|
+
var killedTokens = _normalizeTenants(killTokens.split(","));
|
|
2519
|
+
if (killDuration === "this-request-only") {
|
|
2520
|
+
return killedTokens;
|
|
2521
|
+
}
|
|
2522
|
+
var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
|
|
2523
|
+
for (var i = 0; i < killedTokens.length; ++i) {
|
|
2524
|
+
_killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
|
|
2525
|
+
}
|
|
2526
|
+
}
|
|
2527
|
+
catch (ex) {
|
|
2528
|
+
return [];
|
|
2529
|
+
}
|
|
2530
|
+
}
|
|
2531
|
+
return [];
|
|
2532
|
+
};
|
|
2533
|
+
_self.isTenantKilled = function (tenantToken) {
|
|
2534
|
+
var killDictionary = _killedTokenDictionary;
|
|
2535
|
+
var name = strTrim(tenantToken);
|
|
2536
|
+
if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
|
|
2537
|
+
return true;
|
|
2538
|
+
}
|
|
2539
|
+
delete killDictionary[name];
|
|
2540
|
+
return false;
|
|
2541
|
+
};
|
|
2542
|
+
});
|
|
2543
|
+
}
|
|
2544
|
+
KillSwitch.__ieDyn=1;
|
|
2545
|
+
return KillSwitch;
|
|
2546
|
+
}());
|
|
2547
|
+
var EVTKillSwitch = KillSwitch;
|
|
2548
|
+
|
|
2549
|
+
var RandomizationLowerThreshold = 0.8;
|
|
2550
|
+
var RandomizationUpperThreshold = 1.2;
|
|
2551
|
+
var BaseBackoff = 3000;
|
|
2552
|
+
var MaxBackoff = 600000;
|
|
2553
|
+
function retryPolicyShouldRetryForStatus(httpStatusCode) {
|
|
2554
|
+
return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
|
|
2555
|
+
|| (httpStatusCode == 501)
|
|
2556
|
+
|| (httpStatusCode == 505));
|
|
2557
|
+
}
|
|
2558
|
+
function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
|
|
2559
|
+
var waitDuration = 0;
|
|
2560
|
+
var minBackoff = BaseBackoff * RandomizationLowerThreshold;
|
|
2561
|
+
var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
|
|
2562
|
+
var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
|
|
2563
|
+
waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
|
|
2564
|
+
return Math.min(waitDuration, MaxBackoff);
|
|
2565
|
+
}
|
|
2566
|
+
|
|
2395
2567
|
var _MAX_STRING_JOINS = 20;
|
|
2396
2568
|
var RequestSizeLimitBytes = 3984588;
|
|
2397
2569
|
var BeaconRequestSizeLimitBytes = 65000;
|
|
@@ -2597,6 +2769,7 @@
|
|
|
2597
2769
|
}
|
|
2598
2770
|
});
|
|
2599
2771
|
}
|
|
2772
|
+
Serializer.__ieDyn=1;
|
|
2600
2773
|
return Serializer;
|
|
2601
2774
|
}());
|
|
2602
2775
|
function _addJSONPropertyMetaData(json, propKeys, name, propertyValue) {
|
|
@@ -2637,124 +2810,15 @@
|
|
|
2637
2810
|
}
|
|
2638
2811
|
}
|
|
2639
2812
|
|
|
2640
|
-
var RandomizationLowerThreshold = 0.8;
|
|
2641
|
-
var RandomizationUpperThreshold = 1.2;
|
|
2642
|
-
var BaseBackoff = 3000;
|
|
2643
|
-
var MaxBackoff = 600000;
|
|
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
|
-
}
|
|
2657
|
-
|
|
2658
|
-
var SecToMsMultiplier = 1000;
|
|
2659
|
-
var KillSwitch = /** @class */ (function () {
|
|
2660
|
-
function KillSwitch() {
|
|
2661
|
-
var _killedTokenDictionary = {};
|
|
2662
|
-
function _normalizeTenants(values) {
|
|
2663
|
-
var result = [];
|
|
2664
|
-
if (values) {
|
|
2665
|
-
arrForEach(values, function (value) {
|
|
2666
|
-
result.push(strTrim(value));
|
|
2667
|
-
});
|
|
2668
|
-
}
|
|
2669
|
-
return result;
|
|
2670
|
-
}
|
|
2671
|
-
dynamicProto(KillSwitch, this, function (_self) {
|
|
2672
|
-
_self.setKillSwitchTenants = function (killTokens, killDuration) {
|
|
2673
|
-
if (killTokens && killDuration) {
|
|
2674
|
-
try {
|
|
2675
|
-
var killedTokens = _normalizeTenants(killTokens.split(","));
|
|
2676
|
-
if (killDuration === "this-request-only") {
|
|
2677
|
-
return killedTokens;
|
|
2678
|
-
}
|
|
2679
|
-
var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
|
|
2680
|
-
for (var i = 0; i < killedTokens.length; ++i) {
|
|
2681
|
-
_killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
|
|
2682
|
-
}
|
|
2683
|
-
}
|
|
2684
|
-
catch (ex) {
|
|
2685
|
-
return [];
|
|
2686
|
-
}
|
|
2687
|
-
}
|
|
2688
|
-
return [];
|
|
2689
|
-
};
|
|
2690
|
-
_self.isTenantKilled = function (tenantToken) {
|
|
2691
|
-
var killDictionary = _killedTokenDictionary;
|
|
2692
|
-
var name = strTrim(tenantToken);
|
|
2693
|
-
if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
|
|
2694
|
-
return true;
|
|
2695
|
-
}
|
|
2696
|
-
delete killDictionary[name];
|
|
2697
|
-
return false;
|
|
2698
|
-
};
|
|
2699
|
-
});
|
|
2700
|
-
}
|
|
2701
|
-
return KillSwitch;
|
|
2702
|
-
}());
|
|
2703
|
-
var EVTKillSwitch = KillSwitch;
|
|
2704
|
-
|
|
2705
|
-
var ClockSkewManager = /** @class */ (function () {
|
|
2706
|
-
function ClockSkewManager() {
|
|
2707
|
-
var _allowRequestSending = true;
|
|
2708
|
-
var _shouldAddClockSkewHeaders = true;
|
|
2709
|
-
var _isFirstRequest = true;
|
|
2710
|
-
var _clockSkewHeaderValue = "use-collector-delta";
|
|
2711
|
-
var _clockSkewSet = false;
|
|
2712
|
-
dynamicProto(ClockSkewManager, this, function (_self) {
|
|
2713
|
-
_self.allowRequestSending = function () {
|
|
2714
|
-
return _allowRequestSending;
|
|
2715
|
-
};
|
|
2716
|
-
_self.firstRequestSent = function () {
|
|
2717
|
-
if (_isFirstRequest) {
|
|
2718
|
-
_isFirstRequest = false;
|
|
2719
|
-
if (!_clockSkewSet) {
|
|
2720
|
-
_allowRequestSending = false;
|
|
2721
|
-
}
|
|
2722
|
-
}
|
|
2723
|
-
};
|
|
2724
|
-
_self.shouldAddClockSkewHeaders = function () {
|
|
2725
|
-
return _shouldAddClockSkewHeaders;
|
|
2726
|
-
};
|
|
2727
|
-
_self.getClockSkewHeaderValue = function () {
|
|
2728
|
-
return _clockSkewHeaderValue;
|
|
2729
|
-
};
|
|
2730
|
-
_self.setClockSkew = function (timeDeltaInMillis) {
|
|
2731
|
-
if (!_clockSkewSet) {
|
|
2732
|
-
if (timeDeltaInMillis) {
|
|
2733
|
-
_clockSkewHeaderValue = timeDeltaInMillis;
|
|
2734
|
-
_shouldAddClockSkewHeaders = true;
|
|
2735
|
-
_clockSkewSet = true;
|
|
2736
|
-
}
|
|
2737
|
-
else {
|
|
2738
|
-
_shouldAddClockSkewHeaders = false;
|
|
2739
|
-
}
|
|
2740
|
-
_allowRequestSending = true;
|
|
2741
|
-
}
|
|
2742
|
-
};
|
|
2743
|
-
});
|
|
2744
|
-
}
|
|
2745
|
-
return ClockSkewManager;
|
|
2746
|
-
}());
|
|
2747
|
-
var EVTClockSkewManager = ClockSkewManager;
|
|
2748
|
-
|
|
2749
2813
|
var _a;
|
|
2750
2814
|
var strSendAttempt = "sendAttempt";
|
|
2751
|
-
var _noResponseQs = "&" +
|
|
2815
|
+
var _noResponseQs = "&" + STR_NO_RESPONSE_BODY + "=true";
|
|
2752
2816
|
var _eventActionMap = (_a = {},
|
|
2753
|
-
_a[1 ] =
|
|
2754
|
-
_a[100 ] =
|
|
2817
|
+
_a[1 ] = STR_REQUEUE,
|
|
2818
|
+
_a[100 ] = STR_REQUEUE,
|
|
2755
2819
|
_a[200 ] = "sent",
|
|
2756
|
-
_a[8004 ] =
|
|
2757
|
-
_a[8003 ] =
|
|
2820
|
+
_a[8004 ] = STR_DROPPED,
|
|
2821
|
+
_a[8003 ] = STR_DROPPED,
|
|
2758
2822
|
_a);
|
|
2759
2823
|
var _collectorQsHeaders = {};
|
|
2760
2824
|
var _collectorHeaderToQs = {};
|
|
@@ -2764,13 +2828,13 @@
|
|
|
2764
2828
|
_collectorHeaderToQs[headerName] = qsName;
|
|
2765
2829
|
}
|
|
2766
2830
|
}
|
|
2767
|
-
_addCollectorHeaderQsMapping(
|
|
2768
|
-
_addCollectorHeaderQsMapping(
|
|
2769
|
-
_addCollectorHeaderQsMapping(
|
|
2770
|
-
_addCollectorHeaderQsMapping(
|
|
2771
|
-
_addCollectorHeaderQsMapping(
|
|
2772
|
-
_addCollectorHeaderQsMapping(
|
|
2773
|
-
_addCollectorHeaderQsMapping(
|
|
2831
|
+
_addCollectorHeaderQsMapping(STR_MSA_DEVICE_TICKET, STR_MSA_DEVICE_TICKET, false);
|
|
2832
|
+
_addCollectorHeaderQsMapping(STR_CLIENT_VERSION, STR_CLIENT_VERSION);
|
|
2833
|
+
_addCollectorHeaderQsMapping(STR_CLIENT_ID, "Client-Id");
|
|
2834
|
+
_addCollectorHeaderQsMapping(STR_API_KEY, STR_API_KEY);
|
|
2835
|
+
_addCollectorHeaderQsMapping(STR_TIME_DELTA_TO_APPLY, STR_TIME_DELTA_TO_APPLY);
|
|
2836
|
+
_addCollectorHeaderQsMapping(STR_UPLOAD_TIME, STR_UPLOAD_TIME);
|
|
2837
|
+
_addCollectorHeaderQsMapping(STR_AUTH_XTOKEN, STR_AUTH_XTOKEN);
|
|
2774
2838
|
function _getResponseText(xhr) {
|
|
2775
2839
|
try {
|
|
2776
2840
|
return xhr.responseText;
|
|
@@ -2811,13 +2875,14 @@
|
|
|
2811
2875
|
var HttpManager = /** @class */ (function () {
|
|
2812
2876
|
function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
|
|
2813
2877
|
this._responseHandlers = [];
|
|
2814
|
-
var _urlString = "?cors=true&" +
|
|
2878
|
+
var _urlString = "?cors=true&" + STR_CONTENT_TYPE_HEADER.toLowerCase() + "=" + DEFAULT_CONTENT_TYPE;
|
|
2815
2879
|
var _killSwitch = new EVTKillSwitch();
|
|
2816
2880
|
var _paused = false;
|
|
2817
2881
|
var _clockSkewManager = new EVTClockSkewManager();
|
|
2818
2882
|
var _useBeacons = false;
|
|
2819
2883
|
var _outstandingRequests = 0;
|
|
2820
2884
|
var _postManager;
|
|
2885
|
+
var _logger;
|
|
2821
2886
|
var _sendInterfaces;
|
|
2822
2887
|
var _core;
|
|
2823
2888
|
var _customHttpInterface = true;
|
|
@@ -2845,6 +2910,7 @@
|
|
|
2845
2910
|
_enableEventTimings = !_core.config.disableEventTimings;
|
|
2846
2911
|
var enableCompoundKey = !!_core.config.enableCompoundKey;
|
|
2847
2912
|
_postManager = postChannel;
|
|
2913
|
+
_logger = _postManager.diagLog();
|
|
2848
2914
|
var valueSanitizer = channelConfig.valueSanitizer;
|
|
2849
2915
|
var stringifyObjects = channelConfig.stringifyObjects;
|
|
2850
2916
|
if (!isUndefined(channelConfig.enableCompoundKey)) {
|
|
@@ -2882,7 +2948,7 @@
|
|
|
2882
2948
|
httpInterface = _getSenderInterface(theTransports, false);
|
|
2883
2949
|
syncHttpInterface = _getSenderInterface(theTransports, true);
|
|
2884
2950
|
if (!httpInterface) {
|
|
2885
|
-
|
|
2951
|
+
_warnToConsole(_logger, "No available transport to send events");
|
|
2886
2952
|
}
|
|
2887
2953
|
}
|
|
2888
2954
|
_sendInterfaces = (_a = {},
|
|
@@ -2928,7 +2994,7 @@
|
|
|
2928
2994
|
};
|
|
2929
2995
|
function _xdrSendPost(payload, oncomplete, sync) {
|
|
2930
2996
|
var xdr = new XDomainRequest();
|
|
2931
|
-
xdr.open(
|
|
2997
|
+
xdr.open(STR_POST_METHOD, payload.urlString);
|
|
2932
2998
|
if (payload.timeout) {
|
|
2933
2999
|
xdr.timeout = payload.timeout;
|
|
2934
3000
|
}
|
|
@@ -2960,9 +3026,9 @@
|
|
|
2960
3026
|
var responseHandled = false;
|
|
2961
3027
|
var requestInit = (_a = {
|
|
2962
3028
|
body: payload.data,
|
|
2963
|
-
method:
|
|
3029
|
+
method: STR_POST_METHOD
|
|
2964
3030
|
},
|
|
2965
|
-
_a[
|
|
3031
|
+
_a[STR_DISABLED_PROPERTY_NAME] = true,
|
|
2966
3032
|
_a);
|
|
2967
3033
|
if (sync) {
|
|
2968
3034
|
requestInit.keepalive = true;
|
|
@@ -2980,8 +3046,9 @@
|
|
|
2980
3046
|
fetch(theUrl, requestInit).then(function (response) {
|
|
2981
3047
|
var headerMap = {};
|
|
2982
3048
|
var responseText = "";
|
|
2983
|
-
|
|
2984
|
-
|
|
3049
|
+
var headers = response.headers;
|
|
3050
|
+
if (headers) {
|
|
3051
|
+
headers["forEach"](function (value, name) {
|
|
2985
3052
|
headerMap[name] = value;
|
|
2986
3053
|
});
|
|
2987
3054
|
}
|
|
@@ -3028,9 +3095,9 @@
|
|
|
3028
3095
|
function _getAllResponseHeaders(xhr) {
|
|
3029
3096
|
var theHeaders = {};
|
|
3030
3097
|
if (!xhr.getAllResponseHeaders) {
|
|
3031
|
-
theHeaders = _appendHeader(theHeaders, xhr,
|
|
3032
|
-
theHeaders = _appendHeader(theHeaders, xhr,
|
|
3033
|
-
theHeaders = _appendHeader(theHeaders, xhr,
|
|
3098
|
+
theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);
|
|
3099
|
+
theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);
|
|
3100
|
+
theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);
|
|
3034
3101
|
}
|
|
3035
3102
|
else {
|
|
3036
3103
|
theHeaders = _convertAllHeadersToMap(xhr.getAllResponseHeaders());
|
|
@@ -3043,7 +3110,7 @@
|
|
|
3043
3110
|
if (sync && payload.disableXhrSync) {
|
|
3044
3111
|
sync = false;
|
|
3045
3112
|
}
|
|
3046
|
-
var xhrRequest = openXhr(
|
|
3113
|
+
var xhrRequest = openXhr(STR_POST_METHOD, theUrl, _sendCredentials, true, sync, payload.timeout);
|
|
3047
3114
|
objForEachKey(payload.headers, function (name, value) {
|
|
3048
3115
|
xhrRequest.setRequestHeader(name, value);
|
|
3049
3116
|
});
|
|
@@ -3065,7 +3132,7 @@
|
|
|
3065
3132
|
oncomplete(status, headers, response);
|
|
3066
3133
|
}
|
|
3067
3134
|
catch (e) {
|
|
3068
|
-
_throwInternal(
|
|
3135
|
+
_throwInternal(_logger, 2 , 518 , dumpObj(e));
|
|
3069
3136
|
}
|
|
3070
3137
|
}
|
|
3071
3138
|
function _beaconSendPost(payload, oncomplete, sync) {
|
|
@@ -3100,7 +3167,7 @@
|
|
|
3100
3167
|
}
|
|
3101
3168
|
}
|
|
3102
3169
|
catch (ex) {
|
|
3103
|
-
|
|
3170
|
+
_warnToConsole(_logger, "Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
|
|
3104
3171
|
status = 0;
|
|
3105
3172
|
}
|
|
3106
3173
|
finally {
|
|
@@ -3264,7 +3331,7 @@
|
|
|
3264
3331
|
}, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
|
|
3265
3332
|
}
|
|
3266
3333
|
catch (ex) {
|
|
3267
|
-
_throwInternal(
|
|
3334
|
+
_throwInternal(_logger, 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
|
|
3268
3335
|
}
|
|
3269
3336
|
}
|
|
3270
3337
|
function _buildRequestDetails(thePayload, useHeaders) {
|
|
@@ -3288,8 +3355,8 @@
|
|
|
3288
3355
|
requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
|
|
3289
3356
|
requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
|
|
3290
3357
|
}
|
|
3291
|
-
_addRequestDetails(requestDetails,
|
|
3292
|
-
_addRequestDetails(requestDetails,
|
|
3358
|
+
_addRequestDetails(requestDetails, STR_CLIENT_ID, "NO_AUTH", useHeaders);
|
|
3359
|
+
_addRequestDetails(requestDetails, STR_CLIENT_VERSION, FullVersionString, useHeaders);
|
|
3293
3360
|
var apiQsKeys = "";
|
|
3294
3361
|
arrForEach(thePayload.apiKeys, function (apiKey) {
|
|
3295
3362
|
if (apiQsKeys.length > 0) {
|
|
@@ -3297,14 +3364,14 @@
|
|
|
3297
3364
|
}
|
|
3298
3365
|
apiQsKeys += apiKey;
|
|
3299
3366
|
});
|
|
3300
|
-
_addRequestDetails(requestDetails,
|
|
3301
|
-
_addRequestDetails(requestDetails,
|
|
3367
|
+
_addRequestDetails(requestDetails, STR_API_KEY, apiQsKeys, useHeaders);
|
|
3368
|
+
_addRequestDetails(requestDetails, STR_UPLOAD_TIME, dateNow().toString(), useHeaders);
|
|
3302
3369
|
var msfpc = _getMsfpc(thePayload);
|
|
3303
3370
|
if (isValueAssigned(msfpc)) {
|
|
3304
3371
|
requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
|
|
3305
3372
|
}
|
|
3306
3373
|
if (_clockSkewManager.shouldAddClockSkewHeaders()) {
|
|
3307
|
-
_addRequestDetails(requestDetails,
|
|
3374
|
+
_addRequestDetails(requestDetails, STR_TIME_DELTA_TO_APPLY, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
|
|
3308
3375
|
}
|
|
3309
3376
|
if (_core.getWParam) {
|
|
3310
3377
|
var wParam = _core.getWParam();
|
|
@@ -3366,11 +3433,11 @@
|
|
|
3366
3433
|
orgPayloadData.disableXhrSync = !!_disableXhrSync;
|
|
3367
3434
|
}
|
|
3368
3435
|
if (useHeaders_1) {
|
|
3369
|
-
if (!_hasHeader(orgPayloadData.headers,
|
|
3370
|
-
orgPayloadData.headers[
|
|
3436
|
+
if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
|
|
3437
|
+
orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
|
|
3371
3438
|
}
|
|
3372
|
-
if (!_hasHeader(orgPayloadData.headers,
|
|
3373
|
-
orgPayloadData.headers[
|
|
3439
|
+
if (!_hasHeader(orgPayloadData.headers, STR_CONTENT_TYPE_HEADER)) {
|
|
3440
|
+
orgPayloadData.headers[STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;
|
|
3374
3441
|
}
|
|
3375
3442
|
}
|
|
3376
3443
|
var sender = null;
|
|
@@ -3388,7 +3455,7 @@
|
|
|
3388
3455
|
}
|
|
3389
3456
|
}
|
|
3390
3457
|
catch (ex) {
|
|
3391
|
-
|
|
3458
|
+
_warnToConsole(_logger, "Unexpected exception sending payload. Ex:" + dumpObj(ex));
|
|
3392
3459
|
_doOnComplete(onComplete, 0, {});
|
|
3393
3460
|
}
|
|
3394
3461
|
};
|
|
@@ -3456,9 +3523,9 @@
|
|
|
3456
3523
|
var shouldRetry = true;
|
|
3457
3524
|
if (typeof status !== strShimUndefined) {
|
|
3458
3525
|
if (headers) {
|
|
3459
|
-
_clockSkewManager.setClockSkew(headers[
|
|
3460
|
-
var killDuration = headers[
|
|
3461
|
-
arrForEach(_killSwitch.setKillSwitchTenants(headers[
|
|
3526
|
+
_clockSkewManager.setClockSkew(headers[STR_TIME_DELTA_HEADER]);
|
|
3527
|
+
var killDuration = headers[STR_KILL_DURATION_HEADER] || headers["kill-duration-seconds"];
|
|
3528
|
+
arrForEach(_killSwitch.setKillSwitchTenants(headers[STR_KILL_TOKENS_HEADER], killDuration), function (killToken) {
|
|
3462
3529
|
arrForEach(thePayload.batches, function (theBatch) {
|
|
3463
3530
|
if (theBatch.iKey() === killToken) {
|
|
3464
3531
|
droppedBatches = droppedBatches || [];
|
|
@@ -3585,13 +3652,13 @@
|
|
|
3585
3652
|
responseHandlers[i](responseText);
|
|
3586
3653
|
}
|
|
3587
3654
|
catch (e) {
|
|
3588
|
-
_throwInternal(
|
|
3655
|
+
_throwInternal(_logger, 1 , 519 , "Response handler failed: " + e);
|
|
3589
3656
|
}
|
|
3590
3657
|
}
|
|
3591
3658
|
if (responseText) {
|
|
3592
3659
|
var response = JSON.parse(responseText);
|
|
3593
|
-
if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[
|
|
3594
|
-
_cookieMgr.set("MSFPC", response.webResult[
|
|
3660
|
+
if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[STR_MSFPC])) {
|
|
3661
|
+
_cookieMgr.set("MSFPC", response.webResult[STR_MSFPC], 365 * 86400);
|
|
3595
3662
|
}
|
|
3596
3663
|
}
|
|
3597
3664
|
}
|
|
@@ -3609,7 +3676,7 @@
|
|
|
3609
3676
|
theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
|
|
3610
3677
|
}
|
|
3611
3678
|
catch (e) {
|
|
3612
|
-
_throwInternal(
|
|
3679
|
+
_throwInternal(_logger, 1 , 74 , "send request notification failed: " + e);
|
|
3613
3680
|
}
|
|
3614
3681
|
}, sendSync || isSyncRequest_1, 0);
|
|
3615
3682
|
}, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
|
|
@@ -3619,21 +3686,22 @@
|
|
|
3619
3686
|
function _getNotificationAction(reason) {
|
|
3620
3687
|
var action = _eventActionMap[reason];
|
|
3621
3688
|
if (!isValueAssigned(action)) {
|
|
3622
|
-
action =
|
|
3689
|
+
action = STR_OTHER;
|
|
3623
3690
|
if (reason >= 9000 && reason <= 9999 ) {
|
|
3624
|
-
action =
|
|
3691
|
+
action = STR_RESPONSE_FAIL;
|
|
3625
3692
|
}
|
|
3626
3693
|
else if (reason >= 8000 && reason <= 8999 ) {
|
|
3627
|
-
action =
|
|
3694
|
+
action = STR_DROPPED;
|
|
3628
3695
|
}
|
|
3629
3696
|
else if (reason >= 1000 && reason <= 1999 ) {
|
|
3630
|
-
action =
|
|
3697
|
+
action = STR_SENDING;
|
|
3631
3698
|
}
|
|
3632
3699
|
}
|
|
3633
3700
|
return action;
|
|
3634
3701
|
}
|
|
3635
3702
|
});
|
|
3636
3703
|
}
|
|
3704
|
+
HttpManager.__ieDyn=1;
|
|
3637
3705
|
return HttpManager;
|
|
3638
3706
|
}());
|
|
3639
3707
|
|
|
@@ -3673,7 +3741,7 @@
|
|
|
3673
3741
|
var _this = _super.call(this) || this;
|
|
3674
3742
|
_this.identifier = "PostChannel";
|
|
3675
3743
|
_this.priority = 1011;
|
|
3676
|
-
_this.version = '3.2.
|
|
3744
|
+
_this.version = '3.2.5';
|
|
3677
3745
|
var _config;
|
|
3678
3746
|
var _isTeardownCalled = false;
|
|
3679
3747
|
var _flushCallbackQueue = [];
|
|
@@ -3698,7 +3766,6 @@
|
|
|
3698
3766
|
var _delayedBatchReason;
|
|
3699
3767
|
var _optimizeObject = true;
|
|
3700
3768
|
var _isPageUnloadTriggered = false;
|
|
3701
|
-
var _disableXhrSync = false;
|
|
3702
3769
|
var _maxEventSendAttempts = MaxSendAttempts;
|
|
3703
3770
|
var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
3704
3771
|
var _evtNamespace;
|
|
@@ -3730,7 +3797,6 @@
|
|
|
3730
3797
|
if (_config.autoFlushEventsLimit > 0) {
|
|
3731
3798
|
_autoFlushEventsLimit = _config.autoFlushEventsLimit;
|
|
3732
3799
|
}
|
|
3733
|
-
_disableXhrSync = _config.disableXhrSync;
|
|
3734
3800
|
if (isNumber(_config[strMaxEventRetryAttempts])) {
|
|
3735
3801
|
_maxEventSendAttempts = _config[strMaxEventRetryAttempts];
|
|
3736
3802
|
}
|
|
@@ -3824,11 +3890,11 @@
|
|
|
3824
3890
|
if (!event.latency) {
|
|
3825
3891
|
event.latency = 1 ;
|
|
3826
3892
|
}
|
|
3827
|
-
if (event.ext && event.ext[
|
|
3828
|
-
delete (event.ext[
|
|
3893
|
+
if (event.ext && event.ext[STR_TRACE]) {
|
|
3894
|
+
delete (event.ext[STR_TRACE]);
|
|
3829
3895
|
}
|
|
3830
|
-
if (event.ext && event.ext[
|
|
3831
|
-
delete (event.ext[
|
|
3896
|
+
if (event.ext && event.ext[STR_USER] && event.ext[STR_USER]["id"]) {
|
|
3897
|
+
delete (event.ext[STR_USER]["id"]);
|
|
3832
3898
|
}
|
|
3833
3899
|
if (_optimizeObject) {
|
|
3834
3900
|
event.ext = optimizeObject(event.ext);
|
|
@@ -3938,13 +4004,13 @@
|
|
|
3938
4004
|
_self.flush = function (async, callback, sendReason) {
|
|
3939
4005
|
if (async === void 0) { async = true; }
|
|
3940
4006
|
if (!_paused) {
|
|
3941
|
-
_clearScheduledTimer();
|
|
3942
4007
|
sendReason = sendReason || 1 ;
|
|
3943
4008
|
if (async) {
|
|
3944
|
-
_queueBatches(1 , 0 , sendReason);
|
|
3945
|
-
_resetQueueCounts();
|
|
3946
4009
|
if (_flushCallbackTimerId == null) {
|
|
4010
|
+
_clearScheduledTimer();
|
|
4011
|
+
_queueBatches(1 , 0 , sendReason);
|
|
3947
4012
|
_flushCallbackTimerId = _createTimer(function () {
|
|
4013
|
+
_flushCallbackTimerId = null;
|
|
3948
4014
|
_flushImpl(callback, sendReason);
|
|
3949
4015
|
}, 0);
|
|
3950
4016
|
}
|
|
@@ -3953,15 +4019,19 @@
|
|
|
3953
4019
|
}
|
|
3954
4020
|
}
|
|
3955
4021
|
else {
|
|
4022
|
+
var cleared = _clearScheduledTimer();
|
|
3956
4023
|
_sendEventsForLatencyAndAbove(1 , 1 , sendReason);
|
|
3957
4024
|
if (callback !== null && callback !== undefined) {
|
|
3958
4025
|
callback();
|
|
3959
4026
|
}
|
|
4027
|
+
if (cleared) {
|
|
4028
|
+
_scheduleTimer();
|
|
4029
|
+
}
|
|
3960
4030
|
}
|
|
3961
4031
|
}
|
|
3962
4032
|
};
|
|
3963
4033
|
_self.setMsaAuthTicket = function (ticket) {
|
|
3964
|
-
_httpManager.addHeader(
|
|
4034
|
+
_httpManager.addHeader(STR_MSA_DEVICE_TICKET, ticket);
|
|
3965
4035
|
};
|
|
3966
4036
|
_self.hasEvents = _hasEvents;
|
|
3967
4037
|
_self._setTransmitProfile = function (profileName) {
|
|
@@ -4047,7 +4117,6 @@
|
|
|
4047
4117
|
_delayedBatchReason = null;
|
|
4048
4118
|
_optimizeObject = true;
|
|
4049
4119
|
_isPageUnloadTriggered = false;
|
|
4050
|
-
_disableXhrSync = false;
|
|
4051
4120
|
_maxEventSendAttempts = MaxSendAttempts;
|
|
4052
4121
|
_maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
4053
4122
|
_evtNamespace = null;
|
|
@@ -4079,7 +4148,9 @@
|
|
|
4079
4148
|
_timeoutWrapper.clear(_scheduledTimerId);
|
|
4080
4149
|
_scheduledTimerId = null;
|
|
4081
4150
|
_timerCount = 0;
|
|
4151
|
+
return true;
|
|
4082
4152
|
}
|
|
4153
|
+
return false;
|
|
4083
4154
|
}
|
|
4084
4155
|
function _releaseAllQueues(sendType, sendReason) {
|
|
4085
4156
|
_clearScheduledTimer();
|
|
@@ -4243,18 +4314,20 @@
|
|
|
4243
4314
|
}
|
|
4244
4315
|
function _flushImpl(callback, sendReason) {
|
|
4245
4316
|
_sendEventsForLatencyAndAbove(1 , 0 , sendReason);
|
|
4317
|
+
_resetQueueCounts();
|
|
4246
4318
|
_waitForIdleManager(function () {
|
|
4247
4319
|
if (callback) {
|
|
4248
4320
|
callback();
|
|
4249
4321
|
}
|
|
4250
4322
|
if (_flushCallbackQueue.length > 0) {
|
|
4251
|
-
_flushCallbackTimerId = _createTimer(function () {
|
|
4323
|
+
_flushCallbackTimerId = _createTimer(function () {
|
|
4324
|
+
_flushCallbackTimerId = null;
|
|
4325
|
+
_flushImpl(_flushCallbackQueue.shift(), sendReason);
|
|
4326
|
+
}, 0);
|
|
4252
4327
|
}
|
|
4253
4328
|
else {
|
|
4254
4329
|
_flushCallbackTimerId = null;
|
|
4255
|
-
|
|
4256
|
-
_scheduleTimer();
|
|
4257
|
-
}
|
|
4330
|
+
_scheduleTimer();
|
|
4258
4331
|
}
|
|
4259
4332
|
});
|
|
4260
4333
|
}
|
|
@@ -4264,6 +4337,7 @@
|
|
|
4264
4337
|
}
|
|
4265
4338
|
else {
|
|
4266
4339
|
_flushCallbackTimerId = _createTimer(function () {
|
|
4340
|
+
_flushCallbackTimerId = null;
|
|
4267
4341
|
_waitForIdleManager(callback);
|
|
4268
4342
|
}, FlushCheckTimer);
|
|
4269
4343
|
}
|
|
@@ -4387,6 +4461,7 @@
|
|
|
4387
4461
|
});
|
|
4388
4462
|
return _this;
|
|
4389
4463
|
}
|
|
4464
|
+
PostChannel.__ieDyn=1;
|
|
4390
4465
|
return PostChannel;
|
|
4391
4466
|
}(BaseTelemetryPlugin));
|
|
4392
4467
|
var PostChannel$1 = PostChannel;
|
|
@@ -4399,4 +4474,4 @@
|
|
|
4399
4474
|
(function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
|
|
4400
4475
|
|
|
4401
4476
|
})(this.oneDS = this.oneDS || {});
|
|
4402
|
-
//# sourceMappingURL=ms.post-3.2.
|
|
4477
|
+
//# sourceMappingURL=ms.post-3.2.5.gbl.js.map
|