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