@cloudcare/browser-core 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/cjs/browser/htmlDomUtils.js +10 -4
  2. package/cjs/browser/htmlDomUtils.js.map +1 -1
  3. package/cjs/configuration/configuration.js +2 -1
  4. package/cjs/configuration/configuration.js.map +1 -1
  5. package/cjs/helper/enums.js +2 -1
  6. package/cjs/helper/enums.js.map +1 -1
  7. package/cjs/helper/serialisation/contextManager.js +20 -5
  8. package/cjs/helper/serialisation/contextManager.js.map +1 -1
  9. package/cjs/helper/serialisation/storedContextManager.js +47 -0
  10. package/cjs/helper/serialisation/storedContextManager.js.map +1 -0
  11. package/cjs/helper/tools.js +18 -3
  12. package/cjs/helper/tools.js.map +1 -1
  13. package/cjs/index.js +11 -0
  14. package/cjs/index.js.map +1 -1
  15. package/cjs/telemetry/telemetry.js.map +1 -1
  16. package/cjs/transport/sendWithRetryStrategy.js +0 -5
  17. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  18. package/esm/browser/htmlDomUtils.js +9 -3
  19. package/esm/browser/htmlDomUtils.js.map +1 -1
  20. package/esm/configuration/configuration.js +2 -1
  21. package/esm/configuration/configuration.js.map +1 -1
  22. package/esm/helper/enums.js +2 -1
  23. package/esm/helper/enums.js.map +1 -1
  24. package/esm/helper/serialisation/contextManager.js +21 -6
  25. package/esm/helper/serialisation/contextManager.js.map +1 -1
  26. package/esm/helper/serialisation/storedContextManager.js +39 -0
  27. package/esm/helper/serialisation/storedContextManager.js.map +1 -0
  28. package/esm/helper/tools.js +17 -3
  29. package/esm/helper/tools.js.map +1 -1
  30. package/esm/index.js +1 -0
  31. package/esm/index.js.map +1 -1
  32. package/esm/telemetry/telemetry.js.map +1 -1
  33. package/esm/transport/sendWithRetryStrategy.js +0 -5
  34. package/esm/transport/sendWithRetryStrategy.js.map +1 -1
  35. package/package.json +2 -2
  36. package/src/browser/htmlDomUtils.js +8 -3
  37. package/src/configuration/configuration.js +2 -1
  38. package/src/helper/enums.js +2 -1
  39. package/src/helper/serialisation/contextManager.js +21 -6
  40. package/src/helper/serialisation/storedContextManager.js +56 -0
  41. package/src/helper/tools.js +18 -4
  42. package/src/index.js +1 -0
  43. package/src/telemetry/telemetry.js +4 -3
  44. package/src/transport/sendWithRetryStrategy.js +1 -5
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","names":["display","setTimeout","clearTimeout","ArrayProto","Array","prototype","FuncProto","Function","ObjProto","Object","slice","toString","hasOwnProperty","nativeForEach","forEach","nativeIsArray","isArray","breaker","each","obj","iterator","context","length","i","l","call","key","assign","target","arguments","source","prop","shallowClone","object","extend","extend2Lev","isObject","coverExtend","isFunction","f","test","err","isArguments","toArray","iterable","values","results","value","keys","indexOf","arr","hasAttribute","ele","attr","attributes","specified","filter","fn","self","ret","val","push","map","some","flag","every","matchList","list","useStartsWith","undefined","item","RegExp","startsWith","e","error","cssEscape","str","window","CSS","escape","replace","ch","asCodePoint","charCodeAt","inherit","subclass","superclass","F","constructor","tirm","isEmptyObject","objectEntries","res","isUndefined","isString","isDate","isBoolean","isNumber","String","isElement","nodeType","isJSONString","JSON","parse","safeJSONParse","decodeURIComponent","result","encodeDates","v","k","formatDate","mediaQueriesSupported","matchMedia","msMatchMedia","getScreenOrientation","screenOrientationAPI","screen","msOrientation","mozOrientation","orientation","type","screenOrientation","matchMediaFunc","matches","now","Date","getTime","throttle","wait","options","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","pendingExecutionWithParameters","pendingTimeoutId","throttled","apply","cancel","hashCode","hash","char","d","pad","n","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","searchObjDate","o","a","b","formatJsonString","stringify","searchObjString","formatString","unique","ar","temp","strip_empty_properties","p","utf8Encode","string","utftext","start","end","stringl","c1","enc","fromCharCode","substring","base64Encode","data","btoa","encodeURIComponent","match","p1","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","tmp_arr","charAt","join","UUID","placeholder","parseInt","Math","random","concat","replaceNumberCharByPath","path","pathGroup","getQueryParam","url","param","regexS","regex","exec","urlParse","para","URLParser","_fields","Username","Password","Port","Protocol","Host","Path","URL","QueryString","Fragment","_values","_regex","_parse","setUrl","_initValues","addQueryString","queryObj","_typeof","query","getParse","getUrl","Origin","c","elementMatches","element","selector","msMatchesSelector","cookie","get","name","nameEQ","ca","document","split","set","days","is_secure","cdomain","expires","secure","date","setTime","Number","toGMTString","remove","localStorage","getItem","storedValue","sd","log","setItem","removeItem","isSupport","supported","sessionStorage","isSupportCors","XMLHttpRequest","XDomainRequest","xhr","cors","ActiveXObject","console","ajax","timeout","credentials","getJSON","g","success","abort","e2","onreadystatechange","readyState","status","responseText","onload","open","withCredentials","header","setRequestHeader","contentType","send","loadScript","appendCall","getElementsByTagName","appendChild","createElement","rel","href","async","setAttribute","src","onerror","getHostname","defaultValue","hostname","getQueryParamsFromUrl","queryString","getURLSearchParams","decodeParam","args","pairs","pos","createCircularReferenceChecker","WeakSet","hasAlreadyBeenSeen","has","add","array","getType","mergeInto","destination","circularReferenceChecker","flags","global","ignoreCase","multiline","sticky","unicode","merged","deepClone","_URL","basicProps","isURLAPIWorking","searchParams","params","search","searchParam","link","pathname","getCurrentDomain","cookieTopLevelDomain","getCookieTopLevelDomain","location","splitResult","domainStr","splice","strToUnicode","nstr","autoExeQueue","queue","items","enqueue","dequeue","shift","getCurrentItem","isRun","close","strip_sa_properties","arrv","searchConfigData","$option","data_config","stringSplice","sp","ps","pe","getStatusGroup","substr","getReferrer","ref","referrer","toLowerCase","re","typeDecide","noop","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","performDraw","threshold","round","num","decimals","toFixed","msToNs","duration","mapValues","newObject","toServerDuration","getRelativeTime","timestamp","getNavigationStart","preferredNow","relativeNow","getTimestamp","relativeTime","performance","clocksNow","relative","timeStamp","timeStampNow","dateNow","looksLikeRelativeTime","time","elapsed","clocksOrigin","preferredClock","clocks","preferredTimeStamp","relativeToClocks","getCorrectedTimeStamp","currentDrift","addDuration","correctedOrigin","navigationStart","timing","findCommaSeparatedValue","rawString","findByPath","pathArr","safeTruncate","candidate","lastChar","isMatchOption","itemType","includes","find","predicate","arrayFrom","arrayLike","from","Set","findLast","isPercentage","getLocationOrigin","getLinkElementOrigin","isIE","Boolean","documentMode","isChromium","chrome","navigator","userAgent","origin","sanitizedHost","host","protocol","withSnakeCaseKeys","toSnakeCase","deepSnakeCase","word","uppercaseLetter","index","isNullUndefinedDefaultValue","objectHasValue","endsWith","tryToClone","response","clone","isHashAnAnchor","correspondingId","getElementById","getPathFromHash"],"sources":["../../src/helper/tools.js"],"sourcesContent":["import { display } from './display'\nimport { setTimeout, clearTimeout } from './timer'\nvar ArrayProto = Array.prototype\nvar FuncProto = Function.prototype\nvar ObjProto = Object.prototype\nvar slice = ArrayProto.slice\nvar toString = ObjProto.toString\nvar hasOwnProperty = ObjProto.hasOwnProperty\nvar nativeForEach = ArrayProto.forEach\nvar nativeIsArray = Array.isArray\nvar breaker = false\nexport var each = function (obj, iterator, context) {\n if (obj === null) return false\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context)\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return false\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return false\n }\n }\n }\n }\n}\nexport function assign(target) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\n target[prop] = source[prop]\n }\n }\n })\n return target\n}\n\nexport function shallowClone(object) {\n return assign({}, object)\n}\nexport var extend = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\nexport var extend2Lev = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n if (isObject(source[prop]) && isObject(obj[prop])) {\n extend(obj[prop], source[prop])\n } else {\n obj[prop] = source[prop]\n }\n }\n }\n })\n return obj\n}\nexport var coverExtend = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0 && obj[prop] === void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\nexport var isArray =\n nativeIsArray ||\n function (obj) {\n return toString.call(obj) === '[object Array]'\n }\nexport var isFunction = function (f) {\n if (!f) {\n return false\n }\n try {\n return /^\\s*\\bfunction\\b/.test(f)\n } catch (err) {\n return false\n }\n}\nexport var isArguments = function (obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'))\n}\nexport var toArray = function (iterable) {\n if (!iterable) return []\n if (iterable.toArray) {\n return iterable.toArray()\n }\n if (isArray(iterable)) {\n return slice.call(iterable)\n }\n if (isArguments(iterable)) {\n return slice.call(iterable)\n }\n return values(iterable)\n}\nexport var values = function (obj) {\n var results = []\n if (obj === null) {\n return results\n }\n each(obj, function (value) {\n results[results.length] = value\n })\n return results\n}\nexport var keys = function (obj) {\n var results = []\n if (obj === null) {\n return results\n }\n each(obj, function (value, key) {\n results[results.length] = key\n })\n return results\n}\nexport var indexOf = function (arr, target) {\n var indexOf = arr.indexOf\n if (indexOf) {\n return indexOf.call(arr, target)\n } else {\n for (var i = 0; i < arr.length; i++) {\n if (target === arr[i]) {\n return i\n }\n }\n return -1\n }\n}\nexport var hasAttribute = function (ele, attr) {\n if (ele.hasAttribute) {\n return ele.hasAttribute(attr)\n } else {\n return !!(ele.attributes[attr] && ele.attributes[attr].specified)\n }\n}\nexport var filter = function (arr, fn, self) {\n if (arr.filter) {\n return arr.filter(fn)\n }\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (fn.call(self, val, i, arr)) {\n ret.push(val)\n }\n }\n return ret\n}\nexport var map = function (arr, fn, self) {\n if (arr.map) {\n return arr.map(fn)\n }\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n ret.push(fn.call(self, val, i, arr))\n }\n return ret\n}\nexport var some = function (arr, fn, self) {\n if (arr.some) {\n return arr.some(fn)\n }\n var flag = false\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (fn.call(self, val, i, arr)) {\n flag = true\n break\n }\n }\n return flag\n}\nexport var every = function (arr, fn, self) {\n if (arr.every) {\n return arr.every(fn)\n }\n var flag = true\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (!fn.call(self, val, i, arr)) {\n flag = false\n break\n }\n }\n return flag\n}\nexport var matchList = function (list, value, useStartsWith) {\n if (useStartsWith === undefined) {\n useStartsWith = false\n }\n return some(list, function (item) {\n try {\n if (typeof item === 'function') {\n return item(value)\n } else if (item instanceof RegExp) {\n return item.test(value)\n } else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value\n }\n } catch (e) {\n display.error(e)\n }\n })\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport var cssEscape = function (str) {\n str = str + ''\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str)\n }\n\n // eslint-disable-next-line no-control-regex\n return str.replace(\n /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,\n function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD'\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return (\n ch.slice(0, -1) +\n '\\\\' +\n ch.charCodeAt(ch.length - 1).toString(16) +\n ' '\n )\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return '\\\\' + ch\n }\n )\n}\nexport var inherit = function (subclass, superclass) {\n var F = function () {}\n F.prototype = superclass.prototype\n subclass.prototype = new F()\n subclass.prototype.constructor = subclass\n subclass.superclass = superclass.prototype\n return subclass\n}\nexport var tirm = function (str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\nexport var isObject = function (obj) {\n if (obj === null) return false\n return toString.call(obj) === '[object Object]'\n}\n\nexport var isEmptyObject = function (obj) {\n if (isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false\n }\n }\n return true\n } else {\n return false\n }\n}\nexport var objectEntries = function (object) {\n var res = []\n each(object, function (value, key) {\n res.push([key, value])\n })\n return res\n}\nexport var isUndefined = function (obj) {\n return obj === void 0\n}\nexport var isString = function (obj) {\n return toString.call(obj) === '[object String]'\n}\nexport var isDate = function (obj) {\n return toString.call(obj) === '[object Date]'\n}\nexport var isBoolean = function (obj) {\n return toString.call(obj) === '[object Boolean]'\n}\nexport var isNumber = function (obj) {\n return toString.call(obj) === '[object Number]' && /[\\d\\.]+/.test(String(obj))\n}\nexport var isElement = function (obj) {\n return !!(obj && obj.nodeType === 1)\n}\nexport var isJSONString = function (str) {\n try {\n JSON.parse(str)\n } catch (e) {\n return false\n }\n return true\n}\nexport var safeJSONParse = function (str) {\n var val = null\n try {\n val = JSON.parse(str)\n } catch (e) {\n return false\n }\n return val\n}\nexport var decodeURIComponent = function (val) {\n var result = val\n try {\n result = decodeURIComponent(val)\n } catch (error) {\n result = val\n }\n return result\n}\nexport var encodeDates = function (obj) {\n each(obj, function (v, k) {\n if (isDate(v)) {\n obj[k] = formatDate(v)\n } else if (isObject(v)) {\n obj[k] = encodeDates(v)\n }\n })\n return obj\n}\nexport var mediaQueriesSupported = function () {\n return (\n typeof window.matchMedia !== 'undefined' ||\n typeof window.msMatchMedia !== 'undefined'\n )\n}\nexport var getScreenOrientation = function () {\n var screenOrientationAPI =\n screen.msOrientation ||\n screen.mozOrientation ||\n (screen.orientation || {}).type\n var screenOrientation = '未取到值'\n if (screenOrientationAPI) {\n screenOrientation =\n screenOrientationAPI.indexOf('landscape') > -1 ? 'landscape' : 'portrait'\n } else if (mediaQueriesSupported()) {\n var matchMediaFunc = window.matchMedia || window.msMatchMedia\n if (matchMediaFunc('(orientation: landscape)').matches) {\n screenOrientation = 'landscape'\n } else if (matchMediaFunc('(orientation: portrait)').matches) {\n screenOrientation = 'portrait'\n }\n }\n return screenOrientation\n}\nexport var now =\n Date.now ||\n function () {\n return new Date().getTime()\n }\n\nexport var throttle = function (fn, wait, options) {\n var needLeadingExecution =\n options && options.leading !== undefined ? options.leading : true\n var needTrailingExecution =\n options && options.trailing !== undefined ? options.trailing : true\n let inWaitPeriod = false\n let pendingExecutionWithParameters\n let pendingTimeoutId\n var context = this\n return {\n throttled: function () {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = arguments\n return\n }\n\n if (needLeadingExecution) {\n fn.apply(context, arguments)\n } else {\n pendingExecutionWithParameters = arguments\n }\n inWaitPeriod = true\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(context, pendingExecutionWithParameters)\n }\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }, wait)\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId)\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }\n }\n}\nexport var hashCode = function (str) {\n if (typeof str !== 'string') {\n return 0\n }\n var hash = 0\n var char = null\n if (str.length == 0) {\n return hash\n }\n for (var i = 0; i < str.length; i++) {\n char = str.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash = hash & hash\n }\n return hash\n}\nexport var formatDate = function (d) {\n function pad(n) {\n return n < 10 ? '0' + n : n\n }\n\n return (\n d.getFullYear() +\n '-' +\n pad(d.getMonth() + 1) +\n '-' +\n pad(d.getDate()) +\n ' ' +\n pad(d.getHours()) +\n ':' +\n pad(d.getMinutes()) +\n ':' +\n pad(d.getSeconds()) +\n '.' +\n pad(d.getMilliseconds())\n )\n}\nexport var searchObjDate = function (o) {\n if (isObject(o)) {\n each(o, function (a, b) {\n if (isObject(a)) {\n searchObjDate(o[b])\n } else {\n if (isDate(a)) {\n o[b] = formatDate(a)\n }\n }\n })\n }\n}\nexport var formatJsonString = function (obj) {\n try {\n return JSON.stringify(obj, null, ' ')\n } catch (e) {\n return JSON.stringify(obj)\n }\n}\n// export var formatString = function (str) {\n// if (str.length > MAX_STRING_LENGTH) {\n// sd.log('字符串长度超过限制,已经做截取--' + str)\n// return str.slice(0, MAX_STRING_LENGTH)\n// } else {\n// return str\n// }\n// }\nexport var searchObjString = function (o) {\n if (isObject(o)) {\n each(o, function (a, b) {\n if (isObject(a)) {\n searchObjString(o[b])\n } else {\n if (isString(a)) {\n o[b] = formatString(a)\n }\n }\n })\n }\n}\nexport var unique = function (ar) {\n var temp,\n n = [],\n o = {}\n for (var i = 0; i < ar.length; i++) {\n temp = ar[i]\n if (!(temp in o)) {\n o[temp] = true\n n.push(temp)\n }\n }\n return n\n}\nexport var strip_empty_properties = function (p) {\n var ret = {}\n each(p, function (v, k) {\n if (v != null) {\n ret[k] = v\n }\n })\n return ret\n}\nexport var utf8Encode = function (string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n var utftext = '',\n start,\n end\n var stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n)\n var enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode(\n (c1 >> 12) | 224,\n ((c1 >> 6) & 63) | 128,\n (c1 & 63) | 128\n )\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\nexport var base64Encode = function (data) {\n if (typeof btoa === 'function') {\n return btoa(\n encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode('0x' + p1)\n })\n )\n }\n data = String(data)\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n var o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = '',\n tmp_arr = []\n if (!data) {\n return data\n }\n data = utf8Encode(data)\n do {\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n tmp_arr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function UUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (\n parseInt(placeholder, 10) ^\n ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))\n ).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, UUID)\n}\n\n// 替换url包含数字的路由\nexport function replaceNumberCharByPath(path) {\n var pathGroup = ''\n if (path) {\n pathGroup = path.replace(/\\/([^\\/]*)\\d([^\\/]*)/g, '/?').replace(/\\/$/g, '')\n }\n return pathGroup || '/'\n}\nexport var getQueryParam = function (url, param) {\n param = param.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]')\n url = decodeURIComponent(url)\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url)\n if (\n results === null ||\n (results && typeof results[1] !== 'string' && results[1].length)\n ) {\n return ''\n } else {\n return decodeURIComponent(results[1])\n }\n}\nexport var urlParse = function (para) {\n var URLParser = function (a) {\n this._fields = {\n Username: 4,\n Password: 5,\n Port: 7,\n Protocol: 2,\n Host: 6,\n Path: 8,\n URL: 0,\n QueryString: 9,\n Fragment: 10\n }\n this._values = {}\n this._regex = null\n this._regex =\n /^((\\w+):\\/\\/)?((\\w+):?(\\w+)?@)?([^\\/\\?:]+):?(\\d+)?(\\/?[^\\?#]+)?\\??([^#]+)?#?(\\w*)/\n\n if (typeof a != 'undefined') {\n this._parse(a)\n }\n }\n URLParser.prototype.setUrl = function (a) {\n this._parse(a)\n }\n URLParser.prototype._initValues = function () {\n for (var a in this._fields) {\n this._values[a] = ''\n }\n }\n URLParser.prototype.addQueryString = function (queryObj) {\n if (typeof queryObj !== 'object') {\n return false\n }\n var query = this._values.QueryString || ''\n for (var i in queryObj) {\n if (new RegExp(i + '[^&]+').test(query)) {\n query = query.replace(new RegExp(i + '[^&]+'), i + '=' + queryObj[i])\n } else {\n if (query.slice(-1) === '&') {\n query = query + i + '=' + queryObj[i]\n } else {\n if (query === '') {\n query = i + '=' + queryObj[i]\n } else {\n query = query + '&' + i + '=' + queryObj[i]\n }\n }\n }\n }\n this._values.QueryString = query\n }\n URLParser.prototype.getParse = function () {\n return this._values\n }\n URLParser.prototype.getUrl = function () {\n var url = ''\n url += this._values.Origin\n // url += this._values.Port ? ':' + this._values.Port : ''\n url += this._values.Path\n url += this._values.QueryString ? '?' + this._values.QueryString : ''\n return url\n }\n URLParser.prototype._parse = function (a) {\n this._initValues()\n var b = this._regex.exec(a)\n if (!b) {\n throw 'DPURLParser::_parse -> Invalid URL'\n }\n for (var c in this._fields) {\n if (typeof b[this._fields[c]] != 'undefined') {\n this._values[c] = b[this._fields[c]]\n }\n }\n this._values['Path'] = this._values['Path'] || '/'\n this._values['Hostname'] = this._values['Host'].replace(/:\\d+$/, '')\n this._values['Origin'] =\n this._values['Protocol'] +\n '://' +\n this._values['Hostname'] +\n (this._values.Port ? ':' + this._values.Port : '')\n // this._values['Hostname'] = this._values['Host'].replace(/:\\d+$/, '')\n // this._values['Origin'] =\n // this._values['Protocol'] + '://' + this._values['Hostname']\n }\n return new URLParser(para)\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector)\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector)\n }\n return false\n}\n\nexport var cookie = {\n get: function (name) {\n var nameEQ = name + '='\n var ca = document.cookie.split(';')\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i]\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n },\n set: function (name, value, days, is_secure) {\n var cdomain = '',\n expires = '',\n secure = ''\n days = days == null ? 73000 : days\n if (days !== 0) {\n var date = new Date()\n if (String(days).slice(-1) === 's') {\n date.setTime(date.getTime() + Number(String(days).slice(0, -1)) * 1000)\n } else {\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n }\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (is_secure) {\n secure = '; secure'\n }\n\n document.cookie =\n name +\n '=' +\n encodeURIComponent(value) +\n expires +\n '; path=/' +\n cdomain +\n secure\n },\n\n remove: function (name) {\n cookie.set(name, '', -1)\n }\n}\nexport var localStorage = {\n get: function (name) {\n return window.localStorage.getItem(name)\n },\n\n parse: function (name) {\n var storedValue\n try {\n storedValue = JSON.parse(localStorage.get(name)) || null\n } catch (err) {\n sd.log(err)\n }\n return storedValue\n },\n\n set: function (name, value) {\n window.localStorage.setItem(name, value)\n },\n\n remove: function (name) {\n window.localStorage.removeItem(name)\n },\n\n isSupport: function () {\n var supported = true\n try {\n var key = '__sensorsdatasupport__'\n var val = 'testIsSupportStorage'\n localStorage.set(key, val)\n if (localStorage.get(key) !== val) {\n supported = false\n }\n localStorage.remove(key)\n } catch (err) {\n supported = false\n }\n return supported\n }\n}\nexport var sessionStorage = {\n isSupport: function () {\n var supported = true\n\n var key = '__sensorsdatasupport__'\n var val = 'testIsSupportStorage'\n try {\n if (sessionStorage && sessionStorage.setItem) {\n sessionStorage.setItem(key, val)\n sessionStorage.removeItem(key, val)\n supported = true\n } else {\n supported = false\n }\n } catch (e) {\n supported = false\n }\n return supported\n }\n}\nexport var isSupportCors = function () {\n if (typeof window.XMLHttpRequest === 'undefined') {\n return false\n }\n if ('withCredentials' in new XMLHttpRequest()) {\n return true\n } else if (typeof XDomainRequest !== 'undefined') {\n return true\n } else {\n return false\n }\n}\nexport var xhr = function (cors) {\n if (cors) {\n if (\n typeof window.XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest()\n ) {\n return new XMLHttpRequest()\n } else if (typeof XDomainRequest !== 'undefined') {\n return new XDomainRequest()\n } else {\n return null\n }\n } else {\n if (typeof window.XMLHttpRequest !== 'undefined') {\n return new XMLHttpRequest()\n }\n if (window.ActiveXObject) {\n try {\n return new ActiveXObject('Msxml2.XMLHTTP')\n } catch (d) {\n try {\n return new ActiveXObject('Microsoft.XMLHTTP')\n } catch (d) {\n console.log(d)\n }\n }\n }\n }\n}\nexport var ajax = function (para) {\n para.timeout = para.timeout || 20000\n\n para.credentials =\n typeof para.credentials === 'undefined' ? true : para.credentials\n\n function getJSON(data) {\n if (!data) {\n return ''\n }\n try {\n return JSON.parse(data)\n } catch (e) {\n return {}\n }\n }\n\n var g = xhr(para.cors)\n\n if (!g) {\n return false\n }\n\n if (!para.type) {\n para.type = para.data ? 'POST' : 'GET'\n }\n para = extend(\n {\n success: function () {},\n error: function () {}\n },\n para\n )\n\n try {\n if (typeof g === 'object' && 'timeout' in g) {\n g.timeout = para.timeout\n } else {\n setTimeout(function () {\n g.abort()\n }, para.timeout + 500)\n }\n } catch (e) {\n try {\n setTimeout(function () {\n g.abort()\n }, para.timeout + 500)\n } catch (e2) {}\n }\n\n g.onreadystatechange = function () {\n try {\n if (g.readyState == 4) {\n if ((g.status >= 200 && g.status < 300) || g.status == 304) {\n para.success(getJSON(g.responseText))\n } else {\n para.error(getJSON(g.responseText), g.status)\n }\n g.onreadystatechange = null\n g.onload = null\n }\n } catch (e) {\n g.onreadystatechange = null\n g.onload = null\n }\n }\n\n g.open(para.type, para.url, true)\n\n try {\n if (para.credentials) {\n g.withCredentials = true\n }\n if (isObject(para.header)) {\n for (var i in para.header) {\n g.setRequestHeader(i, para.header[i])\n }\n }\n\n if (para.data) {\n if (!para.cors) {\n g.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n }\n if (para.contentType === 'application/json') {\n g.setRequestHeader('Content-type', 'application/json; charset=UTF-8')\n } else {\n g.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')\n }\n }\n } catch (e) {}\n\n g.send(para.data || null)\n}\nexport var loadScript = function (para) {\n para = extend(\n {\n success: function () {},\n error: function () {},\n appendCall: function (g) {\n document.getElementsByTagName('head')[0].appendChild(g)\n }\n },\n para\n )\n\n var g = null\n if (para.type === 'css') {\n g = document.createElement('link')\n g.rel = 'stylesheet'\n g.href = para.url\n }\n if (para.type === 'js') {\n g = document.createElement('script')\n g.async = 'async'\n g.setAttribute('charset', 'UTF-8')\n g.src = para.url\n g.type = 'text/javascript'\n }\n g.onload = g.onreadystatechange = function () {\n if (\n !this.readyState ||\n this.readyState === 'loaded' ||\n this.readyState === 'complete'\n ) {\n para.success()\n g.onload = g.onreadystatechange = null\n }\n }\n g.onerror = function () {\n para.error()\n g.onerror = null\n }\n para.appendCall(g)\n}\nexport var getHostname = function (url, defaultValue) {\n if (!defaultValue || typeof defaultValue !== 'string') {\n defaultValue = 'hostname解析异常'\n }\n var hostname = null\n try {\n hostname = URL(url).hostname\n } catch (e) {}\n return hostname || defaultValue\n}\nexport var getQueryParamsFromUrl = function (url) {\n var result = {}\n var arr = url.split('?')\n var queryString = arr[1] || ''\n if (queryString) {\n result = getURLSearchParams('?' + queryString)\n }\n return result\n}\n\nexport var getURLSearchParams = function (queryString) {\n queryString = queryString || ''\n var decodeParam = function (str) {\n return decodeURIComponent(str)\n }\n var args = {}\n var query = queryString.substring(1)\n var pairs = query.split('&')\n for (var i = 0; i < pairs.length; i++) {\n var pos = pairs[i].indexOf('=')\n if (pos === -1) continue\n var name = pairs[i].substring(0, pos)\n var value = pairs[i].substring(pos + 1)\n name = decodeParam(name)\n value = decodeParam(value)\n args[name] = value\n }\n return args\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set = new WeakSet()\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set.has(value)\n if (!has) {\n set.add(value)\n }\n return has\n }\n }\n }\n var array = []\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0\n if (!has) {\n array.push(value)\n }\n return has\n }\n }\n}\n/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null'\n }\n if (Array.isArray(value)) {\n return 'array'\n }\n return typeof value\n}\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n // ignore the source if it is undefined\n if (typeof circularReferenceChecker === 'undefined') {\n circularReferenceChecker = createCircularReferenceChecker()\n }\n if (source === undefined) {\n return destination\n }\n\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source\n } else if (source instanceof Date) {\n return new Date(source.getTime())\n } else if (source instanceof RegExp) {\n var flags =\n source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : ''\n ].join('')\n return new RegExp(source.source, flags)\n }\n\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined\n } else if (Array.isArray(source)) {\n var merged = Array.isArray(destination) ? destination : []\n for (var i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker)\n }\n return merged\n }\n\n var merged = getType(destination) === 'object' ? destination : {}\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(\n merged[key],\n source[key],\n circularReferenceChecker\n )\n }\n }\n return merged\n}\n\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value)\n}\nexport var _URL = function (url) {\n var result = {}\n var basicProps = [\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'origin',\n 'password',\n 'pathname',\n 'port',\n 'protocol',\n 'search',\n 'username'\n ]\n var isURLAPIWorking = function () {\n var url\n try {\n url = new URL('http://modernizr.com/')\n return url.href === 'http://modernizr.com/'\n } catch (e) {\n return false\n }\n }\n if (typeof window.URL === 'function' && isURLAPIWorking()) {\n result = new URL(url)\n if (!result.searchParams) {\n result.searchParams = (function () {\n var params = getURLSearchParams(result.search)\n return {\n get: function (searchParam) {\n return params[searchParam]\n }\n }\n })()\n }\n } else {\n var _regex = /^https?:\\/\\/.+/\n if (_regex.test(url) === false) {\n throw 'Invalid URL'\n }\n var link = document.createElement('a')\n link.href = url\n for (var i = basicProps.length - 1; i >= 0; i--) {\n var prop = basicProps[i]\n result[prop] = link[prop]\n }\n if (\n result.hostname &&\n typeof result.pathname === 'string' &&\n result.pathname.indexOf('/') !== 0\n ) {\n result.pathname = '/' + result.pathname\n }\n result.searchParams = (function () {\n var params = getURLSearchParams(result.search)\n return {\n get: function (searchParam) {\n return params[searchParam]\n }\n }\n })()\n }\n return result\n}\n\nexport var getCurrentDomain = function (url) {\n var cookieTopLevelDomain = getCookieTopLevelDomain()\n if (url === '') {\n return 'url解析失败'\n } else if (cookieTopLevelDomain === '') {\n return 'url解析失败'\n } else {\n return cookieTopLevelDomain\n }\n}\nexport var getCookieTopLevelDomain = function (hostname) {\n hostname = hostname || window.location.hostname\n var splitResult = hostname.split('.')\n if (\n isArray(splitResult) &&\n splitResult.length >= 2 &&\n !/^(\\d+\\.)+\\d+$/.test(hostname)\n ) {\n var domainStr = '.' + splitResult.splice(splitResult.length - 1, 1)\n while (splitResult.length > 0) {\n domainStr =\n '.' + splitResult.splice(splitResult.length - 1, 1) + domainStr\n document.cookie = 'domain_test=true; path=/; domain=' + domainStr\n if (document.cookie.indexOf('domain_test=true') !== -1) {\n var now = new Date()\n now.setTime(now.getTime() - 1000)\n document.cookie =\n 'domain_test=true; expires=' +\n now.toGMTString() +\n '; path=/; domain=' +\n domainStr\n return domainStr\n }\n }\n }\n return ''\n}\nexport var strToUnicode = function (str) {\n if (typeof str !== 'string') {\n return str\n }\n var nstr = ''\n for (var i = 0; i < str.length; i++) {\n nstr += '\\\\' + str.charCodeAt(i).toString(16)\n }\n return nstr\n}\nexport var autoExeQueue = function () {\n var queue = {\n items: [],\n enqueue: function (val) {\n this.items.push(val)\n this.start()\n },\n dequeue: function () {\n return this.items.shift()\n },\n getCurrentItem: function () {\n return this.items[0]\n },\n isRun: false,\n start: function () {\n if (this.items.length > 0 && !this.isRun) {\n this.isRun = true\n this.getCurrentItem().start()\n }\n },\n close: function () {\n this.dequeue()\n this.isRun = false\n this.start()\n }\n }\n return queue\n}\nexport var strip_sa_properties = function (p) {\n if (!isObject(p)) {\n return p\n }\n each(p, function (v, k) {\n if (isArray(v)) {\n var temp = []\n each(v, function (arrv) {\n if (isString(arrv)) {\n temp.push(arrv)\n } else {\n console.log(\n '您的数据-',\n k,\n v,\n '的数组里的值必须是字符串,已经将其删除'\n )\n }\n })\n if (temp.length !== 0) {\n p[k] = temp\n } else {\n delete p[k]\n console.log('已经删除空的数组')\n }\n }\n if (\n !(\n isString(v) ||\n isNumber(v) ||\n isDate(v) ||\n isBoolean(v) ||\n isArray(v) ||\n isFunction(v) ||\n k === '$option'\n )\n ) {\n console.log('您的数据-', k, v, '-格式不满足要求,我们已经将其删除')\n delete p[k]\n }\n })\n return p\n}\n\nexport var searchConfigData = function (data) {\n if (typeof data === 'object' && data.$option) {\n var data_config = data.$option\n delete data.$option\n return data_config\n } else {\n return {}\n }\n}\n// 从字符串 src 中查找 k+sp 和 e 之间的字符串,如果 k==e 且 k 只有一个,或者 e 不存在,从 k+sp 截取到字符串结束\n// abcd=1&b=1&c=3;\n// abdc=1;b=1;a=3;\nexport var stringSplice = function (src, k, e, sp) {\n if (src === '') {\n return ''\n }\n sp = sp === '' ? '=' : sp\n k += sp\n var ps = src.indexOf(k)\n if (ps < 0) {\n return ''\n }\n ps += k.length\n var pe = pe < ps ? src.length : src.indexOf(e, ps)\n return src.substring(ps, pe)\n}\nexport function getStatusGroup(status) {\n if (!status) return status\n return (\n String(status).substr(0, 1) + String(status).substr(1).replace(/\\d*/g, 'x')\n )\n}\nexport var getReferrer = function () {\n var ref = document.referrer.toLowerCase()\n var re = /^[^\\?&#]*.swf([\\?#])?/\n // 如果页面 Referer 为空,从 URL 中获取\n if (ref === '' || ref.match(re)) {\n ref = stringSplice(window.location.href, 'ref', '&', '')\n if (ref !== '') {\n return encodeURIComponent(ref)\n }\n }\n return encodeURIComponent(ref)\n}\nexport var typeDecide = function (o, type) {\n return toString.call(o) === '[object ' + type + ']'\n}\n\nexport function noop() {}\n\nexport var ONE_SECOND = 1000\nexport var ONE_MINUTE = 60 * ONE_SECOND\nexport var ONE_HOUR = 60 * ONE_MINUTE\nexport var ONE_DAY = 24 * ONE_HOUR\nexport var ONE_YEAR = 365 * ONE_DAY\n\n/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold\n}\n\nexport function round(num, decimals) {\n return +num.toFixed(decimals)\n}\n\nexport function msToNs(duration) {\n if (typeof duration !== 'number') {\n return duration\n }\n return round(duration * 1e6, 0)\n}\nexport function mapValues(object, fn) {\n var newObject = {}\n each(object, function (value, key) {\n newObject[key] = fn(value)\n })\n\n return newObject\n}\n\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration\n }\n return round(duration * 1e6, 0)\n}\nexport function getRelativeTime(timestamp) {\n return timestamp - getNavigationStart()\n}\nexport function preferredNow() {\n return relativeNow()\n}\nexport function getTimestamp(relativeTime) {\n return Math.round(getNavigationStart() + relativeTime)\n}\nexport function relativeNow() {\n return performance.now()\n}\n\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() }\n}\nexport function timeStampNow() {\n return dateNow()\n}\n\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime()\n}\n\nexport function elapsed(start, end) {\n return end - start\n}\n\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() }\n}\nexport function preferredClock(clocks) {\n return clocks.relative\n}\nexport function preferredTimeStamp(clocks) {\n return getTimestamp(clocks.relative)\n}\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) }\n}\nexport function currentDrift() {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return Math.round(dateNow() - (getNavigationStart() + performance.now()))\n}\nexport function addDuration(a, b) {\n return a + b\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = dateNow() - performance.now()\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(correctedOrigin + relativeTime)\n }\n return getTimestamp(relativeTime)\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart\nexport function getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart\n }\n return navigationStart\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var matches = rawString.match('(?:^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')\n return matches ? matches[1] : undefined\n}\nexport function findByPath(source, path) {\n var pathArr = path.split('.')\n while (pathArr.length) {\n var key = pathArr.shift()\n if (source && key in source && hasOwnProperty.call(source, key)) {\n source = source[key]\n } else {\n return undefined\n }\n }\n return source\n}\nexport function safeTruncate(candidate, length) {\n var lastChar = candidate.charCodeAt(length - 1)\n // check if it is the high part of a surrogate pair\n if (lastChar >= 0xd800 && lastChar <= 0xdbff) {\n return candidate.slice(0, length + 1)\n }\n return candidate.slice(0, length)\n}\nexport function isMatchOption(item) {\n const itemType = getType(item)\n return (\n itemType === 'string' || itemType === 'function' || item instanceof RegExp\n )\n}\nexport function includes(candidate, search) {\n // tslint:disable-next-line: no-unsafe-any\n return candidate.indexOf(search) !== -1\n}\n\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike)\n }\n var array = []\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) {\n array.push(item)\n })\n } else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i])\n }\n }\n return array\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100\n}\n\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location)\n}\n\nexport function isIE() {\n return Boolean(document.documentMode)\n}\n\nexport function isChromium() {\n return !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent)\n}\n\n/**\n * IE fallback\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '')\n return element.protocol + '//' + sanitizedHost\n}\n\nexport function withSnakeCaseKeys(candidate) {\n var result = {}\n each(candidate, function (value, key) {\n result[toSnakeCase(key)] = deepSnakeCase(value)\n })\n return result\n}\n\nexport function deepSnakeCase(candidate) {\n if (isArray(candidate)) {\n return map(candidate, function (value) {\n return deepSnakeCase(value)\n })\n }\n if (typeof candidate === 'object' && candidate !== null) {\n return withSnakeCaseKeys(candidate)\n }\n return candidate\n}\n\nexport function toSnakeCase(word) {\n return word\n .replace(/[A-Z]/g, function (uppercaseLetter, index) {\n return (index !== 0 ? '_' : '') + uppercaseLetter.toLowerCase()\n })\n .replace(/-/g, '_')\n}\n\nexport function isNullUndefinedDefaultValue(data, defaultValue) {\n if (data !== null && data !== void 0) {\n return data\n } else {\n return defaultValue\n }\n}\n\nexport function objectHasValue(object, value) {\n return some(keys(object), function (key) {\n return object[key] === value\n })\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search\n}\n\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search\n}\n\nexport function tryToClone(response) {\n try {\n return response.clone()\n } catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return\n }\n}\nexport function isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1)\n if (!correspondingId) return false\n return !!document.getElementById(correspondingId)\n}\nexport function getPathFromHash(hash) {\n var index = hash.indexOf('?')\n return index < 0 ? hash : hash.slice(0, index)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","names":["display","setTimeout","clearTimeout","ArrayProto","Array","prototype","FuncProto","Function","ObjProto","Object","slice","toString","hasOwnProperty","nativeForEach","forEach","nativeIsArray","isArray","breaker","each","obj","iterator","context","length","i","l","call","key","assign","target","arguments","source","prop","shallowClone","object","extend","extend2Lev","isObject","coverExtend","isFunction","f","test","err","isArguments","toArray","iterable","values","results","value","keys","indexOf","arr","hasAttribute","ele","attr","attributes","specified","filter","fn","self","ret","val","push","map","some","flag","every","matchList","list","useStartsWith","undefined","item","RegExp","startsWith","e","error","cssEscape","str","window","CSS","escape","replace","ch","asCodePoint","charCodeAt","inherit","subclass","superclass","F","constructor","tirm","isEmptyObject","objectEntries","res","isUndefined","isString","isDate","isBoolean","isNumber","String","isElement","nodeType","isJSONString","JSON","parse","safeJSONParse","decodeURIComponent","result","encodeDates","v","k","formatDate","mediaQueriesSupported","matchMedia","msMatchMedia","getScreenOrientation","screenOrientationAPI","screen","msOrientation","mozOrientation","orientation","type","screenOrientation","matchMediaFunc","matches","now","Date","getTime","throttle","wait","options","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","pendingExecutionWithParameters","pendingTimeoutId","throttled","apply","cancel","hashCode","hash","char","d","pad","n","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","searchObjDate","o","a","b","formatJsonString","stringify","searchObjString","formatString","unique","ar","temp","strip_empty_properties","p","utf8Encode","string","utftext","start","end","stringl","c1","enc","fromCharCode","substring","base64Encode","data","btoa","encodeURIComponent","match","p1","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","tmp_arr","charAt","join","UUID","placeholder","parseInt","Math","random","concat","replaceNumberCharByPath","path","pathGroup","getQueryParam","url","param","regexS","regex","exec","urlParse","para","URLParser","_fields","Username","Password","Port","Protocol","Host","Path","URL","QueryString","Fragment","_values","_regex","_parse","setUrl","_initValues","addQueryString","queryObj","_typeof","query","getParse","getUrl","Origin","c","elementMatches","element","selector","msMatchesSelector","cookie","get","name","nameEQ","ca","document","split","set","days","is_secure","cdomain","expires","secure","date","setTime","Number","toGMTString","remove","localStorage","getItem","storedValue","sd","log","setItem","removeItem","isSupport","supported","sessionStorage","isSupportCors","XMLHttpRequest","XDomainRequest","xhr","cors","ActiveXObject","console","ajax","timeout","credentials","getJSON","g","success","abort","e2","onreadystatechange","readyState","status","responseText","onload","open","withCredentials","header","setRequestHeader","contentType","send","loadScript","appendCall","getElementsByTagName","appendChild","createElement","rel","href","async","setAttribute","src","onerror","getHostname","defaultValue","hostname","getQueryParamsFromUrl","queryString","getURLSearchParams","decodeParam","args","pairs","pos","createCircularReferenceChecker","WeakSet","hasAlreadyBeenSeen","has","add","array","getType","mergeInto","destination","circularReferenceChecker","flags","global","ignoreCase","multiline","sticky","unicode","merged","deepClone","_URL","basicProps","isURLAPIWorking","searchParams","params","search","searchParam","link","pathname","getCurrentDomain","cookieTopLevelDomain","getCookieTopLevelDomain","location","splitResult","domainStr","splice","strToUnicode","nstr","autoExeQueue","queue","items","enqueue","dequeue","shift","getCurrentItem","isRun","close","strip_sa_properties","arrv","searchConfigData","$option","data_config","stringSplice","sp","ps","pe","getStatusGroup","substr","getReferrer","ref","referrer","toLowerCase","re","typeDecide","noop","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","performDraw","threshold","round","num","decimals","toFixed","msToNs","duration","mapValues","newObject","toServerDuration","getRelativeTime","timestamp","getNavigationStart","preferredNow","relativeNow","getTimestamp","relativeTime","performance","clocksNow","relative","timeStamp","timeStampNow","dateNow","looksLikeRelativeTime","time","elapsed","clocksOrigin","preferredClock","clocks","preferredTimeStamp","relativeToClocks","getCorrectedTimeStamp","currentDrift","addDuration","correctedOrigin","navigationStart","timing","findCommaSeparatedValue","rawString","findByPath","pathArr","safeTruncate","candidate","lastChar","isMatchOption","itemType","includes","find","predicate","arrayFrom","arrayLike","from","Set","findLast","isPercentage","getLocationOrigin","getLinkElementOrigin","browserIsIE","isIE","Boolean","documentMode","browserIsChromium","isChromium","chrome","navigator","userAgent","browserIsSafari","isSafari","origin","sanitizedHost","host","protocol","withSnakeCaseKeys","toSnakeCase","deepSnakeCase","word","uppercaseLetter","index","isNullUndefinedDefaultValue","objectHasValue","endsWith","tryToClone","response","clone","isHashAnAnchor","correspondingId","getElementById","getPathFromHash"],"sources":["../../src/helper/tools.js"],"sourcesContent":["import { display } from './display'\nimport { setTimeout, clearTimeout } from './timer'\nvar ArrayProto = Array.prototype\nvar FuncProto = Function.prototype\nvar ObjProto = Object.prototype\nvar slice = ArrayProto.slice\nvar toString = ObjProto.toString\nvar hasOwnProperty = ObjProto.hasOwnProperty\nvar nativeForEach = ArrayProto.forEach\nvar nativeIsArray = Array.isArray\nvar breaker = false\nexport var each = function (obj, iterator, context) {\n if (obj === null) return false\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context)\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return false\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return false\n }\n }\n }\n }\n}\nexport function assign(target) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\n target[prop] = source[prop]\n }\n }\n })\n return target\n}\n\nexport function shallowClone(object) {\n return assign({}, object)\n}\nexport var extend = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\nexport var extend2Lev = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n if (isObject(source[prop]) && isObject(obj[prop])) {\n extend(obj[prop], source[prop])\n } else {\n obj[prop] = source[prop]\n }\n }\n }\n })\n return obj\n}\nexport var coverExtend = function (obj) {\n each(slice.call(arguments, 1), function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0 && obj[prop] === void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\nexport var isArray =\n nativeIsArray ||\n function (obj) {\n return toString.call(obj) === '[object Array]'\n }\nexport var isFunction = function (f) {\n if (!f) {\n return false\n }\n try {\n return /^\\s*\\bfunction\\b/.test(f)\n } catch (err) {\n return false\n }\n}\nexport var isArguments = function (obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'))\n}\nexport var toArray = function (iterable) {\n if (!iterable) return []\n if (iterable.toArray) {\n return iterable.toArray()\n }\n if (isArray(iterable)) {\n return slice.call(iterable)\n }\n if (isArguments(iterable)) {\n return slice.call(iterable)\n }\n return values(iterable)\n}\nexport var values = function (obj) {\n var results = []\n if (obj === null) {\n return results\n }\n each(obj, function (value) {\n results[results.length] = value\n })\n return results\n}\nexport var keys = function (obj) {\n var results = []\n if (obj === null) {\n return results\n }\n each(obj, function (value, key) {\n results[results.length] = key\n })\n return results\n}\nexport var indexOf = function (arr, target) {\n var indexOf = arr.indexOf\n if (indexOf) {\n return indexOf.call(arr, target)\n } else {\n for (var i = 0; i < arr.length; i++) {\n if (target === arr[i]) {\n return i\n }\n }\n return -1\n }\n}\nexport var hasAttribute = function (ele, attr) {\n if (ele.hasAttribute) {\n return ele.hasAttribute(attr)\n } else {\n return !!(ele.attributes[attr] && ele.attributes[attr].specified)\n }\n}\nexport var filter = function (arr, fn, self) {\n if (arr.filter) {\n return arr.filter(fn)\n }\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (fn.call(self, val, i, arr)) {\n ret.push(val)\n }\n }\n return ret\n}\nexport var map = function (arr, fn, self) {\n if (arr.map) {\n return arr.map(fn)\n }\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n ret.push(fn.call(self, val, i, arr))\n }\n return ret\n}\nexport var some = function (arr, fn, self) {\n if (arr.some) {\n return arr.some(fn)\n }\n var flag = false\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (fn.call(self, val, i, arr)) {\n flag = true\n break\n }\n }\n return flag\n}\nexport var every = function (arr, fn, self) {\n if (arr.every) {\n return arr.every(fn)\n }\n var flag = true\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwnProperty.call(arr, i)) {\n continue\n }\n var val = arr[i]\n if (!fn.call(self, val, i, arr)) {\n flag = false\n break\n }\n }\n return flag\n}\nexport var matchList = function (list, value, useStartsWith) {\n if (useStartsWith === undefined) {\n useStartsWith = false\n }\n return some(list, function (item) {\n try {\n if (typeof item === 'function') {\n return item(value)\n } else if (item instanceof RegExp) {\n return item.test(value)\n } else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value\n }\n } catch (e) {\n display.error(e)\n }\n })\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport var cssEscape = function (str) {\n str = str + ''\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str)\n }\n\n // eslint-disable-next-line no-control-regex\n return str.replace(\n /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,\n function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD'\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return (\n ch.slice(0, -1) +\n '\\\\' +\n ch.charCodeAt(ch.length - 1).toString(16) +\n ' '\n )\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return '\\\\' + ch\n }\n )\n}\nexport var inherit = function (subclass, superclass) {\n var F = function () {}\n F.prototype = superclass.prototype\n subclass.prototype = new F()\n subclass.prototype.constructor = subclass\n subclass.superclass = superclass.prototype\n return subclass\n}\nexport var tirm = function (str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\nexport var isObject = function (obj) {\n if (obj === null) return false\n return toString.call(obj) === '[object Object]'\n}\n\nexport var isEmptyObject = function (obj) {\n if (isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false\n }\n }\n return true\n } else {\n return false\n }\n}\nexport var objectEntries = function (object) {\n var res = []\n each(object, function (value, key) {\n res.push([key, value])\n })\n return res\n}\nexport var isUndefined = function (obj) {\n return obj === void 0\n}\nexport var isString = function (obj) {\n return toString.call(obj) === '[object String]'\n}\nexport var isDate = function (obj) {\n return toString.call(obj) === '[object Date]'\n}\nexport var isBoolean = function (obj) {\n return toString.call(obj) === '[object Boolean]'\n}\nexport var isNumber = function (obj) {\n return toString.call(obj) === '[object Number]' && /[\\d\\.]+/.test(String(obj))\n}\nexport var isElement = function (obj) {\n return !!(obj && obj.nodeType === 1)\n}\nexport var isJSONString = function (str) {\n try {\n JSON.parse(str)\n } catch (e) {\n return false\n }\n return true\n}\nexport var safeJSONParse = function (str) {\n var val = null\n try {\n val = JSON.parse(str)\n } catch (e) {\n return false\n }\n return val\n}\nexport var decodeURIComponent = function (val) {\n var result = val\n try {\n result = decodeURIComponent(val)\n } catch (error) {\n result = val\n }\n return result\n}\nexport var encodeDates = function (obj) {\n each(obj, function (v, k) {\n if (isDate(v)) {\n obj[k] = formatDate(v)\n } else if (isObject(v)) {\n obj[k] = encodeDates(v)\n }\n })\n return obj\n}\nexport var mediaQueriesSupported = function () {\n return (\n typeof window.matchMedia !== 'undefined' ||\n typeof window.msMatchMedia !== 'undefined'\n )\n}\nexport var getScreenOrientation = function () {\n var screenOrientationAPI =\n screen.msOrientation ||\n screen.mozOrientation ||\n (screen.orientation || {}).type\n var screenOrientation = '未取到值'\n if (screenOrientationAPI) {\n screenOrientation =\n screenOrientationAPI.indexOf('landscape') > -1 ? 'landscape' : 'portrait'\n } else if (mediaQueriesSupported()) {\n var matchMediaFunc = window.matchMedia || window.msMatchMedia\n if (matchMediaFunc('(orientation: landscape)').matches) {\n screenOrientation = 'landscape'\n } else if (matchMediaFunc('(orientation: portrait)').matches) {\n screenOrientation = 'portrait'\n }\n }\n return screenOrientation\n}\nexport var now =\n Date.now ||\n function () {\n return new Date().getTime()\n }\n\nexport var throttle = function (fn, wait, options) {\n var needLeadingExecution =\n options && options.leading !== undefined ? options.leading : true\n var needTrailingExecution =\n options && options.trailing !== undefined ? options.trailing : true\n let inWaitPeriod = false\n let pendingExecutionWithParameters\n let pendingTimeoutId\n var context = this\n return {\n throttled: function () {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = arguments\n return\n }\n\n if (needLeadingExecution) {\n fn.apply(context, arguments)\n } else {\n pendingExecutionWithParameters = arguments\n }\n inWaitPeriod = true\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(context, pendingExecutionWithParameters)\n }\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }, wait)\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId)\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }\n }\n}\nexport var hashCode = function (str) {\n if (typeof str !== 'string') {\n return 0\n }\n var hash = 0\n var char = null\n if (str.length == 0) {\n return hash\n }\n for (var i = 0; i < str.length; i++) {\n char = str.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash = hash & hash\n }\n return hash\n}\nexport var formatDate = function (d) {\n function pad(n) {\n return n < 10 ? '0' + n : n\n }\n\n return (\n d.getFullYear() +\n '-' +\n pad(d.getMonth() + 1) +\n '-' +\n pad(d.getDate()) +\n ' ' +\n pad(d.getHours()) +\n ':' +\n pad(d.getMinutes()) +\n ':' +\n pad(d.getSeconds()) +\n '.' +\n pad(d.getMilliseconds())\n )\n}\nexport var searchObjDate = function (o) {\n if (isObject(o)) {\n each(o, function (a, b) {\n if (isObject(a)) {\n searchObjDate(o[b])\n } else {\n if (isDate(a)) {\n o[b] = formatDate(a)\n }\n }\n })\n }\n}\nexport var formatJsonString = function (obj) {\n try {\n return JSON.stringify(obj, null, ' ')\n } catch (e) {\n return JSON.stringify(obj)\n }\n}\n// export var formatString = function (str) {\n// if (str.length > MAX_STRING_LENGTH) {\n// sd.log('字符串长度超过限制,已经做截取--' + str)\n// return str.slice(0, MAX_STRING_LENGTH)\n// } else {\n// return str\n// }\n// }\nexport var searchObjString = function (o) {\n if (isObject(o)) {\n each(o, function (a, b) {\n if (isObject(a)) {\n searchObjString(o[b])\n } else {\n if (isString(a)) {\n o[b] = formatString(a)\n }\n }\n })\n }\n}\nexport var unique = function (ar) {\n var temp,\n n = [],\n o = {}\n for (var i = 0; i < ar.length; i++) {\n temp = ar[i]\n if (!(temp in o)) {\n o[temp] = true\n n.push(temp)\n }\n }\n return n\n}\nexport var strip_empty_properties = function (p) {\n var ret = {}\n each(p, function (v, k) {\n if (v != null) {\n ret[k] = v\n }\n })\n return ret\n}\nexport var utf8Encode = function (string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n var utftext = '',\n start,\n end\n var stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n)\n var enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode(\n (c1 >> 12) | 224,\n ((c1 >> 6) & 63) | 128,\n (c1 & 63) | 128\n )\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\nexport var base64Encode = function (data) {\n if (typeof btoa === 'function') {\n return btoa(\n encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode('0x' + p1)\n })\n )\n }\n data = String(data)\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n var o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = '',\n tmp_arr = []\n if (!data) {\n return data\n }\n data = utf8Encode(data)\n do {\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n tmp_arr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function UUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (\n parseInt(placeholder, 10) ^\n ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))\n ).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, UUID)\n}\n\n// 替换url包含数字的路由\nexport function replaceNumberCharByPath(path) {\n var pathGroup = ''\n if (path) {\n pathGroup = path.replace(/\\/([^\\/]*)\\d([^\\/]*)/g, '/?').replace(/\\/$/g, '')\n }\n return pathGroup || '/'\n}\nexport var getQueryParam = function (url, param) {\n param = param.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]')\n url = decodeURIComponent(url)\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url)\n if (\n results === null ||\n (results && typeof results[1] !== 'string' && results[1].length)\n ) {\n return ''\n } else {\n return decodeURIComponent(results[1])\n }\n}\nexport var urlParse = function (para) {\n var URLParser = function (a) {\n this._fields = {\n Username: 4,\n Password: 5,\n Port: 7,\n Protocol: 2,\n Host: 6,\n Path: 8,\n URL: 0,\n QueryString: 9,\n Fragment: 10\n }\n this._values = {}\n this._regex = null\n this._regex =\n /^((\\w+):\\/\\/)?((\\w+):?(\\w+)?@)?([^\\/\\?:]+):?(\\d+)?(\\/?[^\\?#]+)?\\??([^#]+)?#?(\\w*)/\n\n if (typeof a != 'undefined') {\n this._parse(a)\n }\n }\n URLParser.prototype.setUrl = function (a) {\n this._parse(a)\n }\n URLParser.prototype._initValues = function () {\n for (var a in this._fields) {\n this._values[a] = ''\n }\n }\n URLParser.prototype.addQueryString = function (queryObj) {\n if (typeof queryObj !== 'object') {\n return false\n }\n var query = this._values.QueryString || ''\n for (var i in queryObj) {\n if (new RegExp(i + '[^&]+').test(query)) {\n query = query.replace(new RegExp(i + '[^&]+'), i + '=' + queryObj[i])\n } else {\n if (query.slice(-1) === '&') {\n query = query + i + '=' + queryObj[i]\n } else {\n if (query === '') {\n query = i + '=' + queryObj[i]\n } else {\n query = query + '&' + i + '=' + queryObj[i]\n }\n }\n }\n }\n this._values.QueryString = query\n }\n URLParser.prototype.getParse = function () {\n return this._values\n }\n URLParser.prototype.getUrl = function () {\n var url = ''\n url += this._values.Origin\n // url += this._values.Port ? ':' + this._values.Port : ''\n url += this._values.Path\n url += this._values.QueryString ? '?' + this._values.QueryString : ''\n return url\n }\n URLParser.prototype._parse = function (a) {\n this._initValues()\n var b = this._regex.exec(a)\n if (!b) {\n throw 'DPURLParser::_parse -> Invalid URL'\n }\n for (var c in this._fields) {\n if (typeof b[this._fields[c]] != 'undefined') {\n this._values[c] = b[this._fields[c]]\n }\n }\n this._values['Path'] = this._values['Path'] || '/'\n this._values['Hostname'] = this._values['Host'].replace(/:\\d+$/, '')\n this._values['Origin'] =\n this._values['Protocol'] +\n '://' +\n this._values['Hostname'] +\n (this._values.Port ? ':' + this._values.Port : '')\n // this._values['Hostname'] = this._values['Host'].replace(/:\\d+$/, '')\n // this._values['Origin'] =\n // this._values['Protocol'] + '://' + this._values['Hostname']\n }\n return new URLParser(para)\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector)\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector)\n }\n return false\n}\n\nexport var cookie = {\n get: function (name) {\n var nameEQ = name + '='\n var ca = document.cookie.split(';')\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i]\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n },\n set: function (name, value, days, is_secure) {\n var cdomain = '',\n expires = '',\n secure = ''\n days = days == null ? 73000 : days\n if (days !== 0) {\n var date = new Date()\n if (String(days).slice(-1) === 's') {\n date.setTime(date.getTime() + Number(String(days).slice(0, -1)) * 1000)\n } else {\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n }\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (is_secure) {\n secure = '; secure'\n }\n\n document.cookie =\n name +\n '=' +\n encodeURIComponent(value) +\n expires +\n '; path=/' +\n cdomain +\n secure\n },\n\n remove: function (name) {\n cookie.set(name, '', -1)\n }\n}\nexport var localStorage = {\n get: function (name) {\n return window.localStorage.getItem(name)\n },\n\n parse: function (name) {\n var storedValue\n try {\n storedValue = JSON.parse(localStorage.get(name)) || null\n } catch (err) {\n sd.log(err)\n }\n return storedValue\n },\n\n set: function (name, value) {\n window.localStorage.setItem(name, value)\n },\n\n remove: function (name) {\n window.localStorage.removeItem(name)\n },\n\n isSupport: function () {\n var supported = true\n try {\n var key = '__sensorsdatasupport__'\n var val = 'testIsSupportStorage'\n localStorage.set(key, val)\n if (localStorage.get(key) !== val) {\n supported = false\n }\n localStorage.remove(key)\n } catch (err) {\n supported = false\n }\n return supported\n }\n}\nexport var sessionStorage = {\n isSupport: function () {\n var supported = true\n\n var key = '__sensorsdatasupport__'\n var val = 'testIsSupportStorage'\n try {\n if (sessionStorage && sessionStorage.setItem) {\n sessionStorage.setItem(key, val)\n sessionStorage.removeItem(key, val)\n supported = true\n } else {\n supported = false\n }\n } catch (e) {\n supported = false\n }\n return supported\n }\n}\nexport var isSupportCors = function () {\n if (typeof window.XMLHttpRequest === 'undefined') {\n return false\n }\n if ('withCredentials' in new XMLHttpRequest()) {\n return true\n } else if (typeof XDomainRequest !== 'undefined') {\n return true\n } else {\n return false\n }\n}\nexport var xhr = function (cors) {\n if (cors) {\n if (\n typeof window.XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest()\n ) {\n return new XMLHttpRequest()\n } else if (typeof XDomainRequest !== 'undefined') {\n return new XDomainRequest()\n } else {\n return null\n }\n } else {\n if (typeof window.XMLHttpRequest !== 'undefined') {\n return new XMLHttpRequest()\n }\n if (window.ActiveXObject) {\n try {\n return new ActiveXObject('Msxml2.XMLHTTP')\n } catch (d) {\n try {\n return new ActiveXObject('Microsoft.XMLHTTP')\n } catch (d) {\n console.log(d)\n }\n }\n }\n }\n}\nexport var ajax = function (para) {\n para.timeout = para.timeout || 20000\n\n para.credentials =\n typeof para.credentials === 'undefined' ? true : para.credentials\n\n function getJSON(data) {\n if (!data) {\n return ''\n }\n try {\n return JSON.parse(data)\n } catch (e) {\n return {}\n }\n }\n\n var g = xhr(para.cors)\n\n if (!g) {\n return false\n }\n\n if (!para.type) {\n para.type = para.data ? 'POST' : 'GET'\n }\n para = extend(\n {\n success: function () {},\n error: function () {}\n },\n para\n )\n\n try {\n if (typeof g === 'object' && 'timeout' in g) {\n g.timeout = para.timeout\n } else {\n setTimeout(function () {\n g.abort()\n }, para.timeout + 500)\n }\n } catch (e) {\n try {\n setTimeout(function () {\n g.abort()\n }, para.timeout + 500)\n } catch (e2) {}\n }\n\n g.onreadystatechange = function () {\n try {\n if (g.readyState == 4) {\n if ((g.status >= 200 && g.status < 300) || g.status == 304) {\n para.success(getJSON(g.responseText))\n } else {\n para.error(getJSON(g.responseText), g.status)\n }\n g.onreadystatechange = null\n g.onload = null\n }\n } catch (e) {\n g.onreadystatechange = null\n g.onload = null\n }\n }\n\n g.open(para.type, para.url, true)\n\n try {\n if (para.credentials) {\n g.withCredentials = true\n }\n if (isObject(para.header)) {\n for (var i in para.header) {\n g.setRequestHeader(i, para.header[i])\n }\n }\n\n if (para.data) {\n if (!para.cors) {\n g.setRequestHeader('X-Requested-With', 'XMLHttpRequest')\n }\n if (para.contentType === 'application/json') {\n g.setRequestHeader('Content-type', 'application/json; charset=UTF-8')\n } else {\n g.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')\n }\n }\n } catch (e) {}\n\n g.send(para.data || null)\n}\nexport var loadScript = function (para) {\n para = extend(\n {\n success: function () {},\n error: function () {},\n appendCall: function (g) {\n document.getElementsByTagName('head')[0].appendChild(g)\n }\n },\n para\n )\n\n var g = null\n if (para.type === 'css') {\n g = document.createElement('link')\n g.rel = 'stylesheet'\n g.href = para.url\n }\n if (para.type === 'js') {\n g = document.createElement('script')\n g.async = 'async'\n g.setAttribute('charset', 'UTF-8')\n g.src = para.url\n g.type = 'text/javascript'\n }\n g.onload = g.onreadystatechange = function () {\n if (\n !this.readyState ||\n this.readyState === 'loaded' ||\n this.readyState === 'complete'\n ) {\n para.success()\n g.onload = g.onreadystatechange = null\n }\n }\n g.onerror = function () {\n para.error()\n g.onerror = null\n }\n para.appendCall(g)\n}\nexport var getHostname = function (url, defaultValue) {\n if (!defaultValue || typeof defaultValue !== 'string') {\n defaultValue = 'hostname解析异常'\n }\n var hostname = null\n try {\n hostname = URL(url).hostname\n } catch (e) {}\n return hostname || defaultValue\n}\nexport var getQueryParamsFromUrl = function (url) {\n var result = {}\n var arr = url.split('?')\n var queryString = arr[1] || ''\n if (queryString) {\n result = getURLSearchParams('?' + queryString)\n }\n return result\n}\n\nexport var getURLSearchParams = function (queryString) {\n queryString = queryString || ''\n var decodeParam = function (str) {\n return decodeURIComponent(str)\n }\n var args = {}\n var query = queryString.substring(1)\n var pairs = query.split('&')\n for (var i = 0; i < pairs.length; i++) {\n var pos = pairs[i].indexOf('=')\n if (pos === -1) continue\n var name = pairs[i].substring(0, pos)\n var value = pairs[i].substring(pos + 1)\n name = decodeParam(name)\n value = decodeParam(value)\n args[name] = value\n }\n return args\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set = new WeakSet()\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set.has(value)\n if (!has) {\n set.add(value)\n }\n return has\n }\n }\n }\n var array = []\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0\n if (!has) {\n array.push(value)\n }\n return has\n }\n }\n}\n/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null'\n }\n if (Array.isArray(value)) {\n return 'array'\n }\n return typeof value\n}\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n // ignore the source if it is undefined\n if (typeof circularReferenceChecker === 'undefined') {\n circularReferenceChecker = createCircularReferenceChecker()\n }\n if (source === undefined) {\n return destination\n }\n\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source\n } else if (source instanceof Date) {\n return new Date(source.getTime())\n } else if (source instanceof RegExp) {\n var flags =\n source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : ''\n ].join('')\n return new RegExp(source.source, flags)\n }\n\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined\n } else if (Array.isArray(source)) {\n var merged = Array.isArray(destination) ? destination : []\n for (var i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker)\n }\n return merged\n }\n\n var merged = getType(destination) === 'object' ? destination : {}\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(\n merged[key],\n source[key],\n circularReferenceChecker\n )\n }\n }\n return merged\n}\n\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value)\n}\nexport var _URL = function (url) {\n var result = {}\n var basicProps = [\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'origin',\n 'password',\n 'pathname',\n 'port',\n 'protocol',\n 'search',\n 'username'\n ]\n var isURLAPIWorking = function () {\n var url\n try {\n url = new URL('http://modernizr.com/')\n return url.href === 'http://modernizr.com/'\n } catch (e) {\n return false\n }\n }\n if (typeof window.URL === 'function' && isURLAPIWorking()) {\n result = new URL(url)\n if (!result.searchParams) {\n result.searchParams = (function () {\n var params = getURLSearchParams(result.search)\n return {\n get: function (searchParam) {\n return params[searchParam]\n }\n }\n })()\n }\n } else {\n var _regex = /^https?:\\/\\/.+/\n if (_regex.test(url) === false) {\n throw 'Invalid URL'\n }\n var link = document.createElement('a')\n link.href = url\n for (var i = basicProps.length - 1; i >= 0; i--) {\n var prop = basicProps[i]\n result[prop] = link[prop]\n }\n if (\n result.hostname &&\n typeof result.pathname === 'string' &&\n result.pathname.indexOf('/') !== 0\n ) {\n result.pathname = '/' + result.pathname\n }\n result.searchParams = (function () {\n var params = getURLSearchParams(result.search)\n return {\n get: function (searchParam) {\n return params[searchParam]\n }\n }\n })()\n }\n return result\n}\n\nexport var getCurrentDomain = function (url) {\n var cookieTopLevelDomain = getCookieTopLevelDomain()\n if (url === '') {\n return 'url解析失败'\n } else if (cookieTopLevelDomain === '') {\n return 'url解析失败'\n } else {\n return cookieTopLevelDomain\n }\n}\nexport var getCookieTopLevelDomain = function (hostname) {\n hostname = hostname || window.location.hostname\n var splitResult = hostname.split('.')\n if (\n isArray(splitResult) &&\n splitResult.length >= 2 &&\n !/^(\\d+\\.)+\\d+$/.test(hostname)\n ) {\n var domainStr = '.' + splitResult.splice(splitResult.length - 1, 1)\n while (splitResult.length > 0) {\n domainStr =\n '.' + splitResult.splice(splitResult.length - 1, 1) + domainStr\n document.cookie = 'domain_test=true; path=/; domain=' + domainStr\n if (document.cookie.indexOf('domain_test=true') !== -1) {\n var now = new Date()\n now.setTime(now.getTime() - 1000)\n document.cookie =\n 'domain_test=true; expires=' +\n now.toGMTString() +\n '; path=/; domain=' +\n domainStr\n return domainStr\n }\n }\n }\n return ''\n}\nexport var strToUnicode = function (str) {\n if (typeof str !== 'string') {\n return str\n }\n var nstr = ''\n for (var i = 0; i < str.length; i++) {\n nstr += '\\\\' + str.charCodeAt(i).toString(16)\n }\n return nstr\n}\nexport var autoExeQueue = function () {\n var queue = {\n items: [],\n enqueue: function (val) {\n this.items.push(val)\n this.start()\n },\n dequeue: function () {\n return this.items.shift()\n },\n getCurrentItem: function () {\n return this.items[0]\n },\n isRun: false,\n start: function () {\n if (this.items.length > 0 && !this.isRun) {\n this.isRun = true\n this.getCurrentItem().start()\n }\n },\n close: function () {\n this.dequeue()\n this.isRun = false\n this.start()\n }\n }\n return queue\n}\nexport var strip_sa_properties = function (p) {\n if (!isObject(p)) {\n return p\n }\n each(p, function (v, k) {\n if (isArray(v)) {\n var temp = []\n each(v, function (arrv) {\n if (isString(arrv)) {\n temp.push(arrv)\n } else {\n console.log(\n '您的数据-',\n k,\n v,\n '的数组里的值必须是字符串,已经将其删除'\n )\n }\n })\n if (temp.length !== 0) {\n p[k] = temp\n } else {\n delete p[k]\n console.log('已经删除空的数组')\n }\n }\n if (\n !(\n isString(v) ||\n isNumber(v) ||\n isDate(v) ||\n isBoolean(v) ||\n isArray(v) ||\n isFunction(v) ||\n k === '$option'\n )\n ) {\n console.log('您的数据-', k, v, '-格式不满足要求,我们已经将其删除')\n delete p[k]\n }\n })\n return p\n}\n\nexport var searchConfigData = function (data) {\n if (typeof data === 'object' && data.$option) {\n var data_config = data.$option\n delete data.$option\n return data_config\n } else {\n return {}\n }\n}\n// 从字符串 src 中查找 k+sp 和 e 之间的字符串,如果 k==e 且 k 只有一个,或者 e 不存在,从 k+sp 截取到字符串结束\n// abcd=1&b=1&c=3;\n// abdc=1;b=1;a=3;\nexport var stringSplice = function (src, k, e, sp) {\n if (src === '') {\n return ''\n }\n sp = sp === '' ? '=' : sp\n k += sp\n var ps = src.indexOf(k)\n if (ps < 0) {\n return ''\n }\n ps += k.length\n var pe = pe < ps ? src.length : src.indexOf(e, ps)\n return src.substring(ps, pe)\n}\nexport function getStatusGroup(status) {\n if (!status) return status\n return (\n String(status).substr(0, 1) + String(status).substr(1).replace(/\\d*/g, 'x')\n )\n}\nexport var getReferrer = function () {\n var ref = document.referrer.toLowerCase()\n var re = /^[^\\?&#]*.swf([\\?#])?/\n // 如果页面 Referer 为空,从 URL 中获取\n if (ref === '' || ref.match(re)) {\n ref = stringSplice(window.location.href, 'ref', '&', '')\n if (ref !== '') {\n return encodeURIComponent(ref)\n }\n }\n return encodeURIComponent(ref)\n}\nexport var typeDecide = function (o, type) {\n return toString.call(o) === '[object ' + type + ']'\n}\n\nexport function noop() {}\n\nexport var ONE_SECOND = 1000\nexport var ONE_MINUTE = 60 * ONE_SECOND\nexport var ONE_HOUR = 60 * ONE_MINUTE\nexport var ONE_DAY = 24 * ONE_HOUR\nexport var ONE_YEAR = 365 * ONE_DAY\n\n/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold\n}\n\nexport function round(num, decimals) {\n return +num.toFixed(decimals)\n}\n\nexport function msToNs(duration) {\n if (typeof duration !== 'number') {\n return duration\n }\n return round(duration * 1e6, 0)\n}\nexport function mapValues(object, fn) {\n var newObject = {}\n each(object, function (value, key) {\n newObject[key] = fn(value)\n })\n\n return newObject\n}\n\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration\n }\n return round(duration * 1e6, 0)\n}\nexport function getRelativeTime(timestamp) {\n return timestamp - getNavigationStart()\n}\nexport function preferredNow() {\n return relativeNow()\n}\nexport function getTimestamp(relativeTime) {\n return Math.round(getNavigationStart() + relativeTime)\n}\nexport function relativeNow() {\n return performance.now()\n}\n\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() }\n}\nexport function timeStampNow() {\n return dateNow()\n}\n\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime()\n}\n\nexport function elapsed(start, end) {\n return end - start\n}\n\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() }\n}\nexport function preferredClock(clocks) {\n return clocks.relative\n}\nexport function preferredTimeStamp(clocks) {\n return getTimestamp(clocks.relative)\n}\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) }\n}\nexport function currentDrift() {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return Math.round(dateNow() - (getNavigationStart() + performance.now()))\n}\nexport function addDuration(a, b) {\n return a + b\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = dateNow() - performance.now()\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(correctedOrigin + relativeTime)\n }\n return getTimestamp(relativeTime)\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart\nexport function getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart\n }\n return navigationStart\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var matches = rawString.match('(?:^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')\n return matches ? matches[1] : undefined\n}\nexport function findByPath(source, path) {\n var pathArr = path.split('.')\n while (pathArr.length) {\n var key = pathArr.shift()\n if (source && key in source && hasOwnProperty.call(source, key)) {\n source = source[key]\n } else {\n return undefined\n }\n }\n return source\n}\nexport function safeTruncate(candidate, length) {\n var lastChar = candidate.charCodeAt(length - 1)\n // check if it is the high part of a surrogate pair\n if (lastChar >= 0xd800 && lastChar <= 0xdbff) {\n return candidate.slice(0, length + 1)\n }\n return candidate.slice(0, length)\n}\nexport function isMatchOption(item) {\n const itemType = getType(item)\n return (\n itemType === 'string' || itemType === 'function' || item instanceof RegExp\n )\n}\nexport function includes(candidate, search) {\n // tslint:disable-next-line: no-unsafe-any\n return candidate.indexOf(search) !== -1\n}\n\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike)\n }\n var array = []\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) {\n array.push(item)\n })\n } else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i])\n }\n }\n return array\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100\n}\n\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location)\n}\n\nvar browserIsIE\nexport function isIE() {\n if (browserIsIE === undefined) {\n browserIsIE = Boolean(document.documentMode)\n }\n return browserIsIE\n}\nvar browserIsChromium\nexport function isChromium() {\n if (browserIsChromium === undefined) {\n browserIsChromium =\n !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent)\n }\n return browserIsChromium\n}\nvar browserIsSafari\nexport function isSafari() {\n if (browserIsSafari === undefined) {\n browserIsSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n }\n return browserIsSafari\n}\n/**\n * IE fallback\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '')\n return element.protocol + '//' + sanitizedHost\n}\n\nexport function withSnakeCaseKeys(candidate) {\n var result = {}\n each(candidate, function (value, key) {\n result[toSnakeCase(key)] = deepSnakeCase(value)\n })\n return result\n}\n\nexport function deepSnakeCase(candidate) {\n if (isArray(candidate)) {\n return map(candidate, function (value) {\n return deepSnakeCase(value)\n })\n }\n if (typeof candidate === 'object' && candidate !== null) {\n return withSnakeCaseKeys(candidate)\n }\n return candidate\n}\n\nexport function toSnakeCase(word) {\n return word\n .replace(/[A-Z]/g, function (uppercaseLetter, index) {\n return (index !== 0 ? '_' : '') + uppercaseLetter.toLowerCase()\n })\n .replace(/-/g, '_')\n}\n\nexport function isNullUndefinedDefaultValue(data, defaultValue) {\n if (data !== null && data !== void 0) {\n return data\n } else {\n return defaultValue\n }\n}\n\nexport function objectHasValue(object, value) {\n return some(keys(object), function (key) {\n return object[key] === value\n })\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search\n}\n\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search\n}\n\nexport function tryToClone(response) {\n try {\n return response.clone()\n } catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return\n }\n}\nexport function isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1)\n if (!correspondingId) return false\n return !!document.getElementById(correspondingId)\n}\nexport function getPathFromHash(hash) {\n var index = hash.indexOf('?')\n return index < 0 ? hash : hash.slice(0, index)\n}\n"],"mappings":"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"}
package/esm/index.js CHANGED
@@ -45,6 +45,7 @@ export * from './helper/serialisation/contextManager';
45
45
  export * from './helper/serialisation/heavyCustomerDataWarning';
46
46
  export * from './helper/serialisation/jsonStringify';
47
47
  export * from './helper/serialisation/rowData';
48
+ export * from './helper/serialisation/storedContextManager';
48
49
  export * from './user';
49
50
  export * from './telemetry/telemetry';
50
51
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/contextHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport * from './session/sessionManagement'\nexport * from './session/sessionConstants'\nexport * from './session/sessionCookieStore'\nexport * from './session/sessionStore'\nexport * from './transport'\nexport * from './synthetics/syntheticsWorkerValues'\n\nexport * from './helper/serialisation/contextManager'\nexport * from './helper/serialisation/heavyCustomerDataWarning'\nexport * from './helper/serialisation/jsonStringify'\nexport * from './helper/serialisation/rowData'\nexport * from './user'\n\nexport * from './telemetry/telemetry'\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,2BAA2B;AACzC,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,qBAAqB;AACnC,cAAc,iCAAiC;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C,cAAc,YAAY;AAC1B,cAAc,+BAA+B;AAC7C,cAAc,wCAAwC;AACtD,cAAc,kBAAkB;AAChC,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAEhC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,6BAA6B;AAC3C,cAAc,4BAA4B;AAC1C,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,aAAa;AAC3B,cAAc,qCAAqC;AAEnD,cAAc,uCAAuC;AACrD,cAAc,iDAAiD;AAC/D,cAAc,sCAAsC;AACpD,cAAc,gCAAgC;AAC9C,cAAc,QAAQ;AAEtB,cAAc,uBAAuB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/contextHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport * from './session/sessionManagement'\nexport * from './session/sessionConstants'\nexport * from './session/sessionCookieStore'\nexport * from './session/sessionStore'\nexport * from './transport'\nexport * from './synthetics/syntheticsWorkerValues'\n\nexport * from './helper/serialisation/contextManager'\nexport * from './helper/serialisation/heavyCustomerDataWarning'\nexport * from './helper/serialisation/jsonStringify'\nexport * from './helper/serialisation/rowData'\nexport * from './helper/serialisation/storedContextManager'\nexport * from './user'\n\nexport * from './telemetry/telemetry'\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,2BAA2B;AACzC,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,qBAAqB;AACnC,cAAc,iCAAiC;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C,cAAc,YAAY;AAC1B,cAAc,+BAA+B;AAC7C,cAAc,wCAAwC;AACtD,cAAc,kBAAkB;AAChC,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAEhC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,6BAA6B;AAC3C,cAAc,4BAA4B;AAC1C,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,aAAa;AAC3B,cAAc,qCAAqC;AAEnD,cAAc,uCAAuC;AACrD,cAAc,iDAAiD;AAC/D,cAAc,sCAAsC;AACpD,cAAc,gCAAgC;AAC9C,cAAc,6CAA6C;AAC3D,cAAc,QAAQ;AAEtB,cAAc,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","names":["ConsoleApiName","toStackTraceString","NO_ERROR_STACK_PRESENT_MESSAGE","computeStackTrace","Observable","displayIfDebugEnabled","startMonitorErrorCollection","startsWith","assign","performDraw","timeStampNow","extend2Lev","jsonStringify","NonErrorPrefix","TelemetryStatusType","TelemetryType","ALLOWED_FRAME_URLS","TelemetryService","LOGS","RUM","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","onRawTelemetryEventCollected","startTelemetry","telemetryService","configuration","contextProvider","observable","telemetrySampleRate","rawEvent","event","toTelemetryEvent","notify","addTelemetryError","maxTelemetryEventsPerPage","type","date","service","version","__BUILD_ENV__SDK_VERSION__","source","telemetry","undefined","setContextProvider","provider","enabled","resetTelemetry","addTelemetryDebug","message","context","debug","addTelemetry","log","status","e","error","formatError","addTelemetryConfiguration","Error","stackTrace","kind","name","stack","scrubCustomerFrames","UNCAUGHT","filter","frame","url","some","allowedFrameUrl"],"sources":["../../src/telemetry/telemetry.js"],"sourcesContent":["import { ConsoleApiName } from '../helper/display'\nimport {\n toStackTraceString,\n NO_ERROR_STACK_PRESENT_MESSAGE\n} from '../helper/errorTools'\nimport { computeStackTrace } from '../tracekit'\nimport { Observable } from '../helper/observable'\nimport {\n displayIfDebugEnabled,\n startMonitorErrorCollection\n} from '..//helper/monitor'\nimport {\n startsWith,\n assign,\n performDraw,\n timeStampNow,\n extend2Lev\n} from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { NonErrorPrefix } from '../helper/enums'\nimport { TelemetryStatusType, TelemetryType } from './types'\n\nconst ALLOWED_FRAME_URLS = [\n 'https://static.guance.com',\n 'http://localhost',\n '<anonymous>'\n]\n\nexport var TelemetryService = {\n LOGS: 'browser-logs-sdk',\n RUM: 'browser-rum-sdk'\n}\n\nvar telemetryConfiguration = {\n maxEventsPerPage: 0,\n sentEventCount: 0,\n telemetryEnabled: false\n}\n\nvar onRawTelemetryEventCollected\n\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider\n var observable = new Observable()\n telemetryConfiguration.telemetryEnabled =\n configuration.telemetryEnabled &&\n performDraw(configuration.telemetrySampleRate)\n\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event = toTelemetryEvent(telemetryService, rawEvent)\n observable.notify(event)\n }\n }\n startMonitorErrorCollection(addTelemetryError)\n\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0\n })\n\n function toTelemetryEvent(telemetryService, event) {\n return extend2Lev(\n {\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: __BUILD_ENV__SDK_VERSION__,\n source: 'browser',\n telemetry: event // https://github.com/microsoft/TypeScript/issues/48457\n },\n contextProvider !== undefined ? contextProvider() : {}\n )\n }\n\n return {\n setContextProvider: function (provider) {\n contextProvider = provider\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled\n }\n}\n\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined\n}\n\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context)\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n message: message,\n status: TelemetryStatusType.debug\n },\n context\n )\n )\n}\n\nexport function addTelemetryError(e, context) {\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n status: TelemetryStatusType.error\n },\n formatError(e),\n context\n )\n )\n}\n\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration\n })\n }\n}\n\nfunction addTelemetry(event) {\n if (\n onRawTelemetryEventCollected &&\n telemetryConfiguration.sentEventCount <\n telemetryConfiguration.maxEventsPerPage\n ) {\n telemetryConfiguration.sentEventCount += 1\n onRawTelemetryEventCollected(event)\n }\n}\n\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e)\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace))\n },\n message: stackTrace.message\n }\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE\n },\n message: NonErrorPrefix.UNCAUGHT + ' ' + jsonStringify(e)\n }\n}\n\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(\n (frame) =>\n !frame.url ||\n ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) {\n return startsWith(frame.url, allowedFrameUrl)\n })\n )\n return stackTrace\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","names":["ConsoleApiName","toStackTraceString","NO_ERROR_STACK_PRESENT_MESSAGE","computeStackTrace","Observable","displayIfDebugEnabled","startMonitorErrorCollection","startsWith","assign","performDraw","timeStampNow","extend2Lev","jsonStringify","NonErrorPrefix","TelemetryStatusType","TelemetryType","ALLOWED_FRAME_URLS","TelemetryService","LOGS","RUM","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","onRawTelemetryEventCollected","startTelemetry","telemetryService","configuration","contextProvider","observable","telemetrySampleRate","rawEvent","event","toTelemetryEvent","notify","addTelemetryError","maxTelemetryEventsPerPage","type","date","service","version","__BUILD_ENV__SDK_VERSION__","source","telemetry","undefined","setContextProvider","provider","enabled","resetTelemetry","addTelemetryDebug","message","context","debug","addTelemetry","log","status","e","error","formatError","addTelemetryConfiguration","Error","stackTrace","kind","name","stack","scrubCustomerFrames","UNCAUGHT","filter","frame","url","some","allowedFrameUrl"],"sources":["../../src/telemetry/telemetry.js"],"sourcesContent":["import { ConsoleApiName } from '../helper/display'\nimport {\n toStackTraceString,\n NO_ERROR_STACK_PRESENT_MESSAGE\n} from '../helper/errorTools'\nimport { computeStackTrace } from '../tracekit'\nimport { Observable } from '../helper/observable'\nimport {\n displayIfDebugEnabled,\n startMonitorErrorCollection\n} from '..//helper/monitor'\nimport {\n startsWith,\n assign,\n performDraw,\n timeStampNow,\n extend2Lev\n} from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { NonErrorPrefix } from '../helper/enums'\nimport { TelemetryStatusType, TelemetryType } from './types'\n\nconst ALLOWED_FRAME_URLS = [\n 'https://static.guance.com',\n 'http://localhost',\n '<anonymous>'\n]\n\nexport var TelemetryService = {\n LOGS: 'browser-logs-sdk',\n RUM: 'browser-rum-sdk'\n}\n\nvar telemetryConfiguration = {\n maxEventsPerPage: 0,\n sentEventCount: 0,\n telemetryEnabled: false\n}\n\nvar onRawTelemetryEventCollected\n\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider\n var observable = new Observable()\n telemetryConfiguration.telemetryEnabled =\n configuration.telemetryEnabled &&\n performDraw(configuration.telemetrySampleRate)\n\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event = toTelemetryEvent(telemetryService, rawEvent)\n observable.notify(event)\n }\n }\n startMonitorErrorCollection(addTelemetryError)\n\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0\n })\n\n function toTelemetryEvent(telemetryService, event) {\n return extend2Lev(\n {\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: __BUILD_ENV__SDK_VERSION__,\n source: 'browser',\n telemetry: event // https://github.com/microsoft/TypeScript/issues/48457\n },\n contextProvider !== undefined ? contextProvider() : {}\n )\n }\n\n return {\n setContextProvider: function (provider) {\n contextProvider = provider\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled\n }\n}\n\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined\n}\n\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context)\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n message: message,\n status: TelemetryStatusType.debug\n },\n context\n )\n )\n}\n\nexport function addTelemetryError(e, context) {\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n status: TelemetryStatusType.error\n },\n formatError(e),\n context\n )\n )\n}\n\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration\n })\n }\n}\n\nfunction addTelemetry(event) {\n if (\n onRawTelemetryEventCollected &&\n telemetryConfiguration.sentEventCount <\n telemetryConfiguration.maxEventsPerPage\n ) {\n telemetryConfiguration.sentEventCount += 1\n onRawTelemetryEventCollected(event)\n }\n}\n\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e)\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace))\n },\n message: stackTrace.message\n }\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE\n },\n message: NonErrorPrefix.UNCAUGHT + ' ' + jsonStringify(e)\n }\n}\n\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) {\n return (\n !frame.url ||\n ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) {\n return startsWith(frame.url, allowedFrameUrl)\n })\n )\n })\n return stackTrace\n}\n"],"mappings":"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"}
@@ -40,11 +40,6 @@ function scheduleRetry(state, sendStrategy, endpointUrl, reportError) {
40
40
  send(payload, state, sendStrategy, {
41
41
  onSuccess: function onSuccess() {
42
42
  state.queuedPayloads.dequeue();
43
- // if (state.lastFailureStatus !== 0) {
44
- // addTelemetryDebug('resuming after transport down', {
45
- // failureStatus: state.lastFailureStatus,
46
- // })
47
- // }
48
43
  state.currentBackoffTime = INITIAL_BACKOFF_TIME;
49
44
  retryQueuedPayloads(RetryReason.AFTER_RESUME, state, sendStrategy, endpointUrl, reportError);
50
45
  },