generated from tailored/router-template
27447 lines
1.0 MiB
27447 lines
1.0 MiB
(self.webpackChunkxhs_pc_web = self.webpackChunkxhs_pc_web || []).push([["35"], {
|
|
88867: function(e, r) {
|
|
"use strict";
|
|
Object.defineProperty(r, Symbol.toStringTag, {
|
|
value: "Module"
|
|
});
|
|
var i, a, s, u = "webId";
|
|
function getCookie(e, r) {
|
|
var i = e.match(new RegExp("(^| )".concat(r, "=([^;]*)")));
|
|
return i ? unescape(i[2]) : ""
|
|
}
|
|
function getWebIdFromCookie(e) {
|
|
void 0 === e && (e = "");
|
|
try {
|
|
return getCookie(e, u)
|
|
} catch (e) {
|
|
return ""
|
|
}
|
|
}
|
|
var c = "xhs_ab_local_storage_key";
|
|
r.ABTestStatus = void 0,
|
|
(i = r.ABTestStatus || (r.ABTestStatus = {})).Finish = "finish",
|
|
i.Pending = "pending",
|
|
i.Failed = "failed",
|
|
r.RequestStatus = void 0,
|
|
(a = r.RequestStatus || (r.RequestStatus = {})).failed = "failed",
|
|
a.success = "success",
|
|
a.noReq = "noReq",
|
|
r.ABDataSource = void 0,
|
|
(s = r.ABDataSource || (r.ABDataSource = {})).DefaultValue = "defaultValue",
|
|
s.Api = "api",
|
|
s.Cache = "cache";
|
|
r.ABTEST_CFG_KEY = "red_abTest_config",
|
|
r.USER_ID_KEY = "x-user-id",
|
|
r.WEB_ID_KEY = u,
|
|
r.getCookie = getCookie,
|
|
r.getDate = function() {
|
|
var e = new Date
|
|
, r = e.getFullYear().toString()
|
|
, i = (e.getMonth() + 1).toString().padStart(2, "0")
|
|
, a = e.getDate().toString().padStart(2, "0");
|
|
return "".concat(r, "-").concat(i, "-").concat(a)
|
|
}
|
|
,
|
|
r.getPublicUrl = function(e, r, i) {
|
|
void 0 === r && (r = !1),
|
|
void 0 === i && (i = "web");
|
|
var a = "/api/sns/".concat(i, "/racing_get")
|
|
, s = "prod" === e ? "" : "".concat(e || "beta", ".");
|
|
s = "";
|
|
var u = "//edith.".concat("").concat(s, "xiaohongshu.com");
|
|
return "".concat("").concat(u).concat(a)
|
|
}
|
|
,
|
|
r.getWebIdFromCookie = getWebIdFromCookie,
|
|
r.getXHSABTestFlag = function() {
|
|
try {
|
|
var e = localStorage.getItem(c);
|
|
return JSON.parse(e)
|
|
} catch (e) {
|
|
console.error("get localStorage error!!!", e)
|
|
}
|
|
return null
|
|
}
|
|
,
|
|
r.setXHSABTestFlag = function(e) {
|
|
try {
|
|
var r = JSON.stringify(e);
|
|
return localStorage.setItem(c, r),
|
|
!0
|
|
} catch (e) {
|
|
return console.error("set localStorage error!!!", e),
|
|
!1
|
|
}
|
|
}
|
|
},
|
|
36757: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Lg: function() {
|
|
return toJsStyle
|
|
},
|
|
cJ: function() {
|
|
return toPythonStyle
|
|
}
|
|
});
|
|
let a = /^[A-Z_]{2,}$/
|
|
, s = /^[A-Z_1-9]{2,}$/
|
|
, u = /^(_*)(.*?)(_*)$/;
|
|
function isConst(e) {
|
|
return a.test(e)
|
|
}
|
|
function isConstWithNumber(e) {
|
|
return s.test(e)
|
|
}
|
|
function commonConvert(e, r) {
|
|
return isConstWithNumber(e) ? e : e.replace(u, (e, i, a, s) => {
|
|
let u = r(a);
|
|
return `${i}${u}${s}`
|
|
}
|
|
)
|
|
}
|
|
function stringTransform_underscoreCase(e, r={}) {
|
|
let i = r.separateNumber || !1;
|
|
return commonConvert(e, e => {
|
|
let r = i ? /[A-Z]|[\d]+|h5/g : /[A-Z]|h5/g
|
|
, s = []
|
|
, u = e.length
|
|
, c = 0
|
|
, l = r.exec(e);
|
|
for (!l && s.push(e); l; ) {
|
|
let i = l.index
|
|
, a = e.substring(c, l.index);
|
|
if (s.push(a),
|
|
c = i,
|
|
!(l = r.exec(e))) {
|
|
let r = e.substring(i, u);
|
|
s.push(r)
|
|
}
|
|
}
|
|
return s.filter(e => e).map( (e, r) => {
|
|
var i;
|
|
return 0 === r || (i = e,
|
|
a.test(i)) ? e : e.replace(/^[A-Z]/, e => e.toLowerCase())
|
|
}
|
|
).join("_")
|
|
}
|
|
)
|
|
}
|
|
function stringTransform_camelCase(e) {
|
|
return commonConvert(e, e => e.split("_").filter(e => e).map( (e, r) => {
|
|
var i;
|
|
return 0 === r || (i = e,
|
|
a.test(i)) ? e : e.replace(/^[a-z]/, e => e.toUpperCase())
|
|
}
|
|
).join(""))
|
|
}
|
|
function isObjectOrArray(e) {
|
|
return "object" == typeof e && ("[object Object]" === Object.prototype.toString.call(e) || Array.isArray(e))
|
|
}
|
|
function handleProp(e, r, i, a) {
|
|
return isObjectOrArray(e) ? a(e, r, i) : e
|
|
}
|
|
function handleKey(e, r, i) {
|
|
return r(e, i)
|
|
}
|
|
function handleSource(e, r, i) {
|
|
let a = Array.isArray(e)
|
|
, s = a ? [] : {};
|
|
for (let u in e)
|
|
if (e.hasOwnProperty(u)) {
|
|
let c = a ? u : handleKey(u, r, i)
|
|
, l = handleProp(e[u], r, i, handleSource);
|
|
s[c] = l
|
|
}
|
|
return s
|
|
}
|
|
function toSomeStyle(e, r, i) {
|
|
if (!isObjectOrArray(e))
|
|
return e;
|
|
let a = "function" == typeof r ? r : void 0
|
|
, s = handleSource(e, i, "object" == typeof r ? r : void 0);
|
|
return a ? a(s) : s
|
|
}
|
|
function toJsStyle(e, r) {
|
|
return toSomeStyle(e, r, stringTransform_camelCase)
|
|
}
|
|
function toPythonStyle(e, r) {
|
|
return toSomeStyle(e, r, stringTransform_underscoreCase)
|
|
}
|
|
},
|
|
40122: function(e, r, i) {
|
|
"use strict";
|
|
let a;
|
|
function postApiSnsWebV1LoginQrcodeCreate(e, r={}) {
|
|
return r.summary = "web登录-创建二维码",
|
|
a.post("/api/sns/web/v1/login/qrcode/create", e, r)
|
|
}
|
|
function getApiSnsWebV1LoginQrcodeStatus(e={}) {
|
|
return e.summary = "web登录-获取二维码状态",
|
|
a.get("/api/sns/web/v1/login/qrcode/status", e)
|
|
}
|
|
function postApiSnsWebV1LoginActivate(e, r={}) {
|
|
return r.summary = "web登录-用户激活",
|
|
a.post("/api/sns/web/v1/login/activate", e, r)
|
|
}
|
|
function getApiSnsWebV1LoginLogout(e={}) {
|
|
return e.summary = "web登录-用户退登",
|
|
a.get("/api/sns/web/v1/login/logout", e)
|
|
}
|
|
function getApiSnsWebV1LoginSendCode(e={}) {
|
|
return e.summary = "web登录-发送验证码",
|
|
a.get("/api/sns/web/v1/login/send_code", e)
|
|
}
|
|
function getApiSnsWebV1LoginCheckCode(e={}) {
|
|
return e.summary = "web登录-验证验证码",
|
|
a.get("/api/sns/web/v1/login/check_code", e)
|
|
}
|
|
function postApiSnsWebV1LoginCode(e, r={}) {
|
|
return r.summary = "web登录-验证码登录",
|
|
a.post("/api/sns/web/v1/login/code", e, r)
|
|
}
|
|
function getApiSnsWebV1GetLikedNum(e={}) {
|
|
return e.summary = "【web】获取登录后的真实点赞数",
|
|
a.get("/api/sns/web/v1/get_liked_num", e)
|
|
}
|
|
function postApiSnsWebV1Homefeed(e, r={}) {
|
|
return r.summary = "【web】- homefeed",
|
|
a.post("/api/sns/web/v1/homefeed", e, r)
|
|
}
|
|
function postApiSnsWebV1Feed(e, r={}) {
|
|
return r.summary = "【web】- feed",
|
|
a.post("/api/sns/web/v1/feed", e, r)
|
|
}
|
|
function postApiSnsWebV1NoteUncollect(e, r={}) {
|
|
return r.summary = "web笔记取消收藏",
|
|
a.post("/api/sns/web/v1/note/uncollect", e, r)
|
|
}
|
|
function postApiSnsWebV1NoteCollect(e, r={}) {
|
|
return r.summary = "web笔记收藏",
|
|
a.post("/api/sns/web/v1/note/collect", e, r)
|
|
}
|
|
function postApiSnsWebV1NoteDislike(e, r={}) {
|
|
return r.summary = "WEB-笔记取消点赞",
|
|
a.post("/api/sns/web/v1/note/dislike", e, r)
|
|
}
|
|
function postApiSnsWebV1NoteLike(e, r={}) {
|
|
return r.level = "S2",
|
|
r.summary = "WEB-笔记点赞",
|
|
a.post("/api/sns/web/v1/note/like", e, r)
|
|
}
|
|
function getApiImRedmojiVersion(e={}) {
|
|
return e.summary = "web 表情列表 版本",
|
|
a.get("/api/im/redmoji/version", e)
|
|
}
|
|
function getApiImRedmojiDetail(e={}) {
|
|
return e.summary = "web 表情列表",
|
|
a.get("/api/im/redmoji/detail", e)
|
|
}
|
|
function postApiSnsWebV1CommentDelete(e, r={}) {
|
|
return r.summary = "web-删除评论",
|
|
a.post("/api/sns/web/v1/comment/delete", e, r)
|
|
}
|
|
function postApiSnsWebV1CommentPost(e, r={}) {
|
|
return r.summary = "web-创建评论",
|
|
a.post("/api/sns/web/v1/comment/post", e, r)
|
|
}
|
|
function postApiSnsWebV1CommentDislike(e, r={}) {
|
|
return r.summary = "web-评论取消点赞",
|
|
a.post("/api/sns/web/v1/comment/dislike", e, r)
|
|
}
|
|
function postApiSnsWebV1CommentLike(e, r={}) {
|
|
return r.summary = "web-评论点赞",
|
|
a.post("/api/sns/web/v1/comment/like", e, r)
|
|
}
|
|
function getApiSnsWebV1IntimacyIntimacyList(e={}) {
|
|
return e.summary = "web At用户列表",
|
|
a.get("/api/sns/web/v1/intimacy/intimacy_list", e)
|
|
}
|
|
function getApiSnsWebV1IntimacyIntimacyListSearch(e={}) {
|
|
return e.summary = "web查询At搜索用户",
|
|
a.get("/api/sns/web/v1/intimacy/intimacy_list/search", e)
|
|
}
|
|
function postApiSnsWebV1UserFollow(e, r={}) {
|
|
return r.summary = "web 用户关注",
|
|
a.post("/api/sns/web/v1/user/follow", e, r)
|
|
}
|
|
function postApiSnsWebV1UserUnfollow(e, r={}) {
|
|
return r.summary = "web 用户取消关注",
|
|
a.post("/api/sns/web/v1/user/unfollow", e, r)
|
|
}
|
|
function getApiSnsWebV2CommentSubPage(e={}) {
|
|
return e.summary = "web-查询二级评论",
|
|
a.get("/api/sns/web/v2/comment/sub/page", e)
|
|
}
|
|
function getApiSnsWebV2CommentPage(e={}) {
|
|
return e.summary = "web-查询一级评论列表",
|
|
a.get("/api/sns/web/v2/comment/page", e)
|
|
}
|
|
function getApiSnsWebV1UserSelfinfo(e={}) {
|
|
return e.summary = "web个人页",
|
|
a.get("/api/sns/web/v1/user/selfinfo", e)
|
|
}
|
|
function getApiSnsWebV1UserOtherinfo(e={}) {
|
|
return e.summary = "web他人页",
|
|
a.get("/api/sns/web/v1/user/otherinfo", e)
|
|
}
|
|
function postApiSnsWebV1NoteMetricsReport(e, r={}) {
|
|
return r.level = "S1",
|
|
r.summary = "笔记详情页进入和退出时调取的指标上报接口-web",
|
|
a.post("/api/sns/web/v1/note/metrics_report", e, r)
|
|
}
|
|
function getApiSnsWebV2NoteCollectPage(e={}) {
|
|
return e.summary = "web-个人页收藏列表",
|
|
a.get("/api/sns/web/v2/note/collect/page", e)
|
|
}
|
|
function getApiSnsWebV1NoteLikePage(e={}) {
|
|
return e.summary = "web-个人页点赞列表",
|
|
a.get("/api/sns/web/v1/note/like/page", e)
|
|
}
|
|
function getApiSnsWebV1HomefeedCategory(e={}) {
|
|
return e.summary = "【web】- homefeed_category",
|
|
a.get("/api/sns/web/v1/homefeed/category", e)
|
|
}
|
|
function postApiSnsWebV1Nps(e, r={}) {
|
|
return r.summary = "【web】-NPS",
|
|
a.post("/api/sns/web/v1/nps", e, r)
|
|
}
|
|
function postApiSnsWebV1LoginSocial(e, r={}) {
|
|
return r.summary = "web端三方登录",
|
|
a.post("/api/sns/web/v1/login/social", e, r)
|
|
}
|
|
function postApiSnsWebV1SearchNotes(e, r={}) {
|
|
return r.level = "S1",
|
|
r.summary = "web笔记搜索",
|
|
a.post("/api/sns/web/v1/search/notes", e, r)
|
|
}
|
|
function getApiSnsWebV1ResourceLoad(e={}) {
|
|
return e.summary = "[web]活动资源位预加载",
|
|
a.get("/api/sns/web/v1/resource_load", e)
|
|
}
|
|
function getApiSnsWebV2UserMe(e={}) {
|
|
return e.summary = "web用户-个人信息V2",
|
|
a.get("/api/sns/web/v2/user/me", e)
|
|
}
|
|
function getApiSnsWebV1SearchQuerytrending(e={}) {
|
|
return e.summary = "web猜你想搜trending",
|
|
a.get("/api/sns/web/v1/search/querytrending", e)
|
|
}
|
|
function postApiSnsWebV1SearchOnebox(e, r={}) {
|
|
return r.summary = "onebox",
|
|
a.post("/api/sns/web/v1/search/onebox", e, r)
|
|
}
|
|
function getApiSnsWebGlobalConfig(e={}) {
|
|
return e.summary = "首页全局加载",
|
|
a.get("/api/sns/web/global/config", e)
|
|
}
|
|
function getApiSnsWebV2UserPosted(e={}) {
|
|
return e.summary = "【web】- user_posted v2",
|
|
a.get("/api/sns/web/v2/user_posted", e)
|
|
}
|
|
function getApiSnsWebV1UserPosted(e={}) {
|
|
return e.summary = "【web】- user_posted",
|
|
a.get("/api/sns/web/v1/user_posted", e)
|
|
}
|
|
function postApiSnsWebV1SearchUsersearch(e, r={}) {
|
|
return r.level = "S1",
|
|
r.summary = "用户搜索",
|
|
a.post("/api/sns/web/v1/search/usersearch", e, r)
|
|
}
|
|
function getApiSnsWebV1SearchRecommend(e={}) {
|
|
return e.level = "S2",
|
|
e.summary = "search-recommend",
|
|
a.get("/api/sns/web/v1/search/recommend", e)
|
|
}
|
|
function postApiSnsWebV2LoginCode(e, r={}) {
|
|
return r.summary = "web短信验证码登录注册",
|
|
a.post("/api/sns/web/v2/login/code", e, r)
|
|
}
|
|
function postApiSnsWebV1UserInfo(e, r={}) {
|
|
return r.summary = "web端编辑资料",
|
|
a.post("/api/sns/web/v1/user/info", e, r)
|
|
}
|
|
function getApiSnsWebV1TagLoginRecommend(e={}) {
|
|
return e.summary = "web端获取注册兴趣列表",
|
|
a.get("/api/sns/web/v1/tag/login_recommend", e)
|
|
}
|
|
function postApiSnsWebV1TagFollow(e, r={}) {
|
|
return r.summary = "web上报注册兴趣",
|
|
a.post("/api/sns/web/v1/tag/follow", e, r)
|
|
}
|
|
function postApiSnsWebNioFeed(e, r={}) {
|
|
return r.summary = "nio笔详feed",
|
|
a.post("/api/sns/web/nio/feed", e, r)
|
|
}
|
|
function postApiSnsWebNioInit(e, r={}) {
|
|
return r.summary = "nio视频精选首页",
|
|
a.post("/api/sns/web/nio/init", e, r)
|
|
}
|
|
function postMedusaApiCommunitySourceNew(e, r={}) {
|
|
return r.summary = "反馈新增sourceData",
|
|
a.post("/medusa/api/community/source/new", e, r)
|
|
}
|
|
function getApiSnsWebV1SystemConfig(e={}) {
|
|
return e.summary = "web系统配置",
|
|
a.get("/api/sns/web/v1/system/config", e)
|
|
}
|
|
function getApiSnsWebV2LoginSendCode(e={}) {
|
|
return e.summary = "web登录-发送验证码v2",
|
|
a.get("/api/sns/web/v2/login/send_code", e)
|
|
}
|
|
function postApiSnsWebV1Board(e, r={}) {
|
|
return r.summary = "web创建专辑",
|
|
a.post("/api/sns/web/v1/board", e, r)
|
|
}
|
|
function deleteApiSnsWebV1Board(e={}) {
|
|
return e.summary = "web删除专辑",
|
|
a.del("/api/sns/web/v1/board", e)
|
|
}
|
|
function putApiSnsWebV1Board(e, r={}) {
|
|
return r.summary = "web更新专辑信息",
|
|
a.put("/api/sns/web/v1/board", e, r)
|
|
}
|
|
function getApiSnsWebV1BoardByBoardId(e={}) {
|
|
return e.summary = "web获取专辑信息",
|
|
a.get("/api/sns/web/v1/board/{boardId}", e)
|
|
}
|
|
function getApiSnsWebV1BoardUser(e={}) {
|
|
return e.summary = "web查询用户的专辑",
|
|
a.get("/api/sns/web/v1/board/user", e)
|
|
}
|
|
function getApiSnsWebV1BoardNote(e={}) {
|
|
return e.summary = "web专辑笔记列表",
|
|
a.get("/api/sns/web/v1/board/note", e)
|
|
}
|
|
function postApiSnsWebV1NoteMove(e, r={}) {
|
|
return r.summary = "web专辑间移动笔记",
|
|
a.post("/api/sns/web/v1/note/move", e, r)
|
|
}
|
|
function postApiSnsWebV1HomefeedInitialLoad(e, r={}) {
|
|
return r.summary = "【web】首刷homefeed ",
|
|
a.post("/api/sns/web/v1/homefeed/initial_load", e, r)
|
|
}
|
|
function postApiSnsWebReportList(e, r={}) {
|
|
return r.summary = "web获取举报项",
|
|
a.post("/api/sns/web/report/list", e, r)
|
|
}
|
|
function postApiSnsWebReportSubmit(e, r={}) {
|
|
return r.summary = "web提交举报",
|
|
a.post("/api/sns/web/report/submit", e, r)
|
|
}
|
|
function getApiSnsWebV1UserHoverCard(e={}) {
|
|
return e.summary = "web hover展示用户卡片",
|
|
a.get("/api/sns/web/v1/user/hover_card", e)
|
|
}
|
|
function getApiSnsWebV1SearchFilter(e={}) {
|
|
return e.summary = "web搜索-筛选项",
|
|
a.get("/api/sns/web/v1/search/filter", e)
|
|
}
|
|
i.d(r, {
|
|
B1: function() {
|
|
return postApiSnsWebV1NoteCollect
|
|
},
|
|
RZ: function() {
|
|
return getApiSnsWebV1NoteLikePage
|
|
},
|
|
yG: function() {
|
|
return postApiSnsWebV2LoginCode
|
|
},
|
|
JD: function() {
|
|
return getApiSnsWebGlobalConfig
|
|
},
|
|
Iu: function() {
|
|
return getApiSnsWebV1ResourceLoad
|
|
},
|
|
K4: function() {
|
|
return getApiSnsWebV1SystemConfig
|
|
},
|
|
Qy: function() {
|
|
return getApiSnsWebV1TagLoginRecommend
|
|
},
|
|
t8: function() {
|
|
return getApiSnsWebV1UserPosted
|
|
},
|
|
gB: function() {
|
|
return getApiSnsWebV1UserSelfinfo
|
|
},
|
|
y5: function() {
|
|
return getApiSnsWebV2LoginSendCode
|
|
},
|
|
fs: function() {
|
|
return getApiSnsWebV2UserMe
|
|
},
|
|
u3: function() {
|
|
return postApiSnsWebReportList
|
|
},
|
|
F: function() {
|
|
return postApiSnsWebV1HomefeedInitialLoad
|
|
},
|
|
vZ: function() {
|
|
return postApiSnsWebV1LoginQrcodeCreate
|
|
},
|
|
HY: function() {
|
|
return postApiSnsWebV1NoteLike
|
|
},
|
|
d0: function() {
|
|
return postApiSnsWebV1NoteMove
|
|
},
|
|
$5: function() {
|
|
return postApiSnsWebV1SearchNotes
|
|
},
|
|
hb: function() {
|
|
return postApiSnsWebNioInit
|
|
},
|
|
qV: function() {
|
|
return postApiSnsWebV1CommentLike
|
|
},
|
|
Rx: function() {
|
|
return postApiSnsWebV1TagFollow
|
|
},
|
|
R6: function() {
|
|
return postApiSnsWebV1UserInfo
|
|
},
|
|
Ks: function() {
|
|
return getApiSnsWebV1BoardNote
|
|
},
|
|
AM: function() {
|
|
return putApiSnsWebV1Board
|
|
},
|
|
_F: function() {
|
|
return postApiSnsWebV1SearchUsersearch
|
|
},
|
|
tl: function() {
|
|
return getApiImRedmojiDetail
|
|
},
|
|
vW: function() {
|
|
return postApiSnsWebV1UserUnfollow
|
|
},
|
|
IJ: function() {
|
|
return getApiSnsWebV1LoginLogout
|
|
},
|
|
S9: function() {
|
|
return getApiSnsWebV2CommentPage
|
|
},
|
|
al: function() {
|
|
return postApiSnsWebV1Nps
|
|
},
|
|
z1: function() {
|
|
return getApiSnsWebV2CommentSubPage
|
|
},
|
|
p: function() {
|
|
return postApiSnsWebV1Homefeed
|
|
},
|
|
Pm: function() {
|
|
return postApiSnsWebV1CommentDelete
|
|
},
|
|
U_: function() {
|
|
return getApiSnsWebV1BoardByBoardId
|
|
},
|
|
dV: function() {
|
|
return deleteApiSnsWebV1Board
|
|
},
|
|
_d: function() {
|
|
return postApiSnsWebV1CommentDislike
|
|
},
|
|
LN: function() {
|
|
return postApiSnsWebV1NoteUncollect
|
|
},
|
|
js: function() {
|
|
return postApiSnsWebV1NoteMetricsReport
|
|
},
|
|
d9: function() {
|
|
return postApiSnsWebV1SearchOnebox
|
|
},
|
|
UF: function() {
|
|
return postApiSnsWebNioFeed
|
|
},
|
|
b1: function() {
|
|
return getApiSnsWebV1SearchFilter
|
|
},
|
|
jV: function() {
|
|
return postApiSnsWebReportSubmit
|
|
},
|
|
xh: function() {
|
|
return postApiSnsWebV1Board
|
|
},
|
|
ny: function() {
|
|
return postApiSnsWebV1NoteDislike
|
|
},
|
|
EB: function() {
|
|
return getApiSnsWebV1LoginSendCode
|
|
},
|
|
F2: function() {
|
|
return getApiSnsWebV1SearchRecommend
|
|
},
|
|
_Z: function() {
|
|
return getApiImRedmojiVersion
|
|
},
|
|
ho: function() {
|
|
return postApiSnsWebV1LoginSocial
|
|
},
|
|
ng: function() {
|
|
return getApiSnsWebV1LoginCheckCode
|
|
},
|
|
sC: function() {
|
|
return postMedusaApiCommunitySourceNew
|
|
},
|
|
Le: function() {
|
|
return getApiSnsWebV1LoginQrcodeStatus
|
|
},
|
|
B4: function() {
|
|
return getApiSnsWebV1GetLikedNum
|
|
},
|
|
_i: function() {
|
|
return getApiSnsWebV1UserHoverCard
|
|
},
|
|
fg: function() {
|
|
return getApiSnsWebV1UserOtherinfo
|
|
},
|
|
nJ: function() {
|
|
return getApiSnsWebV1HomefeedCategory
|
|
},
|
|
Tt: function() {
|
|
return postApiSnsWebV1LoginCode
|
|
},
|
|
Yf: function() {
|
|
return postApiSnsWebV1UserFollow
|
|
},
|
|
Ff: function() {
|
|
return getApiSnsWebV2UserPosted
|
|
},
|
|
QE: function() {
|
|
return getApiSnsWebV1IntimacyIntimacyListSearch
|
|
},
|
|
an: function() {
|
|
return postApiSnsWebV1Feed
|
|
},
|
|
pe: function() {
|
|
return postApiSnsWebV1CommentPost
|
|
},
|
|
dj: function() {
|
|
return postApiSnsWebV1LoginActivate
|
|
},
|
|
du: function() {
|
|
return getApiSnsWebV1SearchQuerytrending
|
|
},
|
|
Vn: function() {
|
|
return getApiSnsWebV2NoteCollectPage
|
|
},
|
|
yC: function() {
|
|
return getApiSnsWebV1BoardUser
|
|
},
|
|
tF: function() {
|
|
return getApiSnsWebV1IntimacyIntimacyList
|
|
}
|
|
}),
|
|
function registerHttp(e) {
|
|
a = e
|
|
}(i(65266).dJ)
|
|
},
|
|
34134: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Z: function() {
|
|
return s
|
|
}
|
|
});
|
|
class a {
|
|
static _calculate(e=[]) {
|
|
if (0 === e.length)
|
|
return null;
|
|
if (1 === e.length)
|
|
return e[0].t;
|
|
let r = e[0];
|
|
for (let i = 1; i < e.length; i++) {
|
|
let a = e[i];
|
|
a.layoutSignificance > r.layoutSignificance && (r = a)
|
|
}
|
|
return r.t
|
|
}
|
|
static get() {
|
|
return new Promise(e => {
|
|
if (window.__FULLY_LOADED__ && window.__FMP_OBSERVED_POINTS__) {
|
|
e({
|
|
firstPaint: window.__FP__,
|
|
firstContentfulPaint: window.__FCP__,
|
|
firstScreen: window.__FIRST_SCREEN__,
|
|
firstMeaningfulPaint: a._calculate(window.__FMP_OBSERVED_POINTS__),
|
|
fullyLoaded: window.__FULLY_LOADED__
|
|
});
|
|
return
|
|
}
|
|
window.addEventListener("__fullyloaded__", r => {
|
|
e({
|
|
firstPaint: r.detail.firstPaint,
|
|
firstContentfulPaint: r.detail.firstContentfulPaint,
|
|
firstScreen: window.__FIRST_SCREEN__,
|
|
firstMeaningfulPaint: a._calculate(r.detail.observedPoints),
|
|
fullyLoaded: r.detail.fullyLoaded
|
|
})
|
|
}
|
|
)
|
|
}
|
|
)
|
|
}
|
|
}
|
|
var s = a
|
|
},
|
|
80503: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Z: function() {
|
|
return ti
|
|
}
|
|
});
|
|
var a, s, u, c, l, d, p = i(41622), f = i(46490), v = i(90251), g = i(51606), h = i(70879), m = i(377);
|
|
i(29744),
|
|
i(36277),
|
|
i(34333),
|
|
i(86651),
|
|
i(7608),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357);
|
|
var _ = i(4659)
|
|
, y = i(27337);
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(19077),
|
|
i(75973);
|
|
var w = i(44501);
|
|
i(87989);
|
|
var E = i(63522)
|
|
, S = i(28934)
|
|
, T = i(31547);
|
|
i(25069),
|
|
i(58486),
|
|
i(55947),
|
|
i(72169),
|
|
i(80156),
|
|
i(50721),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(99808),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(9557),
|
|
i(95477),
|
|
i(74093),
|
|
i(20768),
|
|
i(41648),
|
|
i(59339),
|
|
i(47444),
|
|
i(34757),
|
|
i(85908),
|
|
i(39995),
|
|
i(22943),
|
|
i(54767),
|
|
i(55820),
|
|
i(93225),
|
|
i(33708),
|
|
i(64322),
|
|
i(47771);
|
|
var b = {
|
|
production: "https://fe.xiaohongshu.com/faas/proto/json-to-proto-json-to-proto/proxy",
|
|
development: "http://serverless.int.sit.xiaohongshu.com/function/proto/json-to-proto-json-to-proto/proxy"
|
|
}
|
|
, k = {
|
|
production: "https://apm-fe.xiaohongshu.com/api/data",
|
|
development: "//apm-fe-test.xiaohongshu.com/api/data"
|
|
}
|
|
, C = ["t.xiaohongshu.com", "spltest.xiaohongshu.com", "t2.xiaohongshu.com", "t2-test.xiaohongshu.com", "lng.xiaohongshu.com", "apm-track.xiaohongshu.com", "apm-track-test.xiaohongshu.com", "fse.xiaohongshu.com", "fse.devops.xiaohongshu.com", "fesentry.xiaohongshu.com"]
|
|
, P = "__APM__ResourceErrorTracker__"
|
|
, A = "HTTPServerError"
|
|
, R = "HTTPBizError"
|
|
, I = "HTTPClientError"
|
|
, O = "httpRequestTiming"
|
|
, N = "infraJsError"
|
|
, L = "x-b3-traceid"
|
|
, M = ["link", "script", "img"]
|
|
, B = "xhs_context_networkQuality"
|
|
, isBrowser = function() {
|
|
return "undefined" != typeof window
|
|
}
|
|
, x = {
|
|
isProd: !0
|
|
}
|
|
, D = {
|
|
value: void 0
|
|
}
|
|
, F = {
|
|
isFirstScreen: 1
|
|
}
|
|
, V = {
|
|
isVisable: 1
|
|
}
|
|
, getDeviceLevel = function() {
|
|
var e, r, i = isBrowser() ? null === (r = window) || void 0 === r ? void 0 : null === (e = r.navigator) || void 0 === e ? void 0 : e.hardwareConcurrency : 0;
|
|
return i ? i > 12 ? 1 : i > 6 ? 0 : -1 : -2
|
|
}
|
|
, getPageVisable = function() {
|
|
return V.isVisable
|
|
}
|
|
, setPageVisible = function(e) {
|
|
V.isVisable = e
|
|
}
|
|
, setFirstScreen = function(e) {
|
|
F.isFirstScreen = e
|
|
}
|
|
, setProd = function(e) {
|
|
x.isProd = e
|
|
}
|
|
, base_isProd = function() {
|
|
return x.isProd && !/\.sit\./.test(window.location.href)
|
|
}
|
|
, isXrayLink = function(e) {
|
|
return "measurement_name"in e
|
|
}
|
|
, isArray = function(e) {
|
|
return "[object Array]" === Object.prototype.toString.call(e)
|
|
}
|
|
, parseUrl = function(e) {
|
|
try {
|
|
return !/^https?:\/\//.test(e) && (e = "https://c.xiaohongshu.com" + e),
|
|
new URL(e).pathname.split("/").map(function(e) {
|
|
var r, i;
|
|
if ("" !== e && !Number.isNaN(Number(e)))
|
|
return ":num";
|
|
return e.length >= 17 && (r = e,
|
|
/\d/.test(r)) && (i = e,
|
|
!/-|_/.test(i)) || e.replace(/[^\d]/g, "").length >= 10 ? ":id" : e
|
|
}).join("/")
|
|
} catch (e) {
|
|
return console.error(e),
|
|
""
|
|
}
|
|
}
|
|
, getDomain = function(e) {
|
|
var r = e.match(/^(?:https?:\/\/)?(?:[^@\/\n]+@)?(?:www\.)?([^:\/\n]+)/im);
|
|
return r ? r[1] : void 0
|
|
}
|
|
, H = function _getRemoteUrl() {
|
|
var e;
|
|
return function() {
|
|
return e ? Promise.resolve(e) : (D.value ? Promise.resolve(!D.value.trackEnv) : (0,
|
|
S.dw)("getTrackEnv").then(function(e) {
|
|
return !e.value.isTestEnv
|
|
}).catch(function() {
|
|
return base_isProd()
|
|
})).then(function(r) {
|
|
var i, a, s, u, c = tn.options.customEndPoint, l = r ? (null == c ? void 0 : null === (i = c.apmXrayTracker) || void 0 === i ? void 0 : i.production) || k.production : (null == c ? void 0 : null === (a = c.apmXrayTracker) || void 0 === a ? void 0 : a.development) || k.development;
|
|
return e = {
|
|
xrayLink: l,
|
|
oldLink: r ? (null == c ? void 0 : null === (s = c.apmJsonTracker) || void 0 === s ? void 0 : s.production) || b.production : (null == c ? void 0 : null === (u = c.apmJsonTracker) || void 0 === u ? void 0 : u.development) || b.development
|
|
}
|
|
})
|
|
}
|
|
}()
|
|
, merge = function(e, r) {
|
|
var transform = function(e, r) {
|
|
var i = {};
|
|
return Object.keys(e).forEach(function(a) {
|
|
var s = r[a];
|
|
void 0 !== s && (void 0 === s ? "undefined" : (0,
|
|
T._)(s)) !== "object" ? i[a] = s : (void 0 === s ? "undefined" : (0,
|
|
T._)(s)) === "object" && null != s ? i[a] = transform(e[a], r[a]) : i[a] = e[a]
|
|
}),
|
|
Object.keys(r).forEach(function(a) {
|
|
void 0 === e[a] && (i[a] = r[a])
|
|
}),
|
|
i
|
|
};
|
|
return transform(e, r)
|
|
}
|
|
, U = new Map
|
|
, errorExist = function(e) {
|
|
var r = U.get(e);
|
|
if (r)
|
|
return !(Date.now() - r > 6e4) && !0;
|
|
return !1
|
|
}
|
|
, setError = function(e) {
|
|
U.set(e, Date.now())
|
|
}
|
|
, transformObj = function(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "add";
|
|
if (r) {
|
|
var a = {};
|
|
return Object.keys(r).forEach(function(s) {
|
|
"add" === i && (a["".concat(e, "_").concat(s)] = r[s]),
|
|
"delete" === i && (a[s.replace("".concat(e, "_"), "")] = r[s])
|
|
}),
|
|
a
|
|
}
|
|
}
|
|
, setBaseInfo = function() {
|
|
var e;
|
|
if (null === (e = window) || void 0 === e ? void 0 : e.__baseInfo__)
|
|
try {
|
|
var r = JSON.parse(window.__baseInfo__);
|
|
D.value = Object.keys(r).length ? r : void 0
|
|
} catch (e) {
|
|
D.value = void 0
|
|
}
|
|
else
|
|
D.value = void 0
|
|
}
|
|
, judgePlatform = function() {
|
|
if (E.YF.isIOS)
|
|
return E.YF.isXHS ? "iOS" : "iOSBrowser";
|
|
if (E.YF.isAndroid)
|
|
return E.YF.isXHS ? "Android" : "AndroidBrowser";
|
|
if (E.YF.isHarmony || E.YF.isHarmonyArk)
|
|
return E.YF.isXHS ? "Harmony" : "HarmonyBrowser";
|
|
return "PC"
|
|
}
|
|
, q = {
|
|
appVersion: "0.0.0",
|
|
systemVersion: "unknown",
|
|
uniqueId: "",
|
|
bundleId: ""
|
|
}
|
|
, deviceBuilder = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : q
|
|
, r = arguments.length > 1 ? arguments[1] : void 0;
|
|
return {
|
|
app: {
|
|
type: "App",
|
|
value: {
|
|
nameTracker: {
|
|
type: "NameTracker",
|
|
value: "wapT"
|
|
},
|
|
platform: {
|
|
type: "Platform",
|
|
value: judgePlatform()
|
|
},
|
|
appVersion: "discovery-".concat(e.appVersion)
|
|
}
|
|
},
|
|
mob: {
|
|
type: "Mobile",
|
|
value: {
|
|
osVersion: e.systemVersion || "unknown",
|
|
dvceModel: e.deviceModel || ""
|
|
}
|
|
},
|
|
dvc: {
|
|
type: "Device",
|
|
value: {
|
|
dvceId: e.uniqueId || (null == r ? void 0 : r.deviceId) || ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
, deviceBuilderV2 = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : q
|
|
, r = arguments.length > 1 ? arguments[1] : void 0;
|
|
return {
|
|
context_nameTracker: "wapT",
|
|
context_platform: judgePlatform(),
|
|
context_appVersion: "discovery-".concat(e.appVersion),
|
|
context_osVersion: e.systemVersion || "unknown",
|
|
context_deviceModel: e.deviceModel || "",
|
|
context_deviceId: e.uniqueId || (null == r ? void 0 : r.deviceId) || "",
|
|
context_package: e.bundleId || ""
|
|
}
|
|
}
|
|
, whenActivated = function(e) {
|
|
document.prerendering ? addEventListener("prerenderingchange", function() {
|
|
return e()
|
|
}, !0) : e()
|
|
};
|
|
i(25037),
|
|
i(74719),
|
|
i(13396),
|
|
i(91313),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057),
|
|
i(64961),
|
|
i(12996),
|
|
i(59564);
|
|
var onActivated = function(e) {
|
|
var onHiddenOrPageHide = function(r) {
|
|
"visible" === document.visibilityState && e(r)
|
|
};
|
|
addEventListener("visibilitychange", onHiddenOrPageHide, !0),
|
|
addEventListener("pagehide", onHiddenOrPageHide, !0)
|
|
}
|
|
, j = {
|
|
EXCELLENT: [90, 100],
|
|
GOOD: [80, 90],
|
|
MODERATE: [70, 80],
|
|
ACCEPTABLE: [60, 70],
|
|
WEAK: [0, 60]
|
|
}
|
|
, W = [{
|
|
rttRange: [0, 110],
|
|
jitterRange: [0, 30],
|
|
speedRange: [3.3, 100],
|
|
score: [90, 100]
|
|
}, {
|
|
rttRange: [110, 460],
|
|
jitterRange: [30, 60],
|
|
speedRange: [1.5, 3.3],
|
|
score: [80, 90]
|
|
}, {
|
|
rttRange: [460, 1400],
|
|
jitterRange: [60, 100],
|
|
speedRange: [1, 1.5],
|
|
score: [70, 80]
|
|
}, {
|
|
rttRange: [1400, 2e3],
|
|
jitterRange: [100, 200],
|
|
speedRange: [.5, 1],
|
|
score: [60, 70]
|
|
}, {
|
|
rttRange: [2e3, 1e4],
|
|
jitterRange: [200, 1e4],
|
|
speedRange: [0, .5],
|
|
score: [0, 60]
|
|
}]
|
|
, G = [60, 3]
|
|
, J = function() {
|
|
function NetworkDetector() {
|
|
var e = this;
|
|
(0,
|
|
f._)(this, NetworkDetector),
|
|
(0,
|
|
g._)(this, "lastNQELevel", "UNKNOWN"),
|
|
(0,
|
|
g._)(this, "currentNQELevel", "UNKNOWN"),
|
|
(0,
|
|
g._)(this, "networkInformation", {
|
|
downlink: 0,
|
|
effectiveType: "unknown",
|
|
rtt: 0,
|
|
jitter: 0,
|
|
speed: 0,
|
|
rttScore: 0,
|
|
jitterScore: 0,
|
|
speedScore: 0,
|
|
networkQuality: "UNKNOWN"
|
|
}),
|
|
(0,
|
|
g._)(this, "imgUrl", "https://picasso-static.xiaohongshu.com/fe-platform/879b789b01030ed45ce198de8229cab980bc176f.png"),
|
|
(0,
|
|
g._)(this, "_interval", 0),
|
|
(0,
|
|
g._)(this, "_times", 0),
|
|
(0,
|
|
g._)(this, "_weights", [.3, .2, .5]),
|
|
(0,
|
|
g._)(this, "listeners", []),
|
|
(0,
|
|
g._)(this, "calculateMetricScore", function(e, r, i) {
|
|
var a = (0,
|
|
w._)(e, 2)
|
|
, s = a[0]
|
|
, u = a[1]
|
|
, c = (0,
|
|
w._)(r, 2)
|
|
, l = c[0]
|
|
, d = c[1];
|
|
return Math.round(l + (d - l) / (u - s) * (i - s))
|
|
}),
|
|
(0,
|
|
g._)(this, "getNetworkQuality", function(e) {
|
|
var r = !0
|
|
, i = !1
|
|
, a = void 0;
|
|
try {
|
|
for (var s, u = Object.entries(j)[Symbol.iterator](); !(r = (s = u.next()).done); r = !0) {
|
|
var c = (0,
|
|
w._)(s.value, 2)
|
|
, l = c[0]
|
|
, d = c[1];
|
|
if (e >= d[0] && e <= d[1])
|
|
return l
|
|
}
|
|
} catch (e) {
|
|
i = !0,
|
|
a = e
|
|
} finally {
|
|
try {
|
|
!r && null != u.return && u.return()
|
|
} finally {
|
|
if (i)
|
|
throw a
|
|
}
|
|
}
|
|
return "UNKNOWN"
|
|
}),
|
|
(0,
|
|
g._)(this, "updateNQELevel", function() {
|
|
e.lastNQELevel = e.currentNQELevel,
|
|
e.currentNQELevel = e.networkInformation.networkQuality,
|
|
e.lastNQELevel !== e.currentNQELevel && e.notifyListeners(),
|
|
e.reset()
|
|
}),
|
|
this._interval = 60,
|
|
this._times = 3
|
|
}
|
|
return (0,
|
|
v._)(NetworkDetector, [{
|
|
key: "sendImgRequest",
|
|
value: function sendImgRequest(e) {
|
|
try {
|
|
return new Promise(function(r, i) {
|
|
var a = 0
|
|
, s = new Date().getTime()
|
|
, u = new XMLHttpRequest;
|
|
u.onreadystatechange = function() {
|
|
if (4 === u.readyState) {
|
|
if (200 === u.status) {
|
|
var e = new Date().getTime() - s
|
|
, c = 8 * a
|
|
, l = e / 1e3;
|
|
r({
|
|
rtt: e,
|
|
speed: c / l / 1e6
|
|
})
|
|
} else
|
|
i("Request failed with status ".concat(u.status))
|
|
}
|
|
}
|
|
,
|
|
u.onerror = function() {
|
|
i("Request failed with status ".concat(u.status))
|
|
}
|
|
,
|
|
u.onprogress = function(e) {
|
|
a = e.loaded
|
|
}
|
|
,
|
|
u.open("GET", e),
|
|
u.setRequestHeader("Cache-Control", "no-cache"),
|
|
u.send()
|
|
}
|
|
)
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
}
|
|
}, {
|
|
key: "calcJitter",
|
|
value: function calcJitter(e) {
|
|
var r = e.reduce(function(e, r) {
|
|
return e + r.rtt
|
|
}, 0) / e.length
|
|
, i = e.map(function(e) {
|
|
return Math.abs(e.rtt - r)
|
|
});
|
|
return (i.reduce(function(e, r) {
|
|
return e + r
|
|
}, 0) / i.length).toFixed(2)
|
|
}
|
|
}, {
|
|
key: "calcScore",
|
|
value: function calcScore(e) {
|
|
var r = e.rtt
|
|
, i = e.jitter
|
|
, a = e.speed
|
|
, s = W.find(function(e) {
|
|
return r >= e.rttRange[0] && r <= e.rttRange[1]
|
|
}) || W[W.length - 1]
|
|
, u = W.find(function(e) {
|
|
return i >= e.jitterRange[0] && i <= e.jitterRange[1]
|
|
}) || W[W.length - 1]
|
|
, c = W.find(function(e) {
|
|
return a >= e.speedRange[0] && a <= e.speedRange[1]
|
|
}) || W[W.length - 1]
|
|
, l = this.calculateMetricScore(s.rttRange, s.score, r)
|
|
, d = this.calculateMetricScore(u.jitterRange, u.score, i)
|
|
, p = this.calculateMetricScore(c.speedRange, c.score, a)
|
|
, f = l * this._weights[0] + d * this._weights[1] + p * this._weights[2]
|
|
, v = this.getNetworkQuality(f);
|
|
this.networkInformation = (0,
|
|
y._)((0,
|
|
h._)({}, this.networkInformation), {
|
|
rttScore: l,
|
|
jitterScore: d,
|
|
speedScore: p,
|
|
networkQuality: v
|
|
})
|
|
}
|
|
}, {
|
|
key: "detectFromImg",
|
|
value: function detectFromImg() {
|
|
var e = this;
|
|
return (0,
|
|
p._)(function() {
|
|
var r, i, a, s;
|
|
return (0,
|
|
m.Jh)(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
for (i = 0,
|
|
r = []; i < e._times; i++)
|
|
r.push(e.sendImgRequest(e.imgUrl));
|
|
s.label = 1;
|
|
case 1:
|
|
return s.trys.push([1, 3, , 4]),
|
|
[4, Promise.all(r)];
|
|
case 2:
|
|
return a = s.sent(),
|
|
e.networkInformation.speed = Number((a.reduce(function(e, r) {
|
|
return e + r.speed
|
|
}, 0) / a.length).toFixed(2)),
|
|
e.networkInformation.jitter = Number(e.calcJitter(a)),
|
|
e.networkInformation.rtt = Number((a.reduce(function(e, r) {
|
|
return e + r.rtt
|
|
}, 0) / a.length).toFixed(2)),
|
|
e.calcScore(e.networkInformation),
|
|
[3, 4];
|
|
case 3:
|
|
return s.sent(),
|
|
e.reset(),
|
|
[3, 4];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "detectFromApi",
|
|
value: function detectFromApi() {
|
|
if ("connection"in navigator) {
|
|
var e = navigator.connection;
|
|
this.networkInformation.effectiveType = e.effectiveType,
|
|
this.networkInformation.downlink = e.downlink
|
|
} else
|
|
console.log("Network Information API is not supported in this browser.")
|
|
}
|
|
}, {
|
|
key: "detect",
|
|
value: function detect() {
|
|
var e, r, i = this, a = this;
|
|
var s = (e = (0,
|
|
p._)(function() {
|
|
return (0,
|
|
m.Jh)(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
if ("visible" !== document.visibilityState)
|
|
return [3, 2];
|
|
return a.detectFromApi(),
|
|
[4, a.detectFromImg()];
|
|
case 1:
|
|
e.sent(),
|
|
a.updateNQELevel(),
|
|
clearTimeout(r),
|
|
r = setTimeout(s, 1e3 * a._interval),
|
|
e.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function detectRepeatedly() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
);
|
|
onActivated(function() {
|
|
clearTimeout(r),
|
|
r = setTimeout(s, 1e3 * i._interval)
|
|
}),
|
|
r = setTimeout(s, 3e3)
|
|
}
|
|
}, {
|
|
key: "onchange",
|
|
value: function onchange(e) {
|
|
this.listeners.push(e)
|
|
}
|
|
}, {
|
|
key: "notifyListeners",
|
|
value: function notifyListeners() {
|
|
var e = !0
|
|
, r = !1
|
|
, i = void 0;
|
|
try {
|
|
for (var a, s = this.listeners[Symbol.iterator](); !(e = (a = s.next()).done); e = !0)
|
|
(0,
|
|
a.value)(this.lastNQELevel, this.currentNQELevel)
|
|
} catch (e) {
|
|
r = !0,
|
|
i = e
|
|
} finally {
|
|
try {
|
|
!e && null != s.return && s.return()
|
|
} finally {
|
|
if (r)
|
|
throw i
|
|
}
|
|
}
|
|
}
|
|
}, {
|
|
key: "reset",
|
|
value: function reset() {
|
|
this.networkInformation = {
|
|
downlink: 0,
|
|
effectiveType: "unknown",
|
|
rtt: 0,
|
|
jitter: 0,
|
|
speed: 0,
|
|
rttScore: 0,
|
|
jitterScore: 0,
|
|
speedScore: 0,
|
|
networkQuality: "UNKNOWN"
|
|
}
|
|
}
|
|
}], [{
|
|
key: "getInstance",
|
|
value: function getInstance() {
|
|
return !NetworkDetector.instance && (NetworkDetector.instance = new NetworkDetector,
|
|
NetworkDetector.instance.detect()),
|
|
NetworkDetector.instance
|
|
}
|
|
}]),
|
|
NetworkDetector
|
|
}();
|
|
(0,
|
|
g._)(J, "instance", void 0);
|
|
var setNetInfoToStorage = function(e) {
|
|
localStorage.setItem(B, e)
|
|
};
|
|
function resolveNetType() {
|
|
return new Promise(function(e) {
|
|
var r, i;
|
|
return D.value ? e((null === (i = D.value) || void 0 === i ? void 0 : null === (r = i.networkType) || void 0 === r ? void 0 : r.toLowerCase()) || "unknow") : (0,
|
|
S.dw)("getNetworkType").then(function(r) {
|
|
var i = r.result
|
|
, a = r.value;
|
|
0 === i ? e(a.toLowerCase()) : e("unknow")
|
|
}).catch(function() {
|
|
try {
|
|
var r = window.navigator.userAgent;
|
|
e((0,
|
|
E.P7)(r).toLowerCase())
|
|
} catch (r) {
|
|
e("unknow")
|
|
}
|
|
})
|
|
}
|
|
)
|
|
}
|
|
var X = {
|
|
wifi: "wifi",
|
|
"4g": "mobile",
|
|
"3g": "mobile",
|
|
"3g+": "mobile",
|
|
"2g": "mobile",
|
|
none: "unknow",
|
|
other: "unknow"
|
|
};
|
|
var Y = (a = (0,
|
|
p._)(function(e) {
|
|
return (0,
|
|
m.Jh)(this, function(r) {
|
|
if (!E.YF.isXHS && (null == e ? void 0 : e.open)) {
|
|
var i;
|
|
return i = e,
|
|
whenActivated(function() {
|
|
try {
|
|
requestIdleCallback((0,
|
|
p._)(function() {
|
|
return (0,
|
|
m.Jh)(this, function(e) {
|
|
return J.getInstance().onchange(function(e, r) {
|
|
return i.onchange && i.onchange(e, r),
|
|
setNetInfoToStorage(r),
|
|
r
|
|
}),
|
|
[2]
|
|
})
|
|
}))
|
|
} catch (e) {}
|
|
}),
|
|
[2, Promise.resolve({
|
|
context_networkQuality: localStorage.getItem(B) || "UNKNOWN"
|
|
})]
|
|
}
|
|
return [2, new Promise(function(e) {
|
|
var r;
|
|
if (D.value)
|
|
return e({
|
|
context_networkQuality: (null === (r = D.value) || void 0 === r ? void 0 : r.networkQuality) || "UNKNOWN"
|
|
});
|
|
(0,
|
|
S.dw)("getDefaultNQELevel").then(function(r) {
|
|
e({
|
|
context_networkQuality: r.value
|
|
})
|
|
}).catch(function() {
|
|
e({
|
|
context_networkQuality: "UNKNOWN"
|
|
})
|
|
})
|
|
}
|
|
)]
|
|
})
|
|
}),
|
|
function getNQELevel(e) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
);
|
|
i(67930);
|
|
var z = {
|
|
userId: "",
|
|
userToken: "",
|
|
sessionId: "",
|
|
hashExp: "",
|
|
flags: {}
|
|
}
|
|
, setDefaultABInfo = function(e) {
|
|
var r = e.userId
|
|
, i = e.userToken
|
|
, a = e.sessionId
|
|
, s = e.hashExp;
|
|
return r && (z.userId = r),
|
|
i && (z.userToken = i),
|
|
a && (z.sessionId = a),
|
|
s && "string" == typeof s && (z.hashExp = s),
|
|
z
|
|
};
|
|
function getABInfoByBridge() {
|
|
var e;
|
|
return D.value && (null === (e = D.value) || void 0 === e ? void 0 : e.userId) ? Promise.resolve(setDefaultABInfo(D.value)) : (0,
|
|
S.dw)("getUserInfo").then(function(e) {
|
|
return setDefaultABInfo(e.value)
|
|
})
|
|
}
|
|
function getABInfo() {
|
|
return getABInfoByBridge().catch(function() {
|
|
return z
|
|
})
|
|
}
|
|
function getOpenId() {
|
|
if (E.YF.isMiniprogram) {
|
|
var e;
|
|
if (null === (e = window) || void 0 === e ? void 0 : e.location)
|
|
return new URLSearchParams(window.location.search).get("openid")
|
|
}
|
|
return null
|
|
}
|
|
function getUserInfoPromise() {
|
|
if (s)
|
|
return s;
|
|
var e = getABInfo().then(function(e) {
|
|
return {
|
|
user: {
|
|
type: "User",
|
|
value: {
|
|
userId: e.userId || "",
|
|
hashUserId: e.userToken,
|
|
wxOpenid: getOpenId() || "",
|
|
expV4: e.hashExp
|
|
}
|
|
}
|
|
}
|
|
});
|
|
return s = e,
|
|
e
|
|
}
|
|
i(43648);
|
|
var K = function() {
|
|
function Seq() {
|
|
(0,
|
|
f._)(this, Seq)
|
|
}
|
|
return (0,
|
|
v._)(Seq, null, [{
|
|
key: "increment",
|
|
value: function increment() {
|
|
return Seq.index += 1,
|
|
Seq.index
|
|
}
|
|
}, {
|
|
key: "getSeq",
|
|
value: function getSeq() {
|
|
return Seq.index
|
|
}
|
|
}]),
|
|
Seq
|
|
}();
|
|
(0,
|
|
g._)(K, "index", 0);
|
|
var Z = new (function() {
|
|
function PageSession() {
|
|
(0,
|
|
f._)(this, PageSession),
|
|
(0,
|
|
g._)(this, "preMatchedPath", ""),
|
|
(0,
|
|
g._)(this, "curMatchedPath", ""),
|
|
(0,
|
|
g._)(this, "pageSessionId", (0,
|
|
_.Z)())
|
|
}
|
|
return (0,
|
|
v._)(PageSession, [{
|
|
key: "setSessionId",
|
|
value: function setSessionId(e) {
|
|
this.preMatchedPath = this.curMatchedPath,
|
|
this.curMatchedPath !== e && (this.curMatchedPath = e,
|
|
this.pageSessionId = (0,
|
|
_.Z)())
|
|
}
|
|
}, {
|
|
key: "getPageSessionId",
|
|
value: function getPageSessionId() {
|
|
return this.pageSessionId
|
|
}
|
|
}]),
|
|
PageSession
|
|
}())
|
|
, getPath = function(e) {
|
|
var r = (e || {}).matched
|
|
, i = void 0 === r ? [] : r
|
|
, a = i.length > 0 ? i.slice(-1)[0] : null;
|
|
return a && a.path || "/"
|
|
};
|
|
function getBrowserInfo(e) {
|
|
return isBrowser() ? {
|
|
browser: {
|
|
type: "Browser",
|
|
value: {
|
|
matchedPath: e ? getPath(e) : parseUrl(window.location.href),
|
|
route: window.location.href,
|
|
userAgent: window.navigator.userAgent
|
|
}
|
|
}
|
|
} : {}
|
|
}
|
|
var getXrayBrowserInfo = function(e) {
|
|
if (!isBrowser())
|
|
return {};
|
|
var r = e ? getPath(e) : parseUrl(window.location.href);
|
|
return Z.setSessionId(r),
|
|
{
|
|
context_matchedPath: r,
|
|
context_route: window.location.href,
|
|
context_userAgent: window.navigator.userAgent
|
|
}
|
|
}
|
|
, Q = {
|
|
user: {
|
|
type: "User",
|
|
value: {
|
|
userId: ""
|
|
}
|
|
}
|
|
}
|
|
, getUserInfo = function() {
|
|
arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
|
|
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
, r = e.getUserInfo;
|
|
return r ? new Promise(function(e) {
|
|
setTimeout(function() {
|
|
r().then(function(r) {
|
|
e(r)
|
|
}).catch(function() {
|
|
e(Q)
|
|
})
|
|
})
|
|
}
|
|
) : getUserInfoPromise()
|
|
}
|
|
, $ = Promise.resolve(Q)
|
|
, getXrayUserInfo = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return $ = getUserInfo(e, r)
|
|
}
|
|
, getArtifactInfo = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = {
|
|
artifactName: e.package && e.package.name || "xhs-pc-web",
|
|
artifactVersion: e.package && e.package.version || "4.62.3"
|
|
};
|
|
return e.getArtifactInfo ? (0,
|
|
h._)({}, r, e.getArtifactInfo()) : r
|
|
}
|
|
, getOldMeta = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return Promise.all([(e = i,
|
|
new Promise(function(r) {
|
|
if (E.YF.isXHS) {
|
|
if (D.value)
|
|
return r(deviceBuilder(D.value));
|
|
(0,
|
|
S.dw)("getDeviceInfo").then(function(e) {
|
|
e ? r(deviceBuilder(e.value)) : r(deviceBuilder())
|
|
}).catch(function() {
|
|
r(deviceBuilder())
|
|
})
|
|
} else
|
|
e.getDeviceInfo ? e.getDeviceInfo().then(function(e) {
|
|
r(deviceBuilder({}, e))
|
|
}).catch(function() {
|
|
r(deviceBuilder())
|
|
}) : r(deviceBuilder())
|
|
}
|
|
)), resolveNetType().then(function(e) {
|
|
return {
|
|
network: {
|
|
type: "Network",
|
|
value: {
|
|
networkType: {
|
|
type: "NetworkType",
|
|
value: X[e] || "unknow"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}), $, getBrowserInfo(r.route), getArtifactInfo(i)]).then(function(e) {
|
|
var r = (0,
|
|
w._)(e, 5)
|
|
, i = r[0]
|
|
, a = r[1]
|
|
, s = r[2]
|
|
, u = r[3]
|
|
, c = r[4]
|
|
, l = (0,
|
|
h._)({}, i, a, u, s);
|
|
return l.app.value = (0,
|
|
h._)({}, l.app.value, void 0 === c ? {} : c),
|
|
l
|
|
})
|
|
}
|
|
, getXrayMeta = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return Promise.all([(e = i,
|
|
new Promise(function(r) {
|
|
if (E.YF.isXHS) {
|
|
if (D.value)
|
|
return r(deviceBuilderV2(D.value));
|
|
(0,
|
|
S.dw)("getDeviceInfo").then(function(e) {
|
|
e ? r(deviceBuilderV2(e.value)) : r(deviceBuilderV2())
|
|
}).catch(function() {
|
|
r(deviceBuilderV2())
|
|
})
|
|
} else
|
|
e.getDeviceInfo ? e.getDeviceInfo().then(function(e) {
|
|
r(deviceBuilderV2({}, e))
|
|
}).catch(function() {
|
|
r(deviceBuilderV2())
|
|
}) : r(deviceBuilderV2())
|
|
}
|
|
)), resolveNetType().then(function(e) {
|
|
return {
|
|
context_networkType: X[e] || "unknow"
|
|
}
|
|
}), getXrayUserInfo(r, i), getXrayBrowserInfo(r.route), getArtifactInfo(i), Y(i.network), new Promise(function(e) {
|
|
if (E.YF.isXHS) {
|
|
if (D.value)
|
|
return e({
|
|
context_deviceLevel: "".concat(D.value.deviceLevel)
|
|
});
|
|
(0,
|
|
S.dw)("getHardWareLevel").then(function(r) {
|
|
e({
|
|
context_deviceLevel: "".concat(r.value)
|
|
})
|
|
}).catch(function() {
|
|
return e({})
|
|
})
|
|
} else
|
|
e({
|
|
context_deviceLevel: "".concat(getDeviceLevel())
|
|
})
|
|
}
|
|
).then(function(e) {
|
|
return e
|
|
})]).then(function(e) {
|
|
var r = (0,
|
|
w._)(e, 7)
|
|
, i = r[0]
|
|
, a = r[1]
|
|
, s = r[2]
|
|
, u = r[3]
|
|
, c = r[4]
|
|
, l = r[5]
|
|
, d = r[6]
|
|
, p = (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, i, a, u), {
|
|
context_artifactName: c.artifactName || "",
|
|
context_artifactVersion: c.artifactVersion || ""
|
|
}), l, d);
|
|
return s && s.user && s.user.value && (p.context_userId = s.user.value.userId),
|
|
p
|
|
})
|
|
}
|
|
, ee = new (function() {
|
|
function Builder() {
|
|
(0,
|
|
f._)(this, Builder),
|
|
(0,
|
|
g._)(this, "meta", {}),
|
|
(0,
|
|
g._)(this, "extraMeta", {}),
|
|
(0,
|
|
g._)(this, "flag", !1)
|
|
}
|
|
return (0,
|
|
v._)(Builder, [{
|
|
key: "init",
|
|
value: function init(e) {
|
|
var r = this;
|
|
if (this.flag)
|
|
return Promise.resolve({});
|
|
this.flag = !0;
|
|
var i = e.setCustomDimensions
|
|
, a = void 0 === i ? function() {
|
|
return Promise.resolve({})
|
|
}
|
|
: i;
|
|
return Promise.all([this.updateXrayMeta({}, e), this.updateOldMeta({}, e), a().then(function(e) {
|
|
r.extraMeta.dimensions = transformObj("custom", e)
|
|
})])
|
|
}
|
|
}, {
|
|
key: "config",
|
|
value: function config(e, r, i) {
|
|
if (!!r) {
|
|
var a = JSON.parse(JSON.stringify(r))
|
|
, s = "ApmTracker" === i ? "old" : "";
|
|
s && ("old" === s && a.value && delete a.value.gid,
|
|
"old" === s && "app" === e && a.value && delete a.value.buildId,
|
|
this.meta[s] ? this.meta[s][e] = a : this.meta[s] = (0,
|
|
g._)({}, e, a))
|
|
}
|
|
}
|
|
}, {
|
|
key: "extend",
|
|
value: function extend(e, r) {
|
|
var i = this;
|
|
Object.keys(e).forEach(function(a) {
|
|
i.config(a, e[a], r)
|
|
})
|
|
}
|
|
}, {
|
|
key: "updateExtra",
|
|
value: function updateExtra(e, r) {
|
|
this.extraMeta[e] = (0,
|
|
h._)({}, this.extraMeta[e], "dimensions" === e ? transformObj("custom", r) : r)
|
|
}
|
|
}, {
|
|
key: "updateXrayMeta",
|
|
value: function updateXrayMeta() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return new Promise(function(a) {
|
|
getXrayMeta(r, i).then(function(r) {
|
|
e.meta.xray = r,
|
|
a(r)
|
|
}).catch(function(e) {
|
|
console.warn(e)
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "updateOldMeta",
|
|
value: function updateOldMeta() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return new Promise(function(a) {
|
|
getOldMeta(r, i).then(function(r) {
|
|
e.meta.old = r,
|
|
a(r)
|
|
}).catch(function(e) {
|
|
console.warn(e)
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "build",
|
|
value: function build(e) {
|
|
var r, i, a = isXrayLink(e) ? this.meta.xray : this.meta.old, s = {
|
|
event: {
|
|
type: "Event",
|
|
value: {
|
|
dvceMicroTs: 1e3 * new Date().valueOf()
|
|
}
|
|
}
|
|
};
|
|
if (isXrayLink(e))
|
|
i = (0,
|
|
h._)({
|
|
clientTime: Date.now(),
|
|
context_sdkSessionId: tn.sessionId,
|
|
context_pageSessionId: Z.getPageSessionId(),
|
|
context_sdkSeqId: K.increment()
|
|
}, a, this.extraMeta.dimensions, e);
|
|
else {
|
|
;if ("type"in (r = e) && "value"in r)
|
|
i = (0,
|
|
y._)((0,
|
|
h._)({}, s, a), {
|
|
frontApmTracker: {
|
|
type: "FrontApmTracker",
|
|
value: e.value
|
|
}
|
|
});
|
|
else
|
|
i = (0,
|
|
h._)({}, s, a, e)
|
|
}
|
|
return i
|
|
}
|
|
}]),
|
|
Builder
|
|
}());
|
|
i(87394),
|
|
i(94941),
|
|
i(48421),
|
|
i(98976);
|
|
var et = function getChromeVersion() {
|
|
try {
|
|
var e = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
|
|
return !!e && parseInt(e[2], 10)
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}();
|
|
function isSupportKeepaliveInFetch() {
|
|
return !et || et > 69
|
|
}
|
|
var er = {
|
|
GET: "GET",
|
|
POST: "POST"
|
|
}
|
|
, request_xhr = function(e, r, i) {
|
|
var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
|
|
return new Promise(function(s, u) {
|
|
var c = new XMLHttpRequest;
|
|
c.open(e, r);
|
|
var l = a.headers
|
|
, d = void 0 === l ? {} : l
|
|
, p = a.withCredentials;
|
|
Object.keys(d).forEach(function(e) {
|
|
c.setRequestHeader(e, d[e])
|
|
}),
|
|
c.withCredentials = void 0 !== p && p,
|
|
c.onreadystatechange = function() {
|
|
c.readyState == XMLHttpRequest.DONE && (c.status >= 200 && c.status < 400 ? s(JSON.parse(c.response)) : u(c.response))
|
|
}
|
|
,
|
|
e === er.POST ? c.send(JSON.stringify(i)) : c.send()
|
|
}
|
|
)
|
|
}
|
|
, post = function(e, r, i) {
|
|
return request_xhr(er.POST, e, r, i)
|
|
}
|
|
, sendByHttp = function(e, r) {
|
|
return post(e, r, {
|
|
headers: {
|
|
"Content-Type": "text/plain"
|
|
},
|
|
withCredentials: !1
|
|
}).catch(function(e) {
|
|
!base_isProd() && console.error(e)
|
|
})
|
|
};
|
|
function sendToXrayByFetch(e, r) {
|
|
var i = !(arguments.length > 2) || void 0 === arguments[2] || arguments[2];
|
|
if ("function" == typeof fetch) {
|
|
var a = {
|
|
method: "POST",
|
|
headers: {
|
|
"content-type": "application/json",
|
|
"Biz-Type": "apm_fe",
|
|
Batch: i ? "true" : "false"
|
|
},
|
|
body: JSON.stringify(r)
|
|
};
|
|
return isSupportKeepaliveInFetch() && (a.keepalive = !0),
|
|
fetch(e, a).catch(function(e) {
|
|
!base_isProd() && console.error(e)
|
|
})
|
|
}
|
|
return post(e, r, {
|
|
headers: {
|
|
"Biz-Type": "apm_fe",
|
|
Batch: "true",
|
|
"Content-Type": "application/json;charset=UTF-8"
|
|
},
|
|
withCredentials: !1
|
|
}).catch(function(e) {
|
|
!base_isProd() && console.error(e)
|
|
})
|
|
}
|
|
var en = Function("return this")();
|
|
en.__APM_COMBO_CACHE_GROUP_V2__ = {};
|
|
var ei = !1;
|
|
function viewDisappearListener() {
|
|
var cb = function() {
|
|
var e = Object.keys(en.__APM_COMBO_CACHE_GROUP_V2__);
|
|
if (e.length)
|
|
for (var r = 0; r < e.length; r++) {
|
|
var i = e[r]
|
|
, a = en.__APM_COMBO_CACHE_GROUP_V2__[i] || {}
|
|
, s = a.data
|
|
, u = a.request;
|
|
s && s.length && ((u || sendToXrayByFetch).call(null, i, s),
|
|
en.__APM_COMBO_CACHE_GROUP_V2__[i] = null)
|
|
}
|
|
};
|
|
E.YF.isXHS ? (E.YF.isAndroid && (0,
|
|
S.Ld)("viewDidDisappear", cb),
|
|
E.YF.isIOS && (0,
|
|
S.Ld)("viewDisappear", cb)) : (window.addEventListener || window.attachEvent)("visibilitychange", function() {
|
|
"hidden" === document.visibilityState && cb()
|
|
})
|
|
}
|
|
function requestCombo(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}
|
|
, a = i.request
|
|
, s = i.isCombo
|
|
, u = void 0 === s || s
|
|
, c = i.maxComboNum
|
|
, l = void 0 === c ? 5 : c
|
|
, d = i.collectTime
|
|
, p = void 0 === d ? 1e3 * l : d
|
|
, f = i.callback;
|
|
if (!e || "{}" === JSON.stringify(r))
|
|
return null;
|
|
var fetchUrl = function(e) {
|
|
return new Promise(function(r) {
|
|
var i;
|
|
if (null === (i = en.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === i ? void 0 : i.data.length) {
|
|
var a = en.__APM_COMBO_CACHE_GROUP_V2__[e]
|
|
, s = a.data
|
|
, u = a.timer
|
|
, c = a.request;
|
|
clearTimeout(u),
|
|
en.__APM_COMBO_CACHE_GROUP_V2__[e] = null,
|
|
setTimeout(function() {
|
|
return (c || sendByHttp).call(null, e, s).then(function(e) {
|
|
r(e)
|
|
})
|
|
}, 0)
|
|
}
|
|
}
|
|
)
|
|
};
|
|
return !ei && (viewDisappearListener(),
|
|
ei = !0),
|
|
new Promise(function(i, s) {
|
|
if (u) {
|
|
if (e) {
|
|
if (!en.__APM_COMBO_CACHE_GROUP_V2__[e] && (en.__APM_COMBO_CACHE_GROUP_V2__[e] = {
|
|
request: a,
|
|
data: [],
|
|
timer: setTimeout(function() {
|
|
var r, a = null === (r = en.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === r ? void 0 : r.data;
|
|
fetchUrl(e).then(function(e) {
|
|
f && f(a),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
s(e)
|
|
})
|
|
}, p)
|
|
}),
|
|
en.__APM_COMBO_CACHE_GROUP_V2__[e].data.push(r),
|
|
en.__APM_COMBO_CACHE_GROUP_V2__[e].data.length >= l) {
|
|
var c, d = null === (c = en.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === c ? void 0 : c.data;
|
|
fetchUrl(e).then(function(e) {
|
|
f && f(d),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
s(e)
|
|
})
|
|
}
|
|
} else
|
|
s("接口 url: ".concat(e, " 不能为空"))
|
|
} else
|
|
setTimeout(function() {
|
|
return sendToXrayByFetch.call(null, e, r, !1).then(function(e) {
|
|
i(e)
|
|
}).catch(function(e) {
|
|
s(e)
|
|
})
|
|
}, 0)
|
|
}
|
|
)
|
|
}
|
|
function requestCombo_destroy() {
|
|
return _destroy.apply(this, arguments)
|
|
}
|
|
function _destroy() {
|
|
return (_destroy = (0,
|
|
p._)(function() {
|
|
var e;
|
|
return (0,
|
|
m.Jh)(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
var i;
|
|
if (!(e = Object.keys(en.__APM_COMBO_CACHE_GROUP_V2__)).length)
|
|
return [3, 2];
|
|
return [4, Promise.all(e.map((i = (0,
|
|
p._)(function(e) {
|
|
var r, i, a;
|
|
return (0,
|
|
m.Jh)(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
if (i = (r = en.__APM_COMBO_CACHE_GROUP_V2__[e]).data,
|
|
a = r.request,
|
|
!(i && i.length))
|
|
return [3, 2];
|
|
return [4, (a || sendByHttp).call(null, e, i)];
|
|
case 1:
|
|
s.sent(),
|
|
en.__APM_COMBO_CACHE_GROUP_V2__[e] = null,
|
|
s.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function(e) {
|
|
return i.apply(this, arguments)
|
|
}
|
|
)))];
|
|
case 1:
|
|
r.sent(),
|
|
r.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var logXrayMetric = function(e) {
|
|
var r = e.measurement_name;
|
|
console.groupCollapsed("[apm] ".concat(r)),
|
|
console.log(e),
|
|
console.groupEnd()
|
|
}
|
|
, logJsonMetric = function(e) {
|
|
var r = "";
|
|
e.browserApmTracker ? r = Object.keys(e.browserApmTracker.value).filter(function(r) {
|
|
var i = e.browserApmTracker.value[r];
|
|
return isArray(i) ? i.length > 0 : i
|
|
}) : e.frontApmTracker && (r = "frontApmTracker"),
|
|
console.groupCollapsed("[apm] ".concat(r.toString())),
|
|
console.log(e),
|
|
console.groupEnd()
|
|
}
|
|
, uploadBehavior = function(e, r, i) {
|
|
e && H().then(function(a) {
|
|
var s = a.xrayLink
|
|
, u = a.oldLink
|
|
, c = isXrayLink(e) ? s : u
|
|
, l = isXrayLink(e) ? logXrayMetric : logJsonMetric
|
|
, d = isXrayLink(e) ? sendToXrayByFetch : sendByHttp;
|
|
requestCombo(c, e, (0,
|
|
h._)({
|
|
request: d,
|
|
callback: function(e) {
|
|
e && e.length && i.debug && e.forEach(function(e) {
|
|
l(e)
|
|
})
|
|
}
|
|
}, r))
|
|
})
|
|
}
|
|
, eo = new (function() {
|
|
function Sender() {
|
|
(0,
|
|
f._)(this, Sender)
|
|
}
|
|
return (0,
|
|
v._)(Sender, [{
|
|
key: "sender",
|
|
value: function sender(e, r, i) {
|
|
var a = r.debug
|
|
, s = r.http;
|
|
(void 0 === s ? {} : s).enableBatchRequest ? uploadBehavior(e, (0,
|
|
h._)({}, i), {
|
|
debug: a
|
|
}) : uploadBehavior(e, (0,
|
|
h._)({
|
|
isCombo: !1
|
|
}, i), {
|
|
debug: a
|
|
})
|
|
}
|
|
}, {
|
|
key: "destroy",
|
|
value: function destroy1() {
|
|
requestCombo_destroy()
|
|
}
|
|
}]),
|
|
Sender
|
|
}())
|
|
, ea = {
|
|
i8: "1.2.2"
|
|
};
|
|
function isSupportGetConfig() {
|
|
return _isSupportGetConfig.apply(this, arguments)
|
|
}
|
|
function _isSupportGetConfig() {
|
|
return (_isSupportGetConfig = (0,
|
|
p._)(function() {
|
|
var e;
|
|
return (0,
|
|
m.Jh)(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
return e.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
S.dw)("getAppInfo").then(function(e) {
|
|
return e.value.build && parseInt(e.value.build, 10) || 0
|
|
})];
|
|
case 1:
|
|
if (81e5 > e.sent())
|
|
return [2, !1];
|
|
return [3, 3];
|
|
case 2:
|
|
return e.sent(),
|
|
[3, 3];
|
|
case 3:
|
|
return [2, !0]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var es = {
|
|
default: 1
|
|
}
|
|
, eu = function() {
|
|
function ApmEmitterSample(e) {
|
|
(0,
|
|
f._)(this, ApmEmitterSample),
|
|
(0,
|
|
g._)(this, "sampleOptions", void 0),
|
|
(0,
|
|
g._)(this, "localSampleValue", void 0),
|
|
(0,
|
|
g._)(this, "cachePromise", void 0),
|
|
(0,
|
|
g._)(this, "needCreateCachePromise", !0),
|
|
this.sampleOptions = e || es,
|
|
this.localSampleValue = this.sampleOptions.default
|
|
}
|
|
return (0,
|
|
v._)(ApmEmitterSample, [{
|
|
key: "getSample",
|
|
value: function getSample() {
|
|
var e = this;
|
|
return (0,
|
|
p._)(function() {
|
|
var r, i, a, s;
|
|
return (0,
|
|
m.Jh)(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
return s.trys.push([0, 4, , 5]),
|
|
[4, isSupportGetConfig()];
|
|
case 1:
|
|
if (!s.sent())
|
|
return [3, 3];
|
|
return [4, (0,
|
|
S.dw)("getConfig", {
|
|
configKeys: ["fe_apm_sample"]
|
|
})];
|
|
case 2:
|
|
if (a = null === (i = s.sent().value) || void 0 === i ? void 0 : null === (r = i.fe_apm_sample) || void 0 === r ? void 0 : r.default)
|
|
return [2, e.localSampleValue < a ? e.localSampleValue : a];
|
|
return [2, e.localSampleValue];
|
|
case 3:
|
|
return [3, 5];
|
|
case 4:
|
|
return s.sent(),
|
|
[3, 5];
|
|
case 5:
|
|
return [2, e.localSampleValue]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "createCachePromise",
|
|
value: function createCachePromise() {
|
|
var e = this;
|
|
return new Promise(function(r) {
|
|
e.getSample().then(function(e) {
|
|
var i = Math.random();
|
|
r(i <= e)
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "getIsReportApm",
|
|
value: function getIsReportApm() {
|
|
var e = this;
|
|
return (0,
|
|
p._)(function() {
|
|
return (0,
|
|
m.Jh)(this, function(r) {
|
|
return base_isProd() ? (!0 === e.needCreateCachePromise && (e.needCreateCachePromise = !1,
|
|
e.cachePromise = e.createCachePromise()),
|
|
[2, e.cachePromise]) : [2, !0]
|
|
})
|
|
})()
|
|
}
|
|
}]),
|
|
ApmEmitterSample
|
|
}()
|
|
, unsupportedMethod = function(e) {
|
|
return void 0 === e || "function" != typeof e
|
|
}
|
|
, create_perf_utils_sendMetrics = function(e, r) {
|
|
if (!unsupportedMethod(e.toJSON)) {
|
|
var i = {
|
|
browserApmTracker: {
|
|
type: "BrowserApmTracker",
|
|
value: {
|
|
browserPerformanceMeasure: {
|
|
type: "BrowserPerformanceMeasure",
|
|
value: e.toJSON()
|
|
}
|
|
}
|
|
}
|
|
};
|
|
r && "function" == typeof r.push && r.push(i)
|
|
}
|
|
};
|
|
function createPerfUtils(e) {
|
|
return {
|
|
mark: function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
|
|
if (!unsupportedMethod(window.performance.mark))
|
|
window.performance.mark(e),
|
|
r && this.sendEntriesByName(e, "mark")
|
|
},
|
|
markPoint: function(e) {
|
|
this.mark(e, !0)
|
|
},
|
|
measure: function(e, r, i) {
|
|
if (!unsupportedMethod(window.performance.measure))
|
|
window.performance.measure(e, r, i),
|
|
r && window.performance.clearMarks(r),
|
|
i && window.performance.clearMarks(i),
|
|
this.sendEntriesByName(e, "measure")
|
|
},
|
|
sendEntriesByName: function(r, i) {
|
|
if (!unsupportedMethod(window.performance.getEntriesByName))
|
|
create_perf_utils_sendMetrics((0,
|
|
w._)(window.performance.getEntriesByName(r, i), 1)[0], e)
|
|
}
|
|
}
|
|
}
|
|
i(85203);
|
|
var ec = i(75649);
|
|
function debounce(e, r) {
|
|
var i, a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
|
|
return function() {
|
|
for (var s = arguments.length, u = Array(s), c = 0; c < s; c++)
|
|
u[c] = arguments[c];
|
|
var l = this
|
|
, d = a && !i;
|
|
i && clearTimeout(i),
|
|
i = setTimeout(function later() {
|
|
i = null,
|
|
!a && e.apply(l, u)
|
|
}, r),
|
|
d && e.apply(l, u)
|
|
}
|
|
}
|
|
i(42876),
|
|
i(33933),
|
|
i(41593),
|
|
i(23329),
|
|
i(34885);
|
|
var el = new (function() {
|
|
function WhiteScreenDetect() {
|
|
var e = this;
|
|
(0,
|
|
f._)(this, WhiteScreenDetect),
|
|
(0,
|
|
g._)(this, "isDetected", void 0),
|
|
(0,
|
|
g._)(this, "debounceSet", debounce(function() {
|
|
e.isDetected = !0
|
|
}, 1e4)),
|
|
this.setDetected()
|
|
}
|
|
return (0,
|
|
v._)(WhiteScreenDetect, [{
|
|
key: "setDetected",
|
|
value: function setDetected() {
|
|
this.isDetected = !1,
|
|
this.debounceSet()
|
|
}
|
|
}, {
|
|
key: "pushJsError",
|
|
value: function pushJsError(e) {
|
|
var r = this;
|
|
if (e && !this.isDetected) {
|
|
var i, a, s = {
|
|
deepLink: (null === (a = window) || void 0 === a ? void 0 : null === (i = a.location) || void 0 === i ? void 0 : i.href) || "",
|
|
errorMessage: e
|
|
};
|
|
(0,
|
|
S.dw)("writeJSErrorMessage", s).then(function(e) {
|
|
e && (r.isDetected = !!e.value)
|
|
}).catch(function() {
|
|
r.isDetected = !0
|
|
})
|
|
}
|
|
}
|
|
}]),
|
|
WhiteScreenDetect
|
|
}())
|
|
, isHTTPError = function(e) {
|
|
return [I, A, R].includes(e || "")
|
|
}
|
|
, isIgnoreErrors = function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
|
|
if (e) {
|
|
var i = "".concat(e.errorType, ": ").concat(e.errorMessage);
|
|
return r.includes(i)
|
|
}
|
|
}
|
|
, getJsErrorReportMetrics = function(e, r) {
|
|
var i, a = (0,
|
|
h._)({
|
|
enableIgnoreDefaultError: !0,
|
|
ignoreErrors: [],
|
|
ignoreError: null
|
|
}, (void 0 === r ? "undefined" : (0,
|
|
T._)(r)) === "object" && r), s = a.ignoreErrors, u = a.ignoreError, c = a.enableIgnoreDefaultError;
|
|
if (el.pushJsError(e.errorMessage || ""),
|
|
isIgnoreErrors(e, s))
|
|
return;
|
|
if (!(!0 === c && ((i = e).errorType && isHTTPError(i.errorType) || "AbortError" === i.errorType && "AbortError" === i.errorMessage))) {
|
|
if (!(u && u(e)))
|
|
return {
|
|
measurement_name: N,
|
|
measurement_data: e
|
|
}
|
|
}
|
|
}
|
|
, getErrorOptions = function(e) {
|
|
var r = e || {}
|
|
, i = r.level
|
|
, a = r.title
|
|
, s = r.extra
|
|
, u = void 0 === s ? null : s;
|
|
return {
|
|
errorLevel: i,
|
|
errorExtra: JSON.stringify((0,
|
|
h._)({
|
|
title: a
|
|
}, (void 0 === u ? "undefined" : (0,
|
|
T._)(u)) === "object" && u))
|
|
}
|
|
}
|
|
, parseError = function(e, r) {
|
|
if (e instanceof Error) {
|
|
var i, a, s, u, c = e.message, l = e.name;
|
|
if (e.stack) {
|
|
for (var d = e.stack.split("\n"), p = 0; d && p < d.length; p++) {
|
|
var f = /:(\d+:\d+)\)$/.exec(d[p]);
|
|
if (f && f[1]) {
|
|
var v = f[1].split(":");
|
|
i = d[p],
|
|
a = parseInt(v[0], 10) || 0,
|
|
s = parseInt(v[1], 10) || 0;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
return e.stack && (u = e.stack),
|
|
(0,
|
|
h._)({
|
|
errorLineNumber: a,
|
|
errorColNumber: s,
|
|
errorFilePath: i && i.trim(),
|
|
errorStack: u,
|
|
errorType: l,
|
|
errorMessage: c
|
|
}, r && getErrorOptions(r))
|
|
}
|
|
return "string" == typeof e ? (0,
|
|
h._)({
|
|
errorType: "Error",
|
|
errorMessage: e
|
|
}, r && getErrorOptions(r)) : null
|
|
}
|
|
, parseHttpStatus = function(e, r, i, a) {
|
|
var s = {};
|
|
return (e < 200 || e >= 300) && (s.errorType = A,
|
|
s.code = r,
|
|
s.errorMsg = i),
|
|
e >= 200 && e < 300 && void 0 !== a && !a && (s.errorType = R,
|
|
s.code = r,
|
|
s.errorMsg = i),
|
|
s
|
|
}
|
|
, ed = (0,
|
|
ec._)(Object.values(b)).concat((0,
|
|
ec._)(Object.values(k)))
|
|
, forbiddenUrl = function(e) {
|
|
if (ed.includes(e))
|
|
return !0;
|
|
var r = getDomain(e);
|
|
return !!r && C.includes(r)
|
|
}
|
|
, ep = null
|
|
, reportInnerError = function(e, r) {
|
|
try {
|
|
if (!base_isProd()) {
|
|
console.error(e);
|
|
return
|
|
}
|
|
if (e.name !== (null == ep ? void 0 : ep.name) || e.message !== (null == ep ? void 0 : ep.message) || (null == e ? void 0 : e.stack) !== (null == ep ? void 0 : ep.stack)) {
|
|
ep = e;
|
|
var i = parseError(e);
|
|
if (i) {
|
|
var a = {
|
|
context_artifactName: "apm-insight",
|
|
context_artifactVersion: ea.i8,
|
|
measurement_name: N,
|
|
measurement_data: (0,
|
|
h._)({}, i)
|
|
};
|
|
r.innerFlush(a)
|
|
}
|
|
}
|
|
} catch (r) {
|
|
!base_isProd() && console.error(e)
|
|
}
|
|
};
|
|
function downloadScreenshotTool() {
|
|
if (window.html2canvas) {
|
|
u = Promise.resolve(!0);
|
|
return
|
|
}
|
|
if (u)
|
|
return u;
|
|
u = new Promise(function(e) {
|
|
var r = document.createElement("script");
|
|
r.src = "https://fe-video-qc.xhscdn.com/fe-platform/abf6e0874371419fa6fffa7540610e2013588fe6/html2canvas.min.js",
|
|
document.head.appendChild(r),
|
|
r.onload = function() {
|
|
e(!0)
|
|
}
|
|
,
|
|
r.onerror = function() {
|
|
e(!1)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
function stringifyCyclicObject() {
|
|
var e = [];
|
|
return function(r, i) {
|
|
if ((void 0 === i ? "undefined" : (0,
|
|
T._)(i)) === "object" && null !== i) {
|
|
if (-1 !== e.indexOf(i))
|
|
return;
|
|
e.push(i)
|
|
}
|
|
return i
|
|
}
|
|
}
|
|
var ef = !1
|
|
, jsErrorPlugin = function(e) {
|
|
try {
|
|
if (ef)
|
|
return;
|
|
ef = !0;
|
|
for (var reportJsError = function(r) {
|
|
try {
|
|
var i = e.options.jsError
|
|
, a = getJsErrorReportMetrics(r, i);
|
|
a && e.flush(a)
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}, r = window.__ERROR_TRACKER_BUFFER__ || []; r.length; ) {
|
|
var i = r.shift()
|
|
, a = i.error
|
|
, s = i.extra || {}
|
|
, u = s.colno
|
|
, c = s.lineno
|
|
, l = s.source
|
|
, d = {
|
|
type: "onerror",
|
|
errorLineNumber: c,
|
|
errorColNumber: u,
|
|
errorFilePath: l && l.trim(),
|
|
errorStack: a && a.stack,
|
|
errorType: a && a.name,
|
|
errorMessage: String(a && a.message || a)
|
|
};
|
|
reportJsError(d)
|
|
}
|
|
window.onerror = function(e, r, i, a, s) {
|
|
var u = {
|
|
type: "onerror",
|
|
errorLineNumber: i,
|
|
errorColNumber: a,
|
|
errorFilePath: r && r.trim(),
|
|
errorStack: s && s.stack,
|
|
errorType: s && s.name,
|
|
errorMessage: String(e)
|
|
}
|
|
, c = u.errorType
|
|
, l = u.errorMessage
|
|
, d = u.errorFilePath;
|
|
window.apm_blankScreen_error = {
|
|
errorType: c,
|
|
content: l
|
|
};
|
|
var p = "jserror-".concat(d, "-").concat(c, "-").concat(l, "-").concat(i, "-").concat(a);
|
|
if (!errorExist(p))
|
|
setError(p),
|
|
reportJsError(u)
|
|
}
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}
|
|
, catchHttpNetworkError = function(e) {
|
|
var r = e.config || {
|
|
method: "",
|
|
url: "",
|
|
data: "",
|
|
params: ""
|
|
}
|
|
, i = r.method
|
|
, a = r.url
|
|
, s = r.data
|
|
, u = r.params;
|
|
return {
|
|
measurement_name: O,
|
|
measurement_data: {
|
|
method: i,
|
|
errorType: "HTTPNetworkError",
|
|
url: a,
|
|
errorMsg: e.message,
|
|
data: "get" === i ? u : s
|
|
}
|
|
}
|
|
}
|
|
, ev = !1
|
|
, monitor_promiseRejectPlugin = function(e) {
|
|
if (!ev) {
|
|
ev = !0;
|
|
var reportPromiseReject = function(r) {
|
|
var i = getJsErrorReportMetrics(r, e.options.jsError);
|
|
i && e.flush(i)
|
|
};
|
|
window.addEventListener("unhandledrejection", function(r) {
|
|
try {
|
|
var i, a, s, u, c, l = r && r.reason && r.reason.name;
|
|
if ("string" == typeof r.reason)
|
|
i = r.reason;
|
|
else if (null !== r.reason && "object" === (0,
|
|
T._)(r.reason)) {
|
|
if (r.reason.isAxiosError) {
|
|
var d = catchHttpNetworkError(r.reason);
|
|
e.flush(d);
|
|
return
|
|
}
|
|
if (r.reason.stack) {
|
|
for (var p = r.reason.stack.split("\n"), f = 0; p && f < p.length; f++) {
|
|
var v = /:(\d+:\d+)\)$/.exec(p[f]);
|
|
if (v && v[1]) {
|
|
var g = v[1].split(":");
|
|
a = p[f],
|
|
s = parseInt(g[0], 10) || 0,
|
|
u = parseInt(g[1], 10) || 0;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
i = r.reason.message,
|
|
c = r.reason.stack
|
|
}
|
|
var h = {
|
|
type: "promise",
|
|
errorLineNumber: s,
|
|
errorColNumber: u,
|
|
errorFilePath: a && a.trim(),
|
|
errorStack: c,
|
|
errorType: l,
|
|
errorMessage: i
|
|
};
|
|
reportPromiseReject(h)
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
, eg = i(64593);
|
|
i(1154),
|
|
i(80013),
|
|
i(57745);
|
|
var eh = ["t.xiaohongshu.com", "spltest.xiaohongshu.com", "t2.xiaohongshu.com", "t2-test.xiaohongshu.com", "lng.xiaohongshu.com", "apm-track.xiaohongshu.com", "apm-track-test.xiaohongshu.com", "fse.xiaohongshu.com", "fse.devops.xiaohongshu.com", "fesentry.xiaohongshu.com"]
|
|
, em = /\/\/(\S+?)[/|:]/;
|
|
function helpers_now() {
|
|
return Date.now() || +new Date
|
|
}
|
|
function isForbiddenUrl() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : eh
|
|
, i = e.match(/:\/\/(.[^/]+)/)
|
|
, a = i && i[1] || "";
|
|
return r.some(function(e) {
|
|
return e === a
|
|
})
|
|
}
|
|
function getTimeFromMarks(e, r) {
|
|
var i = (0,
|
|
w._)(e.filter(function(e) {
|
|
return e.name === r
|
|
}), 1)[0];
|
|
return i ? i.startTime : null
|
|
}
|
|
function toDict() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
return e.toJSON && "function" == typeof e.toJSON ? e.toJSON() : Object.keys(Object.getPrototypeOf(e)).reduce(function(r, i) {
|
|
return "function" != typeof e[i] && (r[i] = e[i]),
|
|
r
|
|
}, {})
|
|
}
|
|
var e_ = Object.prototype.toString
|
|
, isUndef = function(e) {
|
|
return null == e
|
|
}
|
|
, isFunc = function(e) {
|
|
return "function" == typeof e
|
|
}
|
|
, ey = ["connectEnd", "connectStart", "domComplete", "domContentLoadedEventEnd", "domContentLoadedEventStart", "domInteractive", "domLoading", "domainLookupEnd", "domainLookupStart", "fetchStart", "loadEventEnd", "loadEventStart", "navigationStart", "redirectEnd", "redirectStart", "requestStart", "responseEnd", "responseStart", "secureConnectionStart", "unloadEventEnd", "unloadEventStart"]
|
|
, ew = {}
|
|
, eE = []
|
|
, eS = helpers_now();
|
|
function resetEntries(e) {
|
|
var r = {}
|
|
, i = [];
|
|
eE.forEach(function(a) {
|
|
a.entryType !== e && (r[a.name] = a,
|
|
i.push(a))
|
|
}),
|
|
ew = r,
|
|
eE = i
|
|
}
|
|
function removeEntry(e, r) {
|
|
if (isUndef(r)) {
|
|
resetEntries(e);
|
|
return
|
|
}
|
|
eE = eE.filter(function(i) {
|
|
return i.name !== r || i.entryType !== e
|
|
});
|
|
var i = ew[r];
|
|
i && i.entryType === e && (ew[r] = void 0)
|
|
}
|
|
function ShadowPerformanceEntry(e, r, i, a) {
|
|
this.name = e,
|
|
this.duration = a,
|
|
this.entryType = r,
|
|
this.startTime = i
|
|
}
|
|
function wrap(e) {
|
|
function setupPolyfill(r, i) {
|
|
isUndef(e.performance[r]) && (e.performance[r] = i)
|
|
}
|
|
return e.performance = e.performance || {},
|
|
setupPolyfill("now", function() {
|
|
return "function" == typeof eS ? helpers_now() - eS() : helpers_now() - eS
|
|
}),
|
|
setupPolyfill("mark", function(e) {
|
|
if (ey.indexOf(e) >= 0)
|
|
throw Error("Failed to execute 'mark' on 'Performance': '".concat(e, "' is part of the PerformanceTiming interface, and cannot be used as a mark name."));
|
|
var r = new ShadowPerformanceEntry(e,"mark",performance.now(),0);
|
|
eE.push(r),
|
|
ew[e] = r
|
|
}),
|
|
setupPolyfill("measure", function(e, r, i) {
|
|
var a = 0
|
|
, s = 0
|
|
, u = helpers_now();
|
|
if (isUndef(r))
|
|
a = 0;
|
|
else if (ew[r])
|
|
a = ew[r].startTime;
|
|
else
|
|
throw Error("Failed to execute 'measure' on 'Performance': The mark '".concat(r, "' dose not exist."));
|
|
if (isUndef(i))
|
|
s = u;
|
|
else if (ew[i])
|
|
s = ew[i].startTime;
|
|
else
|
|
throw Error("Failed to execute 'measure' on 'Performance': The mark '".concat(i, "' dose not exist."));
|
|
var c = new ShadowPerformanceEntry(e,"measure",a,s - a);
|
|
eE.push(c),
|
|
ew[e] = c
|
|
}),
|
|
setupPolyfill("clearMarks", function(e) {
|
|
removeEntry("mark", e)
|
|
}),
|
|
setupPolyfill("clearMeasures", function(e) {
|
|
removeEntry("measure", e)
|
|
}),
|
|
setupPolyfill("getEntries", function(e) {
|
|
var r, i = eE;
|
|
return isUndef(e) ? i : (e.entryType ? r = e.name ? function(r) {
|
|
return r.entryType === e.entryType && r.name === e.name
|
|
}
|
|
: function(r) {
|
|
return r.entryType === e.entryType
|
|
}
|
|
: e.name && (r = function(r) {
|
|
return r.name === e.name
|
|
}
|
|
),
|
|
i.filter(r))
|
|
}),
|
|
setupPolyfill("getEntriesByName", function(r, i) {
|
|
var a = {
|
|
name: r
|
|
};
|
|
return i && (a.entryType = i),
|
|
e.performance.getEntries(a)
|
|
}),
|
|
setupPolyfill("getEntriesByType", function(r) {
|
|
return e.performance.getEntries({
|
|
entryType: r
|
|
})
|
|
}),
|
|
e.performance.setupPolyfill = setupPolyfill,
|
|
e.performance.setNavigationStart = function(e) {
|
|
eS = e
|
|
}
|
|
,
|
|
e.performance
|
|
}
|
|
ShadowPerformanceEntry.prototype.toJSON = function toJSON() {
|
|
return {
|
|
name: this.name,
|
|
duration: this.duration,
|
|
entryType: this.entryType,
|
|
startTime: this.startTime
|
|
}
|
|
}
|
|
;
|
|
function supportNavigationTiming() {
|
|
return !!(window.performance && window.performance.timing)
|
|
}
|
|
function supportUserTiming() {
|
|
return !!(window.performance.mark && window.performance.measure && window.performance.clearMarks && window.performance.clearMeasures && window.performance.getEntries && window.performance.getEntriesByType && window.performance.getEntriesByName)
|
|
}
|
|
wrap(window);
|
|
var eT = i(35329)
|
|
, eb = i(27292)
|
|
, ek = i(34134)
|
|
, eC = function() {
|
|
function PerfTiming() {
|
|
(0,
|
|
f._)(this, PerfTiming)
|
|
}
|
|
return (0,
|
|
v._)(PerfTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
return {}
|
|
}
|
|
}, {
|
|
key: "responseCatchHook",
|
|
value: function responseCatchHook(e, r, i) {
|
|
return e
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe() {}
|
|
}, {
|
|
key: "validate",
|
|
value: function validate(e, r) {
|
|
for (; r.length; ) {
|
|
var i, a = r.shift();
|
|
if (!a.prop)
|
|
break;
|
|
if (a.default && (e[a.prop] = a.default),
|
|
a.required && !e[a.prop])
|
|
throw Error("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is missing"));
|
|
var s = !0;
|
|
if (a.validator && isFunc(a.validator))
|
|
s = a.validator(e[a.prop], e);
|
|
else {
|
|
;if (a.pattern && (i = a.pattern,
|
|
e_.call(i, "[object RegExp]")))
|
|
s = a.pattern.test(e[a.prop])
|
|
}
|
|
if (!s)
|
|
throw TypeError("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is invalid"))
|
|
}
|
|
}
|
|
}]),
|
|
PerfTiming
|
|
}();
|
|
function getPaintTimes() {
|
|
var e = null
|
|
, r = null
|
|
, i = window.performance.getEntriesByType("paint");
|
|
if (i && i.length)
|
|
e = getTimeFromMarks(i, "first-paint"),
|
|
r = getTimeFromMarks(i, "first-contentful-paint");
|
|
else {
|
|
if ("number" != typeof window.performance.timing.msFirstPaint)
|
|
return null;
|
|
e = window.performance.timing.msFirstPaint - window.performance.timing.navigationStart
|
|
}
|
|
return {
|
|
firstPaint: e,
|
|
firstContentfulPaint: r
|
|
}
|
|
}
|
|
var eP = new (function(e) {
|
|
function BrowserPaintTiming() {
|
|
return (0,
|
|
f._)(this, BrowserPaintTiming),
|
|
(0,
|
|
eT._)(this, BrowserPaintTiming, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(BrowserPaintTiming, e),
|
|
(0,
|
|
v._)(BrowserPaintTiming, [{
|
|
key: "observe",
|
|
value: function observe() {
|
|
return ek.Z.get().then(function(e) {
|
|
var r = e.firstPaint
|
|
, i = e.firstContentfulPaint
|
|
, a = e.firstMeaningfulPaint
|
|
, s = e.fullyLoaded
|
|
, u = e.firstScreen
|
|
, c = getPaintTimes();
|
|
return !c && (c = {
|
|
firstPaint: void 0 === r ? null : r,
|
|
firstContentfulPaint: void 0 === i ? null : i
|
|
}),
|
|
{
|
|
paintTimes: c,
|
|
fullyLoaded: void 0 === s ? null : s,
|
|
firstMeaningfulPaint: void 0 === a ? null : a,
|
|
firstScreenPaint: void 0 === u ? null : u
|
|
}
|
|
})
|
|
}
|
|
}]),
|
|
BrowserPaintTiming
|
|
}(eC));
|
|
new (function(e) {
|
|
function BrowserServerTiming() {
|
|
return (0,
|
|
f._)(this, BrowserServerTiming),
|
|
(0,
|
|
eT._)(this, BrowserServerTiming, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(BrowserServerTiming, e),
|
|
(0,
|
|
v._)(BrowserServerTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = (0,
|
|
w._)(window.performance.getEntriesByType("navigation"), 1)[0];
|
|
return e && e.serverTiming || []
|
|
}
|
|
}]),
|
|
BrowserServerTiming
|
|
}(eC)),
|
|
new (function(e) {
|
|
function BrowserResourceTiming() {
|
|
return (0,
|
|
f._)(this, BrowserResourceTiming),
|
|
(0,
|
|
eT._)(this, BrowserResourceTiming, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(BrowserResourceTiming, e),
|
|
(0,
|
|
v._)(BrowserResourceTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = window.performance.getEntriesByType("resource")
|
|
, r = this.filterResources(e).map(function(e) {
|
|
var r = e.toJSON();
|
|
try {
|
|
r.hostname = r.name.match(em)[1]
|
|
} catch (e) {}
|
|
return delete r.serverTiming,
|
|
delete r.workerTiming,
|
|
r
|
|
});
|
|
return isFunc(window.performance.clearResourceTimings) && window.performance.clearResourceTimings(),
|
|
r
|
|
}
|
|
}, {
|
|
key: "filterResources",
|
|
value: function filterResources() {
|
|
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], r = [], i = 0; i < e.length; i++) {
|
|
var a = e[i];
|
|
if (!(isUndef(a.toJSON) || !isFunc(a.toJSON) || 0 === a.name.indexOf("data:") || 0 === a.name.indexOf("about:") || 0 === a.name.indexOf("javascript:") || isForbiddenUrl(a.name)))
|
|
r.push(a)
|
|
}
|
|
return r
|
|
}
|
|
}]),
|
|
BrowserResourceTiming
|
|
}(eC));
|
|
var eA = new (function(e) {
|
|
function BrowserNavigationTiming() {
|
|
return (0,
|
|
f._)(this, BrowserNavigationTiming),
|
|
(0,
|
|
eT._)(this, BrowserNavigationTiming, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(BrowserNavigationTiming, e),
|
|
(0,
|
|
v._)(BrowserNavigationTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = toDict(window.performance.timing);
|
|
return void 0 !== e.timeToNonBlankPaint && delete e.timeToNonBlankPaint,
|
|
void 0 !== e.timeToDOMContentFlushed && delete e.timeToDOMContentFlushed,
|
|
e
|
|
}
|
|
}]),
|
|
BrowserNavigationTiming
|
|
}(eC));
|
|
function serializeParams() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return Object.keys(r).reduce(function(e, i) {
|
|
var a = r[i];
|
|
if (!a)
|
|
return e;
|
|
var s = "".concat(encodeURIComponent(i), "=").concat(encodeURIComponent(a));
|
|
return -1 === e.indexOf("?") ? e += "?".concat(s) : e += "&".concat(s),
|
|
e
|
|
}, e)
|
|
}
|
|
var eR = function() {
|
|
function HttpTracker() {
|
|
(0,
|
|
f._)(this, HttpTracker),
|
|
this.entryHash = {}
|
|
}
|
|
return (0,
|
|
v._)(HttpTracker, [{
|
|
key: "resetEntryHash",
|
|
value: function resetEntryHash() {
|
|
this.entryHash = {}
|
|
}
|
|
}, {
|
|
key: "track",
|
|
value: function track(e, r) {
|
|
if (!e)
|
|
throw Error("[apm-metrics] mark name is required");
|
|
var i = this.entryHash[e];
|
|
void 0 !== i ? (performance.mark("".concat(e, "_end")),
|
|
this.entryHash[e] = (0,
|
|
h._)({}, i, r)) : (performance.mark("".concat(e, "_start")),
|
|
this.entryHash[e] = r)
|
|
}
|
|
}, {
|
|
key: "measure",
|
|
value: function measure(e) {
|
|
var r = this.entryHash[e];
|
|
if (!r)
|
|
return {};
|
|
try {
|
|
performance.measure(e, "".concat(e, "_start"), "".concat(e, "_end"))
|
|
} catch (e) {
|
|
return {}
|
|
}
|
|
var i = (0,
|
|
w._)(performance.getEntriesByName(e, "measure"), 1)[0];
|
|
return (0,
|
|
y._)((0,
|
|
h._)({}, r), {
|
|
measure: toDict(i)
|
|
})
|
|
}
|
|
}]),
|
|
HttpTracker
|
|
}();
|
|
function createHttpTracker() {
|
|
return new eR
|
|
}
|
|
var eI = Array(16);
|
|
function mathRNG() {
|
|
for (var e, r = 0; r < 16; r++)
|
|
(3 & r) == 0 && (e = 0x100000000 * Math.random()),
|
|
eI[r] = e >>> ((3 & r) << 3) & 255;
|
|
return eI
|
|
}
|
|
var toJsonData = function(e) {
|
|
if (!e)
|
|
return {};
|
|
if ((void 0 === e ? "undefined" : (0,
|
|
T._)(e)) === "object") {
|
|
if ("[object FormData]" === Object.prototype.toString.call(e)) {
|
|
var r = {}
|
|
, i = !0
|
|
, a = !1
|
|
, s = void 0;
|
|
try {
|
|
for (var u, c = e.entries()[Symbol.iterator](); !(i = (u = c.next()).done); i = !0) {
|
|
var l = u.value;
|
|
r[l[0]] = l[1]
|
|
}
|
|
} catch (e) {
|
|
a = !0,
|
|
s = e
|
|
} finally {
|
|
try {
|
|
!i && null != c.return && c.return()
|
|
} finally {
|
|
if (a)
|
|
throw s
|
|
}
|
|
}
|
|
return r
|
|
}
|
|
return e
|
|
}
|
|
if ("string" == typeof e)
|
|
try {
|
|
return JSON.parse(e)
|
|
} catch (e) {}
|
|
return {}
|
|
}
|
|
, eO = "x-b3-traceid"
|
|
, eN = "x-xray-traceid"
|
|
, eL = ["post", "put", "patch", "delete"]
|
|
, eM = new (function(e) {
|
|
function BrowserHttpRequestTiming() {
|
|
var e;
|
|
return (0,
|
|
f._)(this, BrowserHttpRequestTiming),
|
|
e = (0,
|
|
eT._)(this, BrowserHttpRequestTiming, arguments),
|
|
(0,
|
|
g._)(e, "httpTracker", {}),
|
|
e
|
|
}
|
|
return (0,
|
|
eb._)(BrowserHttpRequestTiming, e),
|
|
(0,
|
|
v._)(BrowserHttpRequestTiming, [{
|
|
key: "measure",
|
|
value: function measure(e, r) {
|
|
this.httpTracker.track(e, r);
|
|
var i = this.httpTracker.measure(e)
|
|
, a = i.measure
|
|
, s = void 0 === a ? {} : a
|
|
, u = (0,
|
|
eg._)(i, ["measure"]);
|
|
return s.name = u.url,
|
|
delete u.url,
|
|
{
|
|
meta: u,
|
|
measure: s
|
|
}
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, i = this
|
|
, a = r.httpClient
|
|
, s = r.callback
|
|
, u = r.enableResponseData
|
|
, c = void 0 !== u && u
|
|
, l = r.enableRequestPayload
|
|
, d = void 0 !== l && l;
|
|
this.validate(r, [{
|
|
prop: "httpClient",
|
|
required: !0
|
|
}, {
|
|
prop: "callback",
|
|
required: !0,
|
|
validator: function(e) {
|
|
return "function" == typeof e
|
|
}
|
|
}]),
|
|
this.httpTracker = createHttpTracker(),
|
|
a.interceptors.request.use(function(r) {
|
|
return !isForbiddenUrl(r.url) && (r.rid = (0,
|
|
_.Z)({
|
|
rng: mathRNG
|
|
}),
|
|
e.httpTracker.track(r.rid, {
|
|
method: r.method,
|
|
matchedPath: r.matchedPath,
|
|
traceId: r.headers[eN] || r.headers[eO]
|
|
})),
|
|
r
|
|
}),
|
|
a.interceptors.response.use(function(e) {
|
|
var r, a, u, l, p, f = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, v = arguments.length > 2 ? arguments[2] : void 0, g = null !== (l = null != v ? v : f.config) && void 0 !== l ? l : {}, h = null == f ? void 0 : null === (r = f.requestHeader) || void 0 === r ? void 0 : r[eN];
|
|
if (isForbiddenUrl(g.url))
|
|
return e;
|
|
var m = f.request || {}
|
|
, y = {
|
|
status: f.status,
|
|
url: m.responseURL
|
|
}
|
|
, w = i.measure(g.rid, y);
|
|
w.reqAndRes = {},
|
|
w.meta.url = g.url,
|
|
g.level && (w.meta.level = g.level);
|
|
var E = (null == f ? void 0 : null === (a = f.headers) || void 0 === a ? void 0 : a.h5ApiPrefetch) || 5;
|
|
w.meta.apiPrefetchType = E;
|
|
var S = (null == f ? void 0 : null === (u = f.config) || void 0 === u ? void 0 : u.trackData) || {}
|
|
, T = S.prefetch
|
|
, b = S.requestEndTime
|
|
, k = S.requestStartTime;
|
|
w.meta.prefetch = T,
|
|
w.meta.requestStartTime = k,
|
|
w.meta.requestEndTime = b,
|
|
h && (w.meta.traceId = h);
|
|
var C = void 0 !== e.success && !1 == !!e.success;
|
|
C && (w.meta.errorType = "HTTPBizError",
|
|
w.meta.errorCode = e.code,
|
|
w.meta.errorMsg = e.msg);
|
|
var P = (0,
|
|
_.Z)({
|
|
rng: mathRNG
|
|
});
|
|
if ((C || !0 === d) && eL.includes(null === (p = g.method) || void 0 === p ? void 0 : p.toLowerCase()))
|
|
try {
|
|
w.reqAndRes._apm_related_http_id = P,
|
|
w.reqAndRes.payload = toJsonData(g.data),
|
|
w.meta.data = JSON.stringify({
|
|
_apm_related_http_id: P
|
|
})
|
|
} catch (e) {}
|
|
if (C || !0 === c)
|
|
try {
|
|
w.reqAndRes._apm_related_http_id = P,
|
|
w.reqAndRes.response = toJsonData(e),
|
|
w.meta.data = JSON.stringify({
|
|
_apm_related_http_id: P
|
|
})
|
|
} catch (e) {}
|
|
return s(w),
|
|
e
|
|
}, function(e) {
|
|
var r, u, c, l, d, p, f = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, v = arguments.length > 2 ? arguments[2] : void 0, g = null !== (l = null != v ? v : f ? f.config : {}) && void 0 !== l ? l : {}, h = null == f ? void 0 : null === (r = f.requestHeader) || void 0 === r ? void 0 : r[eN];
|
|
if (isForbiddenUrl(g.url))
|
|
throw e;
|
|
var m = {
|
|
meta: {
|
|
method: g.method,
|
|
matchedPath: g.matchedPath,
|
|
status: e.status || e.statusCode || 0,
|
|
errorType: e.name,
|
|
traceId: h || g.headers[eN] || g.headers[eO],
|
|
url: g.url,
|
|
errorMsg: e.message
|
|
},
|
|
measure: {
|
|
entryType: "measure",
|
|
name: serializeParams(g.url, null !== (d = g.params) && void 0 !== d ? d : {})
|
|
},
|
|
reqAndRes: {}
|
|
}
|
|
, y = (null == f ? void 0 : null === (u = f.headers) || void 0 === u ? void 0 : u.h5ApiPrefetch) || 5;
|
|
m.meta.apiPrefetchType = y;
|
|
var w = (null == f ? void 0 : null === (c = f.config) || void 0 === c ? void 0 : c.trackData) || {}
|
|
, E = w.prefetch
|
|
, S = w.requestEndTime
|
|
, T = w.requestStartTime;
|
|
if (m.meta.prefetch = E,
|
|
m.meta.requestStartTime = T,
|
|
m.meta.requestEndTime = S,
|
|
g.level && (m.meta.level = g.level),
|
|
["HTTPClientError", "HTTPServerError"].includes(e.name)) {
|
|
if (g.params && Object.keys(g.params).length > 0 && isFunc(a.getUri) && (m.meta.url = a.getUri(g)),
|
|
eL.includes(null === (p = m.meta.method) || void 0 === p ? void 0 : p.toLowerCase())) {
|
|
var b = (0,
|
|
_.Z)({
|
|
rng: mathRNG
|
|
});
|
|
m.reqAndRes.payload = toJsonData(g.data),
|
|
m.reqAndRes._apm_related_http_id = b,
|
|
m.meta.data = JSON.stringify({
|
|
_apm_related_http_id: b
|
|
})
|
|
}
|
|
"HTTPClientError" === e.name ? e.code && "N/A" !== e.code && (m.meta.code = e.code) : "HTTPServerError" === e.name && e.code && "N/A" !== e.code && (m.meta.errorCode = e.code),
|
|
s(i.responseCatchHook(m, e, g))
|
|
}
|
|
throw e
|
|
})
|
|
}
|
|
}]),
|
|
BrowserHttpRequestTiming
|
|
}(eC));
|
|
function getMemory() {
|
|
var e = toDict(window.performance.memory);
|
|
return {
|
|
jsHeapSizeLimit: e.jsHeapSizeLimit,
|
|
totalJsHeapSize: e.totalJSHeapSize,
|
|
usedJsHeapSize: e.usedJSHeapSize
|
|
}
|
|
}
|
|
function getNetwork() {
|
|
var e = toDict(window.navigator.connection);
|
|
return void 0 !== e.onchange && delete e.onchange,
|
|
{
|
|
downlink: e.downlink,
|
|
effectiveType: e.effectiveType,
|
|
rtt: e.rtt,
|
|
saveData: e.saveData,
|
|
type: e.type
|
|
}
|
|
}
|
|
function getRenderTimes() {
|
|
var e = window.performance.getEntriesByType("mark");
|
|
return {
|
|
firstRenderStart: getTimeFromMarks(e, "firstRenderStart"),
|
|
clientRenderStart: getTimeFromMarks(e, "clientRenderStart")
|
|
}
|
|
}
|
|
function getScriptsExecutionTiming() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window.__SCRIPTS_EXECUTION_TIMING__;
|
|
return (e || []).map(function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = (0,
|
|
h._)({}, e);
|
|
return r.endTime && r.startTime ? (r.duration = r.endTime - r.startTime,
|
|
delete r.endTime) : r.duration = 0,
|
|
r
|
|
})
|
|
}
|
|
function getResourceError() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "__APM__ResourceErrorTracker__"
|
|
, r = JSON.parse(localStorage.getItem(e));
|
|
if (null == r ? void 0 : r.length) {
|
|
for (var i = [], a = [], s = 0; s < r.length; s++)
|
|
if ("xhs-pc-web" === r[s].projectName) {
|
|
var u = r[s]
|
|
, c = (u.projectName,
|
|
(0,
|
|
eg._)(u, ["projectName"]));
|
|
i.push(c)
|
|
} else
|
|
r[s].projectName && a.push(r[s]);
|
|
return localStorage.setItem(e, JSON.stringify(a)),
|
|
i
|
|
}
|
|
return []
|
|
}
|
|
var eB = new (function(e) {
|
|
function EnhancedMetrics() {
|
|
return (0,
|
|
f._)(this, EnhancedMetrics),
|
|
(0,
|
|
eT._)(this, EnhancedMetrics, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(EnhancedMetrics, e),
|
|
(0,
|
|
v._)(EnhancedMetrics, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
return {
|
|
memory: getMemory(),
|
|
network: getNetwork(),
|
|
renderTimes: getRenderTimes(),
|
|
scriptsExecutionTiming: getScriptsExecutionTiming(),
|
|
resourceError: getResourceError()
|
|
}
|
|
}
|
|
}]),
|
|
EnhancedMetrics
|
|
}(eC))
|
|
, ex = Object.prototype.toString
|
|
, typeor_isFunc = function(e) {
|
|
return "function" == typeof e
|
|
}
|
|
, eD = function() {
|
|
function PerfTiming() {
|
|
(0,
|
|
f._)(this, PerfTiming)
|
|
}
|
|
return (0,
|
|
v._)(PerfTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
return {}
|
|
}
|
|
}, {
|
|
key: "responseCatchHook",
|
|
value: function responseCatchHook(e) {
|
|
return e
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe() {}
|
|
}, {
|
|
key: "validate",
|
|
value: function validate(e, r) {
|
|
for (; r.length; ) {
|
|
var i, a = r.shift();
|
|
if (!a.prop)
|
|
break;
|
|
if (a.default && (e[a.prop] = a.default),
|
|
a.required && !e[a.prop])
|
|
throw Error("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is missing"));
|
|
var s = !0;
|
|
if (a.validator && typeor_isFunc(a.validator))
|
|
s = a.validator(e[a.prop], e);
|
|
else {
|
|
;if (a.pattern && (i = a.pattern,
|
|
ex.call(i)))
|
|
s = a.pattern.test(e[a.prop])
|
|
}
|
|
if (!s)
|
|
throw TypeError("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is invalid"))
|
|
}
|
|
}
|
|
}]),
|
|
PerfTiming
|
|
}()
|
|
, eF = /\/\/(\S+?)[/|:]/;
|
|
function helpers_isForbiddenUrl() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : C;
|
|
return r.some(function(r) {
|
|
return -1 !== e.indexOf(r)
|
|
})
|
|
}
|
|
var eV = new (function(e) {
|
|
function BrowserResourceTiming() {
|
|
return (0,
|
|
f._)(this, BrowserResourceTiming),
|
|
(0,
|
|
eT._)(this, BrowserResourceTiming, arguments)
|
|
}
|
|
return (0,
|
|
eb._)(BrowserResourceTiming, e),
|
|
(0,
|
|
v._)(BrowserResourceTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = window.performance.getEntriesByType("resource")
|
|
, r = this.filterResources(e).map(function(e) {
|
|
var r = e.toJSON();
|
|
try {
|
|
r.hostname = r.name.match(eF)[1]
|
|
} catch (e) {}
|
|
return delete r.serverTiming,
|
|
delete r.workerTiming,
|
|
r
|
|
});
|
|
return typeor_isFunc(window.performance.clearResourceTimings) && window.performance.clearResourceTimings(),
|
|
r
|
|
}
|
|
}, {
|
|
key: "filterResources",
|
|
value: function filterResources() {
|
|
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], r = [], i = 0; i < e.length; i++) {
|
|
var a, s = e[i];
|
|
if (!(null == (a = s.toJSON) || !typeor_isFunc(s.toJSON) || 0 === s.name.indexOf("data:") || 0 === s.name.indexOf("about:") || 0 === s.name.indexOf("javascript:") || helpers_isForbiddenUrl(s.name)))
|
|
r.push(s)
|
|
}
|
|
return r
|
|
}
|
|
}]),
|
|
BrowserResourceTiming
|
|
}(eD));
|
|
function splitEntries() {
|
|
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 30, i = []; e.length; ) {
|
|
var a = e.slice(0, r);
|
|
i.push(a),
|
|
e = e.slice(r)
|
|
}
|
|
return i
|
|
}
|
|
var eH = function() {
|
|
function PerformanceCollector(e) {
|
|
var r = this;
|
|
arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
|
|
(0,
|
|
f._)(this, PerformanceCollector),
|
|
(0,
|
|
g._)(this, "client", void 0),
|
|
this.client = e,
|
|
window.addEventListener("load", function() {
|
|
return setTimeout(function() {
|
|
setFirstScreen(0),
|
|
r.track()
|
|
}, 0)
|
|
}),
|
|
supportUserTiming() && (this.observePaintTiming(),
|
|
this.handleResourceBuffer())
|
|
}
|
|
return (0,
|
|
v._)(PerformanceCollector, [{
|
|
key: "handleResourceBuffer",
|
|
value: function handleResourceBuffer() {
|
|
var e = this;
|
|
window.performance.onresourcetimingbufferfull = function() {
|
|
e.sendResourceBuffer()
|
|
}
|
|
,
|
|
(0,
|
|
S.Ld)("viewDidDisappear", function() {
|
|
return e.sendResourceBuffer()
|
|
})
|
|
}
|
|
}, {
|
|
key: "getResourceTiming",
|
|
value: function getResourceTiming() {
|
|
return {
|
|
type: "BrowserResourceTiming",
|
|
value: eV.timing()
|
|
}
|
|
}
|
|
}, {
|
|
key: "track",
|
|
value: function track() {
|
|
var e = eB.timing();
|
|
if (this.sendMetrics({
|
|
browserMemory: {
|
|
type: "BrowserMemory",
|
|
value: e.memory
|
|
}
|
|
}),
|
|
this.sendMetrics({
|
|
browserNetwork: {
|
|
type: "BrowserNetwork",
|
|
value: e.network
|
|
}
|
|
}),
|
|
supportNavigationTiming() && this.sendMetrics({
|
|
browserNavigationTiming: {
|
|
type: "BrowserNavigationTiming",
|
|
value: eA.timing()
|
|
}
|
|
}),
|
|
e.scriptsExecutionTiming.length > 0 && this.sendMetrics({
|
|
browserScriptsExecutionTiming: {
|
|
type: "BrowserPerformanceMeasure",
|
|
value: e.scriptsExecutionTiming
|
|
}
|
|
}),
|
|
supportUserTiming()) {
|
|
var r = this.getResourceTiming();
|
|
this.sendMetrics({
|
|
browserResourceTiming: r
|
|
});
|
|
var i = [];
|
|
r.value.forEach(function(e) {
|
|
if (M.includes(e.initiatorType)) {
|
|
var r = Math.round(e.domainLookupEnd - e.domainLookupStart) || 0
|
|
, a = Math.round(e.connectEnd - e.connectStart) || 0
|
|
, s = Math.round(e.responseEnd - e.requestStart) || 0
|
|
, u = Math.round(e.responseEnd - e.responseStart) || 0
|
|
, c = Math.round(e.redirectEnd - e.redirectStart) || 0
|
|
, l = Math.round(e.responseStart - e.requestStart) || 0
|
|
, d = +(0 === e.transferSize || 0 !== e.transferSize && 0 === e.encodedBodySize);
|
|
i.push({
|
|
dnsTime: r,
|
|
tcpTime: a,
|
|
responseTime: s,
|
|
contentTime: u,
|
|
redirectTime: c,
|
|
serverTime: l,
|
|
collectTime: String(Date.now()),
|
|
name: e.name,
|
|
encodedBodySize: e.encodedBodySize,
|
|
isHitCache: d,
|
|
initiatorType: e.initiatorType,
|
|
duration: c + r + a + s,
|
|
transferSize: e.transferSize || 0
|
|
})
|
|
}
|
|
}),
|
|
this.sendXrayMetircs("infraBrowserResourceTiming", i),
|
|
e.renderTimes && this.sendMetrics({
|
|
browserRenderTimes: {
|
|
type: "BrowserRenderTimes",
|
|
value: e.renderTimes
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}, {
|
|
key: "observePaintTiming",
|
|
value: function observePaintTiming() {
|
|
var e = this;
|
|
eP.observe().then(function(r) {
|
|
var i = r.paintTimes
|
|
, a = (0,
|
|
eg._)(r, ["paintTimes"]);
|
|
e.sendMetrics({
|
|
browserPaintTimes: {
|
|
type: "BrowserPaintTimes",
|
|
value: i
|
|
}
|
|
}),
|
|
e.sendMetrics({
|
|
browserFmpTimes: {
|
|
type: "BrowserFmpTimes",
|
|
value: a
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
key: "sendMetrics",
|
|
value: function sendMetrics(e) {
|
|
if (!!this.client && void 0 !== (0,
|
|
T._)(this.client.push) && "function" == typeof this.client.push && 0 !== Object.keys(e).length)
|
|
this.client.push({
|
|
browserApmTracker: {
|
|
type: "BrowserApmTracker",
|
|
value: e
|
|
}
|
|
})
|
|
}
|
|
}, {
|
|
key: "sendXrayMetircs",
|
|
value: function sendXrayMetircs(e, r) {
|
|
var i = this;
|
|
this.client && void 0 !== (0,
|
|
T._)(this.client.push) && "function" == typeof this.client.push && r.length && r.forEach(function(r) {
|
|
i.client.push({
|
|
measurement_name: e,
|
|
measurement_data: r
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
key: "sendResourceBuffer",
|
|
value: function sendResourceBuffer() {
|
|
var e = this.getResourceTiming()
|
|
, r = e.type
|
|
, i = e.value;
|
|
if (!!i.length)
|
|
for (var a = splitEntries(i, 50); a.length; )
|
|
this.sendMetrics((0,
|
|
g._)({}, r, {
|
|
type: r,
|
|
value: a.shift()
|
|
}))
|
|
}
|
|
}]),
|
|
PerformanceCollector
|
|
}()
|
|
, eU = !1
|
|
, performance_performancePlugin = function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
!eU && (eU = !0,
|
|
new eH(e,r))
|
|
};
|
|
function initMetric(e) {
|
|
var r = {
|
|
nqeLevel: "unknow",
|
|
deviceLevel: "unknow"
|
|
};
|
|
return {
|
|
measurement_name: e,
|
|
measurement_data: ({
|
|
visualStability: (0,
|
|
y._)((0,
|
|
h._)({}, r), {
|
|
cumulativeLayoutShift: -1
|
|
}),
|
|
interactiveTiming: (0,
|
|
y._)((0,
|
|
h._)({}, r), {
|
|
firstInputDelay: -1,
|
|
interactionToNextPaint: -1
|
|
}),
|
|
paintTiming: (0,
|
|
y._)((0,
|
|
h._)({}, r), {
|
|
largestContentfulPaint: -1,
|
|
firstContentfulPaint: -1,
|
|
firstMeaningfulPaint: -1,
|
|
timeToFirstByte: -1,
|
|
lcpRenderDelay: -1,
|
|
lcpElement: "",
|
|
lcpResourceLoadTime: -1,
|
|
lcpUrl: "",
|
|
staticResourceEntries: "",
|
|
staticResourceTime: -1,
|
|
webViewCreateCost: -1,
|
|
routerToLoadUrl: -1,
|
|
isHitCache: 0,
|
|
cacheHitCount: -1,
|
|
pullSdkMainfest: ""
|
|
}),
|
|
navigationTiming: (0,
|
|
y._)((0,
|
|
h._)({}, r), {
|
|
webViewCreateCost: -1,
|
|
routerToLoadUrl: -1,
|
|
dnsTime: -1,
|
|
tcpTime: -1,
|
|
responseTime: -1,
|
|
contentTime: -1,
|
|
domParseTime: -1,
|
|
resourceLoadTime: -1,
|
|
redirectTime: -1,
|
|
serverTime: -1,
|
|
domLoadTime: -1,
|
|
pageLoadTime: -1
|
|
})
|
|
})[e]
|
|
}
|
|
}
|
|
var getNavigationTiming = function(e) {
|
|
var r, i, a, s, u = initMetric("navigationTiming"), c = Number(e.activationStart || e.navigationStart || 0);
|
|
return (window.PerformanceObserver || window.performance && window.performance.timing) && (u.measurement_data = (0,
|
|
y._)((0,
|
|
h._)({}, u.measurement_data), {
|
|
webViewCreateCost: (null === (i = window) || void 0 === i ? void 0 : null === (r = i.XHSMonitor) || void 0 === r ? void 0 : r.WebViewCreateCost) || -1,
|
|
routerToLoadUrl: (null === (s = window) || void 0 === s ? void 0 : null === (a = s.XHSMonitor) || void 0 === a ? void 0 : a.RouterToLoadUrl) || -1,
|
|
dnsTime: Math.round(e.domainLookupEnd - e.domainLookupStart),
|
|
tcpTime: Math.round(e.connectEnd - e.connectStart),
|
|
responseTime: Math.round(e.responseEnd - e.requestStart),
|
|
contentTime: Math.round(e.responseEnd - e.responseStart),
|
|
domParseTime: Math.round(e.domInteractive - e.responseEnd),
|
|
deferJSRuntime: Math.round(e.domContentLoadedEventStart - e.domInteractive),
|
|
resourceLoadTime: Math.abs(Math.round(e.loadEventStart - e.domContentLoadedEventEnd)),
|
|
redirectTime: Math.round(e.redirectEnd - e.redirectStart),
|
|
serverTime: Math.round(e.responseStart - e.requestStart),
|
|
domLoadTime: Math.round(e.domContentLoadedEventEnd - c),
|
|
pageLoadTime: Math.round(e.loadEventEnd - c)
|
|
})),
|
|
u.measurement_data
|
|
}
|
|
, eq = ["script", "img", "css", "link", "svg"]
|
|
, initResourceTimingCache = function() {
|
|
var e = window.performance.clearResourceTimings;
|
|
return window.performance.clearResourceTimings = function() {
|
|
var r = window.performance.getEntriesByType("resource");
|
|
if (window.performance.resourcesBufferCache = (window.performance.resourcesBufferCache || []).concat(r),
|
|
"function" == typeof e)
|
|
return e.call(window.performance)
|
|
}
|
|
,
|
|
function() {
|
|
window.performance.resourcesBufferCache && (window.performance.resourcesBufferCache = []),
|
|
"function" == typeof e && (window.performance.clearResourceTimings = e)
|
|
}
|
|
}
|
|
, getResourceTiming_getResourceTiming = function() {
|
|
var e = {
|
|
staticResourceEntries: "",
|
|
staticResourceTime: -1
|
|
};
|
|
if (window.performance) {
|
|
var r = window.performance.resourcesBufferCache
|
|
, i = window.performance.getEntriesByType("resource").concat(r).filter(function(e) {
|
|
return !!e
|
|
}).filter(function(e) {
|
|
return eq.includes(null == e ? void 0 : e.initiatorType)
|
|
});
|
|
e.staticResourceEntries = JSON.stringify(i.map(function(e) {
|
|
return {
|
|
name: e.name,
|
|
responseEnd: e.responseEnd,
|
|
fetchStart: e.fetchStart,
|
|
responseStatus: null == e ? void 0 : e.responseStatus,
|
|
duration: e.duration
|
|
}
|
|
})),
|
|
e.staticResourceTime = Math.round(i.reduce(function(e, r) {
|
|
return e + r.duration
|
|
}, 0))
|
|
}
|
|
return e
|
|
}
|
|
, getLcpAttributionMetrics = function(e) {
|
|
var r, i = {
|
|
lcpElement: (null == e ? void 0 : e.element) || "",
|
|
lcpUrl: (null == e ? void 0 : e.url) || "",
|
|
lcpResourceLoadDelay: -1,
|
|
lcpResourceLoadTime: -1,
|
|
lcpRenderDelay: -1,
|
|
lcpResourceRT: -1
|
|
}, a = "" !== i.lcpUrl && ((null === (r = window.performance) || void 0 === r ? void 0 : r.resourcesBufferCache) || []).concat(performance.getEntriesByType("resource")).find(function(e) {
|
|
return e.name === i.lcpUrl
|
|
});
|
|
if (a) {
|
|
var s = e.timeToFirstByte || Math.max(window.performance.timing.responseStart - window.performance.timing.navigationStart, 0)
|
|
, u = e.lcpEntry
|
|
, c = a.requestStart || a.startTime
|
|
, l = a.responseEnd
|
|
, d = Math.max(l, u ? u.startTime : 0);
|
|
i.lcpResourceLoadDelay = c - s,
|
|
i.lcpResourceLoadTime = l - c,
|
|
i.lcpRenderDelay = d - l,
|
|
i.lcpResourceRT = a.duration
|
|
}
|
|
return i
|
|
}
|
|
, getXHSPrefetchMetrics = function() {
|
|
var e, r, i, a, s, u, c, l, d, p;
|
|
return {
|
|
isHitCache: (null === (r = window) || void 0 === r ? void 0 : null === (e = r.XHSPrefetch) || void 0 === e ? void 0 : e.localCacheHit) !== void 0 ? null === (a = window) || void 0 === a ? void 0 : null === (i = a.XHSPrefetch) || void 0 === i ? void 0 : i.localCacheHit : 0,
|
|
cacheHitCount: (null === (u = window) || void 0 === u ? void 0 : null === (s = u.XHSPrefetch) || void 0 === s ? void 0 : s.cacheHitCount) !== void 0 ? null === (l = window) || void 0 === l ? void 0 : null === (c = l.XHSPrefetch) || void 0 === c ? void 0 : c.cacheHitCount : -1,
|
|
pullSdkMainfest: JSON.stringify((null === (p = window) || void 0 === p ? void 0 : null === (d = p.XHSPrefetch) || void 0 === d ? void 0 : d.manifest) || "")
|
|
}
|
|
}
|
|
, getXHSBaseMetrics = function() {
|
|
var e, r;
|
|
return {
|
|
deviceLevel: (null === (e = ee.meta.xray) || void 0 === e ? void 0 : e.context_deviceLevel) || "unknow",
|
|
nqeLevel: (null === (r = ee.meta.xray) || void 0 === r ? void 0 : r.context_networkQuality) || "unknow"
|
|
}
|
|
}
|
|
, ej = i(50037)
|
|
, eW = i(57078);
|
|
i(97542);
|
|
var runOnce = function(e) {
|
|
var r = !1;
|
|
return function(i) {
|
|
!r && (e(i),
|
|
r = !0)
|
|
}
|
|
}
|
|
, onHidden = function(e) {
|
|
var onHiddenOrPageHide = function(r) {
|
|
("pagehide" === r.type || "hidden" === document.visibilityState) && e(r)
|
|
};
|
|
addEventListener("visibilitychange", onHiddenOrPageHide, !0),
|
|
addEventListener("pagehide", onHiddenOrPageHide, !0)
|
|
}
|
|
, eG = i(1799);
|
|
i(64091);
|
|
var isElementVisibleInViewport_isElementVisibleInViewport = function(e) {
|
|
if ("function" != typeof e.getBoundingClientRect)
|
|
return !1;
|
|
var r = e.getBoundingClientRect()
|
|
, i = getComputedStyle(e);
|
|
if ("none" === i.display || "0" === i.opacity && !i.transition.includes("opacity") || "hidden" === i.visibility || "collapse" === i.visibility || e.offsetWidth <= 0 || e.offsetHeight <= 0 || "" === i.display || "" === i.opacity || "" === i.visibility)
|
|
return !1;
|
|
var a = window.innerHeight || document.documentElement.clientHeight
|
|
, s = window.innerWidth || document.documentElement.clientWidth
|
|
, u = r.left
|
|
, c = r.top
|
|
, l = r.right
|
|
, d = r.bottom;
|
|
return u >= 0 && c >= 0 && l <= (s || 0) && d <= (a || 0)
|
|
};
|
|
function hasBackgroundImage(e) {
|
|
var r = window.getComputedStyle(e);
|
|
return r.getPropertyValue("background-image").includes("url") || r.getPropertyValue("background").includes("url")
|
|
}
|
|
var eJ = i(83782)
|
|
, getUrl = function(e) {
|
|
if (e) {
|
|
if ("img" === e.tagName.toLowerCase()) {
|
|
var r, i, a, s;
|
|
return (null === (r = e.previousElementSibling) || void 0 === r ? void 0 : r.tagName.toLowerCase()) === "source" || (null === (i = e.nextElementSibling) || void 0 === i ? void 0 : i.tagName.toLowerCase()) === "source" ? (null === (a = e.previousElementSibling) || void 0 === a ? void 0 : a.getAttribute("srcset")) || (null === (s = e.nextElementSibling) || void 0 === s ? void 0 : s.getAttribute("srcset")) : e.getAttribute("src")
|
|
}
|
|
if (hasBackgroundImage(e)) {
|
|
var u = window.getComputedStyle(e)
|
|
, c = u.backgroundImage || u.background
|
|
, l = c.indexOf("url(");
|
|
if (-1 !== l) {
|
|
var d = c.indexOf(")", l);
|
|
if (-1 !== d)
|
|
return c.substring(l + 4, d).split('"').join("")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
, onLCP = function(e) {
|
|
PerformanceObserver.supportedEntryTypes.includes("largest-contentful-paint") ? (0,
|
|
eW.NO)(e) : whenActivated(function() {
|
|
var r = window.__LDM__OBSERVER
|
|
, i = {
|
|
name: "LCP",
|
|
value: -1,
|
|
attribution: {}
|
|
}
|
|
, a = runOnce(function() {
|
|
try {
|
|
if (r && r.disconnect(),
|
|
r) {
|
|
var a, s = r.takeEntry();
|
|
i.attribution.element = (0,
|
|
eJ.G)(s.element);
|
|
var u = getUrl(s.element) || "";
|
|
i.attribution.url = u.startsWith("http") ? u : "https:" + u;
|
|
var c = "" !== i.attribution.url && ((null === (a = window.performance) || void 0 === a ? void 0 : a.resourcesBufferCache) || []).concat(performance.getEntriesByType("resource")).find(function(e) {
|
|
return e.name === i.attribution.url
|
|
})
|
|
, l = s.startTime - window.performance.timing.navigationStart
|
|
, d = (null == c ? void 0 : c.duration) || 0;
|
|
i.value = l + d,
|
|
i.attribution.lcpEntry = (0,
|
|
y._)((0,
|
|
h._)({}, s), {
|
|
url: i.attribution.url,
|
|
startTime: s.startTime - window.performance.timing.navigationStart
|
|
}),
|
|
i.value > 0 && e(i)
|
|
} else
|
|
(0,
|
|
eG.bw)("checkLcp").then(function(r) {
|
|
if (r.value) {
|
|
var a = JSON.parse(r.value.lcpMetrics || "{}")
|
|
, s = a.renderTime - window.performance.timing.navigationStart;
|
|
i.value = "number" == typeof s ? s : -1,
|
|
i.attribution.element = (null == a ? void 0 : a.layerName) || "",
|
|
i.attribution.resourceLoadDelay = (null == a ? void 0 : a.endType) || 0,
|
|
e(i)
|
|
}
|
|
}).catch(function() {})
|
|
} catch (e) {}
|
|
});
|
|
onHidden(a),
|
|
["keydown", "click"].forEach(function(e) {
|
|
window.addEventListener(e, a, !0)
|
|
})
|
|
})
|
|
};
|
|
i(28636);
|
|
var calcFMP = function(e) {
|
|
if (0 === e.length)
|
|
return null;
|
|
if (1 === e.length)
|
|
return {
|
|
value: e[0].t,
|
|
element: e[0].lastElement
|
|
};
|
|
for (var r = e[0], i = 1; i < e.length; i++) {
|
|
var a = e[i];
|
|
a.layoutSignificance > r.layoutSignificance && (r = a)
|
|
}
|
|
return {
|
|
value: r.t,
|
|
element: r.lastElement
|
|
}
|
|
}
|
|
, stopFMPDispatch = function() {
|
|
var e;
|
|
(null === (e = window) || void 0 === e ? void 0 : e.__stopFMPObserver__) && ["keydown", "click"].forEach(function(e) {
|
|
removeEventListener(e, window.__stopFMPObserver__, !0)
|
|
})
|
|
}
|
|
, onFMP = function(e, r) {
|
|
if (r.custom) {
|
|
var i = {
|
|
name: "CustomFMP",
|
|
type: "unknown",
|
|
value: -1,
|
|
element: ""
|
|
}
|
|
, a = runOnce(function(r) {
|
|
if ("object" === (0,
|
|
T._)(window.__CUSTOM_FMP_METRICS__)) {
|
|
var a = window.__CUSTOM_FMP_METRICS__;
|
|
i.value = a.value,
|
|
i.url = null == a ? void 0 : a.src,
|
|
i.element = a.id,
|
|
i.type = r,
|
|
e(i)
|
|
}
|
|
});
|
|
onHidden(function() {
|
|
return a("pagehide")
|
|
}),
|
|
["keydown", "click"].forEach(function(e) {
|
|
window.addEventListener(e, function() {
|
|
return a("interact")
|
|
}, !0)
|
|
}),
|
|
setTimeout(function() {
|
|
a("8s")
|
|
}, 8e3)
|
|
} else if ((null === (d = window) || void 0 === d ? void 0 : d.__USE_CUSTOM_TIMING__) && (null === (p = window) || void 0 === p ? void 0 : p.__CUSTOM_FMP_ELEMENTS__)) {
|
|
var s = {
|
|
name: "CustomFMP",
|
|
type: "unknown",
|
|
value: -1,
|
|
element: ""
|
|
}
|
|
, u = window.__CUSTOM_FMP_ELEMENTS__
|
|
, c = []
|
|
, l = runOnce(function(r) {
|
|
var i = c.sort(function(e, r) {
|
|
return e.priority - r.priority
|
|
})[0];
|
|
i && (s.value = i.startTime,
|
|
s.element = i.id,
|
|
s.extraData = (null == i ? void 0 : i.extraData) || {},
|
|
s.type = r),
|
|
e(s)
|
|
})
|
|
, pushEntry = function(e) {
|
|
var r, i = e.id, a = e.startTime, s = e.priority, u = e.extraData;
|
|
c.push({
|
|
id: i,
|
|
startTime: a,
|
|
priority: s,
|
|
extraData: u
|
|
}),
|
|
(null === (r = window.__CUSTOM_FMP_ELEMENTS__) || void 0 === r ? void 0 : r.length) === c.length && l("default")
|
|
};
|
|
window.addEventListener("__APM_FMP_EVENT__", function(e) {
|
|
var r, i;
|
|
if (null == e ? void 0 : null === (r = e.detail) || void 0 === r ? void 0 : r.id) {
|
|
;u.find(function(r) {
|
|
return r.id === e.detail.id
|
|
}) && pushEntry({
|
|
id: e.detail.id,
|
|
startTime: e.detail.startTime,
|
|
priority: e.detail.priority,
|
|
extraData: null === (i = e.detail) || void 0 === i ? void 0 : i.extraData
|
|
})
|
|
}
|
|
}),
|
|
onHidden(function() {
|
|
return l("pagehide")
|
|
}),
|
|
["keydown", "click"].forEach(function(e) {
|
|
window.addEventListener(e, function() {
|
|
return l("interact")
|
|
}, !0)
|
|
}),
|
|
setTimeout(function() {
|
|
l("8s")
|
|
}, 8e3)
|
|
} else {
|
|
if (!(null === (f = window) || void 0 === f ? void 0 : f.__FMP_OBSERVED_POINTS__))
|
|
return;
|
|
var d, p, f, v = {
|
|
name: "FMP",
|
|
type: "unknown",
|
|
value: -1
|
|
};
|
|
runOnce(function() {
|
|
try {
|
|
var r = !1
|
|
, i = window.sessionStorage.getItem("__REDIRECT_SPA_REFER__");
|
|
if (i)
|
|
return;
|
|
if (window.__FULLY_LOADED__ && window.__FMP_OBSERVED_POINTS__) {
|
|
var a = calcFMP(window.__FMP_OBSERVED_POINTS__) || {
|
|
value: -1,
|
|
element: ""
|
|
}
|
|
, s = a.value
|
|
, u = a.element;
|
|
return v.value = s,
|
|
v.element = u,
|
|
e(v),
|
|
r = !0,
|
|
stopFMPDispatch()
|
|
}
|
|
window.addEventListener("__fullyloaded__", function(a) {
|
|
if (!r && !i) {
|
|
var s, u = calcFMP(window.__FMP_OBSERVED_POINTS__) || {
|
|
value: -1,
|
|
element: ""
|
|
}, c = u.value, l = u.element;
|
|
v.value = c,
|
|
v.element = l,
|
|
v.type = (null == a ? void 0 : null === (s = a.detail) || void 0 === s ? void 0 : s.type) || "unknown",
|
|
e(v),
|
|
r = !0,
|
|
stopFMPDispatch()
|
|
}
|
|
})
|
|
} catch (e) {}
|
|
})(null)
|
|
}
|
|
}
|
|
, registerEventHandler = function(e, r) {
|
|
return function registerTargetEventHandler(i) {
|
|
var a = e[i];
|
|
return function eventHandler() {
|
|
for (var s = arguments.length, u = Array(s), c = 0; c < s; c++)
|
|
u[c] = arguments[c];
|
|
r && r();
|
|
var l = new Event(i.toLowerCase());
|
|
return a.apply(e, u),
|
|
window.dispatchEvent(l),
|
|
a
|
|
}
|
|
}
|
|
}
|
|
, eX = [];
|
|
function onSpaLoad_hasBackgroundImage(e) {
|
|
var r = window.getComputedStyle(e);
|
|
return r.getPropertyValue("background-image").includes("url") || r.getPropertyValue("background").includes("url")
|
|
}
|
|
var startSpaFMPObserve = function(e, r, i) {
|
|
if (null === (a = window) || void 0 === a ? void 0 : a.__FULLY_LOADED__) {
|
|
eX.forEach(function(e) {
|
|
window.removeEventListener("__spaLoaded__", e)
|
|
});
|
|
var a, s, u = {
|
|
name: "SPA_LOAD",
|
|
type: "first",
|
|
value: -1
|
|
}, reportSpaLoad = function(e) {
|
|
var a, s, c, l = null == e ? void 0 : null === (a = e.detail) || void 0 === a ? void 0 : a.observedPoints;
|
|
if (l && (null === (s = window) || void 0 === s ? void 0 : s.__SPA_LOAD__START__)) {
|
|
var d, p = (window.__SPA_LOAD__START__ || window.performance.timing.navigationStart) - window.performance.timing.navigationStart, f = ((null === (c = calcFMP(l)) || void 0 === c ? void 0 : c.value) || 0) - p;
|
|
f > 0 && (u.value = f),
|
|
(sessionStorage.getItem("__FMP__" + window.location.pathname) || "popstate" === i) && (u.type = "bfcache");
|
|
var v = sessionStorage.getItem("__SPA_REFER__");
|
|
null !== v && (u.spaLoadRefer = v),
|
|
sessionStorage.setItem("__FMP__" + window.location.pathname, f.toString());
|
|
(null === (d = window) || void 0 === d ? void 0 : d.__FMP_Observer__).disconnect(),
|
|
r(u)
|
|
}
|
|
}, c = null === (s = window) || void 0 === s ? void 0 : s.__FMP_Observer__;
|
|
if (c && c.disconnect(),
|
|
window.__FMP_OBSERVED_POINTS__ = [],
|
|
window.__FULLY_SPA_LOADED__ = 0,
|
|
window.__FULLY_LOADED__NAME__ = "__spaLoaded__",
|
|
window.__SPA_LOAD__START__ = Date.now(),
|
|
"function" != typeof window.__FMP_pushObservedPoints)
|
|
return 0;
|
|
window.__FMP_pushObservedPoints(!0);
|
|
c.observe(document, {
|
|
childList: !0,
|
|
subtree: !0,
|
|
attributes: !0,
|
|
attributeFilter: ["src"]
|
|
}),
|
|
window.addEventListener("__spaLoaded__", reportSpaLoad),
|
|
eX.push(reportSpaLoad)
|
|
}
|
|
}
|
|
, onSpaLoad_getCurrentTime = function() {
|
|
return performance.now()
|
|
}
|
|
, onSpaLoad_getElementVisibleArea = function(e) {
|
|
var r = e.getBoundingClientRect();
|
|
return r.width * r.height
|
|
}
|
|
, onSpaLoad_getUrl = function(e) {
|
|
if (e) {
|
|
if ("img" === e.tagName.toLowerCase())
|
|
return e.getAttribute("src");
|
|
if (onSpaLoad_hasBackgroundImage(e)) {
|
|
var r = window.getComputedStyle(e)
|
|
, i = r.backgroundImage || r.background
|
|
, a = i.indexOf("url(");
|
|
if (-1 !== a) {
|
|
var s = i.indexOf(")", a);
|
|
if (-1 !== s)
|
|
return i.substring(a + 4, s).split('"').join("")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
, eY = {
|
|
startTime: 0,
|
|
size: 0,
|
|
url: "",
|
|
element: null
|
|
}
|
|
, startSpaLCPObserve = function(e, r, i) {
|
|
if ("replacestate" !== i) {
|
|
l = onSpaLoad_getCurrentTime(),
|
|
eY = {
|
|
startTime: 0,
|
|
size: 0,
|
|
url: "",
|
|
element: null
|
|
},
|
|
new PerformanceObserver(function(e) {
|
|
e.getEntries().forEach(function(e) {})
|
|
}
|
|
).observe({
|
|
type: "element",
|
|
buffered: !0
|
|
}),
|
|
c && (c.disconnect(),
|
|
c = null);
|
|
var a = runOnce(function() {
|
|
var e, a = ((null == eY ? void 0 : eY.startTime) || 0) - (l || 0);
|
|
if (!Number.isNaN(a)) {
|
|
var s = {
|
|
name: "SPA_LOAD",
|
|
type: "first",
|
|
value: a > 0 ? a : 0,
|
|
spaLoadResourceUrl: onSpaLoad_getUrl(null == eY ? void 0 : eY.element),
|
|
spaLoadElement: (0,
|
|
eJ.G)(null == eY ? void 0 : eY.element),
|
|
spaLoadResourceRT: 0,
|
|
spaLoadRefer: sessionStorage.getItem("__SPA_REFER__") || ""
|
|
}
|
|
, u = "" !== s.lcpUrl && ((null === (e = window.performance) || void 0 === e ? void 0 : e.resourcesBufferCache) || []).concat(performance.getEntriesByType("resource")).find(function(e) {
|
|
return e.name === s.spaLoadResourceUrl
|
|
});
|
|
u && (s.spaLoadResourceRT = u.duration),
|
|
("popstate" === i || sessionStorage.getItem("__SPA_LCP__" + window.location.pathname)) && (s.type = "bfcache"),
|
|
r(s),
|
|
sessionStorage.setItem("__SPA_LCP__" + window.location.pathname, "reported")
|
|
}
|
|
});
|
|
["keydown", "click"].forEach(function(e) {
|
|
addEventListener(e, a, !0)
|
|
}),
|
|
onHidden(a),
|
|
(c = new MutationObserver(function(e) {
|
|
e.forEach(function(e) {
|
|
"childList" === e.type && e.addedNodes.length > 0 && e.addedNodes.forEach(function(e) {
|
|
recursivelyCheckNodesForImages(e)
|
|
}),
|
|
"attributes" === e.type && recursivelyCheckNodesForImages(e.target)
|
|
})
|
|
}
|
|
)).observe(document.body, {
|
|
childList: !0,
|
|
attributes: !0,
|
|
subtree: !0
|
|
})
|
|
}
|
|
function recursivelyCheckNodesForImages(e) {
|
|
e.nodeType === Node.ELEMENT_NODE && (isElementVisibleInViewport_isElementVisibleInViewport(e) && ("img" === e.tagName.toLowerCase() || onSpaLoad_hasBackgroundImage(e) && 0 === e.childNodes.length) || ["p", "span"].includes(e.tagName.toLowerCase())) ? (eY.size < onSpaLoad_getElementVisibleArea(e) && (eY = {
|
|
startTime: onSpaLoad_getCurrentTime(),
|
|
size: onSpaLoad_getElementVisibleArea(e),
|
|
element: e
|
|
}),
|
|
eY.size === onSpaLoad_getElementVisibleArea(e) && e.className.includes("active") && (eY = {
|
|
startTime: onSpaLoad_getCurrentTime(),
|
|
size: onSpaLoad_getElementVisibleArea(e),
|
|
element: e
|
|
})) : Array.from(e.childNodes).forEach(recursivelyCheckNodesForImages)
|
|
}
|
|
}
|
|
, onSpaLoad = function(e, r) {
|
|
var routerChangeListener = function() {};
|
|
if ("FMP" === r.type) {
|
|
if (!(null === (u = window) || void 0 === u ? void 0 : u.__FMP_OBSERVED_POINTS__))
|
|
return;
|
|
var i = window.sessionStorage.getItem("__REDIRECT_SPA_REFER__");
|
|
if (i && Number(null === (c = window) || void 0 === c ? void 0 : c.__SPA_LOAD__START__) > 0) {
|
|
var a = (window.__SPA_LOAD__START__ || window.performance.timing.navigationStart) - window.performance.timing.navigationStart
|
|
, s = ((null === (l = window) || void 0 === l ? void 0 : l.__FMP_OBSERVED_POINTS__) || []).filter(function(e) {
|
|
return e.t > a
|
|
});
|
|
if (s) {
|
|
var u, c, l, d, p = {
|
|
name: "SPA_LOAD",
|
|
type: "first",
|
|
value: -1,
|
|
spaLoadRefer: ""
|
|
}, f = (null === (d = calcFMP(s)) || void 0 === d ? void 0 : d.value) || 0 - a;
|
|
f > 0 && (p.value = f),
|
|
sessionStorage.getItem("__FMP__" + window.location.pathname) && (p.type = "bfcache"),
|
|
p.spaLoadRefer = i,
|
|
window.sessionStorage.removeItem("__REDIRECT_SPA_REFER__"),
|
|
e(p)
|
|
}
|
|
}
|
|
routerChangeListener = startSpaFMPObserve
|
|
}
|
|
"LCP" === r.type && (routerChangeListener = startSpaLCPObserve);
|
|
var v = registerEventHandler(window.history, function() {
|
|
window.sessionStorage.setItem("__SPA_REFER__", window.location.href)
|
|
});
|
|
window.history.pushState = v("pushState"),
|
|
window.history.replaceState = v("replaceState"),
|
|
window.addEventListener("pushstate", function(r) {
|
|
routerChangeListener(r, e, "pushstate")
|
|
}, !1),
|
|
window.addEventListener("replacestate", function(r) {
|
|
routerChangeListener(r, e, "replacestate")
|
|
}, !1),
|
|
window.addEventListener("popstate", function(r) {
|
|
routerChangeListener(r, e, "popstate")
|
|
}, !1)
|
|
}
|
|
, handlingMetrics = function(e) {
|
|
return "paintTiming" === e.measurement_name && e.measurement_data.largestContentfulPaint > 0 && e.measurement_data.largestContentfulPaint < 2500 && delete e.measurement_data.staticResourceEntries,
|
|
e
|
|
}
|
|
, onTTI = function(e) {
|
|
var r, i;
|
|
if ((null === (r = window) || void 0 === r ? void 0 : r.__USE_CUSTOM_TIMING__) && (null === (i = window) || void 0 === i ? void 0 : i.__CUSTOM_TTI_ELEMENTS__)) {
|
|
var a = {
|
|
name: "TTI",
|
|
type: "unknown",
|
|
value: -1,
|
|
element: ""
|
|
}
|
|
, s = window.__CUSTOM_TTI_ELEMENTS__
|
|
, u = []
|
|
, c = runOnce(function(r) {
|
|
var report = function() {
|
|
var i = u.sort(function(e, r) {
|
|
return e.priority - r.priority
|
|
})[0];
|
|
i && (a.value = i.startTime,
|
|
a.element = i.id,
|
|
a.extraData = (null == i ? void 0 : i.extraData) || {},
|
|
a.type = r),
|
|
console.log("stopListening ttiEntry", i),
|
|
e(a)
|
|
};
|
|
"function" == typeof requestIdleCallback ? requestIdleCallback(report) : requestAnimationFrame(report)
|
|
})
|
|
, pushEntry = function(e) {
|
|
var r, i = e.id, a = e.startTime, s = e.priority, l = e.extraData;
|
|
u.push({
|
|
id: i,
|
|
startTime: a,
|
|
priority: s,
|
|
extraData: l
|
|
}),
|
|
(null === (r = window.__CUSTOM_TTI_ELEMENTS__) || void 0 === r ? void 0 : r.length) === u.length && c("default")
|
|
};
|
|
window.addEventListener("__APM_TTI_EVENT__", function(e) {
|
|
var r, i;
|
|
if (null == e ? void 0 : null === (r = e.detail) || void 0 === r ? void 0 : r.id) {
|
|
;s.find(function(r) {
|
|
return r.id === e.detail.id
|
|
}) && pushEntry({
|
|
id: e.detail.id,
|
|
startTime: e.detail.startTime,
|
|
priority: e.detail.priority,
|
|
extraData: null === (i = e.detail) || void 0 === i ? void 0 : i.extraData
|
|
})
|
|
}
|
|
}),
|
|
onHidden(function() {
|
|
return c("pagehide")
|
|
}),
|
|
["keydown", "click"].forEach(function(e) {
|
|
window.addEventListener(e, function() {
|
|
return c("interact")
|
|
}, !0)
|
|
}),
|
|
setTimeout(function() {
|
|
c("8s")
|
|
}, 8e3)
|
|
}
|
|
}
|
|
, getBaseMetricsData = function() {
|
|
return (0,
|
|
h._)({}, getXHSPrefetchMetrics(), getNavigationTiming(window.performance.getEntriesByType("navigation")[0] || window.performance.timing), getXHSBaseMetrics())
|
|
}
|
|
, metrics_onWebPaintTiming = function(e, r, i) {
|
|
var a, s, u = initMetric("paintTiming");
|
|
(0,
|
|
ej.mr)(function(e) {
|
|
u.measurement_data.timeToFirstByte = Math.round(e.value)
|
|
}),
|
|
(0,
|
|
eW.a4)(function(e) {
|
|
u.measurement_data = (0,
|
|
y._)((0,
|
|
h._)({}, u.measurement_data, getBaseMetricsData()), {
|
|
firstContentfulPaint: Math.round(e.value)
|
|
}),
|
|
(null == i ? void 0 : i.fcpCallback) && "function" == typeof i.fcpCallback && i.fcpCallback()
|
|
});
|
|
var c = !1;
|
|
onFMP(function(r) {
|
|
"CustomFMP" === r.name ? (u.measurement_data = (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, u.measurement_data, getBaseMetricsData()), {
|
|
firstMeaningfulPaint: Math.round(r.value),
|
|
fmpType: r.type,
|
|
fmpElement: r.element,
|
|
fmpUrl: r.url
|
|
}), r.extraData),
|
|
(0,
|
|
eG.bw)("syncPerformanceTiming", {
|
|
data: (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, getBaseMetricsData()), {
|
|
firstMeaningfulPaint: Math.round(r.value),
|
|
fmpType: r.type,
|
|
fmpElement: r.element,
|
|
fmpUrl: r.url
|
|
}), r.extraData)
|
|
}).then(function(e) {
|
|
console.log("[syncPerformanceTiming success]: ", e)
|
|
}).catch(function(e) {
|
|
console.log("[syncPerformanceTiming fail]: ", e)
|
|
})) : u.measurement_data = (0,
|
|
y._)((0,
|
|
h._)({}, u.measurement_data, getBaseMetricsData()), {
|
|
firstMeaningfulPaint: Math.round(r.value),
|
|
fmpType: r.type,
|
|
fmpElement: r.element
|
|
}),
|
|
(null == i ? void 0 : i.fmpCallback) && "function" == typeof i.fmpCallback && i.fmpCallback(),
|
|
c && e(handlingMetrics(u))
|
|
}, {
|
|
custom: null == r ? void 0 : null === (a = r.FMP) || void 0 === a ? void 0 : a.custom
|
|
}),
|
|
onTTI(function(r) {
|
|
e({
|
|
measurement_name: "paintTiming",
|
|
measurement_data: (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, getBaseMetricsData()), {
|
|
timeToInteractive: Math.round(r.value),
|
|
ttiType: r.type,
|
|
ttiElement: r.element
|
|
}), r.extraData)
|
|
})
|
|
}),
|
|
onLCP(function(r) {
|
|
var a;
|
|
u.measurement_data = (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, u.measurement_data, getBaseMetricsData(), getLcpAttributionMetrics(null == r ? void 0 : r.attribution)), {
|
|
timeToFirstByte: null == r ? void 0 : null === (a = r.attribution) || void 0 === a ? void 0 : a.timeToFirstByte,
|
|
largestContentfulPaint: Math.round(r.value)
|
|
}), r.value > 2500 ? getResourceTiming_getResourceTiming() : {}),
|
|
-1 === u.measurement_data.firstMeaningfulPaint && (c = !0),
|
|
(null == i ? void 0 : i.lcpCallback) && "function" == typeof i.lcpCallback && i.lcpCallback(),
|
|
e(handlingMetrics(u))
|
|
}),
|
|
onSpaLoad(function(i) {
|
|
var a;
|
|
e({
|
|
measurement_name: "paintTiming",
|
|
measurement_data: (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, getBaseMetricsData()), {
|
|
spaLoad: Math.round(i.value),
|
|
spaLoadType: i.type,
|
|
spaLoadRefer: i.spaLoadRefer
|
|
}), (null == r ? void 0 : null === (a = r.SPA_LOAD) || void 0 === a ? void 0 : a.type) === "LCP" ? {
|
|
spaLoadResourceRT: null == i ? void 0 : i.spaLoadResourceRT,
|
|
spaLoadElement: null == i ? void 0 : i.spaLoadElement,
|
|
spaLoadResourceUrl: null == i ? void 0 : i.spaLoadResourceUrl
|
|
} : {})
|
|
})
|
|
}, {
|
|
type: (null == r ? void 0 : null === (s = r.SPA_LOAD) || void 0 === s ? void 0 : s.type) || "FMP"
|
|
})
|
|
}
|
|
, ez = {
|
|
NORMAL: 1,
|
|
MEDIUM_BRUSH: 2,
|
|
HIGH_BRUSH: 3
|
|
}
|
|
, eK = {
|
|
NORMAL: 60,
|
|
MEDIUM_BRUSH: 90
|
|
}
|
|
, onFPS = function(e, r) {
|
|
whenActivated(function() {
|
|
r && r.observe({
|
|
reportFrameThreshold: 60,
|
|
lagFrameThreshold: 125
|
|
})
|
|
}),
|
|
onActivated(function() {
|
|
r && "observe" !== r.status && r.observe({
|
|
reportFrameThreshold: 60,
|
|
lagFrameThreshold: 125
|
|
})
|
|
}),
|
|
onHidden(function() {
|
|
if (r) {
|
|
r.disconnect();
|
|
var i, a = r.takeRecords(), s = a[a.length - 1];
|
|
if (s) {
|
|
;e({
|
|
value: s.avgFps,
|
|
attribution: {
|
|
deviceBrushLevel: (i = s.maxFps) <= eK.NORMAL ? ez.NORMAL : i > eK.NORMAL && i <= eK.MEDIUM_BRUSH ? ez.MEDIUM_BRUSH : i > eK.MEDIUM_BRUSH ? ez.HIGH_BRUSH : ez.NORMAL,
|
|
maxJsFps: s.maxFps,
|
|
minJsFps: s.minFps,
|
|
maxJsInterval: Math.round(s.maxInterval),
|
|
jsFpsRecordThreshold: s.frames,
|
|
firstFrameTimestamp: Math.round(window.performance.timing.navigationStart + s.firstFrameTimestamp),
|
|
lastFrameTimestamp: Math.round(window.performance.timing.navigationStart + s.lastFrameTimestamp)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
, onStutter = function(e, r) {
|
|
onHidden(function() {
|
|
if (r) {
|
|
var i = r.takeRecords()
|
|
, a = i[i.length - 1];
|
|
a && e({
|
|
value: a.lagDuration / a.duration,
|
|
attribution: {
|
|
duration: Math.round(a.duration),
|
|
lagDuration: Math.round(a.lagDuration),
|
|
lagFrameEntries: a.lagFrameEntries,
|
|
maxJsInterval: Math.round(a.maxInterval),
|
|
minJsInterval: Math.round(a.minInterval),
|
|
jsSeriousLagThreshold: a.lagFrameThreshold
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
, onRouteINP = function(e) {
|
|
var r = []
|
|
, i = null;
|
|
(0,
|
|
eW.Yn)(function(e) {
|
|
r.push(e),
|
|
(!i || e.value > i.value) && (i = e)
|
|
}, {
|
|
reportAllChanges: !0
|
|
});
|
|
var a = !0
|
|
, stopListening = function() {
|
|
i && a && (e(i),
|
|
a = !1)
|
|
};
|
|
onHidden(stopListening);
|
|
var resetListening = function() {
|
|
i = null,
|
|
r = [],
|
|
a = !0
|
|
}
|
|
, s = registerEventHandler(window.history, stopListening);
|
|
window.history.pushState = s("pushState"),
|
|
window.history.replaceState = s("replaceState"),
|
|
window.addEventListener("pushstate", resetListening, !1),
|
|
window.addEventListener("replacestate", resetListening, !1),
|
|
window.addEventListener("popstate", resetListening, !1)
|
|
}
|
|
, eZ = function() {
|
|
function FrameObserver(e) {
|
|
var r = this;
|
|
(0,
|
|
f._)(this, FrameObserver),
|
|
(0,
|
|
g._)(this, "callback", function() {}),
|
|
(0,
|
|
g._)(this, "reportFrameThreshold", 120),
|
|
(0,
|
|
g._)(this, "lagFrameThreshold", 300),
|
|
(0,
|
|
g._)(this, "records", []),
|
|
(0,
|
|
g._)(this, "cycleFrames", 0),
|
|
(0,
|
|
g._)(this, "totalFrames", 0),
|
|
(0,
|
|
g._)(this, "maxFps", -1 / 0),
|
|
(0,
|
|
g._)(this, "minFps", Infinity),
|
|
(0,
|
|
g._)(this, "firstFrameTimeStamp", void 0),
|
|
(0,
|
|
g._)(this, "lastFrameTimeStamp", void 0),
|
|
(0,
|
|
g._)(this, "currentFrameTimestamp", void 0),
|
|
(0,
|
|
g._)(this, "prevFrameTimestamp", void 0),
|
|
(0,
|
|
g._)(this, "cycleFirstFrameTimestamp", void 0),
|
|
(0,
|
|
g._)(this, "maxInterval", -1 / 0),
|
|
(0,
|
|
g._)(this, "minInterval", Infinity),
|
|
(0,
|
|
g._)(this, "cycleMaxInterval", -1 / 0),
|
|
(0,
|
|
g._)(this, "cycleMinInterval", Infinity),
|
|
(0,
|
|
g._)(this, "timer", void 0),
|
|
(0,
|
|
g._)(this, "_status", void 0),
|
|
(0,
|
|
g._)(this, "fpsEntires", []),
|
|
(0,
|
|
g._)(this, "lastThreeFrames", []),
|
|
(0,
|
|
g._)(this, "lagFrameEntires", []),
|
|
(0,
|
|
g._)(this, "lagDuration", 0),
|
|
(0,
|
|
g._)(this, "rafLoop", function(e) {
|
|
if (r.currentFrameTimestamp = e,
|
|
!r.firstFrameTimeStamp && (r.firstFrameTimeStamp = e),
|
|
r.lastFrameTimeStamp = e,
|
|
!r.prevFrameTimestamp || !r.cycleFirstFrameTimestamp) {
|
|
r.prevFrameTimestamp = e,
|
|
r.cycleFirstFrameTimestamp = e,
|
|
r.cleanAndSetRequestAnimationFrame(r.rafLoop);
|
|
return
|
|
}
|
|
var i = e - r.prevFrameTimestamp;
|
|
r.lastThreeFrames.length >= 3 && r.lastThreeFrames.shift(),
|
|
r.lastThreeFrames.push({
|
|
startTime: r.prevFrameTimestamp,
|
|
endTime: e,
|
|
duration: i
|
|
});
|
|
var a = r.lastThreeFrames.reduce(function(e, r) {
|
|
return e + r.duration
|
|
}, 0) / r.lastThreeFrames.length;
|
|
i > r.maxInterval && (r.maxInterval = Math.round(100 * i) / 100),
|
|
i < r.minInterval && (r.minInterval = Math.round(100 * i) / 100),
|
|
i > r.cycleMaxInterval && (r.cycleMaxInterval = Math.round(100 * i) / 100),
|
|
i < r.cycleMinInterval && (r.cycleMinInterval = Math.round(100 * i) / 100),
|
|
i > r.lagFrameThreshold && i >= 2 * a && r.reportEntry("lag"),
|
|
r.cycleFrames += 1,
|
|
r.totalFrames = r.totalFrames + 1,
|
|
r.prevFrameTimestamp = e,
|
|
r.cycleFrames >= r.reportFrameThreshold && (r.reportEntry("fps"),
|
|
r.resetCycle(e)),
|
|
r.cleanAndSetRequestAnimationFrame(r.rafLoop)
|
|
}),
|
|
(0,
|
|
g._)(this, "resetState", function() {
|
|
r.firstFrameTimeStamp = void 0,
|
|
r.lastFrameTimeStamp = void 0,
|
|
r.prevFrameTimestamp = void 0,
|
|
r.currentFrameTimestamp = void 0,
|
|
r.totalFrames = 0,
|
|
r.maxFps = -1 / 0,
|
|
r.minFps = Infinity,
|
|
r.maxInterval = -1 / 0,
|
|
r.minInterval = Infinity,
|
|
r.lagFrameEntires = [],
|
|
r.lagDuration = 0,
|
|
r.fpsEntires = [],
|
|
r.resetCycle()
|
|
}),
|
|
(0,
|
|
g._)(this, "resetCycle", function(e) {
|
|
r.cycleFirstFrameTimestamp = e,
|
|
r.cycleFrames = 0,
|
|
r.cycleMaxInterval = -1 / 0,
|
|
r.cycleMinInterval = Infinity
|
|
}),
|
|
(0,
|
|
g._)(this, "cleanAndSetRequestAnimationFrame", function(e) {
|
|
return r.timer && cancelAnimationFrame(r.timer),
|
|
r.timer = requestAnimationFrame(e),
|
|
r.timer
|
|
}),
|
|
this._status = "initialization",
|
|
e && (this.callback = e)
|
|
}
|
|
return (0,
|
|
v._)(FrameObserver, [{
|
|
key: "status",
|
|
get: function get() {
|
|
return this._status
|
|
}
|
|
}, {
|
|
key: "reportEntry",
|
|
value: function reportEntry(e) {
|
|
if ("fps" === e) {
|
|
if (!this.cycleFirstFrameTimestamp || !this.currentFrameTimestamp)
|
|
return;
|
|
var r = FrameObserver.calcFps({
|
|
endTime: this.currentFrameTimestamp,
|
|
startTime: this.cycleFirstFrameTimestamp,
|
|
frames: this.cycleFrames
|
|
});
|
|
r > this.maxFps && (this.maxFps = r),
|
|
r < this.minFps && (this.minFps = r);
|
|
var i = {
|
|
entryType: "fps",
|
|
value: r,
|
|
maxInterval: this.cycleMaxInterval,
|
|
minInterval: this.cycleMinInterval,
|
|
type: e,
|
|
firstFrameTimestamp: this.cycleFirstFrameTimestamp,
|
|
lastFrameTimestamp: this.currentFrameTimestamp,
|
|
frames: this.cycleFrames
|
|
};
|
|
this.fpsEntires.push(i),
|
|
this.callback(i)
|
|
}
|
|
if ("lag" === e) {
|
|
if (!this.prevFrameTimestamp || !this.currentFrameTimestamp)
|
|
return;
|
|
var a = this.currentFrameTimestamp - this.prevFrameTimestamp
|
|
, s = {
|
|
entryType: "lag",
|
|
startTime: this.prevFrameTimestamp,
|
|
endTime: this.currentFrameTimestamp,
|
|
duration: a
|
|
};
|
|
this.lagFrameEntires.push(s),
|
|
this.lagDuration = this.lagDuration + a,
|
|
this.callback(s)
|
|
}
|
|
}
|
|
}, {
|
|
key: "getEntriesByType",
|
|
value: function getEntriesByType(e) {
|
|
return "fps" === e ? this.fpsEntires : "lag" === e ? this.lagFrameEntires : void 0
|
|
}
|
|
}, {
|
|
key: "takeRecords",
|
|
value: function takeRecords() {
|
|
return this.records
|
|
}
|
|
}, {
|
|
key: "getCurrentEntries",
|
|
value: function getCurrentEntries() {
|
|
if (this.cycleFirstFrameTimestamp && this.currentFrameTimestamp)
|
|
return {
|
|
value: FrameObserver.calcFps({
|
|
startTime: this.cycleFirstFrameTimestamp,
|
|
endTime: this.currentFrameTimestamp,
|
|
frames: this.cycleFrames
|
|
}),
|
|
maxInterval: this.cycleMaxInterval,
|
|
minInterval: this.cycleMinInterval,
|
|
firstFrameTimestamp: this.cycleFirstFrameTimestamp,
|
|
lastFrameTimestamp: this.currentFrameTimestamp,
|
|
frames: this.cycleFrames
|
|
}
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe(e) {
|
|
"observe" !== this._status && (this._status = "observe",
|
|
this.reportFrameThreshold = e.reportFrameThreshold || 120,
|
|
this.lagFrameThreshold = e.lagFrameThreshold || 300,
|
|
this.cleanAndSetRequestAnimationFrame(this.rafLoop))
|
|
}
|
|
}, {
|
|
key: "disconnect",
|
|
value: function disconnect() {
|
|
this._status = "disconnect",
|
|
this.reportEntry("fps"),
|
|
this.timer && cancelAnimationFrame(this.timer),
|
|
this.firstFrameTimeStamp && this.lastFrameTimeStamp && this.records.push({
|
|
avgFps: FrameObserver.calcFps({
|
|
startTime: this.firstFrameTimeStamp,
|
|
endTime: this.lastFrameTimeStamp,
|
|
frames: this.totalFrames
|
|
}),
|
|
maxInterval: this.maxInterval,
|
|
minInterval: this.minInterval,
|
|
maxFps: this.maxFps,
|
|
minFps: this.minFps,
|
|
frames: this.totalFrames,
|
|
lagFrameEntries: this.lagFrameEntires,
|
|
fpsEntries: this.fpsEntires,
|
|
duration: this.lastFrameTimeStamp - this.firstFrameTimeStamp,
|
|
lagDuration: this.lagDuration,
|
|
firstFrameTimestamp: this.firstFrameTimeStamp,
|
|
lastFrameTimestamp: this.lastFrameTimeStamp,
|
|
lagFrameThreshold: this.lagFrameThreshold
|
|
}),
|
|
this.resetState()
|
|
}
|
|
}]),
|
|
FrameObserver
|
|
}();
|
|
(0,
|
|
g._)(eZ, "calcFps", function(e) {
|
|
var r = e.startTime
|
|
, i = e.endTime
|
|
, a = e.frames;
|
|
return Math.round(1e3 / ((i - r) / a))
|
|
});
|
|
function getTimeStamp(e) {
|
|
return Math.floor(e += window.performance.timing.navigationStart)
|
|
}
|
|
var eQ = function() {
|
|
function LongtaskObserver(e) {
|
|
if ((0,
|
|
f._)(this, LongtaskObserver),
|
|
(0,
|
|
g._)(this, "observer", void 0),
|
|
!LongtaskObserver.isSupport()) {
|
|
this.observer = null;
|
|
return
|
|
}
|
|
this.observer = new PerformanceObserver(null != e ? e : function() {
|
|
return 0
|
|
}
|
|
)
|
|
}
|
|
return (0,
|
|
v._)(LongtaskObserver, [{
|
|
key: "cleanObserver",
|
|
value: function cleanObserver() {
|
|
this.observer = null
|
|
}
|
|
}, {
|
|
key: "startObserve",
|
|
value: function startObserve() {
|
|
return this.observer && this.observer.observe({
|
|
entryTypes: ["longtask"]
|
|
}),
|
|
this.observer
|
|
}
|
|
}, {
|
|
key: "takeRecords",
|
|
value: function takeRecords() {
|
|
if (this.observer) {
|
|
this.observer.disconnect();
|
|
var e = this.observer.takeRecords();
|
|
return this.cleanObserver(),
|
|
e
|
|
}
|
|
return null
|
|
}
|
|
}], [{
|
|
key: "isSupport",
|
|
value: function isSupport() {
|
|
return !!(window && "PerformanceObserver"in window)
|
|
}
|
|
}]),
|
|
LongtaskObserver
|
|
}()
|
|
, e$ = function() {
|
|
function InteractLaggyObserver(e, r) {
|
|
(0,
|
|
f._)(this, InteractLaggyObserver),
|
|
(0,
|
|
g._)(this, "_state", void 0),
|
|
(0,
|
|
g._)(this, "_callback", void 0),
|
|
(0,
|
|
g._)(this, "_observeOptions", void 0),
|
|
(0,
|
|
g._)(this, "_entries", []),
|
|
(0,
|
|
g._)(this, "_interactEventsHandler", void 0),
|
|
(0,
|
|
g._)(this, "getFps", void 0),
|
|
this._state = "initialization",
|
|
this._callback = e,
|
|
this._interactEventsHandler = debounce(this.handleInteractEvent.bind(this), 200, !0),
|
|
this.getFps = r
|
|
}
|
|
return (0,
|
|
v._)(InteractLaggyObserver, [{
|
|
key: "getState",
|
|
value: function getState() {
|
|
return this._state
|
|
}
|
|
}, {
|
|
key: "getObserveOptions",
|
|
value: function getObserveOptions() {
|
|
return this._observeOptions ? this._observeOptions : null
|
|
}
|
|
}, {
|
|
key: "createFrameObserver",
|
|
value: function createFrameObserver() {
|
|
return new eZ(function(e) {}
|
|
)
|
|
}
|
|
}, {
|
|
key: "getCurrentDurationFps",
|
|
value: function getCurrentDurationFps() {
|
|
var e = this.createFrameObserver();
|
|
return e.observe({
|
|
reportFrameThreshold: 50
|
|
}),
|
|
new Promise(function(r) {
|
|
setTimeout(function() {
|
|
null == e || e.disconnect(),
|
|
r(null == e ? void 0 : e.takeRecords()),
|
|
e = null
|
|
}, 2e3)
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "getCurrentDurationLongtask",
|
|
value: function getCurrentDurationLongtask() {
|
|
if (!eQ.isSupport())
|
|
return new Promise(function(e) {
|
|
return e(null)
|
|
}
|
|
);
|
|
var e, r = [];
|
|
try {
|
|
;new eQ(function(i) {
|
|
return (e = r).push.apply(e, (0,
|
|
ec._)(i.getEntries()))
|
|
}
|
|
).startObserve()
|
|
} finally {
|
|
return new Promise(function(e) {
|
|
setTimeout(function() {
|
|
return e(r)
|
|
}, 2e3)
|
|
}
|
|
)
|
|
}
|
|
}
|
|
}, {
|
|
key: "doEntryCb",
|
|
value: function doEntryCb(e) {
|
|
this._callback(e)
|
|
}
|
|
}, {
|
|
key: "handleInteractEvent",
|
|
value: function handleInteractEvent(e) {
|
|
var r = this;
|
|
return (0,
|
|
p._)(function() {
|
|
var i, a, s, u, c, l, d, p, f, v, g, h, _;
|
|
return (0,
|
|
m.Jh)(this, function(m) {
|
|
switch (m.label) {
|
|
case 0:
|
|
return i = getTimeStamp(performance.now()),
|
|
a = r.getFps(),
|
|
[4, Promise.all([r.getCurrentDurationFps(), r.getCurrentDurationLongtask()])];
|
|
case 1:
|
|
if (u = (s = w._.apply(void 0, [m.sent(), 2]))[0],
|
|
c = s[1],
|
|
u && (l = null == u ? void 0 : null === (v = u[0]) || void 0 === v ? void 0 : v.minFps,
|
|
d = null == u ? void 0 : null === (g = u[0]) || void 0 === g ? void 0 : g.firstFrameTimestamp,
|
|
p = null == u ? void 0 : null === (h = u[0]) || void 0 === h ? void 0 : h.lastFrameTimestamp),
|
|
c && (f = null == c ? void 0 : c.reduce(function(e, r) {
|
|
return e.push({
|
|
s: getTimeStamp(r.startTime),
|
|
d: getTimeStamp(r.duration)
|
|
}),
|
|
e
|
|
}, [])),
|
|
void 0 === l || -1 === a || !d)
|
|
return [2];
|
|
return _ = {
|
|
pointGroup: "interactLaggy",
|
|
startTime: i,
|
|
minJsFps: null != l ? l : -1,
|
|
jsFps: a,
|
|
fpsLoss: void 0 !== l && -1 !== a ? a - l : -1,
|
|
eventTarget: (0,
|
|
eJ.G)(e.target),
|
|
eventType: e.type || "",
|
|
longtask: f ? JSON.stringify(f) : "null",
|
|
firstFrameTimestamp: d ? getTimeStamp(d) : -1,
|
|
lastFrameTimestamp: p ? getTimeStamp(p) : -1
|
|
},
|
|
r.doEntryCb(_),
|
|
r._entries.push(_),
|
|
[2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "startListenInteractEvent",
|
|
value: function startListenInteractEvent() {
|
|
var e = this
|
|
, r = this.getObserveOptions();
|
|
r && r.interactionEventCollectType.forEach(function(r) {
|
|
window.addEventListener(r, e._interactEventsHandler, {
|
|
capture: !0
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
key: "removeInteractEventListener",
|
|
value: function removeInteractEventListener() {
|
|
var e = this
|
|
, r = this.getObserveOptions();
|
|
r && r.interactionEventCollectType.forEach(function(r) {
|
|
window.removeEventListener(r, e._interactEventsHandler, !0)
|
|
})
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe(e) {
|
|
this._state = "observe",
|
|
this._observeOptions = e,
|
|
this.startListenInteractEvent()
|
|
}
|
|
}, {
|
|
key: "disconnect",
|
|
value: function disconnect() {
|
|
this._state = "disconnect",
|
|
this.removeInteractEventListener()
|
|
}
|
|
}]),
|
|
InteractLaggyObserver
|
|
}()
|
|
, e0 = ["click", "dblclick"]
|
|
, e1 = ["dragend", "dragenter", "dragleave", "dragover", "dragstart", "drop"]
|
|
, e2 = ["beforeinput", "input"]
|
|
, e3 = ["keydown", "keypress", "keyup"]
|
|
, e4 = ["touchstart", "touchend", "touchcancel"]
|
|
, e5 = ["resize", "scroll"]
|
|
, onInteractLoggy = function(e, r) {
|
|
d = new e$(function(r) {
|
|
.01 >= Math.random() && e(r)
|
|
}
|
|
,function() {
|
|
if (!r)
|
|
return -1;
|
|
var e, i, a = r.getEntriesByType("fps");
|
|
return !a.length && (a = [r.getCurrentEntries()]),
|
|
null !== (i = null == a ? void 0 : null === (e = a[a.length - 1]) || void 0 === e ? void 0 : e.value) && void 0 !== i ? i : -1
|
|
}
|
|
),
|
|
whenActivated(function() {
|
|
d && d.observe({
|
|
interactionEventCollectType: (0,
|
|
ec._)(e0).concat((0,
|
|
ec._)(e1), (0,
|
|
ec._)(e2), (0,
|
|
ec._)(e3), (0,
|
|
ec._)(e4), (0,
|
|
ec._)(e5))
|
|
})
|
|
})
|
|
}
|
|
, metrics_onWebInteractiveTiming = function(e, r) {
|
|
var i, a = null != r && !!r.getFrameObserve && r.getFrameObserve(), s = initMetric("interactiveTiming");
|
|
if (a) {
|
|
var u = new eZ;
|
|
onFPS(function(r) {
|
|
e({
|
|
measurement_name: "interactiveTiming",
|
|
measurement_data: (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({
|
|
jsFps: r.value
|
|
}, r.attribution), {
|
|
deviceBrushLevel: r.attribution.deviceBrushLevel,
|
|
maxJsFps: r.attribution.maxJsFps,
|
|
minJsFps: r.attribution.minJsFps,
|
|
maxJsInterval: r.attribution.maxJsInterval,
|
|
jsFpsRecordThreshold: r.attribution.jsFpsRecordThreshold,
|
|
firstFrameTimestamp: r.attribution.firstFrameTimestamp,
|
|
lastFrameTimestamp: r.attribution.lastFrameTimestamp,
|
|
pointGroup: "webJsFps"
|
|
}), getXHSBaseMetrics())
|
|
})
|
|
}, u),
|
|
onStutter(function(r) {
|
|
e({
|
|
measurement_name: "interactiveTiming",
|
|
measurement_data: (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({
|
|
jsStutter: r.value,
|
|
duration: r.attribution.duration,
|
|
lagDuration: r.attribution.lagDuration,
|
|
maxJsInterval: r.attribution.maxJsInterval,
|
|
minJsInterval: r.attribution.minJsInterval
|
|
}, r.value > .01 ? {
|
|
extraInfo: JSON.stringify(r.attribution.lagFrameEntries || {})
|
|
} : null), {
|
|
pointGroup: "webJsSeriousLag"
|
|
}), getXHSBaseMetrics())
|
|
})
|
|
}, u),
|
|
onInteractLoggy(function(r) {
|
|
e({
|
|
measurement_name: "interactiveTiming",
|
|
measurement_data: (0,
|
|
h._)({}, r, getXHSBaseMetrics())
|
|
})
|
|
}, u)
|
|
}
|
|
(0,
|
|
ej.Fu)(function(e) {
|
|
s.measurement_data.firstInputDelay = Math.round(e.value)
|
|
});
|
|
var c = (null == r ? void 0 : null === (i = r.INP) || void 0 === i ? void 0 : i.dimension) || "usePeriod"
|
|
, l = eW.Yn;
|
|
"pageRoute" === c && (l = onRouteINP),
|
|
l(function(r) {
|
|
var i, a, u, c, l;
|
|
e({
|
|
measurement_name: s.measurement_name,
|
|
measurement_data: (0,
|
|
y._)((0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, s.measurement_data), {
|
|
interactionToNextPaint: Math.round(r.value),
|
|
inpEventTarget: null == r ? void 0 : null === (i = r.attribution) || void 0 === i ? void 0 : i.eventTarget
|
|
}), r.value > 200 ? {
|
|
inpEventEntry: JSON.stringify(null == r ? void 0 : null === (a = r.attribution) || void 0 === a ? void 0 : a.eventEntry)
|
|
} : {}), {
|
|
inpEventType: null == r ? void 0 : null === (u = r.attribution) || void 0 === u ? void 0 : u.eventType,
|
|
inpEventTime: Math.round(((null == r ? void 0 : null === (c = r.attribution) || void 0 === c ? void 0 : c.eventTime) || 0) + window.performance.timing.navigationStart),
|
|
inpLoadState: null == r ? void 0 : null === (l = r.attribution) || void 0 === l ? void 0 : l.loadState,
|
|
pointGroup: "webINP"
|
|
})
|
|
})
|
|
})
|
|
}
|
|
, onRouteCLS = function(e) {
|
|
var r = []
|
|
, i = null;
|
|
(0,
|
|
eW.mw)(function(e) {
|
|
r.push(e),
|
|
(!i || e.value > i.value) && (i = e)
|
|
}, {
|
|
reportAllChanges: !0
|
|
});
|
|
var a = !0
|
|
, stopListening = function() {
|
|
i && a && (e(i),
|
|
a = !1)
|
|
};
|
|
onHidden(stopListening);
|
|
var resetListening = function() {
|
|
i = null,
|
|
r = [],
|
|
a = !0
|
|
}
|
|
, s = registerEventHandler(window.history, stopListening);
|
|
window.history.pushState = s("pushState"),
|
|
window.history.replaceState = s("replaceState"),
|
|
window.addEventListener("pushstate", resetListening, !1),
|
|
window.addEventListener("replacestate", resetListening, !1),
|
|
window.addEventListener("popstate", resetListening, !1)
|
|
}
|
|
, metrics_onWebVisualStability = function(e, r) {
|
|
var i, a = (null == r ? void 0 : null === (i = r.CLS) || void 0 === i ? void 0 : i.dimension) || "usePeriod", s = initMetric("visualStability"), u = eW.mw;
|
|
"pageRoute" === a && (u = onRouteCLS),
|
|
u(function(r) {
|
|
try {
|
|
s.measurement_data.cumulativeLayoutShift = r.value,
|
|
r.value > .1 && (s.measurement_data.extraInfo = JSON.stringify((null == r ? void 0 : r.attribution) || {}, stringifyCyclicObject()),
|
|
s.measurement_data.pointGroup = "webCLS"),
|
|
e(s)
|
|
} catch (e) {}
|
|
})
|
|
}
|
|
, onCollectMetrics = function(e, r, i) {
|
|
try {
|
|
metrics_onWebPaintTiming(e, r, i),
|
|
metrics_onWebInteractiveTiming(e, r),
|
|
metrics_onWebVisualStability(e, r)
|
|
} catch (e) {}
|
|
}
|
|
, getPerformanceMetricsBaseInfo = function() {
|
|
var e, r;
|
|
return {
|
|
cpuCores: null === (e = window.navigator) || void 0 === e ? void 0 : e.hardwareConcurrency,
|
|
deviceMemory: null === (r = window.navigator) || void 0 === r ? void 0 : r.deviceMemory
|
|
}
|
|
}
|
|
, e7 = function() {
|
|
function PerformanceCollector(e) {
|
|
(0,
|
|
f._)(this, PerformanceCollector),
|
|
(0,
|
|
g._)(this, "client", void 0),
|
|
(0,
|
|
g._)(this, "clearResourceTimingCache", function() {}),
|
|
(0,
|
|
g._)(this, "lcpDone", !1),
|
|
(0,
|
|
g._)(this, "fcpDone", !1),
|
|
(0,
|
|
g._)(this, "fmpDone", !1),
|
|
this.client = e,
|
|
this.clearResourceTimingCache = initResourceTimingCache()
|
|
}
|
|
return (0,
|
|
v._)(PerformanceCollector, [{
|
|
key: "tryClearResourceTimingCache",
|
|
value: function tryClearResourceTimingCache() {
|
|
this.lcpDone && this.fcpDone && this.fmpDone && "function" == typeof this.clearResourceTimingCache && this.clearResourceTimingCache()
|
|
}
|
|
}, {
|
|
key: "monitor",
|
|
value: function monitor() {
|
|
var e, r, i = this;
|
|
onCollectMetrics(function(e) {
|
|
var r = e.measurement_name;
|
|
console.groupCollapsed("[apm performance metric] ".concat(r)),
|
|
console.log(e),
|
|
console.groupEnd(),
|
|
i.client.flush({
|
|
measurement_name: r,
|
|
measurement_data: (0,
|
|
h._)({}, e.measurement_data, getPerformanceMetricsBaseInfo())
|
|
})
|
|
}, (null === (r = this.client) || void 0 === r ? void 0 : null === (e = r.options) || void 0 === e ? void 0 : e.performance) || {}, {
|
|
lcpCallback: function() {
|
|
i.lcpDone = !0,
|
|
i.tryClearResourceTimingCache()
|
|
},
|
|
fmpCallback: function() {
|
|
i.fmpDone = !0,
|
|
i.tryClearResourceTimingCache()
|
|
},
|
|
fcpCallback: function() {
|
|
i.fcpDone = !0,
|
|
i.tryClearResourceTimingCache()
|
|
}
|
|
})
|
|
}
|
|
}]),
|
|
PerformanceCollector
|
|
}()
|
|
, e6 = !1
|
|
, performanceV2 = function(e) {
|
|
if (!e6) {
|
|
e6 = !0;
|
|
var r = new e7(e);
|
|
window.addEventListener("load", function() {
|
|
return r.monitor()
|
|
})
|
|
}
|
|
};
|
|
i(58051);
|
|
var vueApmPlugin_reportJsError = function(e, r, i, a) {
|
|
var s = getJsErrorReportMetrics(e, r.options.jsError);
|
|
s && (i && a && Object.assign(s, {
|
|
context_artifactName: i,
|
|
context_artifactVersion: a
|
|
}),
|
|
r.flush(s))
|
|
};
|
|
function sendVueError(e, r, i, a) {
|
|
try {
|
|
var s = parseError(e);
|
|
if (s) {
|
|
var u = (0,
|
|
h._)({
|
|
type: "vueError"
|
|
}, s);
|
|
vueApmPlugin_reportJsError(u, r, i, a)
|
|
}
|
|
} catch (e) {
|
|
reportInnerError(e, r)
|
|
}
|
|
}
|
|
var vueError = function(e, r, i, a, s) {
|
|
var u, c, l, d, p, f, v;
|
|
((null === (u = r.version) || void 0 === u ? void 0 : u.startsWith("3")) || (null === (l = e.vm) || void 0 === l ? void 0 : null === (c = l.version) || void 0 === c ? void 0 : c.startsWith("3"))) && (null == e ? void 0 : null === (p = e.vm) || void 0 === p ? void 0 : null === (d = p.config) || void 0 === d ? void 0 : d.errorHandler) ? e.vm.config.errorHandler = function(e) {
|
|
console.error(e),
|
|
sendVueError(e, i, a, s)
|
|
}
|
|
: (null == r ? void 0 : null === (v = r.Vue) || void 0 === v ? void 0 : null === (f = v.config) || void 0 === f ? void 0 : f.errorHandler) && (r.Vue.config.errorHandler = function(e) {
|
|
console.error(e),
|
|
sendVueError(e, i, a, s)
|
|
}
|
|
)
|
|
}
|
|
, routeChange = function(e, r) {
|
|
e.router.afterEach(function(e) {
|
|
r.updateMeta({
|
|
route: e
|
|
})
|
|
})
|
|
}
|
|
, vueApmPlugin = function(e, r, i, a, s, u) {
|
|
var c = i || e.options.Launcher
|
|
, l = r || e.options.app;
|
|
if (!c || !!c.isBrowser)
|
|
(!l || l.router) && (u ? vueError(l, c, e, a, s) : l.use({
|
|
name: "vueApmPlugin",
|
|
install: function(r, i) {
|
|
var a;
|
|
vueError(r, i, e),
|
|
routeChange(r, e),
|
|
(null === (a = r.auth) || void 0 === a ? void 0 : a.services) && r.auth.services.registerAfterLoginCallback && r.auth.services.registerAfterLoginCallback(function() {
|
|
e.updateMeta({
|
|
purgeUser: !0
|
|
})
|
|
}, !0)
|
|
}
|
|
}))
|
|
}
|
|
, launcher_http_request = function(e, r, i, a) {
|
|
var s = (e.options.http || {}).enableResponseData
|
|
, report = function(a) {
|
|
r && i && Object.assign(a, {
|
|
context_artifactName: r,
|
|
context_artifactVersion: i
|
|
}),
|
|
[R, I, A].includes(a.measurement_data.errorType || "") ? e.flush(a) : e.push(a)
|
|
}
|
|
, u = (null == a ? void 0 : a.http) || e.options.Launcher.http;
|
|
eM.observe({
|
|
httpClient: u,
|
|
callback: function(e) {
|
|
(0 === e.meta.status || e.meta.status >= 400) && el.pushJsError("".concat(e.meta.status, " ").concat(e.meta.url, " ").concat(e.meta.errorMsg)),
|
|
report({
|
|
measurement_name: O,
|
|
measurement_data: (0,
|
|
y._)((0,
|
|
h._)({}, e.meta), {
|
|
duration: e.measure && e.measure.duration
|
|
})
|
|
})
|
|
},
|
|
enableResponseData: void 0 !== s && s
|
|
})
|
|
}
|
|
, proxyXmlHttp = function(e) {
|
|
if ("XMLHttpRequest"in window && "function" == typeof window.XMLHttpRequest) {
|
|
var newXMLHttpRequest = function newXMLHttpRequest() {
|
|
var i = new r
|
|
, a = {
|
|
method: "",
|
|
url: ""
|
|
}
|
|
, s = i.open
|
|
, u = i.send
|
|
, c = i.setRequestHeader;
|
|
return i.open = function() {
|
|
var e = arguments[0]
|
|
, r = arguments[1]
|
|
, u = "string" == typeof r ? r : r.toString();
|
|
a.method = e,
|
|
a.url = u,
|
|
a.matchedPath = parseUrl(u),
|
|
s.apply(i, arguments)
|
|
}
|
|
,
|
|
i.setRequestHeader = function() {
|
|
var e = arguments[0]
|
|
, r = arguments[1];
|
|
!a.traceId && e === L && (a.traceId = r),
|
|
c.apply(i, arguments)
|
|
}
|
|
,
|
|
i.addEventListener("timeout", function() {
|
|
a.errorType = I
|
|
}),
|
|
i.addEventListener("abort", function() {
|
|
a.errorType = I
|
|
}),
|
|
i.addEventListener("loadend", function() {
|
|
if (!forbiddenUrl(a.url)) {
|
|
var r, s, u, c = (e.options.http || {}).enableResponseData;
|
|
a.duration = new Date().getTime() - a.requestTime,
|
|
delete a.requestTime;
|
|
var l = i.status
|
|
, d = i.response;
|
|
if (l >= 200 && l < 300)
|
|
try {
|
|
var p = JSON.parse(d);
|
|
r = p.code,
|
|
s = p.msg,
|
|
u = p.success
|
|
} catch (e) {}
|
|
(a = (0,
|
|
h._)((0,
|
|
y._)((0,
|
|
h._)({}, a), {
|
|
status: l
|
|
}), parseHttpStatus(l, r, s, u))).data = isHTTPError(a.errorType) && c ? d : void 0;
|
|
var f = {
|
|
measurement_name: O,
|
|
measurement_data: (0,
|
|
h._)({}, a)
|
|
};
|
|
isHTTPError(a.errorType) ? e.flush(f) : e.push(f)
|
|
}
|
|
}),
|
|
i.send = function(e) {
|
|
a.requestTime = new Date().getTime(),
|
|
u.call(i, e)
|
|
}
|
|
,
|
|
i
|
|
}
|
|
, r = window.XMLHttpRequest;
|
|
["DONE", "HEADERS_RECEIVED", "LOADING", "OPENED", "UNSENT"].forEach(function(e) {
|
|
newXMLHttpRequest[e] = XMLHttpRequest[e]
|
|
}),
|
|
window.XMLHttpRequest = newXMLHttpRequest
|
|
}
|
|
}
|
|
, proxyFetch = function(e) {
|
|
if ("fetch"in window && "function" == typeof window.fetch) {
|
|
var r = window.fetch;
|
|
window.fetch = function newFetch(i, a) {
|
|
var s = a || {}
|
|
, u = s.method
|
|
, c = s.headers
|
|
, l = (i && "string" != typeof i ? i.url : i) || ""
|
|
, d = {
|
|
method: u || er.GET,
|
|
url: l,
|
|
requestTime: new Date().getTime(),
|
|
matchedPath: parseUrl(l),
|
|
traceId: (void 0 === c ? {} : c)[L]
|
|
};
|
|
return r.call(window, i, a).then(function(r) {
|
|
if ((r.headers.get("Content-Type") || "").match(/video/))
|
|
return r;
|
|
var i = r.clone();
|
|
return i.text().then(function(r) {
|
|
if (!forbiddenUrl(d.url)) {
|
|
var a, s, u, c, l = (e.options.http || {}).enableResponseData, p = i.status;
|
|
if (p >= 200 && p < 300)
|
|
try {
|
|
var f = JSON.parse(r);
|
|
s = f.code,
|
|
u = f.msg,
|
|
c = f.success
|
|
} catch (e) {}
|
|
a = parseHttpStatus(p, s, u, c),
|
|
d.data = isHTTPError(a.errorType) && l ? r : void 0,
|
|
d.duration = new Date().getTime() - d.requestTime,
|
|
delete d.requestTime;
|
|
var v = {
|
|
measurement_name: O,
|
|
measurement_data: (0,
|
|
h._)({
|
|
status: p
|
|
}, d, a)
|
|
};
|
|
isHTTPError(a.errorType) ? e.flush(v) : e.push(v)
|
|
}
|
|
}),
|
|
r
|
|
}).catch(function(r) {
|
|
if (!forbiddenUrl(d.url)) {
|
|
d.errorType = I,
|
|
d.duration = new Date().getTime() - d.requestTime,
|
|
delete d.requestTime;
|
|
var i = {
|
|
measurement_name: O,
|
|
measurement_data: (0,
|
|
h._)({}, d)
|
|
};
|
|
e.flush(i)
|
|
}
|
|
return Promise.reject(r)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
, resourceErrorPlugin_report = function(e, r) {
|
|
isArray(r) ? r.forEach(function(r) {
|
|
e.flush({
|
|
measurement_name: "browserResourceError",
|
|
measurement_data: r
|
|
})
|
|
}) : e.flush({
|
|
measurement_name: "browserResourceError",
|
|
measurement_data: r
|
|
})
|
|
};
|
|
function resourceErrorPlugin_getResourceError(e) {
|
|
try {
|
|
var r = JSON.parse(localStorage.getItem(P) || "[]");
|
|
if (r && r.length) {
|
|
for (var i = [], a = [], s = 0; s < r.length; s++)
|
|
if (r[s].projectName === (e && e.name || "xhs-pc-web")) {
|
|
var u = r[s]
|
|
, c = (u.projectName,
|
|
(0,
|
|
eg._)(u, ["projectName"]));
|
|
i.push(c)
|
|
} else
|
|
r[s].projectName && a.push(r[s]);
|
|
return localStorage.setItem(P, JSON.stringify(a)),
|
|
i
|
|
}
|
|
return []
|
|
} catch (e) {
|
|
return []
|
|
}
|
|
}
|
|
var getName = function(e, r) {
|
|
var i = r.target;
|
|
switch (e) {
|
|
case "img":
|
|
return i.currentSrc || i.src;
|
|
case "script":
|
|
return i.src;
|
|
case "link":
|
|
return i.href
|
|
}
|
|
}
|
|
, e9 = !1
|
|
, monitor_resourceErrorPlugin = function(e) {
|
|
if (!e9) {
|
|
e9 = !0;
|
|
try {
|
|
var r = resourceErrorPlugin_getResourceError(e.options.package);
|
|
r.length && resourceErrorPlugin_report(e, r);
|
|
window.addEventListener("error", function(r) {
|
|
if (getPageVisable())
|
|
try {
|
|
var i = (s = r.target)instanceof HTMLScriptElement ? "script" : s instanceof HTMLLinkElement ? "link" : s instanceof HTMLImageElement ? "img" : void 0;
|
|
if ("img" === i && r.target && r.target.src === window.location.href)
|
|
return;
|
|
if (i) {
|
|
var a = getName(i, r);
|
|
if (a) {
|
|
var s, u, c, l = (u = a,
|
|
c = i,
|
|
u && "" !== u && c ? {
|
|
name: u,
|
|
initiatorType: c,
|
|
clientEventTime: String(Date.now()),
|
|
isFS: F.isFirstScreen
|
|
} : {});
|
|
el.pushJsError("".concat(l.name, " ").concat(l.initiatorType, " loaded failed")),
|
|
resourceErrorPlugin_report(e, l)
|
|
}
|
|
}
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}, !0)
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}
|
|
}
|
|
, e8 = []
|
|
, resourceTimingNRE = function() {
|
|
try {
|
|
if (!window.PerformanceObserver)
|
|
return;
|
|
new PerformanceObserver(function(e) {
|
|
e.getEntries().forEach(function(e) {
|
|
var r, i = e.initiatorType, a = e.responseStart, s = e.requestStart, u = e.connectEnd, c = e.connectStart, l = e.responseEnd, d = e.transferSize, p = e.responseStatus, f = e.name, v = l - s;
|
|
if (!(["fetch", "xmlhttprequest"].includes(i) && 0 === s && (r = f,
|
|
new URL(r).origin !== window.location.origin) || e8.some(function(e) {
|
|
return e.resUrl === f
|
|
})))
|
|
e8.length > 1e3 && e8.shift(),
|
|
e8.push({
|
|
resUrl: f,
|
|
applicationRTT: a - s,
|
|
transportRTT: u - c,
|
|
totalTime: v,
|
|
totalBytes: d,
|
|
throughput: d / (v || 1),
|
|
exception: p > 300 && p < 200 ? "error status code: ".concat(p) : ""
|
|
})
|
|
})
|
|
}
|
|
).observe({
|
|
type: "resource",
|
|
buffered: !0
|
|
});
|
|
var reset = function(e) {
|
|
e8 = e8.slice(e)
|
|
}
|
|
, cycle = function() {
|
|
(0,
|
|
S.Ld)("syncNqeData", function() {
|
|
var e = e8.length;
|
|
(0,
|
|
S.dw)("sendNqeData", {
|
|
requestList: e8
|
|
}).then(function() {
|
|
reset(e)
|
|
}).catch(function() {})
|
|
})
|
|
};
|
|
window.addEventListener("DOMContentLoaded", function() {
|
|
(0,
|
|
S.dw)("h5Performance").catch(function() {}),
|
|
cycle()
|
|
})
|
|
} catch (e) {}
|
|
}
|
|
, te = !1;
|
|
function generateRandomCheckPoint(e, r) {
|
|
e = e || 5,
|
|
r = r || 10;
|
|
for (var i = window.innerHeight, a = window.innerWidth, s = [], u = 1; u <= e; u++) {
|
|
for (var c = i / (e + 1) * u, l = 1; l <= r; l++) {
|
|
var d = a / (r + 1) * l;
|
|
s.push({
|
|
x: d,
|
|
y: c
|
|
})
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
function calculateDomDepth(e) {
|
|
for (var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10, i = arguments.length > 2 ? arguments[2] : void 0, a = 0; e && "HTML" !== e.tagName && "BODY" !== e.tagName && i !== e && a < r; )
|
|
e = e.parentElement,
|
|
a++;
|
|
return a
|
|
}
|
|
function calculateBlankScreenRatio(e) {
|
|
try {
|
|
var r = 0
|
|
, i = 0
|
|
, a = e.domThreshold
|
|
, s = e.maxDepth || 0;
|
|
if (s < a && !base_isProd())
|
|
return console.error("maxDepth 必须大于 domThreshol "),
|
|
0;
|
|
for (var u = generateRandomCheckPoint(e.lines, e.columns), c = u.length, l = e.rootElementSelector ? document.querySelector(e.rootElementSelector) : null, d = 0; d < c; d++) {
|
|
var p = u[d]
|
|
, f = (document.elementsFromPoint(p.x, p.y) || [])[0];
|
|
if (l && !l.contains(f)) {
|
|
i++;
|
|
continue
|
|
}
|
|
f && calculateDomDepth(f, s, l) < a && r++
|
|
}
|
|
if (i === c)
|
|
return 0;
|
|
return r / (c - i)
|
|
} catch (e) {
|
|
!base_isProd() && console.error(e)
|
|
}
|
|
return 0
|
|
}
|
|
function blankScreenPlugin_screenshot(e, r) {
|
|
var html2image = function html2image() {
|
|
window.html2canvas && window.html2canvas(document.body, {
|
|
scale: 360 / window.innerWidth
|
|
}).then(function(i) {
|
|
r.measurement_data.img = i.toDataURL("image/jpeg", .5),
|
|
e.flush(r)
|
|
})
|
|
};
|
|
if (window.html2canvas)
|
|
return html2image();
|
|
null == u || u.then(function(e) {
|
|
e && html2image()
|
|
})
|
|
}
|
|
function blankScreenPlugin_checkBlankScreenError(e, r) {
|
|
var i = r || e.options.blankScreen;
|
|
if (!!document.elementsFromPoint && "function" == typeof document.elementsFromPoint)
|
|
!te && (te = !0,
|
|
setTimeout(function() {
|
|
te = !1
|
|
}, 1e4),
|
|
i.screenshot && downloadScreenshotTool(),
|
|
requestAnimationFrame(function() {
|
|
try {
|
|
var r = calculateBlankScreenRatio(i);
|
|
if (!base_isProd() && console.info("[apm] blankScreenRatio: ".concat(r)),
|
|
r > (i.threshold || .7)) {
|
|
var a, s = {
|
|
ratio: r
|
|
};
|
|
(null === (a = window.apm_blankScreen_error) || void 0 === a ? void 0 : a.errorType) ? (s.errorType = window.apm_blankScreen_error.errorType,
|
|
s.content = window.apm_blankScreen_error.content) : performance.timing.loadEventStart ? s.errorType = "other" : s.errorType = "performance",
|
|
window.apm_blankScreen_error = null;
|
|
var u = {
|
|
measurement_name: "blankScreenError",
|
|
measurement_data: s
|
|
};
|
|
i.screenshot ? blankScreenPlugin_screenshot(e, u) : e.flush(u)
|
|
}
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}))
|
|
}
|
|
var tt = !1
|
|
, tr = {
|
|
routerAfterEach: 1,
|
|
viewDidAppear: 2,
|
|
visibiltyChange: 4
|
|
}
|
|
, pageViewTracker = function(e) {
|
|
try {
|
|
if (!e.options)
|
|
return;
|
|
var r, i, a, s, u = e.options.Launcher && e.options.app;
|
|
u || null === (p = e.options) || void 0 === p || null === (d = p.pageView) || void 0 === d || d.routeMode;
|
|
var c = ""
|
|
, l = "";
|
|
if (tt)
|
|
return;
|
|
tt = !0;
|
|
var reportPV = function(r) {
|
|
try {
|
|
r && e.flush({
|
|
context_matchedPath: l,
|
|
measurement_name: "pageView",
|
|
measurement_data: r
|
|
})
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
};
|
|
if (u)
|
|
null === (g = e.options) || void 0 === g || null === (v = g.app) || void 0 === v || null === (f = v.router) || void 0 === f || f.afterEach(function(e, r) {
|
|
var i = getPath(r)
|
|
, a = getPath(e);
|
|
a !== i && (c = l,
|
|
l = a,
|
|
reportPV({
|
|
initiatorType: tr.routerAfterEach
|
|
}))
|
|
});
|
|
else {
|
|
var d, p, f, v, g, h, m, _ = null === (m = e.options) || void 0 === m ? void 0 : null === (h = m.pageView) || void 0 === h ? void 0 : h.routeMode, reportHistoryStatePv = function() {
|
|
(l = parseUrl(window.location.href)) !== c && reportPV({
|
|
initiatorType: tr.routerAfterEach
|
|
}),
|
|
c = l
|
|
};
|
|
if ("hash" === _)
|
|
window.addEventListener("hashChage", reportHistoryStatePv, !1);
|
|
else {
|
|
var y = registerEventHandler(window.history);
|
|
window.history.pushState = y("pushState"),
|
|
window.history.replaceState = y("replaceState"),
|
|
window.addEventListener("pushstate", reportHistoryStatePv, !1),
|
|
window.addEventListener("replacestate", reportHistoryStatePv, !1),
|
|
window.addEventListener("popstate", function() {
|
|
reportHistoryStatePv()
|
|
}, !1)
|
|
}
|
|
}
|
|
r = window.addEventListener || window.attachEvent,
|
|
i = function() {
|
|
!getPageVisable() && reportPV({
|
|
initiatorType: tr.viewDidAppear
|
|
}),
|
|
setPageVisible(1)
|
|
}
|
|
,
|
|
a = function() {
|
|
setPageVisible(0)
|
|
}
|
|
,
|
|
s = function() {
|
|
!getPageVisable() && reportPV({
|
|
initiatorType: tr.visibiltyChange
|
|
}),
|
|
setPageVisible(1)
|
|
}
|
|
,
|
|
E.YF.isXHS ? E.YF.isAndroid ? ((0,
|
|
S.Ld)("viewDidAppear", i),
|
|
(0,
|
|
S.Ld)("viewDidDisappear", a)) : E.YF.isIOS && ((0,
|
|
S.Ld)("viewDidAppear", i),
|
|
(0,
|
|
S.Ld)("viewDisappear", a)) : r("visibilitychange", function() {
|
|
"visible" === document.visibilityState ? s() : a()
|
|
}),
|
|
r("beforeunload", a)
|
|
} catch (r) {
|
|
reportInnerError(r, e)
|
|
}
|
|
}
|
|
, useCustomTimingMetrics = function(e) {
|
|
if ("undefined" != typeof window) {
|
|
var r = e.fmpElements
|
|
, i = e.ttiElements;
|
|
window.__USE_CUSTOM_TIMING__ = !0,
|
|
window.__CUSTOM_FMP_ELEMENTS__ = r,
|
|
window.__CUSTOM_TTI_ELEMENTS__ = i
|
|
}
|
|
}
|
|
, reportTimingMetrics = function(e) {
|
|
var r = e.id
|
|
, i = e.name
|
|
, a = e.priority
|
|
, s = e.extraData;
|
|
performance.mark(i + r),
|
|
window.dispatchEvent(new CustomEvent("__APM_".concat(i, "_EVENT__"),{
|
|
detail: {
|
|
id: r,
|
|
startTime: performance.now(),
|
|
priority: a || 1,
|
|
extraData: s
|
|
}
|
|
}))
|
|
}
|
|
, tn = new (function() {
|
|
function Client() {
|
|
(0,
|
|
f._)(this, Client),
|
|
(0,
|
|
g._)(this, "sessionId", ""),
|
|
(0,
|
|
g._)(this, "version", ea.i8),
|
|
(0,
|
|
g._)(this, "queue", []),
|
|
(0,
|
|
g._)(this, "apmEmitterSample", {}),
|
|
(0,
|
|
g._)(this, "options", {
|
|
jsError: {
|
|
enableIgnoreDefaultError: !0,
|
|
ignoreErrors: []
|
|
},
|
|
http: {
|
|
enableBatchRequest: !0,
|
|
enableResponseData: !1
|
|
},
|
|
blankScreen: {
|
|
threshold: .95,
|
|
domThreshold: 2,
|
|
maxDepth: 3,
|
|
lines: 5,
|
|
columns: 10,
|
|
autoCheckBS: !1,
|
|
autoCheckBSTime: 3e3,
|
|
screenshot: !0,
|
|
rootElementSelector: "",
|
|
preload: !0
|
|
},
|
|
debug: !0,
|
|
beforeSend: function(e) {
|
|
return e
|
|
}
|
|
}),
|
|
(0,
|
|
g._)(this, "perf", {}),
|
|
(0,
|
|
g._)(this, "performance", {
|
|
useCustomTimingMetrics: useCustomTimingMetrics,
|
|
reportTimingMetrics: reportTimingMetrics
|
|
}),
|
|
(0,
|
|
g._)(this, "isReady", !1),
|
|
(0,
|
|
g._)(this, "getBaseDeviceInfo", function() {
|
|
return ee.meta.xray
|
|
})
|
|
}
|
|
return (0,
|
|
v._)(Client, [{
|
|
key: "init",
|
|
value: function init(e) {
|
|
var r, i = this;
|
|
if (isBrowser()) {
|
|
setBaseInfo(),
|
|
this.perf = createPerfUtils(this),
|
|
this.apmEmitterSample = new eu(null == e ? void 0 : e.sample),
|
|
this.options = merge((0,
|
|
h._)({}, this.options), (0,
|
|
h._)({}, e));
|
|
var a = (null === (r = window) || void 0 === r ? void 0 : r.SDK__SESSION__ID) || (0,
|
|
_.Z)();
|
|
!window.SDK__SESSION__ID && (window.SDK__SESSION__ID = a),
|
|
this.sessionId = a,
|
|
e.env && setProd("production" === e.env),
|
|
ee.init((0,
|
|
h._)({}, this.options)).finally(function() {
|
|
for (i.isReady = !0; i.queue.length; ) {
|
|
var e = i.queue.shift();
|
|
e && i.report(e)
|
|
}
|
|
}),
|
|
window && (window.insight = this),
|
|
this.run()
|
|
}
|
|
}
|
|
}, {
|
|
key: "config",
|
|
value: function config(e, r, i) {
|
|
ee.config(e, r, i)
|
|
}
|
|
}, {
|
|
key: "extend",
|
|
value: function extend(e, r) {
|
|
ee.extend(e, r)
|
|
}
|
|
}, {
|
|
key: "push",
|
|
value: function push(e, r) {
|
|
if ("ApmJSONTracker" === r) {
|
|
var i = e.type
|
|
, a = e.value;
|
|
this.sendApm(a, i);
|
|
return
|
|
}
|
|
this.report(e)
|
|
}
|
|
}, {
|
|
key: "report",
|
|
value: function report(e, r) {
|
|
var i = this;
|
|
return (0,
|
|
p._)(function() {
|
|
var a, s;
|
|
return (0,
|
|
m.Jh)(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
if (i.isReady)
|
|
return [3, 1];
|
|
return i.queue.push(e),
|
|
[3, 3];
|
|
case 1:
|
|
return a = i.options.beforeSend,
|
|
[4, i.apmEmitterSample.getIsReportApm()];
|
|
case 2:
|
|
if (!u.sent())
|
|
return [2];
|
|
(s = a(ee.build(e))) && eo.sender(s, (0,
|
|
h._)({}, i.options), r),
|
|
u.label = 3;
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush(e) {
|
|
this.report(e, {
|
|
isCombo: !1
|
|
})
|
|
}
|
|
}, {
|
|
key: "innerFlush",
|
|
value: function innerFlush(e) {
|
|
try {
|
|
var r = ee.meta.xray;
|
|
e.measurement_data.errorExtra = JSON.stringify(r),
|
|
eo.sender((0,
|
|
h._)({}, r, e), (0,
|
|
h._)({}, this.options), {
|
|
isCombo: !1
|
|
})
|
|
} catch (e) {}
|
|
}
|
|
}, {
|
|
key: "destroy",
|
|
value: function destroy() {
|
|
eo.destroy()
|
|
}
|
|
}, {
|
|
key: "setCustomDimensions",
|
|
value: function setCustomDimensions(e) {
|
|
"function" == typeof e && e(transformObj("custom", ee.extraMeta.dimensions, "delete")).then(function(e) {
|
|
ee.updateExtra("dimensions", e)
|
|
})
|
|
}
|
|
}, {
|
|
key: "updateMeta",
|
|
value: function updateMeta() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
ee.updateXrayMeta(e, (0,
|
|
h._)({}, this.options)),
|
|
ee.updateOldMeta(e, (0,
|
|
h._)({}, this.options))
|
|
}
|
|
}, {
|
|
key: "sendApm",
|
|
value: function sendApm(e, r) {
|
|
var i = {};
|
|
i[r] = {
|
|
type: r,
|
|
value: e
|
|
};
|
|
this.push({
|
|
type: "FrontApmTracker",
|
|
value: i
|
|
})
|
|
}
|
|
}, {
|
|
key: "sendCustomPoint",
|
|
value: function sendCustomPoint(e) {
|
|
this.report(e)
|
|
}
|
|
}, {
|
|
key: "sendCustomError",
|
|
value: function sendCustomError(e, r) {
|
|
var i = parseError(e, r);
|
|
if (i) {
|
|
var a = {
|
|
measurement_name: "infraJsError",
|
|
measurement_data: (0,
|
|
h._)({
|
|
type: "custom"
|
|
}, i)
|
|
};
|
|
this.flush(a)
|
|
}
|
|
}
|
|
}, {
|
|
key: "checkBlankScreenError",
|
|
value: function checkBlankScreenError() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = this.options.blankScreen;
|
|
blankScreenPlugin_checkBlankScreenError(this, (0,
|
|
h._)({}, r, e))
|
|
}
|
|
}, {
|
|
key: "run",
|
|
value: function run() {
|
|
var e = this
|
|
, r = [performance_performancePlugin, monitor_resourceErrorPlugin, resourceTimingNRE, performanceV2, pageViewTracker]
|
|
, i = this.options
|
|
, a = i.jsError
|
|
, s = i.app
|
|
, u = i.Launcher
|
|
, c = i.blankScreen
|
|
, l = c.autoCheckBS
|
|
, d = c.autoCheckBSTime
|
|
, p = c.screenshot
|
|
, f = c.preload;
|
|
a && r.push(jsErrorPlugin, monitor_promiseRejectPlugin),
|
|
s && u ? r.push(vueApmPlugin, launcher_http_request) : r.push(proxyXmlHttp, proxyFetch),
|
|
l && (setTimeout(function() {
|
|
blankScreenPlugin_checkBlankScreenError(e)
|
|
}, d),
|
|
p && f && downloadScreenshotTool()),
|
|
r.forEach(function(r) {
|
|
r(e)
|
|
})
|
|
}
|
|
}, {
|
|
key: "initForQiankunSubApp",
|
|
value: function initForQiankunSubApp(e, r, i, a) {
|
|
vueApmPlugin(this, i, a, e, r, !0),
|
|
launcher_http_request(this, e, r, a)
|
|
}
|
|
}]),
|
|
Client
|
|
}())
|
|
, ti = tn
|
|
},
|
|
83782: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
G: function() {
|
|
return getSelector
|
|
}
|
|
}),
|
|
i(72169),
|
|
i(58486),
|
|
i(85203);
|
|
var getName = function(e) {
|
|
var r = e.nodeName;
|
|
return 1 === e.nodeType ? r.toLowerCase() : r.toUpperCase().replace(/^#/, "")
|
|
}
|
|
, getSelector = function(e, r) {
|
|
var i = "";
|
|
try {
|
|
for (; e && 9 !== e.nodeType; ) {
|
|
var a = e
|
|
, s = a.id ? "#" + a.id : getName(a) + (a.classList && a.classList.value && a.classList.value.trim() && a.classList.value.trim().length ? "." + a.classList.value.trim().replace(/\s+/g, ".") : "");
|
|
if (i.length + s.length > (r || 100) - 1)
|
|
return i || s;
|
|
if (i = i ? s + ">" + i : s,
|
|
a.id)
|
|
break;
|
|
e = a.parentNode
|
|
}
|
|
} catch (e) {}
|
|
return i
|
|
}
|
|
},
|
|
82825: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Fc: function() {
|
|
return growthEvent
|
|
},
|
|
ZP: function() {
|
|
return C
|
|
}
|
|
});
|
|
var a, s, u = i(41622), c = i(70879), l = i(27337), d = i(44501), p = i(377);
|
|
i(36277),
|
|
i(34333),
|
|
i(67930),
|
|
i(58486),
|
|
i(75973),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(55947),
|
|
i(87989),
|
|
i(7608),
|
|
i(86651),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421),
|
|
i(25069),
|
|
i(25037),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(34885);
|
|
var f = "growth_query";
|
|
i(19077),
|
|
i(43648),
|
|
i(99808);
|
|
var v = "growth";
|
|
function setLocalStorage(e, r) {
|
|
var i = "".concat(v, "_").concat(e);
|
|
localStorage.setItem(i, JSON.stringify({
|
|
time: +new Date,
|
|
value: r
|
|
}))
|
|
}
|
|
function delLocalStorage(e) {
|
|
var r = "".concat(v, "_").concat(e);
|
|
localStorage.removeItem(r)
|
|
}
|
|
function getLocalStorage(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2592e5
|
|
, i = "".concat(v, "_").concat(e)
|
|
, a = localStorage.getItem(i);
|
|
if (a)
|
|
try {
|
|
var s = JSON.parse(a)
|
|
, u = s.time
|
|
, c = s.value;
|
|
if (+new Date - u < r)
|
|
return c;
|
|
delLocalStorage(e)
|
|
} catch (e) {}
|
|
return ""
|
|
}
|
|
function parse(e) {
|
|
var r = {};
|
|
return e.slice(e.indexOf("?") + 1).split("&").map(function(e) {
|
|
var i = (0,
|
|
d._)(e.split("="), 2)
|
|
, a = i[0]
|
|
, s = i[1];
|
|
return a ? (r[a] = s,
|
|
e) : {}
|
|
}),
|
|
r
|
|
}
|
|
var g = {}
|
|
, getCache = function() {
|
|
var e = getLocalStorage(f, 1728e5);
|
|
return e && (g = e),
|
|
g
|
|
}
|
|
, setQuery = function(e, r) {
|
|
r && (g[e] = r,
|
|
setLocalStorage(f, g))
|
|
}
|
|
, cache_getQuery = function(e) {
|
|
if (Object.keys(g).length)
|
|
return e ? null !== (r = g[e]) && void 0 !== r ? r : "" : g;
|
|
var r, i, a = getCache();
|
|
return a ? (g = a,
|
|
e ? null !== (i = g[e]) && void 0 !== i ? i : "" : g) : e ? "" : {}
|
|
}
|
|
, h = i(65266)
|
|
, m = {
|
|
edith2: "https://edith.xiaohongshu.com/api/growth/web_portal_monitor",
|
|
default: "https://www.xiaohongshu.com/api/sns/v1/ext/ads/landing_page/monitor"
|
|
};
|
|
var _ = ((a = {})["图片"] = "image",
|
|
a.http = "http",
|
|
a)
|
|
, sendByImage = function(e, r) {
|
|
r.t = new Date().getTime();
|
|
var i = new URLSearchParams(r).toString()
|
|
, a = new Image
|
|
, callback = function() {
|
|
a.onload = null,
|
|
a.onerror = null,
|
|
a.onabort = null,
|
|
a = null
|
|
};
|
|
a.onload = callback,
|
|
a.onerror = callback,
|
|
a.onabort = callback,
|
|
a.src = "".concat(e, "?").concat(i)
|
|
}
|
|
, getCollect = function() {
|
|
var e, r, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, a = arguments.length > 1 ? arguments[1] : void 0, s = a.sendType, u = a.testUrl;
|
|
if (u = "",
|
|
s === _["图片"] && sendByImage(u || m.default, i),
|
|
s === _.http) {
|
|
;e = u || m.edith2,
|
|
r = i,
|
|
h.dJ.get(e, {
|
|
params: r
|
|
})
|
|
}
|
|
}
|
|
, y = {
|
|
gt_ki: "growth_keywordid",
|
|
gt_ui: "growth_userid",
|
|
gt_pi: "growth_planid",
|
|
gt_uni: "growth_unitid",
|
|
gt_ci: "growth_creativeid",
|
|
gt_mt: "growth_matchtype",
|
|
gt_dt: "growth_dongtai",
|
|
gt_of: "growth_ocpc",
|
|
gt_cpi: "growth_crowdid",
|
|
gt_kw: "growth_kw",
|
|
utm_source: "utm_source",
|
|
utm_campaign: "utm_campaign",
|
|
bd_vid: "growth_bd_vid",
|
|
sg_vid: "growth_sg_vid",
|
|
qhclickid: "growth_qh_id",
|
|
clickid: "growth_sm_id",
|
|
qz_gdt: "qz_gdt",
|
|
gdt_vid: "gdt_vid",
|
|
callback: "growth_ks_id"
|
|
}
|
|
, w = {
|
|
baidu_sem: "growth_bd_vid",
|
|
baidu_feeds: "growth_bd_vid",
|
|
sogou_sem: "growth_sg_vid",
|
|
"360_sem": "growth_qh_id",
|
|
shenma_sem: "growth_sm_id",
|
|
tencent_gdt: "growth_sm_id",
|
|
kuaishou: "growth_ks_id",
|
|
uc_huichuan: "uctrackid"
|
|
}
|
|
, E = !0
|
|
, S = {}
|
|
, T = {}
|
|
, growthEvent = function(e) {
|
|
var r, i, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if (!E)
|
|
return {
|
|
status: 1,
|
|
msg: "非法来源"
|
|
};
|
|
var s = window.location
|
|
, u = s.origin
|
|
, l = s.pathname
|
|
, d = parse(s.search)
|
|
, p = cache_getQuery();
|
|
Object.keys(p).forEach(function(e) {
|
|
!(e in d) && (d[e] = p[e])
|
|
}),
|
|
T = (0,
|
|
c._)({}, T, a);
|
|
var f = new URLSearchParams(d).toString();
|
|
return getCollect({
|
|
url: "".concat(u + l, "?").concat(f),
|
|
referer: null !== (i = document.referrer) && void 0 !== i ? i : null === (r = window.location) || void 0 === r ? void 0 : r.href,
|
|
action: e,
|
|
pasteboard: "",
|
|
extra: JSON.stringify(T)
|
|
}, S),
|
|
{
|
|
status: 0,
|
|
msg: "发送成功"
|
|
}
|
|
};
|
|
var b = (s = (0,
|
|
u._)(function() {
|
|
var e;
|
|
return (0,
|
|
p.Jh)(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
return r.trys.push([0, 2, , 3]),
|
|
[4, h.dJ.get("https://pages.xiaohongshu.com/data/sem_sdk", {
|
|
withCredentials: !1
|
|
})];
|
|
case 1:
|
|
return y = (e = r.sent()).allowKey,
|
|
e.clickId,
|
|
[3, 3];
|
|
case 2:
|
|
return console.log(r.sent()),
|
|
[3, 3];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function getConfigFunc() {
|
|
return s.apply(this, arguments)
|
|
}
|
|
)
|
|
, k = 0
|
|
, handleRouteChange = function(e) {
|
|
getCache(),
|
|
Object.keys(e).forEach(function(r) {
|
|
var i, a = e[r];
|
|
if (Array.isArray(a) && (a = null !== (i = (a = a.filter(function(e) {
|
|
return !/\{[^\\}]+\}/g.test(e || "")
|
|
}))[0]) && void 0 !== i ? i : ""),
|
|
/\{[^\\}]+\}/g.test(a || "") && (a = ""),
|
|
!!a) {
|
|
var s = !1;
|
|
Object.entries(y).map(function(e) {
|
|
var i = (0,
|
|
d._)(e, 2)
|
|
, u = i[0]
|
|
, c = i[1];
|
|
return u === r && (s = !0,
|
|
setQuery(u, a),
|
|
setQuery(c, a)),
|
|
""
|
|
}),
|
|
!s && setQuery(r, a)
|
|
}
|
|
}),
|
|
k += 1,
|
|
growthEvent("pv_".concat(k))
|
|
}
|
|
, C = {
|
|
name: "ocpcPlugin",
|
|
installed: !1,
|
|
install: function(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
|
|
return (0,
|
|
u._)(function() {
|
|
var a, s, u, d, f, v;
|
|
return (0,
|
|
p.Jh)(this, function(p) {
|
|
return !this.installed && r.isBrowser && e.router ? (this.installed = !0,
|
|
s = void 0 === (a = i.sourceName) ? "" : a,
|
|
d = void 0 === (u = i.sourceValue) ? [] : u,
|
|
v = void 0 === (f = i.sendType) ? _["图片"] : f,
|
|
S = (0,
|
|
l._)((0,
|
|
c._)({}, i), {
|
|
sendType: v,
|
|
sourceName: s
|
|
}),
|
|
b(),
|
|
e.router.beforeResolve(function(e) {
|
|
s ? 0 === d.length && s in e.query ? handleRouteChange(e.query) : 0 !== d.length && d.indexOf(e.query[s]) > -1 ? handleRouteChange(e.query) : E = !1 : handleRouteChange(e.query)
|
|
}),
|
|
[2]) : [2]
|
|
})
|
|
}).apply(this)
|
|
}
|
|
}
|
|
},
|
|
88028: function(e, r, i) {
|
|
"use strict";
|
|
i(86651),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.isRiskCanvas = void 0;
|
|
r.isRiskCanvas = function() {
|
|
var e = []
|
|
, r = document.createElement("canvas").getContext("webgl")
|
|
, i = null == r ? void 0 : r.getExtension("WEBGL_debug_renderer_info");
|
|
return i && r && ("Brian Paul" === r.getParameter(i.UNMASKED_VENDOR_WEBGL) && e.push("WebGLVendor"),
|
|
"Mesa OffScreen" === r.getParameter(i.UNMASKED_RENDERER_WEBGL) && e.push("WebGLRendor")),
|
|
e
|
|
}
|
|
},
|
|
32394: function(e, r, i) {
|
|
"use strict";
|
|
var a, s = i(41622), u = i(36102);
|
|
i(86651),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.isRiskDevice = void 0;
|
|
var c = (a = s._(function() {
|
|
var e, r;
|
|
return u._(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
if (e = [],
|
|
0 === navigator.deviceMemory && e.push("MemoryInfo"),
|
|
"probably" !== document.createElement("video").canPlayType('video/mp4; codecs="avc1.42E01E"') && e.push("VideoCodecs"),
|
|
"probably" !== document.createElement("audio").canPlayType("audio/mpeg;") && e.push("AudioCodecs"),
|
|
!(r = navigator.mediaDevices))
|
|
return [3, 2];
|
|
return [4, navigator.mediaDevices.enumerateDevices()];
|
|
case 1:
|
|
r = 0 === i.sent().length,
|
|
i.label = 2;
|
|
case 2:
|
|
return r && e.push("MediaDevices"),
|
|
[2, e]
|
|
}
|
|
})
|
|
}),
|
|
function isRiskDevice() {
|
|
return a.apply(this, arguments)
|
|
}
|
|
);
|
|
r.isRiskDevice = c
|
|
},
|
|
81694: function(e, r, i) {
|
|
"use strict";
|
|
var a, s = i(41622), u = i(36102);
|
|
i(86651),
|
|
i(1154),
|
|
i(80013),
|
|
i(97357),
|
|
i(34333),
|
|
i(55947),
|
|
i(34885),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.isRiskWindow = void 0;
|
|
var c = (a = s._(function() {
|
|
var e, r, i;
|
|
return u._(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return i = [],
|
|
window.navigator.webdriver && i.push("ChromeWebdriver"),
|
|
["_Selenium_IDE_Recorder", "callSelenium", "_selenium", "__webdriver_script_fn", "__driver_evaluate", "__webdriver_evaluate", "__selenium_evaluate", "__fxdriver_evaluate", "__driver_unwrapped", "__webdriver_unwrapped", "__selenium_unwrapped", "__fxdriver_unwrapped", "__webdriver_script_func"].some(function(e) {
|
|
return window.hasOwnProperty(e) || document.hasOwnProperty(e)
|
|
}) && i.push("SeleniumDriver"),
|
|
(null === (e = window.external) || void 0 === e ? void 0 : e.toString) && window.external.toString().indexOf("Sequentum") > -1 && i.push("SequentumProperties"),
|
|
(void 0 !== window.callPhantom || void 0 !== window._phantom || void 0 !== window.phantom) && i.push("PhantomProperties"),
|
|
void 0 !== window.__nightmare && i.push("NightmareProperties"),
|
|
[4, null === (r = navigator.permissions) || void 0 === r ? void 0 : r.query({
|
|
name: "notifications"
|
|
})];
|
|
case 1:
|
|
return "prompt" === a.sent().state && "denied" === Notification.permission && i.push("PermissionConfilct"),
|
|
0 === navigator.plugins.length && i.push("PluginLength"),
|
|
!(navigator.plugins instanceof PluginArray) && i.push("PluginPrototype"),
|
|
(0 === navigator.languages.length || !navigator.languages) && i.push("Languages"),
|
|
[2, i]
|
|
}
|
|
})
|
|
}),
|
|
function isRiskWindow() {
|
|
return a.apply(this, arguments)
|
|
}
|
|
);
|
|
r.isRiskWindow = c
|
|
},
|
|
16658: function(e, r, i) {
|
|
"use strict";
|
|
i(25069),
|
|
i(58486),
|
|
i(86651),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.isHeadlessUA = void 0;
|
|
r.isHeadlessUA = function() {
|
|
var e = []
|
|
, r = navigator.userAgent;
|
|
return /Headless/.test(r) && e.push("HeadlessUA"),
|
|
/PhantomJS/.test(r) && e.push("PhantomUA"),
|
|
e
|
|
}
|
|
},
|
|
90405: function(e, r, i) {
|
|
"use strict";
|
|
var a, s, u, c = i(41622), l = i(75649), d = i(36102);
|
|
i(86651),
|
|
i(36277),
|
|
i(34333),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(7608);
|
|
var p = i(88028)
|
|
, f = i(32394)
|
|
, v = i(81694)
|
|
, g = [i(16658).isHeadlessUA, v.isRiskWindow, p.isRiskCanvas, f.isRiskDevice];
|
|
(a = u || (u = {})).pass = "pass",
|
|
a.risk = "risk",
|
|
a.unknown = "unknown";
|
|
var h = null;
|
|
var m = (s = c._(function() {
|
|
var e, r, i;
|
|
return d._(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
if (h)
|
|
return [2, h];
|
|
a.label = 1;
|
|
case 1:
|
|
return a.trys.push([1, 3, , 4]),
|
|
[4, Promise.all(g.map(function(e) {
|
|
return e()
|
|
}))];
|
|
case 2:
|
|
return e = a.sent(),
|
|
r = [],
|
|
e.forEach(function(e) {
|
|
r.push.apply(r, l._(e))
|
|
}),
|
|
[2, h = {
|
|
pass: 0 === r.length ? u.pass : u.risk,
|
|
reason: JSON.stringify(r)
|
|
}];
|
|
case 3:
|
|
return i = a.sent(),
|
|
[2, h = {
|
|
pass: u.unknown,
|
|
reason: i.message
|
|
}];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function detectHeadless() {
|
|
return s.apply(this, arguments)
|
|
}
|
|
);
|
|
r.default = m
|
|
},
|
|
85456: function(e, r, i) {
|
|
"use strict";
|
|
i.r(r),
|
|
i.d(r, {
|
|
post: function() {
|
|
return B
|
|
},
|
|
del: function() {
|
|
return L
|
|
},
|
|
axios: function() {
|
|
return s()
|
|
},
|
|
interceptors: function() {
|
|
return H
|
|
},
|
|
patch: function() {
|
|
return D
|
|
},
|
|
fork: function() {
|
|
return j
|
|
},
|
|
default: function() {
|
|
return G
|
|
},
|
|
buildURL: function() {
|
|
return q
|
|
},
|
|
put: function() {
|
|
return x
|
|
},
|
|
head: function() {
|
|
return M
|
|
},
|
|
configure: function() {
|
|
return U
|
|
},
|
|
makeUri: function() {
|
|
return V
|
|
},
|
|
get: function() {
|
|
return N
|
|
},
|
|
getUri: function() {
|
|
return F
|
|
},
|
|
instance: function() {
|
|
return W
|
|
}
|
|
});
|
|
var a = i(86246)
|
|
, s = i.n(a)
|
|
, u = i(70879)
|
|
, c = i(27337)
|
|
, l = i(75649)
|
|
, d = i(31547);
|
|
i(87989),
|
|
i(41593),
|
|
i(34333),
|
|
i(55947),
|
|
i(36277),
|
|
i(58051),
|
|
i(34885),
|
|
i(1154),
|
|
i(80013),
|
|
i(97357),
|
|
i(42876),
|
|
i(33933),
|
|
i(87535),
|
|
i(75204);
|
|
var p = i(39160)
|
|
, f = i.n(p)
|
|
, v = i(50142)
|
|
, g = i(63877);
|
|
i(25069),
|
|
i(58486),
|
|
i(72169);
|
|
var h = {
|
|
baseURL: void 0,
|
|
apiList: void 0
|
|
}
|
|
, m = /(^https?|^mesh):/;
|
|
function isFullUri(e) {
|
|
return /^\/\//.test(e) || m.test(e)
|
|
}
|
|
function isRelativeUri(e) {
|
|
return "/" === e.charAt(0)
|
|
}
|
|
function checkBaseURL(e) {
|
|
if ("string" != typeof e)
|
|
throw Error("[Http Exception] baseURL must be string, but now: ".concat(e));
|
|
if ("/" === e.charAt(e.length - 1))
|
|
throw Error('[Http Exception] baseURL should not end with "/"')
|
|
}
|
|
function checkApiItem(e, r) {
|
|
var i = "[Http Exception] ".concat(r);
|
|
if ("string" != typeof e)
|
|
throw Error("".concat(i, " should be a string"));
|
|
if (!isFullUri(e) && "/" !== e.charAt(0))
|
|
throw Error("".concat(i, ' should be start with "/"'))
|
|
}
|
|
function checkApiList(e) {
|
|
if ((void 0 === e ? "undefined" : (0,
|
|
d._)(e)) !== "object")
|
|
throw Error("[Http Exception] apiList must be a map, but now: ".concat(void 0 === e ? "undefined" : (0,
|
|
d._)(e)));
|
|
for (var r in e)
|
|
e.hasOwnProperty(r) && checkApiItem(e[r], r)
|
|
}
|
|
function configure(e) {
|
|
var r = e.baseURL
|
|
, i = e.apiList;
|
|
r && (checkBaseURL(r),
|
|
void 0 !== h.baseURL && (0,
|
|
g.ZK)("[Http Warning] baseURL defined more than once"),
|
|
h.baseURL = r),
|
|
i && (checkApiList(i),
|
|
void 0 !== h.apiList && (0,
|
|
g.ZK)("[Http Warning] apiList defined more than once"),
|
|
h.apiList = i)
|
|
}
|
|
function concatBaseURL(e, r) {
|
|
return r.baseURL ? "".concat(r.baseURL).concat(e) : void 0 === h.baseURL ? e : h.baseURL + e
|
|
}
|
|
function concatPath(e, r) {
|
|
return "".concat(e, "/").concat(r)
|
|
}
|
|
var _ = /\$?\{([^}]+)\}/g;
|
|
function replacePlaceholder(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}
|
|
, a = r && "function" == typeof r.get && "function" == typeof r.has;
|
|
return e.replace(_, function(s, u) {
|
|
return i && i[u] ? i[u] : r && r[u] ? r[u] : a && r.has(u) ? r.get(u) : ((0,
|
|
g.vU)("[Http Exception] could not found placeholder ".concat(u, " in ").concat(e, " from payload")),
|
|
"undefined")
|
|
})
|
|
}
|
|
function handleUriCreation(e, r) {
|
|
var i = isFullUri(e) ? e : concatBaseURL(e, r);
|
|
return i = r.resourceParams ? replacePlaceholder(i, r.resourceParams) : replacePlaceholder(i, r.data, r.params),
|
|
r.resourceId && (i = concatPath(i, r.resourceId)),
|
|
r.resourceAction && (i = concatPath(i, r.resourceAction)),
|
|
i
|
|
}
|
|
function makeUri(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if (isFullUri(e) || isRelativeUri(e) || void 0 === h.apiList)
|
|
return handleUriCreation(e, r);
|
|
if (h.apiList[e])
|
|
return handleUriCreation(h.apiList[e], r);
|
|
throw Error("[Http Exception] ".concat(e, " is not specified on api-list.config"))
|
|
}
|
|
function getMatchedPath(e) {
|
|
return void 0 !== h.apiList && h.apiList[e] ? h.apiList[e] : e
|
|
}
|
|
var y = i(17177)
|
|
, w = i(46490)
|
|
, E = i(90251);
|
|
i(86651);
|
|
var S = function() {
|
|
function Interceptor() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
|
|
(0,
|
|
w._)(this, Interceptor),
|
|
this.queue = e
|
|
}
|
|
return (0,
|
|
E._)(Interceptor, [{
|
|
key: "use",
|
|
value: function use(e, r) {
|
|
this.queue.push({
|
|
fulfilled: e,
|
|
rejected: r
|
|
})
|
|
}
|
|
}]),
|
|
Interceptor
|
|
}();
|
|
function createInterceptor() {
|
|
return new S
|
|
}
|
|
function forkInterceptor(e) {
|
|
return new S((0,
|
|
l._)(e.queue))
|
|
}
|
|
var T = i(36757);
|
|
function merge() {
|
|
for (var e = arguments.length, r = Array(e), i = 0; i < e; i++)
|
|
r[i] = arguments[i];
|
|
var a = {};
|
|
function assignValue(e, r) {
|
|
"object" === (0,
|
|
d._)(a[r]) && (void 0 === e ? "undefined" : (0,
|
|
d._)(e)) === "object" ? a[r] = merge(a[r], e) : a[r] = e
|
|
}
|
|
return r.forEach(function(e) {
|
|
if (void 0 !== e) {
|
|
if ((void 0 === e ? "undefined" : (0,
|
|
d._)(e)) !== "object" || Array.isArray(e))
|
|
throw Error("[Http Exception] config must be a plain object");
|
|
for (var r in e)
|
|
e.hasOwnProperty(r) && assignValue(e[r], r)
|
|
}
|
|
}),
|
|
a
|
|
}
|
|
function isFormData(e) {
|
|
return "undefined" != typeof FormData && e instanceof FormData
|
|
}
|
|
function isNumber(e) {
|
|
return "number" == typeof e
|
|
}
|
|
function needParse(e) {
|
|
return (void 0 === e ? "undefined" : (0,
|
|
d._)(e)) === "object" && !isFormData(e)
|
|
}
|
|
function transformRequestConfig(e) {
|
|
var r = e.transform;
|
|
return r && (needParse(e.data) && (e.data = (0,
|
|
T.cJ)(e.data, r)),
|
|
needParse(e.params) && (e.params = (0,
|
|
T.cJ)(e.params, r))),
|
|
e
|
|
}
|
|
function transformResponseData(e, r) {
|
|
var i = r.transform;
|
|
return r.transform ? (0,
|
|
T.Lg)(e, i) : e
|
|
}
|
|
function mapStatusCodeFromLegacyResponse(e) {
|
|
return e && (-101 === e.result || -101 === e.code) ? 401 : 200
|
|
}
|
|
function apiListAdapter(e) {
|
|
return Object.keys(e).reduce(function(r, i) {
|
|
var a = e[i];
|
|
return (void 0 === a ? "undefined" : (0,
|
|
d._)(a)) === "object" ? ((0,
|
|
g.ZK)("[Http Warning] The value of 'API_LIST.".concat(i, "' should not be object, please change to string")),
|
|
r[i] = a.url) : r[i] = a,
|
|
r
|
|
}, {})
|
|
}
|
|
i(75973),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057);
|
|
function generateTraceId() {
|
|
for (var e = "", r = 0; r < 16; r++)
|
|
e += "abcdef0123456789".charAt(Math.floor(16 * Math.random()));
|
|
return e
|
|
}
|
|
var b = "x-b3-traceid"
|
|
, k = "x-xray-traceid"
|
|
, C = ["www.xiaohongshu.com", "logan.devops.xiaohongshu.com", "dragon.devops.xiaohongshu.com"]
|
|
, P = ["www.beta.xiaohongshu.com/api/sec/v1/scripting", "www.beta.xiaohongshu.com/api/sec/v1/shield/webprofile", "www.xiaohongshu.com/api/sec/v1/sbtsource"]
|
|
, A = {
|
|
traceHosts: C,
|
|
traceIgnores: P
|
|
};
|
|
function factory_configure(e) {
|
|
if ((e.baseURL || e.apiList) && configure({
|
|
baseURL: e.baseURL,
|
|
apiList: apiListAdapter(e.apiList)
|
|
}),
|
|
e.defaults) {
|
|
var r = e.defaults
|
|
, i = r.traceHosts
|
|
, a = r.traceIgnores;
|
|
A = (0,
|
|
c._)((0,
|
|
u._)({}, e.defaults), {
|
|
traceHosts: "function" == typeof i ? i(C) : (0,
|
|
l._)(C).concat((0,
|
|
l._)(i || [])),
|
|
traceIgnores: "function" == typeof a ? a(P) : (0,
|
|
l._)(P).concat((0,
|
|
l._)(a || []))
|
|
})
|
|
}
|
|
return e.logger && (0,
|
|
g._c)(e.logger),
|
|
A
|
|
}
|
|
function isConfigWithFormData(e) {
|
|
return (void 0 === e ? "undefined" : (0,
|
|
d._)(e)) === "object" && isFormData(e.data)
|
|
}
|
|
function makeSendingConfig(e) {
|
|
var r = merge(A, e);
|
|
return isConfigWithFormData(r) && !isNumber(e.timeout) && isNumber(A.uploadTimeout) && (r.timeout = A.uploadTimeout),
|
|
r.uploadTimeout && delete r.uploadTimeout,
|
|
r
|
|
}
|
|
function handleResData(e, r) {
|
|
return !1 === r ? e : "function" == typeof r ? r(e) : e.data
|
|
}
|
|
function processSend(e, r, i) {
|
|
for (var a = r, s = null, u = (0,
|
|
l._)(i.request.queue).concat([{
|
|
fulfilled: function(e) {
|
|
return e !== a && (0,
|
|
g.ZK)("[Http Warning] config reference has been changed during request interceptor"),
|
|
a = transformRequestConfig(makeSendingConfig(e))
|
|
}
|
|
}], (0,
|
|
l._)(i.dispatch.queue), [{
|
|
fulfilled: function(r) {
|
|
r !== a && (0,
|
|
g.ZK)("[Http Warning] config reference has been changed during dispatch interceptor");
|
|
var i = e(r);
|
|
if (!i || !i.then)
|
|
throw Error("[Http Exception] send must return a promise object");
|
|
return i
|
|
}
|
|
}], (0,
|
|
l._)(i.spam.queue), [{
|
|
name: "responseStatusCodeHandler",
|
|
fulfilled: function(e) {
|
|
if (200 === e.status && (e.status = mapStatusCodeFromLegacyResponse(e.data)),
|
|
"[object Null]" === Object.prototype.toString.call(e.data) && (e.data = {}),
|
|
"[object Object]" === Object.prototype.toString.call(e.data) && (e.data[y.Eg] = (0,
|
|
y.qH)(e.data),
|
|
e.data[y.Wz] = (0,
|
|
y.qG)(e.data)),
|
|
s = e,
|
|
e.status < 200 || e.status >= 300)
|
|
throw new y.v$(e.status,e.data);
|
|
return e.data
|
|
},
|
|
rejected: function(e) {
|
|
var r;
|
|
throw new y.th(null !== (r = e.code) && void 0 !== r ? r : "ENetworkError",e.message)
|
|
}
|
|
}], (0,
|
|
l._)(i.response.queue), [{
|
|
fulfilled: function(e, r) {
|
|
if (void 0 !== e.success && !1 == !!e.success)
|
|
throw new y.al(r.status,e);
|
|
return handleResData(transformResponseData(e, a), a.extractData)
|
|
}
|
|
}], (0,
|
|
l._)(i.result.queue)), c = Promise.resolve(a), wrapFulfilled = function(e) {
|
|
return function(r) {
|
|
return e ? e(r, s, a) : r
|
|
}
|
|
}, wrapRejected = function(e) {
|
|
return function(r) {
|
|
if (e)
|
|
return e(r, s, a);
|
|
throw r
|
|
}
|
|
}; u.length; ) {
|
|
var d = u.shift();
|
|
c = c.then(wrapFulfilled(d.fulfilled), wrapRejected(d.rejected))
|
|
}
|
|
return c
|
|
}
|
|
var R = ["POST", "PUT", "PATCH"]
|
|
, I = ["GET", "DELETE", "HEAD"]
|
|
, sendFactory = function(e, r, i, a, s) {
|
|
return function(u, c, l) {
|
|
if (!u)
|
|
return Promise.reject(Error("[Http Exception] apiKey is empty"));
|
|
if (a ? (p = l || {}).data = c : (p = c || {},
|
|
(void 0 === l ? "undefined" : (0,
|
|
d._)(l)) === "object" && Object.assign(p, l)),
|
|
p.method = e,
|
|
p.url = makeUri(u, p),
|
|
p.matchedPath = getMatchedPath(u),
|
|
!p.headers && (p.headers = {}),
|
|
!p.headers[b]) {
|
|
if (0 === p.url.indexOf("/") && 0 !== p.url.indexOf("//"))
|
|
p.headers[b] = generateTraceId();
|
|
else {
|
|
var p, f = A.traceHosts, g = A.traceIgnores;
|
|
f.some(function(e) {
|
|
return p.url.includes(e)
|
|
}) && !g.some(function(e) {
|
|
return p.url.includes(e)
|
|
}) && (p.headers[b] = generateTraceId())
|
|
}
|
|
}
|
|
if ("undefined" != typeof window && !1 !== p.useXRayHeader && (p.useXRayHeader || A.useXRayHeader)) {
|
|
var h = !1;
|
|
try {
|
|
h = p.headers[k] || s.defaults.headers.common[k] || s.defaults.headers[e][k]
|
|
} catch (e) {}
|
|
if (!h) {
|
|
if (0 === p.url.indexOf("/") && 0 !== p.url.indexOf("//"))
|
|
p.headers[k] = (0,
|
|
v.traceId)();
|
|
else {
|
|
var m = A.traceHosts
|
|
, _ = A.traceIgnores;
|
|
m.some(function(e) {
|
|
return p.url.includes(e)
|
|
}) && !_.some(function(e) {
|
|
return p.url.includes(e)
|
|
}) && (p.headers[k] = (0,
|
|
v.traceId)())
|
|
}
|
|
}
|
|
}
|
|
return processSend(r, p, i)
|
|
}
|
|
};
|
|
function factory(e, r, i) {
|
|
var a = {}
|
|
, u = {
|
|
request: i ? forkInterceptor(i.interceptors.request) : createInterceptor(),
|
|
dispatch: i ? forkInterceptor(i.interceptors.dispatch) : createInterceptor(),
|
|
spam: i ? forkInterceptor(i.interceptors.spam) : createInterceptor(),
|
|
response: i ? forkInterceptor(i.interceptors.response) : createInterceptor(),
|
|
result: i ? forkInterceptor(i.interceptors.result) : createInterceptor()
|
|
};
|
|
return R.forEach(function(i) {
|
|
a[i.toLowerCase()] = sendFactory(i, e, u, !0, r)
|
|
}),
|
|
I.forEach(function(i) {
|
|
a[i.toLowerCase()] = sendFactory(i, e, u, !1, r)
|
|
}),
|
|
a.del = a.delete,
|
|
a.configure = factory_configure,
|
|
a.interceptors = u,
|
|
a.makeUri = makeUri,
|
|
a.getUri = s().getUri,
|
|
a.buildURL = f(),
|
|
a.instance = r,
|
|
a.fork = function() {
|
|
var e = s().create();
|
|
return factory(e.request.bind(e), e, a)
|
|
}
|
|
,
|
|
a
|
|
}
|
|
s().defaults.validateStatus = void 0;
|
|
var O = factory(s().request.bind(s()), s())
|
|
, N = O.get
|
|
, L = O.del
|
|
, M = O.head
|
|
, B = O.post
|
|
, x = O.put
|
|
, D = O.patch
|
|
, F = O.getUri
|
|
, V = O.makeUri
|
|
, H = O.interceptors
|
|
, U = O.configure
|
|
, q = O.buildURL
|
|
, j = O.fork
|
|
, W = O.instance
|
|
, G = O
|
|
},
|
|
17177: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Eg: function() {
|
|
return v
|
|
},
|
|
Wz: function() {
|
|
return h
|
|
},
|
|
al: function() {
|
|
return y
|
|
},
|
|
qG: function() {
|
|
return getErrorMsgFromData
|
|
},
|
|
qH: function() {
|
|
return getErrorCodeFromData
|
|
},
|
|
th: function() {
|
|
return m
|
|
},
|
|
v$: function() {
|
|
return _
|
|
}
|
|
});
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(90251)
|
|
, c = i(27292)
|
|
, l = i(75649)
|
|
, d = i(30961);
|
|
i(87989),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(41593);
|
|
var p = i(63877)
|
|
, f = ["result", "error", "error_code"]
|
|
, v = "code"
|
|
, g = ["error_message", "message", "error_msg"]
|
|
, h = "msg";
|
|
function warnWhenLegacyFound(e, r) {
|
|
(0,
|
|
p.ZK)("[Http Warning] 'response.body.".concat(e, "' was deprecated, please ask the backend to change it to '").concat(r, "'"))
|
|
}
|
|
function getErrorCodeFromData() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = e[v];
|
|
return void 0 === r && f.forEach(function(i) {
|
|
e[i] && (r = e[i],
|
|
warnWhenLegacyFound(i, v))
|
|
}),
|
|
void 0 === r && (r = "N/A"),
|
|
r
|
|
}
|
|
function getErrorMsgFromData() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = e[h];
|
|
return void 0 === r && g.forEach(function(i) {
|
|
e[i] && (r = e[i],
|
|
warnWhenLegacyFound(i, h))
|
|
}),
|
|
void 0 === r && (r = "Error"),
|
|
r
|
|
}
|
|
var m = function(e) {
|
|
function HTTPClientError(e, r) {
|
|
var i;
|
|
return (0,
|
|
s._)(this, HTTPClientError),
|
|
(i = (0,
|
|
a._)(this, HTTPClientError, [r])).name = "HTTPClientError",
|
|
i.code = e,
|
|
i
|
|
}
|
|
return (0,
|
|
c._)(HTTPClientError, e),
|
|
HTTPClientError
|
|
}((0,
|
|
d._)(Error))
|
|
, _ = function(e) {
|
|
function HTTPServerError(e, r) {
|
|
var i;
|
|
return (0,
|
|
s._)(this, HTTPServerError),
|
|
(i = (0,
|
|
a._)(this, HTTPServerError, [null == r ? void 0 : r.msg])).name = "HTTPServerError",
|
|
i.code = null == r ? void 0 : r.code,
|
|
i.status = e,
|
|
i.data = r,
|
|
i
|
|
}
|
|
return (0,
|
|
c._)(HTTPServerError, e),
|
|
(0,
|
|
u._)(HTTPServerError, [{
|
|
key: "statusCode",
|
|
get: function get() {
|
|
return (0,
|
|
p.ZK)("[Http Warning] 'statusCode' was deprecated, please use 'status'"),
|
|
this.status
|
|
}
|
|
}, {
|
|
key: "detail",
|
|
get: function get() {
|
|
return (0,
|
|
p.ZK)("[Http Warning] 'detail' was deprecated, please use 'data'"),
|
|
this.data
|
|
}
|
|
}]),
|
|
HTTPServerError
|
|
}((0,
|
|
d._)(Error))
|
|
, y = function(e) {
|
|
function HTTPBizError() {
|
|
for (var e, r = arguments.length, i = Array(r), u = 0; u < r; u++)
|
|
i[u] = arguments[u];
|
|
return (0,
|
|
s._)(this, HTTPBizError),
|
|
(e = (0,
|
|
a._)(this, HTTPBizError, (0,
|
|
l._)(i))).name = "HTTPBizError",
|
|
e
|
|
}
|
|
return (0,
|
|
c._)(HTTPBizError, e),
|
|
HTTPBizError
|
|
}(_)
|
|
},
|
|
63877: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
ZK: function() {
|
|
return a.warn
|
|
},
|
|
_c: function() {
|
|
return configDefaultTransport
|
|
},
|
|
vU: function() {
|
|
return error
|
|
}
|
|
});
|
|
var a = i(14166)
|
|
, s = {};
|
|
function configDefaultTransport(e) {
|
|
s = e
|
|
}
|
|
function error(e, r, i, u) {
|
|
(0,
|
|
a.error)(e, r, i, u || s)
|
|
}
|
|
},
|
|
44840: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
W: function() {
|
|
return d
|
|
}
|
|
});
|
|
var a = i(70879);
|
|
i(34333),
|
|
i(55947),
|
|
i(34885),
|
|
i(87989),
|
|
i(25069),
|
|
i(58486),
|
|
i(80156),
|
|
i(50721),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(72169);
|
|
var s = i(5681)
|
|
, u = i.n(s);
|
|
let c = "/fe_api/";
|
|
function encryptToken(e, r, i="X") {
|
|
let {url: a=""} = e
|
|
, {params: s, paramsSerializer: l} = e;
|
|
return (a = a.slice(a.indexOf(c), a.length),
|
|
"X" === i) ? `${i}${u()(r(a, s, l) + "WSUDD")}` : ""
|
|
}
|
|
var l = i(14166);
|
|
function getStorageItem(e) {
|
|
var r = parseInt(window.sessionStorage.getItem(e) || 0, 10) + 1;
|
|
return window.sessionStorage.setItem(e, r.toString()),
|
|
(0,
|
|
l.info)(e, {
|
|
arg1: r
|
|
}, e),
|
|
r < 5
|
|
}
|
|
function spamNeedReload(e) {
|
|
var r = !1;
|
|
return !window.spamTimer && (window.spamTimer = window.setTimeout(function() {
|
|
window.sessionStorage.removeItem("spam_font_counter"),
|
|
window.sessionStorage.removeItem("spam_sign_counter")
|
|
}, 36e5)),
|
|
("3" === e || "1" === e) && (r = getStorageItem("spam_sign_counter")),
|
|
"4" === e && (r = getStorageItem("spam_font_counter")),
|
|
r
|
|
}
|
|
var d = {
|
|
name: "crawler-spam",
|
|
installed: !1,
|
|
install: function(e, r) {
|
|
if (!this.installed && !!r.isBrowser)
|
|
r.http.interceptors.dispatch.use(function(e) {
|
|
e.url.indexOf(c) > -1 && (e.headers["X-Sign"] = encryptToken(e, r.http.buildURL));
|
|
var i, s = e.url, u = void 0 === s ? "" : s;
|
|
if ((null === (i = window) || void 0 === i ? void 0 : i.shouldSign) && window.shouldSign(u)) {
|
|
var l = u;
|
|
if (0 === u.indexOf("//") && (u = "".concat(window.location.protocol).concat(u)),
|
|
/^https?:/.test(u))
|
|
try {
|
|
var d = new URL(u);
|
|
l = d.href.replace(d.origin, "")
|
|
} catch (e) {
|
|
l = u
|
|
}
|
|
var p = e.params
|
|
, f = e.paramsSerializer
|
|
, v = r.http.buildURL(l, p, f)
|
|
, g = window.sign(v, e.data) || {}
|
|
, h = window.f && "function" == typeof window.f ? window.f() : {};
|
|
e.headers = (0,
|
|
a._)({}, e.headers, g, h)
|
|
}
|
|
return e
|
|
}),
|
|
r.http.interceptors.spam.use(function(e) {
|
|
var r = (null == e ? void 0 : e.headers) && e.headers["x-kong-sign"];
|
|
return 406 === e.status ? r && "2" === r ? (alert("系统时间错误"),
|
|
(0,
|
|
l.info)("systemTimeError", void 0, "system_time_error")) : spamNeedReload(r) && window.location.reload() : r && spamNeedReload(r) && window.location.reload(),
|
|
e
|
|
}),
|
|
this.installed = !0
|
|
}
|
|
};
|
|
i(36277)
|
|
},
|
|
57517: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Ni: function() {
|
|
return C
|
|
},
|
|
jP: function() {
|
|
return H
|
|
},
|
|
mD: function() {
|
|
return A
|
|
},
|
|
$T: function() {
|
|
return useABTest
|
|
}
|
|
});
|
|
var a, s, u, c, l, d, p, f = i(46490), v = i(90251), g = i(51606), h = i(78607), m = i(41622), _ = i(377);
|
|
i(36277),
|
|
i(34333),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(86651),
|
|
i(42876),
|
|
i(33933),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421),
|
|
i(97357),
|
|
i(87535),
|
|
i(75204),
|
|
i(64961),
|
|
i(12996),
|
|
i(59564),
|
|
i(75973);
|
|
var y = i(88867)
|
|
, w = i(51401)
|
|
, E = i(85456)
|
|
, getExpFlags = function(e, r, i) {
|
|
var a = (0,
|
|
y.getPublicUrl)(r, i)
|
|
, s = 5e3;
|
|
return "prod" === r && (s = "undefined" != typeof window ? 3e3 : 500),
|
|
E.default.post(a, {
|
|
racing_info: e,
|
|
source: "web",
|
|
app: ""
|
|
}, {
|
|
transform: !1,
|
|
timeout: s
|
|
})
|
|
};
|
|
var S = (a = (0,
|
|
m._)(function(e, r) {
|
|
return (0,
|
|
_.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
var a;
|
|
return [4, Promise.all(e.map((a = (0,
|
|
m._)(function(e) {
|
|
var i, a, s;
|
|
return (0,
|
|
_.Jh)(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
if (i = e.id,
|
|
"WEB_ID" === e.type && r && (i = r),
|
|
"web_g" === e.domain && "WEB_ID" === e.type) {
|
|
var u;
|
|
i = null !== (a = w.Z.get("abRequestId")) && void 0 !== a ? a : (u = r,
|
|
w.Z.set("abRequestId ", u, {
|
|
domain: "xiaohongshu.com",
|
|
expires: 365
|
|
}),
|
|
u)
|
|
}
|
|
if ("function" != typeof e.id)
|
|
return [3, 4];
|
|
s.label = 1;
|
|
case 1:
|
|
return s.trys.push([1, 3, , 4]),
|
|
[4, e.id()];
|
|
case 2:
|
|
return i = s.sent(),
|
|
[3, 4];
|
|
case 3:
|
|
return s.sent(),
|
|
i = "",
|
|
[3, 4];
|
|
case 4:
|
|
return ["0", ""].includes(null != i ? i : "") && (e.id = i),
|
|
[2, {
|
|
domain: e.domain,
|
|
type: e.type,
|
|
id: i
|
|
}]
|
|
}
|
|
})
|
|
}),
|
|
function(e) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
)))];
|
|
case 1:
|
|
return [2, i.sent().filter(function(e) {
|
|
var r;
|
|
return !["", "0"].includes(null !== (r = e.id) && void 0 !== r ? r : "")
|
|
}).map(function(e) {
|
|
return {
|
|
open_id: "OPEN_ID" === e.type ? e.id : void 0,
|
|
user_id: "USER_ID" === e.type ? e.id : void 0,
|
|
web_id: "WEB_ID" === e.type ? e.id : void 0,
|
|
request_id: "REQUEST_ID" === e.type ? e.id : void 0,
|
|
domain: e.domain
|
|
}
|
|
})]
|
|
}
|
|
})
|
|
}),
|
|
function getRacingInfo(e, r) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
);
|
|
var T = (s = (0,
|
|
m._)(function(e, r, i, a) {
|
|
var s, u;
|
|
return (0,
|
|
_.Jh)(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
s = e,
|
|
(null == r || "" === r) && (s = e.filter(function(e) {
|
|
return "WEB_ID" !== e.type
|
|
})),
|
|
u.label = 1;
|
|
case 1:
|
|
return u.trys.push([1, 4, , 5]),
|
|
[4, S(s, r)];
|
|
case 2:
|
|
return [4, getExpFlags(u.sent(), i, a)];
|
|
case 3:
|
|
return [2, u.sent()];
|
|
case 4:
|
|
return u.sent(),
|
|
console.warn("get racing error"),
|
|
[2, void 0];
|
|
case 5:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function combineLauncherRequest(e, r, i, a) {
|
|
return s.apply(this, arguments)
|
|
}
|
|
)
|
|
, getDefaultValue = function() {
|
|
return {
|
|
value: {},
|
|
rejected: {},
|
|
id: {
|
|
webId: "",
|
|
userId: ""
|
|
},
|
|
status: y.ABTestStatus.Pending,
|
|
diversions: {},
|
|
source: {},
|
|
csrReqStatus: y.RequestStatus.noReq,
|
|
ssrReqStatus: y.RequestStatus.noReq,
|
|
clientCost: 0,
|
|
serverCost: 0
|
|
}
|
|
};
|
|
function initDefaultABTestData() {
|
|
var e = P.getAbFlagReference();
|
|
return e.value = (0,
|
|
h.qj)(getDefaultValue()),
|
|
e
|
|
}
|
|
var b = (u = (0,
|
|
m._)(function(e, r, i, a) {
|
|
var s, u, c;
|
|
return (0,
|
|
_.Jh)(this, function(l) {
|
|
switch (l.label) {
|
|
case 0:
|
|
return l.trys.push([0, 2, , 3]),
|
|
[4, T(r, e.id.webId, i, a)];
|
|
case 1:
|
|
return (c = null !== (u = null == (s = l.sent()) ? void 0 : s.diversion_results) && void 0 !== u ? u : []).length > 0 && r.forEach(function(r) {
|
|
var i = r.name
|
|
, a = r.domain
|
|
, s = r.type
|
|
, u = r.id
|
|
, l = c.find(function(e) {
|
|
return e.diversion_key === a
|
|
});
|
|
if (e.id[s] = u,
|
|
l) {
|
|
var d = l.flag_map
|
|
, p = l.diversions;
|
|
e.value[i] = d,
|
|
e.diversions[i] = p,
|
|
e.source[i] = y.ABDataSource.Api
|
|
} else
|
|
e.rejected[i] = "no data"
|
|
}),
|
|
e.status = y.ABTestStatus.Finish,
|
|
[3, 3];
|
|
case 2:
|
|
return console.error(l.sent()),
|
|
[3, 3];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function handleRequestABFlags(e, r, i, a) {
|
|
return u.apply(this, arguments)
|
|
}
|
|
);
|
|
var k = (c = (0,
|
|
m._)(function(e, r) {
|
|
var i, a, s, u, c, l, d, p, f, v;
|
|
return (0,
|
|
_.Jh)(this, function(g) {
|
|
switch (g.label) {
|
|
case 0:
|
|
if (a = e.requests.map(function(e) {
|
|
return e.name
|
|
}),
|
|
s = Object.keys((null === (i = r.value) || void 0 === i ? void 0 : i.value) || {}),
|
|
0 === (u = a.filter(function(e) {
|
|
return !s.includes(e)
|
|
})).length)
|
|
return [2, r];
|
|
if (!e.retry)
|
|
return [3, 2];
|
|
return l = Date.now(),
|
|
d = e.requests.filter(function(e) {
|
|
return u.includes(e.name)
|
|
}),
|
|
[4, b(r.value, d, e.env)];
|
|
case 1:
|
|
if (g.sent(),
|
|
p = Date.now(),
|
|
r.value.clientCost = p - l,
|
|
s = Object.keys(null !== (f = null === (c = r.value) || void 0 === c ? void 0 : c.value) && void 0 !== f ? f : {}),
|
|
0 === (u = u.filter(function(e) {
|
|
return !s.includes(e)
|
|
})).length)
|
|
return r.value.csrReqStatus = y.RequestStatus.success,
|
|
[2, r];
|
|
r.value.csrReqStatus = y.RequestStatus.failed,
|
|
g.label = 2;
|
|
case 2:
|
|
if (v = (0,
|
|
y.getXHSABTestFlag)(),
|
|
!e.disableCache && v)
|
|
return u.forEach(function(i) {
|
|
var a, s, u;
|
|
r.value.value[i] = null !== (u = null === (a = v.value) || void 0 === a ? void 0 : a[i]) && void 0 !== u ? u : null === (s = e.requests.find(function(e) {
|
|
return e.name === i
|
|
})) || void 0 === s ? void 0 : s.defaultFlags,
|
|
r.value.source[i] = y.ABDataSource.DefaultValue
|
|
}),
|
|
[2, r];
|
|
return u.forEach(function(i) {
|
|
var a;
|
|
r.value.value[i] = null === (a = e.requests.find(function(e) {
|
|
return e.name === i
|
|
})) || void 0 === a ? void 0 : a.defaultFlags,
|
|
r.value.source[i] = y.ABDataSource.Cache
|
|
}),
|
|
[2, r]
|
|
}
|
|
})
|
|
}),
|
|
function clientDowngrade(e, r) {
|
|
return c.apply(this, arguments)
|
|
}
|
|
)
|
|
, saveFlags = function(e, r) {
|
|
!e.disableCache && (0,
|
|
y.setXHSABTestFlag)(r.value)
|
|
};
|
|
var C = (l = (0,
|
|
m._)(function(e) {
|
|
var r, i = arguments;
|
|
return (0,
|
|
_.Jh)(this, function(a) {
|
|
return r = i.length > 1 && void 0 !== i[1] ? i[1] : 3e3,
|
|
[2, new Promise(function(i) {
|
|
var a = P.getAbFlagReference()
|
|
, getResolveValue = function() {
|
|
return {
|
|
status: a.value.status,
|
|
flags: e ? a.value.value[e] : a.value.value,
|
|
id: a.value.id
|
|
}
|
|
}
|
|
, s = getResolveValue();
|
|
if (a.value.status !== y.ABTestStatus.Pending) {
|
|
i(s);
|
|
return
|
|
}
|
|
var u = null
|
|
, c = (0,
|
|
h.YP)(function() {
|
|
return a.value.status
|
|
}, function(e) {
|
|
e === y.ABTestStatus.Finish && (c(),
|
|
null != u && clearTimeout(u),
|
|
i(getResolveValue()))
|
|
}, {
|
|
immediate: !0
|
|
});
|
|
u = setTimeout(function() {
|
|
c(),
|
|
a.value.status = y.ABTestStatus.Failed,
|
|
i(getResolveValue())
|
|
}, r)
|
|
}
|
|
)]
|
|
})
|
|
}),
|
|
function abTestResolve(e) {
|
|
return l.apply(this, arguments)
|
|
}
|
|
)
|
|
, handleABFlagsFromServer = function(e, r) {
|
|
var i = getDefaultValue()
|
|
, a = P.getAbFlagReference();
|
|
return e.forEach(function(e) {
|
|
var a = e.name
|
|
, s = r[e.domain];
|
|
s ? (i.value[a] = s,
|
|
i.diversions[a] = [],
|
|
i.source[a] = y.ABDataSource.Api) : i.rejected[a] = "no data"
|
|
}),
|
|
i.id.webId = r.$webId,
|
|
i.id.userId = r.$userId,
|
|
i.status = y.ABTestStatus.Finish,
|
|
i.serverCost = +r.$flagResponseTime,
|
|
i.ssrReqStatus = y.RequestStatus.success,
|
|
a.value = i,
|
|
i
|
|
}
|
|
, P = new (function() {
|
|
function VueInstance() {
|
|
(0,
|
|
f._)(this, VueInstance),
|
|
(0,
|
|
g._)(this, "app", void 0)
|
|
}
|
|
return (0,
|
|
v._)(VueInstance, [{
|
|
key: "initAbFlagReference",
|
|
value: function initAbFlagReference() {
|
|
this.app.config.abTestFlags = (0,
|
|
h.iH)(getDefaultValue())
|
|
}
|
|
}, {
|
|
key: "setInstance",
|
|
value: function setInstance(e) {
|
|
this.app = e,
|
|
this.initAbFlagReference()
|
|
}
|
|
}, {
|
|
key: "getInstance",
|
|
value: function getInstance() {
|
|
return this.app
|
|
}
|
|
}, {
|
|
key: "getAbFlagReference",
|
|
value: function getAbFlagReference() {
|
|
return this.app.config.abTestFlags
|
|
}
|
|
}]),
|
|
VueInstance
|
|
}());
|
|
function provideABConfigToApp_provideABConfigToApp(e, r) {
|
|
initDefaultABTestData(),
|
|
e.config.abTestResolve = function(r) {
|
|
return new Promise(function(i, a) {
|
|
if (e.config.abTestFlags.value.status === y.ABTestStatus.Finish) {
|
|
i(e.config.abTestFlags.value);
|
|
return
|
|
}
|
|
var s = null
|
|
, u = (0,
|
|
h.YP)(function() {
|
|
return e.config.abTestFlags.value.status
|
|
}, function(r) {
|
|
r === y.ABTestStatus.Finish && (u(),
|
|
null != s && clearTimeout(s),
|
|
i(e.config.abTestFlags.value))
|
|
}, {
|
|
immediate: !0
|
|
});
|
|
s = setTimeout(function() {
|
|
u(),
|
|
a(Error("timeout"))
|
|
}, r)
|
|
}
|
|
)
|
|
}
|
|
,
|
|
null == r.reportUserMapping && (r.reportUserMapping = !0),
|
|
e.provide(y.ABTEST_CFG_KEY, {
|
|
rootInstance: e,
|
|
config: r
|
|
})
|
|
}
|
|
i(41593);
|
|
var A = {
|
|
name: "ABPlugin",
|
|
install: function(e, r, i) {
|
|
P.setInstance(e.app),
|
|
provideABConfigToApp_provideABConfigToApp(e.app, i)
|
|
}
|
|
}
|
|
, useABTest = function(e, r) {
|
|
var i, a = (0,
|
|
h.f3)("abTest"), s = (0,
|
|
h.Fl)(function() {
|
|
var r, i, s, u;
|
|
return (null == a ? void 0 : null === (r = a.value) || void 0 === r ? void 0 : r.value) == null ? {} : null == e ? null !== (s = null == a ? void 0 : a.value.value) && void 0 !== s ? s : {} : null !== (u = null == a ? void 0 : null === (i = a.value.value) || void 0 === i ? void 0 : i[e]) && void 0 !== u ? u : {}
|
|
}), u = (0,
|
|
h.Fl)(function() {
|
|
var e;
|
|
return null == a ? void 0 : null === (e = a.value) || void 0 === e ? void 0 : e.status
|
|
}), c = (0,
|
|
h.qj)({
|
|
flags: s,
|
|
id: null == a ? void 0 : null === (i = a.value) || void 0 === i ? void 0 : i.id,
|
|
status: u
|
|
});
|
|
return (0,
|
|
h.YP)(u, function(e) {
|
|
if (e === y.ABTestStatus.Finish) {
|
|
var i;
|
|
null == r || null === (i = r.onFlagFetched) || void 0 === i || i.call(r, c)
|
|
}
|
|
}, {
|
|
immediate: !0
|
|
}),
|
|
c
|
|
};
|
|
i(7608),
|
|
i(19077);
|
|
var R = i(75649)
|
|
, I = i(80503)
|
|
, O = "1.1.2"
|
|
, trackABFlags = function(e) {
|
|
var r, i = [];
|
|
Object.keys(e.value).forEach(function(r) {
|
|
var a;
|
|
i.push.apply(i, (0,
|
|
R._)(Object.keys(null !== (a = e.value[r]) && void 0 !== a ? a : {})))
|
|
});
|
|
var a = {};
|
|
Object.keys(null !== (r = e.value) && void 0 !== r ? r : {}).forEach(function(r) {
|
|
var i;
|
|
Object.keys(null !== (i = e.value[r]) && void 0 !== i ? i : {}).forEach(function(i) {
|
|
a[i] = e.value[r][i]
|
|
})
|
|
}),
|
|
I.Z.sendCustomPoint({
|
|
measurement_name: "AbTestPluginMetrics",
|
|
measurement_data: {
|
|
abTestData: JSON.stringify(a),
|
|
diversions: JSON.stringify(e.diversions),
|
|
source: JSON.stringify(e.source),
|
|
version: O,
|
|
rejected: JSON.stringify(e.rejected),
|
|
ids: JSON.stringify(e.id),
|
|
csrReqStatus: e.csrReqStatus,
|
|
ssrReqStatus: e.ssrReqStatus,
|
|
flags: i.join(","),
|
|
serverCost: e.serverCost,
|
|
clientCost: e.clientCost
|
|
}
|
|
})
|
|
};
|
|
i(69032),
|
|
i(93354);
|
|
var getABTestDirective = function(e) {
|
|
var stop = function() {};
|
|
return {
|
|
created: function(r, i) {
|
|
var a, s = Object.keys(null !== (a = i.modifiers) && void 0 !== a ? a : {})[0], u = i.value, c = i.arg, l = Array.isArray(u), d = r.style.display;
|
|
if (null == s) {
|
|
console.error("必须填写修饰符");
|
|
return
|
|
}
|
|
var handle = function() {
|
|
var i, a, p, f, v, g, h = Object.keys(null !== (a = null === (i = e.value) || void 0 === i ? void 0 : i.value) && void 0 !== a ? a : {}), m = !1;
|
|
(m = null == c ? h.every(function(r) {
|
|
var i, a, c, d;
|
|
return l ? !u.includes(null === (a = e.value.value) || void 0 === a ? void 0 : null === (i = a[r]) || void 0 === i ? void 0 : i[s]) : (null === (d = e.value.value) || void 0 === d ? void 0 : null === (c = d[r]) || void 0 === c ? void 0 : c[s]) !== u
|
|
}) : l ? !u.includes(null === (f = e.value.value) || void 0 === f ? void 0 : null === (p = f[c]) || void 0 === p ? void 0 : p[s]) : (null === (g = e.value.value) || void 0 === g ? void 0 : null === (v = g[c]) || void 0 === v ? void 0 : v[s]) !== u) ? r.style.display = "none" : r.style.display = null != d ? d : ""
|
|
};
|
|
handle(),
|
|
stop = (0,
|
|
h.YP)(e.value.value, function() {
|
|
handle()
|
|
}, {
|
|
flush: "sync"
|
|
})
|
|
},
|
|
beforeUnmount: function() {
|
|
stop()
|
|
}
|
|
}
|
|
};
|
|
i(87989),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057);
|
|
var N = i(73656)
|
|
, L = (null == N ? void 0 : null === (p = N.env) || void 0 === p ? void 0 : p.REGION) === "sg" ? "rednote.life" : "xiaohongshu.com"
|
|
, M = {
|
|
beta: "https://edith.beta.".concat(L, "/api/sns/web/racing_report"),
|
|
prod: "https://edith.".concat(L, "/api/sns/web/racing_report"),
|
|
sit: "https://edith.sit.".concat(L, "/api/sns/web/racing_report")
|
|
}
|
|
, B = "NEW_XHS_ABTEST_REPORT_KEY";
|
|
var x = (d = (0,
|
|
m._)(function(e, r) {
|
|
var i, a, s, u;
|
|
return (0,
|
|
_.Jh)(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
var c;
|
|
localStorage.removeItem("XHS_ABTEST_REPORT_KEY"),
|
|
i = localStorage.getItem(B),
|
|
a = e.racing_info.reduce(function(e, r) {
|
|
return e + (r.web_id || r.user_id || r.request_id)
|
|
}, "");
|
|
try {
|
|
if (i && JSON.parse(i)[a] === (0,
|
|
y.getDate)())
|
|
return [2]
|
|
} catch (e) {
|
|
console.error("report record parse error")
|
|
}
|
|
c = (0,
|
|
m._)(function() {
|
|
return (0,
|
|
_.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, E.default.post(M[r], e)];
|
|
case 1:
|
|
return i.sent(),
|
|
localStorage.setItem(B, JSON.stringify((0,
|
|
g._)({}, a, (0,
|
|
y.getDate)()))),
|
|
[2]
|
|
}
|
|
})
|
|
}),
|
|
s = function report() {
|
|
return c.apply(this, arguments)
|
|
}
|
|
,
|
|
u.label = 1;
|
|
case 1:
|
|
return u.trys.push([1, 3, , 5]),
|
|
[4, s()];
|
|
case 2:
|
|
case 4:
|
|
return u.sent(),
|
|
[3, 5];
|
|
case 3:
|
|
return u.sent(),
|
|
[4, s()];
|
|
case 5:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function userReport(e, r) {
|
|
return d.apply(this, arguments)
|
|
}
|
|
)
|
|
, D = ["data-ab-flags"]
|
|
, F = "__XHS_AB_FLAGS__"
|
|
, V = (0,
|
|
h.aZ)({
|
|
__name: "ABWrapper",
|
|
setup: function(e) {
|
|
var r, i, a = (0,
|
|
h.f3)(y.ABTEST_CFG_KEY), s = initDefaultABTestData(), u = (0,
|
|
h.iH)("");
|
|
var c = (r = (0,
|
|
m._)(function(e) {
|
|
var r, i, u, c;
|
|
return (0,
|
|
_.Jh)(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if ((r = s.value).id.webId = e,
|
|
["", "0"].includes(e))
|
|
return [2, r];
|
|
c.label = 1;
|
|
case 1:
|
|
return c.trys.push([1, 3, , 4]),
|
|
i = Date.now(),
|
|
[4, b(r, a.config.requests, a.config.env, a.config.useMesh)];
|
|
case 2:
|
|
return c.sent(),
|
|
u = Date.now(),
|
|
r.serverCost = u - i,
|
|
r.ssrReqStatus = y.RequestStatus.success,
|
|
[3, 4];
|
|
case 3:
|
|
return c.sent(),
|
|
r.ssrReqStatus = y.RequestStatus.failed,
|
|
[3, 4];
|
|
case 4:
|
|
return [2, r]
|
|
}
|
|
})
|
|
}),
|
|
function getRacingData(e) {
|
|
return r.apply(this, arguments)
|
|
}
|
|
);
|
|
(0,
|
|
h.vl)((0,
|
|
m._)(function() {
|
|
var e, r, i, l;
|
|
return (0,
|
|
_.Jh)(this, function(d) {
|
|
switch (d.label) {
|
|
case 0:
|
|
if (r = (e = (0,
|
|
h.Zq)()).abFlags)
|
|
return [3, 2];
|
|
return [4, c((0,
|
|
y.getWebIdFromCookie)((null === (l = e.headers) || void 0 === l ? void 0 : l.cookie) || ""))];
|
|
case 1:
|
|
return i = d.sent(),
|
|
[3, 3];
|
|
case 2:
|
|
i = handleABFlagsFromServer(a.config.requests, r),
|
|
d.label = 3;
|
|
case 3:
|
|
return (null == a ? void 0 : a.rootInstance) != null && (a.rootInstance.config.abTestFlags.value = i),
|
|
s.value = i,
|
|
u.value = JSON.stringify(i),
|
|
[2, i]
|
|
}
|
|
})
|
|
}));
|
|
var l = (i = (0,
|
|
m._)(function() {
|
|
var e, r, i, u;
|
|
return (0,
|
|
_.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
try {
|
|
r = document.getElementById(F),
|
|
e = JSON.parse(r.getAttribute("data-ab-flags")),
|
|
(0,
|
|
h.bv)(function() {
|
|
r.remove()
|
|
})
|
|
} catch (e) {}
|
|
e && (s.value = e),
|
|
"" === s.value.id.webId && (s.value.id.webId = (0,
|
|
y.getWebIdFromCookie)(document.cookie)),
|
|
i.label = 1;
|
|
case 1:
|
|
return i.trys.push([1, 3, , 4]),
|
|
[4, k(a.config, s)];
|
|
case 2:
|
|
return i.sent(),
|
|
[3, 4];
|
|
case 3:
|
|
return i.sent(),
|
|
console.warn("clientDowngrade failed"),
|
|
[3, 4];
|
|
case 4:
|
|
if (s.value.status = y.ABTestStatus.Finish,
|
|
saveFlags(a.config, s),
|
|
trackABFlags(s.value),
|
|
!a.config.reportUserMapping)
|
|
return [3, 6];
|
|
return u = {},
|
|
[4, S(a.config.requests, s.value.id.webId)];
|
|
case 5:
|
|
x.apply(void 0, [(u.racing_info = i.sent(),
|
|
u.source = "web",
|
|
u.app = a.config.artifactName,
|
|
u), a.config.env]),
|
|
i.label = 6;
|
|
case 6:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function browserHandle() {
|
|
return i.apply(this, arguments)
|
|
}
|
|
);
|
|
return l(),
|
|
(0,
|
|
h.JJ)("abTest", a.rootInstance.config.abTestFlags),
|
|
a.rootInstance && (a.rootInstance.directive("ab", getABTestDirective(s)),
|
|
a.rootInstance.config.abTestFlags.value = s.value),
|
|
function(e, r) {
|
|
return (0,
|
|
h.wg)(),
|
|
(0,
|
|
h.iD)(h.HY, null, [(0,
|
|
h.WI)(e.$slots, "default"), (0,
|
|
h._)("div", {
|
|
id: F,
|
|
style: {
|
|
display: "none",
|
|
width: "0",
|
|
height: "0",
|
|
position: "absolute"
|
|
},
|
|
"data-ab-flags": u.value
|
|
}, null, 8, D)], 64)
|
|
}
|
|
}
|
|
})
|
|
, H = V
|
|
},
|
|
32399: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
ZP: function() {
|
|
return el
|
|
}
|
|
}),
|
|
i(58051);
|
|
var a, s, u, c = i(63522), l = i(51401);
|
|
i(36277),
|
|
i(34333),
|
|
i(74719),
|
|
i(13396),
|
|
i(91313),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(41593),
|
|
i(86651),
|
|
i(80156),
|
|
i(50721),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(1154),
|
|
i(80013),
|
|
i(97357),
|
|
i(87535),
|
|
i(75204),
|
|
i(19077),
|
|
i(75973),
|
|
i(7608),
|
|
i(87989),
|
|
i(9557),
|
|
i(55947),
|
|
i(34885),
|
|
i(21608),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673);
|
|
var d = "webId"
|
|
, p = "websectiga"
|
|
, f = "sec_poison_id"
|
|
, v = "xsecappid"
|
|
, g = "loadts"
|
|
, h = ["/t.xiaohongshu.com", "/c.xiaohongshu.com", "spltest.xiaohongshu.com", "t2.xiaohongshu.com", "t2-test.xiaohongshu.com", "lng.xiaohongshu.com", "apm-track.xiaohongshu.com", "apm-track-test.xiaohongshu.com", "fse.xiaohongshu.com", "fse.devops.xiaohongshu.com", "fesentry.xiaohongshu.com", "spider-tracker.xiaohongshu.com"]
|
|
, m = ["/privacy", "/privacy/teenager"]
|
|
, _ = "/api/sec/v1/scripting"
|
|
, y = "/api/sec/v1/sbtsource"
|
|
, w = "sdt_source_storage_key"
|
|
, E = "last_tiga_update_time"
|
|
, S = "sign_lack_info"
|
|
, T = ["fe_api/burdock/v2/user/keyInfo", "fe_api/burdock/v2/shield/profile", "fe_api/burdock/v2/shield/captcha", "fe_api/burdock/v2/shield/registerCanvas", "api/sec/v1/shield/webprofile", "api/sec/v1/shield/captcha", /fe_api\/burdock\/v2\/note\/[0-9a-zA-Z]+\/tags/, /fe_api\/burdock\/v2\/note\/[0-9a-zA-Z]+\/image_stickers/, /fe_api\/burdock\/v2\/note\/[0-9a-zA-Z]+\/other\/notes/, /fe_api\/burdock\/v2\/note\/[0-9a-zA-Z]+\/related/, "/fe_api/burdock/v2/note/post", "/api/sns/web", "/api/redcaptcha", "/api/store/jpd/main"]
|
|
, b = {
|
|
300011: "检测到帐号异常,请稍后重试",
|
|
300012: "网络连接异常,请检查网络设置后重试",
|
|
300013: "访问频次异常,请勿频繁操作",
|
|
300015: "浏览器异常,请尝试更换浏览器后重试"
|
|
}
|
|
, k = []
|
|
, C = "4.1.0";
|
|
i(43648),
|
|
i(72169),
|
|
i(58486);
|
|
for (var P = [], A = "ZmserbBoHQtNP+wOcza/LpngG8yJq42KWYj0DSfdikx3VT16IlUAFM97hECvuRX5", R = 0, I = A.length; R < I; ++R)
|
|
P[R] = A[R];
|
|
var encrypt_crc32 = function crc32(e) {
|
|
for (var r, i = [], a = 0; a < 256; a++) {
|
|
r = a;
|
|
for (var s = 0; s < 8; s++)
|
|
r = 1 & r ? 0xedb88320 ^ r >>> 1 : r >>> 1;
|
|
i[a] = r
|
|
}
|
|
for (var u = -1, c = 0; c < e.length; c++)
|
|
u = u >>> 8 ^ i[255 & (u ^ e.charCodeAt(c))];
|
|
return (-1 ^ u) >>> 0
|
|
};
|
|
function tripletToBase64(e) {
|
|
return P[e >> 18 & 63] + P[e >> 12 & 63] + P[e >> 6 & 63] + P[63 & e]
|
|
}
|
|
function encodeChunk(e, r, i) {
|
|
for (var a, s = [], u = r; u < i; u += 3)
|
|
a = (e[u] << 16 & 0xff0000) + (e[u + 1] << 8 & 65280) + (255 & e[u + 2]),
|
|
s.push(tripletToBase64(a));
|
|
return s.join("")
|
|
}
|
|
function encodeUtf8(e) {
|
|
for (var r = encodeURIComponent(e), i = [], a = 0; a < r.length; a++) {
|
|
var s = r.charAt(a);
|
|
if ("%" === s) {
|
|
var u = parseInt(r.charAt(a + 1) + r.charAt(a + 2), 16);
|
|
i.push(u),
|
|
a += 2
|
|
} else
|
|
i.push(s.charCodeAt(0))
|
|
}
|
|
return i
|
|
}
|
|
function b64Encode(e) {
|
|
for (var r, i = e.length, a = i % 3, s = [], u = 0, c = i - a; u < c; u += 16383)
|
|
s.push(encodeChunk(e, u, u + 16383 > c ? c : u + 16383));
|
|
return 1 === a ? (r = e[i - 1],
|
|
s.push(P[r >> 2] + P[r << 4 & 63] + "==")) : 2 === a && (r = (e[i - 2] << 8) + e[i - 1],
|
|
s.push(P[r >> 10] + P[r >> 4 & 63] + P[r << 2 & 63] + "=")),
|
|
s.join("")
|
|
}
|
|
var O = function(e) {
|
|
for (var r, i, a = 256, s = []; a--; s[a] = r >>> 0)
|
|
for (i = 8,
|
|
r = a; i--; )
|
|
r = 1 & r ? r >>> 1 ^ 0xedb88320 : r >>> 1;
|
|
return function(e) {
|
|
if ("string" == typeof e) {
|
|
for (var r = 0, i = -1; r < e.length; ++r)
|
|
i = s[255 & i ^ e.charCodeAt(r)] ^ i >>> 8;
|
|
return -1 ^ i ^ 0xedb88320
|
|
}
|
|
for (var r = 0, i = -1; r < e.length; ++r)
|
|
i = s[255 & i ^ e[r]] ^ i >>> 8;
|
|
return -1 ^ i ^ 0xedb88320
|
|
}
|
|
}()
|
|
, N = function(e) {
|
|
function n(i) {
|
|
if (r[i])
|
|
return r[i].exports;
|
|
var a = r[i] = {
|
|
i: i,
|
|
l: !1,
|
|
exports: {}
|
|
};
|
|
return e[i].call(a.exports, a, a.exports, n),
|
|
a.l = !0,
|
|
a.exports
|
|
}
|
|
var r = {};
|
|
return n.m = e,
|
|
n.c = r,
|
|
n.i = function(e) {
|
|
return e
|
|
}
|
|
,
|
|
n.d = function(e, r, i) {
|
|
n.o(e, r) || Object.defineProperty(e, r, {
|
|
configurable: !1,
|
|
enumerable: !0,
|
|
get: i
|
|
})
|
|
}
|
|
,
|
|
n.n = function(e) {
|
|
var r = e && e.__esModule ? function t() {
|
|
return e.default
|
|
}
|
|
: function() {
|
|
return e
|
|
}
|
|
;
|
|
return n.d(r, "a", r),
|
|
r
|
|
}
|
|
,
|
|
n.o = function(e, r) {
|
|
return Object.prototype.hasOwnProperty.call(e, r)
|
|
}
|
|
,
|
|
n.p = "",
|
|
n(n.s = 4)
|
|
}([function(e, r) {
|
|
var i = {
|
|
utf8: {
|
|
stringToBytes: function stringToBytes(e) {
|
|
return i.bin.stringToBytes(unescape(encodeURIComponent(e)))
|
|
},
|
|
bytesToString: function bytesToString(e) {
|
|
return decodeURIComponent(escape(i.bin.bytesToString(e)))
|
|
}
|
|
},
|
|
bin: {
|
|
stringToBytes: function stringToBytes(e) {
|
|
for (var r = [], i = 0; i < e.length; i++)
|
|
r.push(255 & e.charCodeAt(i));
|
|
return r
|
|
},
|
|
bytesToString: function bytesToString(e) {
|
|
for (var r = [], i = 0; i < e.length; i++)
|
|
r.push(String.fromCharCode(e[i]));
|
|
return r.join("")
|
|
}
|
|
}
|
|
};
|
|
e.exports = i
|
|
}
|
|
, function(e, r, i) {
|
|
var a, s, u, c, l;
|
|
a = i(2),
|
|
s = i(0).utf8,
|
|
u = i(3),
|
|
c = i(0).bin,
|
|
(l = function i1(e, r) {
|
|
e.constructor == String ? e = r && "binary" === r.encoding ? c.stringToBytes(e) : s.stringToBytes(e) : u(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || (e = e.toString());
|
|
for (var i = a.bytesToWords(e), d = 8 * e.length, p = 0x67452301, f = -0x10325477, v = -0x67452302, g = 0x10325476, h = 0; h < i.length; h++)
|
|
i[h] = 0xff00ff & (i[h] << 8 | i[h] >>> 24) | 0xff00ff00 & (i[h] << 24 | i[h] >>> 8);
|
|
i[d >>> 5] |= 128 << d % 32,
|
|
i[14 + (d + 64 >>> 9 << 4)] = d;
|
|
for (var m = l._ff, _ = l._gg, y = l._hh, w = l._ii, h = 0; h < i.length; h += 16) {
|
|
var E = p
|
|
, S = f
|
|
, T = v
|
|
, b = g;
|
|
p = m(p, f, v, g, i[h + 0], 7, -0x28955b88),
|
|
g = m(g, p, f, v, i[h + 1], 12, -0x173848aa),
|
|
v = m(v, g, p, f, i[h + 2], 17, 0x242070db),
|
|
f = m(f, v, g, p, i[h + 3], 22, -0x3e423112),
|
|
p = m(p, f, v, g, i[h + 4], 7, -0xa83f051),
|
|
g = m(g, p, f, v, i[h + 5], 12, 0x4787c62a),
|
|
v = m(v, g, p, f, i[h + 6], 17, -0x57cfb9ed),
|
|
f = m(f, v, g, p, i[h + 7], 22, -0x2b96aff),
|
|
p = m(p, f, v, g, i[h + 8], 7, 0x698098d8),
|
|
g = m(g, p, f, v, i[h + 9], 12, -0x74bb0851),
|
|
v = m(v, g, p, f, i[h + 10], 17, -42063),
|
|
f = m(f, v, g, p, i[h + 11], 22, -0x76a32842),
|
|
p = m(p, f, v, g, i[h + 12], 7, 0x6b901122),
|
|
g = m(g, p, f, v, i[h + 13], 12, -0x2678e6d),
|
|
v = m(v, g, p, f, i[h + 14], 17, -0x5986bc72),
|
|
f = m(f, v, g, p, i[h + 15], 22, 0x49b40821),
|
|
p = _(p, f, v, g, i[h + 1], 5, -0x9e1da9e),
|
|
g = _(g, p, f, v, i[h + 6], 9, -0x3fbf4cc0),
|
|
v = _(v, g, p, f, i[h + 11], 14, 0x265e5a51),
|
|
f = _(f, v, g, p, i[h + 0], 20, -0x16493856),
|
|
p = _(p, f, v, g, i[h + 5], 5, -0x29d0efa3),
|
|
g = _(g, p, f, v, i[h + 10], 9, 0x2441453),
|
|
v = _(v, g, p, f, i[h + 15], 14, -0x275e197f),
|
|
f = _(f, v, g, p, i[h + 4], 20, -0x182c0438),
|
|
p = _(p, f, v, g, i[h + 9], 5, 0x21e1cde6),
|
|
g = _(g, p, f, v, i[h + 14], 9, -0x3cc8f82a),
|
|
v = _(v, g, p, f, i[h + 3], 14, -0xb2af279),
|
|
f = _(f, v, g, p, i[h + 8], 20, 0x455a14ed),
|
|
p = _(p, f, v, g, i[h + 13], 5, -0x561c16fb),
|
|
g = _(g, p, f, v, i[h + 2], 9, -0x3105c08),
|
|
v = _(v, g, p, f, i[h + 7], 14, 0x676f02d9),
|
|
f = _(f, v, g, p, i[h + 12], 20, -0x72d5b376),
|
|
p = y(p, f, v, g, i[h + 5], 4, -378558),
|
|
g = y(g, p, f, v, i[h + 8], 11, -0x788e097f),
|
|
v = y(v, g, p, f, i[h + 11], 16, 0x6d9d6122),
|
|
f = y(f, v, g, p, i[h + 14], 23, -0x21ac7f4),
|
|
p = y(p, f, v, g, i[h + 1], 4, -0x5b4115bc),
|
|
g = y(g, p, f, v, i[h + 4], 11, 0x4bdecfa9),
|
|
v = y(v, g, p, f, i[h + 7], 16, -0x944b4a0),
|
|
f = y(f, v, g, p, i[h + 10], 23, -0x41404390),
|
|
p = y(p, f, v, g, i[h + 13], 4, 0x289b7ec6),
|
|
g = y(g, p, f, v, i[h + 0], 11, -0x155ed806),
|
|
v = y(v, g, p, f, i[h + 3], 16, -0x2b10cf7b),
|
|
f = y(f, v, g, p, i[h + 6], 23, 0x4881d05),
|
|
p = y(p, f, v, g, i[h + 9], 4, -0x262b2fc7),
|
|
g = y(g, p, f, v, i[h + 12], 11, -0x1924661b),
|
|
v = y(v, g, p, f, i[h + 15], 16, 0x1fa27cf8),
|
|
f = y(f, v, g, p, i[h + 2], 23, -0x3b53a99b),
|
|
p = w(p, f, v, g, i[h + 0], 6, -0xbd6ddbc),
|
|
g = w(g, p, f, v, i[h + 7], 10, 0x432aff97),
|
|
v = w(v, g, p, f, i[h + 14], 15, -0x546bdc59),
|
|
f = w(f, v, g, p, i[h + 5], 21, -0x36c5fc7),
|
|
p = w(p, f, v, g, i[h + 12], 6, 0x655b59c3),
|
|
g = w(g, p, f, v, i[h + 3], 10, -0x70f3336e),
|
|
v = w(v, g, p, f, i[h + 10], 15, -1051523),
|
|
f = w(f, v, g, p, i[h + 1], 21, -0x7a7ba22f),
|
|
p = w(p, f, v, g, i[h + 8], 6, 0x6fa87e4f),
|
|
g = w(g, p, f, v, i[h + 15], 10, -0x1d31920),
|
|
v = w(v, g, p, f, i[h + 6], 15, -0x5cfebcec),
|
|
f = w(f, v, g, p, i[h + 13], 21, 0x4e0811a1),
|
|
p = w(p, f, v, g, i[h + 4], 6, -0x8ac817e),
|
|
g = w(g, p, f, v, i[h + 11], 10, -0x42c50dcb),
|
|
v = w(v, g, p, f, i[h + 2], 15, 0x2ad7d2bb),
|
|
f = w(f, v, g, p, i[h + 9], 21, -0x14792c6f),
|
|
p = p + E >>> 0,
|
|
f = f + S >>> 0,
|
|
v = v + T >>> 0,
|
|
g = g + b >>> 0
|
|
}
|
|
return a.endian([p, f, v, g])
|
|
}
|
|
)._ff = function(e, r, i, a, s, u, c) {
|
|
var l = e + (r & i | ~r & a) + (s >>> 0) + c;
|
|
return (l << u | l >>> 32 - u) + r
|
|
}
|
|
,
|
|
l._gg = function(e, r, i, a, s, u, c) {
|
|
var l = e + (r & a | i & ~a) + (s >>> 0) + c;
|
|
return (l << u | l >>> 32 - u) + r
|
|
}
|
|
,
|
|
l._hh = function(e, r, i, a, s, u, c) {
|
|
var l = e + (r ^ i ^ a) + (s >>> 0) + c;
|
|
return (l << u | l >>> 32 - u) + r
|
|
}
|
|
,
|
|
l._ii = function(e, r, i, a, s, u, c) {
|
|
var l = e + (i ^ (r | ~a)) + (s >>> 0) + c;
|
|
return (l << u | l >>> 32 - u) + r
|
|
}
|
|
,
|
|
l._blocksize = 16,
|
|
l._digestsize = 16,
|
|
e.exports = function(e, r) {
|
|
if (null == e)
|
|
throw Error("Illegal argument " + e);
|
|
var i = a.wordsToBytes(l(e, r));
|
|
return r && r.asBytes ? i : r && r.asString ? c.bytesToString(i) : a.bytesToHex(i)
|
|
}
|
|
}
|
|
, function(e, r) {
|
|
var i, a;
|
|
i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
|
|
a = {
|
|
rotl: function rotl(e, r) {
|
|
return e << r | e >>> 32 - r
|
|
},
|
|
rotr: function rotr(e, r) {
|
|
return e << 32 - r | e >>> r
|
|
},
|
|
endian: function endian(e) {
|
|
if (e.constructor == Number)
|
|
return 0xff00ff & a.rotl(e, 8) | 0xff00ff00 & a.rotl(e, 24);
|
|
for (var r = 0; r < e.length; r++)
|
|
e[r] = a.endian(e[r]);
|
|
return e
|
|
},
|
|
randomBytes: function randomBytes(e) {
|
|
for (var r = []; e > 0; e--)
|
|
r.push(Math.floor(256 * Math.random()));
|
|
return r
|
|
},
|
|
bytesToWords: function bytesToWords(e) {
|
|
for (var r = [], i = 0, a = 0; i < e.length; i++,
|
|
a += 8)
|
|
r[a >>> 5] |= e[i] << 24 - a % 32;
|
|
return r
|
|
},
|
|
wordsToBytes: function wordsToBytes(e) {
|
|
for (var r = [], i = 0; i < 32 * e.length; i += 8)
|
|
r.push(e[i >>> 5] >>> 24 - i % 32 & 255);
|
|
return r
|
|
},
|
|
bytesToHex: function bytesToHex(e) {
|
|
for (var r = [], i = 0; i < e.length; i++)
|
|
r.push((e[i] >>> 4).toString(16)),
|
|
r.push((15 & e[i]).toString(16));
|
|
return r.join("")
|
|
},
|
|
hexToBytes: function hexToBytes(e) {
|
|
for (var r = [], i = 0; i < e.length; i += 2)
|
|
r.push(parseInt(e.substr(i, 2), 16));
|
|
return r
|
|
},
|
|
bytesToBase64: function bytesToBase64(e) {
|
|
for (var r = [], a = 0; a < e.length; a += 3)
|
|
for (var s = e[a] << 16 | e[a + 1] << 8 | e[a + 2], u = 0; u < 4; u++)
|
|
8 * a + 6 * u <= 8 * e.length ? r.push(i.charAt(s >>> 6 * (3 - u) & 63)) : r.push("=");
|
|
return r.join("")
|
|
},
|
|
base64ToBytes: function base64ToBytes(e) {
|
|
e = e.replace(/[^A-Z0-9+\/]/gi, "");
|
|
for (var r = [], a = 0, s = 0; a < e.length; s = ++a % 4)
|
|
0 != s && r.push((i.indexOf(e.charAt(a - 1)) & Math.pow(2, -2 * s + 8) - 1) << 2 * s | i.indexOf(e.charAt(a)) >>> 6 - 2 * s);
|
|
return r
|
|
}
|
|
},
|
|
e.exports = a
|
|
}
|
|
, function(e, r) {
|
|
function t(e) {
|
|
return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
|
|
}
|
|
function o(e) {
|
|
return "function" == typeof e.readFloatLE && "function" == typeof e.slice && t(e.slice(0, 0))
|
|
}
|
|
e.exports = function(e) {
|
|
return null != e && (t(e) || o(e) || !!e._isBuffer)
|
|
}
|
|
}
|
|
, function(e, r, i) {
|
|
e.exports = i(1)
|
|
}
|
|
]);
|
|
function encrypt_sign(e, r) {
|
|
var _utf8_encode = function _utf8_encode(e) {
|
|
e = e.replace(/\r\n/g, "\n");
|
|
for (var r = "", i = 0; i < e.length; i++) {
|
|
var a = e.charCodeAt(i);
|
|
a < 128 ? r += String.fromCharCode(a) : (a > 127 && a < 2048 ? r += String.fromCharCode(a >> 6 | 192) : (r += String.fromCharCode(a >> 12 | 224),
|
|
r += String.fromCharCode(a >> 6 & 63 | 128)),
|
|
r += String.fromCharCode(63 & a | 128))
|
|
}
|
|
return r
|
|
}
|
|
, a = "A4NjFqYu5wPHsO0XTdDgMa2r1ZQocVte9UJBvk6/7=yRnhISGKblCWi+LpfE8xzm3"
|
|
, s = "iamspam"
|
|
, u = new Date().getTime()
|
|
, c = "undefined" == typeof window ? i.g : window;
|
|
return void 0 !== c && c && c.navigator && c.navigator.userAgent && c.alert && (s = "test"),
|
|
{
|
|
"X-s": function encode(e) {
|
|
var r, i, s, u, c, l, d, p = "", f = 0;
|
|
for (e = _utf8_encode(e); f < e.length; )
|
|
r = e.charCodeAt(f++),
|
|
i = e.charCodeAt(f++),
|
|
s = e.charCodeAt(f++),
|
|
u = r >> 2,
|
|
c = (3 & r) << 4 | i >> 4,
|
|
l = (15 & i) << 2 | s >> 6,
|
|
d = 63 & s,
|
|
isNaN(i) ? l = d = 64 : isNaN(s) && (d = 64),
|
|
p = p + a.charAt(u) + a.charAt(c) + a.charAt(l) + a.charAt(d);
|
|
return p
|
|
}(N([u, s, e, "[object Object]" === Object.prototype.toString.call(r) || "[object Array]" === Object.prototype.toString.call(r) ? JSON.stringify(r) : ""].join(""))),
|
|
"X-t": u
|
|
}
|
|
}
|
|
var __awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, __generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function isTestHost(e) {
|
|
return !!(e.indexOf("0.0.0.0") >= 0) || ["sit.xiaohongshu.com", "local.xiaohongshu.com", "test.xiaohongshu.com"].some(function(r) {
|
|
return e.indexOf(r) >= 0
|
|
})
|
|
}
|
|
function isStaging(e) {
|
|
return e.indexOf("beta.") >= 0
|
|
}
|
|
function utils_getHost() {
|
|
var e = "//as.xiaohongshu.com"
|
|
, r = window.location.host;
|
|
return isTestHost(r) && (e = "//as.sit.xiaohongshu.com"),
|
|
isStaging(r) && (e = "//as.beta.xiaohongshu.com"),
|
|
e
|
|
}
|
|
function getRedHost() {
|
|
var e = "//edith.xiaohongshu.com"
|
|
, r = window.location.host;
|
|
return isTestHost(r) && (e = "//edith.sit.xiaohongshu.com"),
|
|
isStaging(r) && (e = "//edith.beta.xiaohongshu.com"),
|
|
e
|
|
}
|
|
function getErrorPageHost() {
|
|
var e = "https://www.xiaohongshu.com"
|
|
, r = window.location.host;
|
|
return isTestHost(r) && (e = "http://www.sit.xiaohongshu.com"),
|
|
isStaging(r) && (e = "https://www.beta.xiaohongshu.com"),
|
|
e
|
|
}
|
|
function genRandomString(e) {
|
|
return Array(e).fill(void 0).map(function() {
|
|
return "abcdefghijklmnopqrstuvwxyz1234567890"[Math.floor(36 * Math.random())]
|
|
}).join("")
|
|
}
|
|
function getPlatformCode(e) {
|
|
switch (e) {
|
|
case "Android":
|
|
return s.Android;
|
|
case "iOS":
|
|
return s.iOS;
|
|
case "Mac OS":
|
|
return s.MacOs;
|
|
case "Linux":
|
|
return s.Linux;
|
|
default:
|
|
return s.other
|
|
}
|
|
}
|
|
function getFullURIFromContext(e) {
|
|
var r = (null == e ? void 0 : e.request) || {}
|
|
, i = r.header
|
|
, a = r.url
|
|
, s = i || {}
|
|
, u = s.referer
|
|
, c = s.host;
|
|
return u || "http://".concat(c).concat(a)
|
|
}
|
|
function clientRedirect(e) {
|
|
window.location.href = e,
|
|
setTimeout(function() {
|
|
window.location.href = e
|
|
}, 100),
|
|
setTimeout(function() {
|
|
window.location.href = e
|
|
}, 400)
|
|
}
|
|
function retry(e, r, i, a) {
|
|
return __awaiter(this, void 0, void 0, function() {
|
|
var s, u;
|
|
return __generator(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
s = i,
|
|
u = null,
|
|
c.label = 1;
|
|
case 1:
|
|
if (!(s >= 0))
|
|
return [3, 7];
|
|
c.label = 2;
|
|
case 2:
|
|
return c.trys.push([2, 4, , 5]),
|
|
[4, e(r)];
|
|
case 3:
|
|
return [2, c.sent()];
|
|
case 4:
|
|
return u = c.sent(),
|
|
[3, 5];
|
|
case 5:
|
|
return [4, sleep(1e3 * a)];
|
|
case 6:
|
|
return c.sent(),
|
|
s--,
|
|
[3, 1];
|
|
case 7:
|
|
throw null == u ? u : Error("retry ".concat(e.name, " fail and count is ").concat(i))
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function sleep(e) {
|
|
return new Promise(function(r, i) {
|
|
setTimeout(r, e)
|
|
}
|
|
)
|
|
}
|
|
function utils_shouldSign(e) {
|
|
var r = !0;
|
|
return e.indexOf(window.location.host) > -1 || e.indexOf("sit.xiaohongshu.com") > -1 ? r : (h.some(function(i) {
|
|
if (e.indexOf(i) > -1)
|
|
return r = !1,
|
|
!0
|
|
}),
|
|
r)
|
|
}
|
|
(a = s || (s = {}))[a.Windows = 0] = "Windows",
|
|
a[a.iOS = 1] = "iOS",
|
|
a[a.Android = 2] = "Android",
|
|
a[a.MacOs = 3] = "MacOs",
|
|
a[a.Linux = 4] = "Linux",
|
|
a[a.other = 5] = "other";
|
|
var utils_SignReload = function SignReload() {
|
|
this.count = 1,
|
|
this.time = +new Date
|
|
};
|
|
function shouldSignReload() {
|
|
try {
|
|
var e = +new Date
|
|
, r = JSON.stringify(localStorage.getItem(S) || {})
|
|
, i = !!(r && r.count)
|
|
, a = r && r.time && e - r.time < 36e5;
|
|
if (!(i && a)) {
|
|
var s = new utils_SignReload;
|
|
return localStorage.setItem(S, JSON.stringify(s)),
|
|
!0
|
|
}
|
|
if (r.count > 3)
|
|
return !1;
|
|
return r.count = r.count + 1,
|
|
localStorage.setItem(S, JSON.stringify(r)),
|
|
!0
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
function loadScript(e, r) {
|
|
return __awaiter(this, void 0, void 0, function() {
|
|
return __generator(this, function(i) {
|
|
return void 0 === e ? [2] : [2, new Promise(function(i, a) {
|
|
var s = document.createElement("script");
|
|
s.src = e,
|
|
s.type = "text/javascript",
|
|
s.crossOrigin = "anonymous",
|
|
s.dataset.formulaAsset = "1",
|
|
s.dataset.formulaCdnRetry = "1",
|
|
document.body.appendChild(s),
|
|
s.onload = function() {
|
|
null == r || r(),
|
|
i()
|
|
}
|
|
}
|
|
)]
|
|
})
|
|
})
|
|
}
|
|
var utils_TriggerLogRequest = function TriggerLogRequest(e, r, i, a, s) {
|
|
this.url = e || "un",
|
|
this.verifyBiz = r || "un",
|
|
this.verifyUuid = i || "un",
|
|
this.verifyType = a || "un",
|
|
this.repeatVerify = s || !1
|
|
};
|
|
function triggerLog(e, r) {
|
|
var i = Cookies.get("gid")
|
|
, a = Cookies.get(d);
|
|
try {
|
|
var s = {
|
|
url: e.url,
|
|
verify_biz: e.verifyBiz,
|
|
verify_uuid: e.verifyUuid,
|
|
verify_type: e.verifyType,
|
|
repeat_verify: e.repeatVerify,
|
|
webId: a || "",
|
|
gid: i || "",
|
|
timestamp: +new Date,
|
|
extra_source: r || ""
|
|
}
|
|
, u = {
|
|
measurement_name: "infra_sec_spam_walify",
|
|
measurement_data: s
|
|
};
|
|
window.insight ? window.insight.sendCustomPoint(u) : window.eaglet && window.eaglet.push(u, "ApmXrayTracker")
|
|
} catch (e) {}
|
|
}
|
|
function generateLocalId(e) {
|
|
var r = getPlatformCode(e)
|
|
, i = "".concat((+new Date).toString(16)).concat(genRandomString(30)).concat(r).concat("0").concat("000")
|
|
, a = encrypt_crc32(i);
|
|
return "".concat(i).concat(a).substring(0, 52)
|
|
}
|
|
var L = i(65266)
|
|
, log_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, log_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function wrapperLog(e, r) {
|
|
return function(i) {
|
|
return log_awaiter(this, void 0, void 0, function() {
|
|
var a, s, u, c;
|
|
return log_generator(this, function(l) {
|
|
switch (l.label) {
|
|
case 0:
|
|
a = +new Date,
|
|
l.label = 1;
|
|
case 1:
|
|
return l.trys.push([1, 3, , 4]),
|
|
[4, r(i)];
|
|
case 2:
|
|
return s = l.sent(),
|
|
logSecInfo("", e, u = +new Date - a, "true"),
|
|
[2, s];
|
|
case 3:
|
|
throw c = l.sent(),
|
|
u = +new Date - a,
|
|
logSecInfo(JSON.stringify(c), e, u, "false"),
|
|
c;
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
function logSecInfo(e, r, i, a) {
|
|
try {
|
|
var s = {
|
|
measurement_name: "infra_sec_web_api_walify",
|
|
measurement_data: {
|
|
error_info: "",
|
|
api_name: r,
|
|
timecost: i,
|
|
is_success: a || ""
|
|
}
|
|
};
|
|
window.insight ? window.insight.sendCustomPoint(s) : window.eaglet && window.eaglet.push(s, "ApmXrayTracker")
|
|
} catch (e) {}
|
|
}
|
|
function logSec(e) {
|
|
if (!(Math.random() > .01))
|
|
try {
|
|
var r = {
|
|
measurement_name: e.name,
|
|
measurement_data: e.data
|
|
};
|
|
window.insight ? window.insight.sendCustomPoint(r) : window.eaglet && window.eaglet.push(r, "ApmXrayTracker")
|
|
} catch (e) {}
|
|
}
|
|
var token_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, token_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
}
|
|
, M = wrapperLog(_, getScripting)
|
|
, B = wrapperLog("scriptingEval", eval);
|
|
function tokenCheck(e) {
|
|
return token_awaiter(this, void 0, void 0, function() {
|
|
return token_generator(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
return [4, updateSign(e)];
|
|
case 1:
|
|
return r.sent(),
|
|
[2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function updateSign(e) {
|
|
return token_awaiter(this, void 0, void 0, function() {
|
|
var r, i, a, s, u, c, d, v;
|
|
return token_generator(this, function(v) {
|
|
switch (v.label) {
|
|
case 0:
|
|
if (r = 6e4,
|
|
i = e.isHidden,
|
|
a = e.callFrom,
|
|
s = token_shouldUpdate(),
|
|
!("visible" === i && s))
|
|
return [3, 5];
|
|
v.label = 1;
|
|
case 1:
|
|
return v.trys.push([1, 3, , 4]),
|
|
u = "seccallback",
|
|
c = "",
|
|
window[u] = function(e) {
|
|
l.Z.set(p, e, {
|
|
domain: "xiaohongshu.com",
|
|
expires: 3
|
|
}),
|
|
l.Z.set(f, c, {
|
|
domain: "xiaohongshu.com",
|
|
expires: .007
|
|
}),
|
|
l.Z.set(p, e, {
|
|
domain: "xiaohongshu.hk",
|
|
expires: 3
|
|
}),
|
|
l.Z.set(f, c, {
|
|
domain: "xiaohongshu.hk",
|
|
expires: .007
|
|
})
|
|
}
|
|
,
|
|
[4, retry(M, {
|
|
callFrom: a,
|
|
callback: u
|
|
}, 2, 60)];
|
|
case 2:
|
|
return c = (d = v.sent()).secPoisonId,
|
|
B(d.data),
|
|
delete window[u],
|
|
updateTokenTs(),
|
|
[3, 4];
|
|
case 3:
|
|
return v.sent(),
|
|
[3, 4];
|
|
case 4:
|
|
return setTimeout(function() {
|
|
return updateSign(e)
|
|
}, 5 * r),
|
|
[3, 6];
|
|
case 5:
|
|
setTimeout(function() {
|
|
return updateSign(e)
|
|
}, r / 12),
|
|
v.label = 6;
|
|
case 6:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function getScripting(e) {
|
|
return token_awaiter(this, void 0, void 0, function() {
|
|
var r;
|
|
return token_generator(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, L.ZP.http.post("".concat(utils_getHost()).concat(_), e, {
|
|
withCredentials: !0,
|
|
transform: !1
|
|
})];
|
|
case 1:
|
|
if ((r = i.sent()).data && r.data.length > 0)
|
|
return [2, r];
|
|
throw Error("get scripting length is 0")
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function updateHidden(e) {
|
|
e.isHidden = "visible",
|
|
document.addEventListener("visibilitychange", function() {
|
|
e.isHidden = document.visibilityState
|
|
}),
|
|
document.addEventListener("pagehide", function() {
|
|
e.isHidden = "hidden"
|
|
})
|
|
}
|
|
function updateTokenTs() {
|
|
localStorage.setItem(E, new Date().getTime())
|
|
}
|
|
function token_shouldUpdate() {
|
|
var e = Number(localStorage.getItem(E) || 0)
|
|
, r = new Date().getTime();
|
|
return r - e >= 3e5
|
|
}
|
|
var reportBroswerInfo_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, reportBroswerInfo_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
}
|
|
, x = wrapperLog(y, ConfigHttp);
|
|
function reportBroswerInfo(e, r) {
|
|
var i;
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
var a, s, u;
|
|
return reportBroswerInfo_generator(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if (l.Z.set(v, e.appId, {
|
|
domain: "xiaohongshu.com",
|
|
expires: 365
|
|
}),
|
|
l.Z.set(v, e.appId, {
|
|
domain: "xiaohongshu.hk",
|
|
expires: 365
|
|
}),
|
|
a = (i = new URL(window.location.href),
|
|
i.pathname),
|
|
m.some(function(e) {
|
|
return e === a
|
|
}))
|
|
return [2];
|
|
return [4, loadFpConfig(e)];
|
|
case 1:
|
|
if (void 0 == (s = c.sent()))
|
|
return [2];
|
|
return pushXsCommon(s.commonPatch),
|
|
pushRealTimeXsCommon(s.realTimeCommonPatch),
|
|
tokenCheck(e),
|
|
u = !1,
|
|
[4, loadSrc(e, s)];
|
|
case 2:
|
|
return c.sent(),
|
|
e.onReadyToLoadJS ? (e.onReadyToLoadJS(function() {
|
|
startLoading(e, s, r),
|
|
u = !0
|
|
}),
|
|
setTimeout(function() {
|
|
!u && startLoading(e, s, r)
|
|
}, e.loadTimeout || 4e3)) : startLoading(e, s, r),
|
|
[2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function startLoading(e, r, i) {
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
return reportBroswerInfo_generator(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return [4, loadSrc(e, r)];
|
|
case 1:
|
|
return a.sent(),
|
|
report(e, r, i),
|
|
[2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function pushXsCommon(e) {
|
|
try {
|
|
(e && Array.isArray(e) && e.length > 0 ? e : ["api/sec/v1/shield/webprofile"]).forEach(function(e) {
|
|
T.push(e)
|
|
})
|
|
} catch (e) {}
|
|
}
|
|
function pushRealTimeXsCommon(e) {
|
|
try {
|
|
(e && Array.isArray(e) && e.length > 0 ? e : []).forEach(function(e) {
|
|
k.push(e)
|
|
})
|
|
} catch (e) {}
|
|
}
|
|
function loadFpConfig(e) {
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
var r, i, a, s;
|
|
return reportBroswerInfo_generator(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
r = {
|
|
callFrom: e.callFrom
|
|
},
|
|
a.label = 1;
|
|
case 1:
|
|
return a.trys.push([1, 3, , 8]),
|
|
[4, x(r)];
|
|
case 2:
|
|
i = a.sent();
|
|
try {
|
|
i && i.extraInfo && (i.extraInfo = JSON.parse(i.extraInfo))
|
|
} catch (e) {}
|
|
return localStorage.setItem(w, JSON.stringify(i)),
|
|
[2, i];
|
|
case 3:
|
|
if (a.sent(),
|
|
i = getLocalConfig())
|
|
return [2, i];
|
|
a.label = 4;
|
|
case 4:
|
|
return a.trys.push([4, 6, , 7]),
|
|
[4, retry(x, r, 2, 1)];
|
|
case 5:
|
|
return [2, a.sent()];
|
|
case 6:
|
|
return a.sent(),
|
|
[3, 7];
|
|
case 7:
|
|
return [3, 8];
|
|
case 8:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function getLocalConfig() {
|
|
var e;
|
|
try {
|
|
var r = null !== (e = localStorage.getItem(w)) && void 0 !== e ? e : "{}"
|
|
, i = JSON.parse(r);
|
|
if (i.url && i.reportUrl && i.desVersion)
|
|
return i
|
|
} catch (e) {}
|
|
return null
|
|
}
|
|
function ConfigHttp(e) {
|
|
return L.ZP.http.post("".concat(utils_getHost()).concat(y), e, {
|
|
withCredentials: !0,
|
|
transform: !1
|
|
})
|
|
}
|
|
function loadSrc(e, r) {
|
|
var i, a;
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
var s, u;
|
|
return reportBroswerInfo_generator(this, function(c) {
|
|
(null === (i = r.extraInfo) || void 0 === i ? void 0 : i.mnsTokenUrl) && loadScript(null === (a = r.extraInfo) || void 0 === a ? void 0 : a.mnsTokenUrl, function() {}),
|
|
loadScript(r.xhsTokenUrl, function() {});
|
|
try {
|
|
s = 0;
|
|
(u = function() {
|
|
var i = document.createElement("script");
|
|
i.src = r.signUrl,
|
|
i.type = "text/javascript",
|
|
i.crossOrigin = "anonymous",
|
|
i.dataset.formulaAsset = "1",
|
|
i.dataset.formulaCdnRetry = "1",
|
|
i.onerror = function() {
|
|
++s < 3 && (document.body.removeChild(i),
|
|
u()),
|
|
logSec({
|
|
name: "anti_spam_js_fail",
|
|
data: {
|
|
url: null == r ? void 0 : r.signUrl,
|
|
type: "sign"
|
|
}
|
|
})
|
|
}
|
|
,
|
|
i.onload = function() {
|
|
e.configInit = !0
|
|
}
|
|
,
|
|
document.body.appendChild(i)
|
|
}
|
|
)()
|
|
} catch (e) {}
|
|
return [2, new Promise(function(e) {
|
|
var i = document.createElement("script");
|
|
i.src = r.url,
|
|
i.type = "text/javascript",
|
|
i.crossOrigin = "anonymous",
|
|
i.dataset.formulaAsset = "1",
|
|
i.dataset.formulaCdnRetry = "1",
|
|
i.onload = function() {
|
|
e()
|
|
}
|
|
,
|
|
document.body.appendChild(i)
|
|
}
|
|
)]
|
|
})
|
|
})
|
|
}
|
|
function report(e, r, i) {
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
return reportBroswerInfo_generator(this, function(a) {
|
|
return setTimeout(function() {
|
|
var a, s, u = (null === (a = window.xhsFingerprintV3) || void 0 === a ? void 0 : a.VERSION) || C, c = getGid.bind(null, i);
|
|
null === (s = window.xhsFingerprintV3) || void 0 === s || s.getV18(function() {
|
|
for (var i = [], a = 0; a < arguments.length; a++)
|
|
i[a] = arguments[a];
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
var a, s;
|
|
return reportBroswerInfo_generator(this, function(l) {
|
|
switch (l.label) {
|
|
case 0:
|
|
a = 2 == i.length ? i[1] : i[0],
|
|
s = {
|
|
platform: e.platform || "PC",
|
|
sdkVersion: u,
|
|
svn: r.desVersion,
|
|
profileData: a,
|
|
reportUrl: r.reportUrl
|
|
},
|
|
l.label = 1;
|
|
case 1:
|
|
return l.trys.push([1, 3, , 4]),
|
|
[4, retry(c, s, 2, 2)];
|
|
case 2:
|
|
return l.sent(),
|
|
updateProfileCount(),
|
|
[3, 4];
|
|
case 3:
|
|
return console.log("profile error", l.sent()),
|
|
[3, 4];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
})
|
|
}, 600),
|
|
[2]
|
|
})
|
|
})
|
|
}
|
|
function getGid(e, r) {
|
|
return reportBroswerInfo_awaiter(this, void 0, void 0, function() {
|
|
var i, a, s, u;
|
|
return reportBroswerInfo_generator(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
return i = utils_getHost(),
|
|
a = r.reportUrl,
|
|
s = Object.assign({}, r),
|
|
delete s.reportUrl,
|
|
[4, e.http.post("".concat(i).concat(a), s, {
|
|
baseURL: i,
|
|
withCredentials: !0,
|
|
transform: !1,
|
|
extractData: !1
|
|
})];
|
|
case 1:
|
|
if (0 !== (u = c.sent()).code || !u.success)
|
|
throw Error(JSON.stringify(u));
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function updateProfileCount() {
|
|
var e = ((Number(localStorage.getItem("p1")) || 0) + 1).toString();
|
|
localStorage.setItem("p1", e)
|
|
}
|
|
i(25069);
|
|
var riskHandler_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, riskHandler_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
}
|
|
, riskHandler_RiskErrorRes = function RiskErrorRes() {
|
|
this.errorCode = "",
|
|
this.shouldRedirect = !1
|
|
};
|
|
function riskHandler(e, r) {
|
|
return riskHandler_awaiter(this, void 0, void 0, function() {
|
|
var i, a, s, u, l, d;
|
|
return riskHandler_generator(this, function(p) {
|
|
if (i = !L.ZP.isBrowser,
|
|
c.YF.isXHS || !r)
|
|
return [2, r];
|
|
try {
|
|
if (!(a = handlerRiskError(r)).shouldRedirect)
|
|
return [2, r];
|
|
s = i ? e.context.ssrContext : {},
|
|
u = i ? s.redirect : clientRedirect,
|
|
l = i ? getFullURIFromContext(s) : window.location.href,
|
|
d = getErrorUrl(l, a.errorCode),
|
|
u(d)
|
|
} catch (e) {}
|
|
return [2, r]
|
|
})
|
|
})
|
|
}
|
|
function handlerRiskError(e) {
|
|
var r = new riskHandler_RiskErrorRes
|
|
, i = e.status
|
|
, a = e.data
|
|
, s = void 0 === a ? {} : a
|
|
, u = s.code
|
|
, c = s.result
|
|
, l = (u || c || "undefined").toString();
|
|
return 200 === i && b.hasOwnProperty(l) ? (r.shouldRedirect = !0,
|
|
r.errorCode = l,
|
|
r) : r
|
|
}
|
|
function getErrorUrl(e, r) {
|
|
var i = b[r];
|
|
return "https://www.xiaohongshu.com/website-login/error?redirectPath=".concat(e, "&error_code=").concat(r, "&error_msg=").concat(i)
|
|
}
|
|
i(109),
|
|
i(54060),
|
|
i(20266);
|
|
var signAdaptor_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, signAdaptor_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function signAdaptor(e, r) {
|
|
var i;
|
|
return signAdaptor_awaiter(this, void 0, void 0, function() {
|
|
var a, s;
|
|
return signAdaptor_generator(this, function(u) {
|
|
return a = Date.now(),
|
|
"function" == typeof e.shouldSign ? (s = e.shouldSign(r)) && xhsSign(e, r) : xhsSign(e, r),
|
|
"function" == typeof e.shouldFp ? (s = e.shouldFp(r)) && xsCommon(e, r) : xsCommon(e, r),
|
|
"function" == typeof e.shouldToken ? (s = e.shouldToken(r)) && xhsToken(e, r) : xhsToken(e, r),
|
|
logSec({
|
|
name: "anti_spam_sign_cost",
|
|
data: {
|
|
cost: Date.now() - a,
|
|
type: (null == window ? void 0 : window._webmsxyw) ? "sign_new" : "sign_old",
|
|
source: null !== (i = null == r ? void 0 : r.url) && void 0 !== i ? i : window.location.href
|
|
}
|
|
}),
|
|
[2, r]
|
|
})
|
|
})
|
|
}
|
|
function xhsSign(e, r) {
|
|
var i = r.url
|
|
, a = r.params
|
|
, s = r.paramsSerializer
|
|
, u = r.data
|
|
, c = e.configInit
|
|
, l = e.xsIgnore
|
|
, d = e.autoReload;
|
|
if (!(!l.some(function(e) {
|
|
return i.indexOf(e) >= 0
|
|
}) && utils_shouldSign(i)))
|
|
return r;
|
|
d && signLackReload();
|
|
try {
|
|
var p = getRealUrl(i, a, s)
|
|
, f = encrypt_sign;
|
|
c && void 0 !== window._webmsxyw && (f = window._webmsxyw);
|
|
var v = f(p, u) || {};
|
|
r.headers["X-t"] = v["X-t"],
|
|
r.headers["X-s"] = v["X-s"]
|
|
} catch (e) {}
|
|
if (!0 !== e.disableMns)
|
|
try {
|
|
if (window.mns) {
|
|
var p = getRealUrl(i, a, s)
|
|
, g = "[object Object]" === Object.prototype.toString.call(u) || "[object Array]" === Object.prototype.toString.call(u)
|
|
, h = N([p, g ? JSON.stringify(u) : ""].join(""));
|
|
r.headers["X-Mns"] = window.mns.getMnsToken(p, u, h) || ""
|
|
} else
|
|
r.headers["X-Mns"] = "unload"
|
|
} catch (e) {
|
|
r.headers["X-Mns"] = "error"
|
|
}
|
|
return r
|
|
}
|
|
function xhsToken(e, r) {
|
|
var i = r.url;
|
|
r.params,
|
|
r.paramsSerializer,
|
|
r.data,
|
|
e.configInit;
|
|
var a = e.xsIgnore;
|
|
if (e.autoReload,
|
|
!(!a.some(function(e) {
|
|
return i.indexOf(e) >= 0
|
|
}) && utils_shouldSign(i)))
|
|
return r;
|
|
try {
|
|
r.headers["Sc-T"] = window.__xhs_sc__.getXHSToken() || ""
|
|
} catch (e) {}
|
|
return r
|
|
}
|
|
function signLackReload(e) {
|
|
if (e && void 0 !== window._webmsxyw)
|
|
throw shouldSignReload() && window.location.reload(),
|
|
Error("网络连接不可用,请刷新重试。")
|
|
}
|
|
function getRealUrl(e, r, i) {
|
|
var a = ["%27"]
|
|
, s = e;
|
|
if (0 === e.indexOf("//") && (e = "".concat(window.location.protocol).concat(e)),
|
|
/^https?:/.test(e))
|
|
try {
|
|
var u = new URL(e);
|
|
s = u.href.replace(u.origin, "")
|
|
} catch (r) {
|
|
s = e
|
|
}
|
|
var c = L.ZP.http.buildURL(s, r, i);
|
|
return [/\'/g].forEach(function(e, r) {
|
|
c = c.replace(e, a[r])
|
|
}),
|
|
c
|
|
}
|
|
function xsCommon(e, r) {
|
|
var i, a;
|
|
try {
|
|
var s = e.platform
|
|
, u = r.url;
|
|
if (!T.map(function(e) {
|
|
return new RegExp(e)
|
|
}).some(function(e) {
|
|
return e.test(u)
|
|
}))
|
|
return r;
|
|
var c = r.headers["X-t"] || ""
|
|
, d = r.headers["X-s"] || ""
|
|
, p = r.headers["X-Sign"] || ""
|
|
, f = c && d || p
|
|
, v = getSigCount(f)
|
|
, g = localStorage.getItem("b1")
|
|
, h = localStorage.getItem("b1b1") || "1"
|
|
, m = {
|
|
s0: getPlatformCode(s),
|
|
s1: "",
|
|
x0: h,
|
|
x1: C,
|
|
x2: s || "PC",
|
|
x3: "xhs-pc-web",
|
|
x4: "4.62.3",
|
|
x5: l.Z.get("a1"),
|
|
x6: c,
|
|
x7: d,
|
|
x8: g,
|
|
x9: O("".concat(c).concat(d).concat(g)),
|
|
x10: v
|
|
}
|
|
, _ = k.map(function(e) {
|
|
return new RegExp(e)
|
|
}).some(function(e) {
|
|
return e.test(u)
|
|
});
|
|
(null === (i = window.xhsFingerprintV3) || void 0 === i ? void 0 : i.getCurMiniUa) && _ ? null === (a = window.xhsFingerprintV3) || void 0 === a || a.getCurMiniUa(function(e) {
|
|
m.x8 = e,
|
|
m.x9 = O("".concat(c).concat(d).concat(e)),
|
|
r.headers["X-S-Common"] = b64Encode(encodeUtf8(JSON.stringify(m)))
|
|
}) : r.headers["X-S-Common"] = b64Encode(encodeUtf8(JSON.stringify(m)))
|
|
} catch (e) {}
|
|
return r
|
|
}
|
|
function getSigCount(e) {
|
|
var r = Number(sessionStorage.getItem("sc")) || 0;
|
|
return e && (r++,
|
|
sessionStorage.setItem("sc", r.toString())),
|
|
r
|
|
}
|
|
i(42876),
|
|
i(33933);
|
|
var genDeviceFingerprint_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, genDeviceFingerprint_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
}
|
|
, D = null;
|
|
function setCanvas(e, r, i, a) {
|
|
var s = this;
|
|
return window.xhsFingerprint.getV18(function(u, c, l) {
|
|
return genDeviceFingerprint_awaiter(s, void 0, void 0, function() {
|
|
var s;
|
|
return genDeviceFingerprint_generator(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
s = {
|
|
sign: l,
|
|
id: u
|
|
},
|
|
c.label = 1;
|
|
case 1:
|
|
return c.trys.push([1, 3, , 4]),
|
|
[4, i.post("/fe_api/burdock/v2/shield/registerCanvas", s, {
|
|
params: {
|
|
p: "cc",
|
|
callFrom: a
|
|
},
|
|
baseURL: utils_getHost(),
|
|
withCredentials: !0
|
|
}).then(function(r) {
|
|
e(r)
|
|
})];
|
|
case 2:
|
|
return c.sent(),
|
|
[3, 4];
|
|
case 3:
|
|
return r(c.sent()),
|
|
[3, 4];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
})
|
|
}
|
|
function beforeRecallHandle(e, r) {
|
|
return !D && (D = new Promise(function(i, a) {
|
|
if (window.xhsFingerprint)
|
|
setCanvas(i, a, e, r);
|
|
else {
|
|
var s = document.createElement("script");
|
|
s.src = "//fe-video-qc.xhscdn.com/fe-platform/565a6c0720d87794072b272492de312ec8143fb7.js",
|
|
s.type = "text/javascript",
|
|
s.crossOrigin = "anonymous",
|
|
s.onload = function() {
|
|
setCanvas(i, a, e, r)
|
|
}
|
|
,
|
|
document.body.appendChild(s)
|
|
}
|
|
}
|
|
)),
|
|
D
|
|
}
|
|
function tryGenDeviceFingerprint(e, r, i) {
|
|
return genDeviceFingerprint_awaiter(this, void 0, void 0, function() {
|
|
var a, s;
|
|
return genDeviceFingerprint_generator(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
return a = (r || {}).callFrom,
|
|
s = i.config,
|
|
[4, beforeRecallHandle(e, a)];
|
|
case 1:
|
|
return u.sent(),
|
|
[4, e.axios(s)];
|
|
case 2:
|
|
return [2, u.sent()]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
i(94934),
|
|
i(97542);
|
|
var F = i(7862)
|
|
, V = i.n(F)
|
|
, H = i(28934);
|
|
function isSupport_isSupport(e) {
|
|
var r, i = c.YF.isIOS ? null === (r = window.webkit) || void 0 === r ? void 0 : r.messageHandlers : window.xhsbridge;
|
|
return i && !!i[e]
|
|
}
|
|
i(99808);
|
|
var U = "0";
|
|
if (c.YF.isXHS) {
|
|
var q = (0,
|
|
c.Vk)()
|
|
, j = q.major
|
|
, W = q.minor
|
|
, G = q.patch;
|
|
U = "".concat(j, ".").concat(W, ".").concat(G)
|
|
}
|
|
function coerce(e) {
|
|
var r = e.split(".").map(function(e) {
|
|
return Number.parseInt(e, 10)
|
|
});
|
|
return [r[0] || 0, r[1] || 0, r[2] || 0]
|
|
}
|
|
function compare(e, r) {
|
|
for (var i = coerce(e), a = coerce(r), s = 0, u = 0; u < 3; u++) {
|
|
if (i[u] > a[u])
|
|
return 1;
|
|
i[u] === a[u] && (s += 1)
|
|
}
|
|
return 3 === s ? 0 : -1
|
|
}
|
|
function version_appVersionLt(e) {
|
|
return 0 > compare(U, e)
|
|
}
|
|
function version_appVersionGte(e) {
|
|
return !version_appVersionLt(e)
|
|
}
|
|
function appVersionEq(e) {
|
|
return 0 === compare(U, e)
|
|
}
|
|
var J = i(35329)
|
|
, X = i(46490)
|
|
, Y = i(27292)
|
|
, z = i(75649)
|
|
, K = function(e) {
|
|
function BridgeError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
return (0,
|
|
X._)(this, BridgeError),
|
|
(r = (0,
|
|
J._)(this, BridgeError, (0,
|
|
z._)(a))).name = "BridgeError",
|
|
r.code = e,
|
|
r
|
|
}
|
|
return (0,
|
|
Y._)(BridgeError, e),
|
|
BridgeError
|
|
}((0,
|
|
i(30961)._)(Error));
|
|
function bridge(e, r, i) {
|
|
var a = {};
|
|
if (void 0 !== r && (a.data = r),
|
|
i && (a.callback = i),
|
|
c.YF.isIOS) {
|
|
if ("registerNotice" === e && !version_appVersionLt("5.29") && version_appVersionLt("5.31")) {
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage({
|
|
data: i
|
|
})
|
|
} catch (e) {
|
|
throw new K("ERR_NATIVE",e.message)
|
|
}
|
|
return
|
|
}
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage(a)
|
|
} catch (r) {
|
|
throw new K("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
} else {
|
|
var s = JSON.stringify(a);
|
|
try {
|
|
window.xhsbridge[e](s)
|
|
} catch (r) {
|
|
throw new K("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
}
|
|
}
|
|
var Z = i(4659);
|
|
function generateKey() {
|
|
return (0,
|
|
Z.Z)().replace(/-/g, "_")
|
|
}
|
|
var Q = i(72252);
|
|
function check(e, r, i, a) {
|
|
setTimeout(function() {
|
|
try {
|
|
V().checkPropTypes({
|
|
prop: e
|
|
}, {
|
|
prop: r
|
|
}, i, "ozone-bridge/".concat(a), !1, !0)
|
|
} catch (e) {
|
|
var s = e.stack.indexOf(e.message) > -1 ? e.stack : "Error: ".concat(e.message, "\n").concat(e.stack);
|
|
(0,
|
|
Q.vU)(s, null, null, {
|
|
console: !0,
|
|
owl: !0
|
|
})
|
|
}
|
|
})
|
|
}
|
|
function checks_checkArgs(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
Q.ZK)("argsT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "args", i)
|
|
}
|
|
function checks_checkRes(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
Q.ZK)("resT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "res", i)
|
|
}
|
|
function escapeNewLineChars(e) {
|
|
return "string" == typeof e ? e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") : e
|
|
}
|
|
u = window.XHS_CALLBACKS || (window.XHS_CALLBACKS = {});
|
|
var $ = {
|
|
add: function add(e, r, i) {
|
|
var a = "".concat(e, "_").concat(generateKey());
|
|
return u[a] = function callbackWrap(a) {
|
|
var s;
|
|
if (c.YF.isIOS || !version_appVersionLt("5.26.1"))
|
|
s = a;
|
|
else
|
|
try {
|
|
s = JSON.parse(escapeNewLineChars(a))
|
|
} catch (e) {
|
|
s = a
|
|
}
|
|
(null == i ? void 0 : i.resT) && checks_checkRes(s, i.resT, e),
|
|
r(s)
|
|
}
|
|
,
|
|
"XHS_CALLBACKS.".concat(a)
|
|
}
|
|
};
|
|
function bridgeAdapter_callbackAdapter(e, r, i, a) {
|
|
var s;
|
|
if (!isSupport_isSupport(e))
|
|
throw new K("ERR_NOT_SUPPORT","not support ".concat(e));
|
|
(null == a ? void 0 : a.argsT) && checks_checkArgs(r, a.argsT, e),
|
|
"function" == typeof i && (s = $.add(e, i, a)),
|
|
bridge(e, r, s)
|
|
}
|
|
function bridgeAdapter_adapter(e, r, i) {
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
var u = r
|
|
, c = i;
|
|
u && (u.argsT || u.resT) && (c = u,
|
|
u = void 0),
|
|
bridgeAdapter_callbackAdapter(e, u, a, c)
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
var ee = i(31547);
|
|
c.YF.isAndroid && version_appVersionLt("5.20");
|
|
function postNotice(e) {
|
|
var r = e.methodName
|
|
, i = e.data
|
|
, a = ("undefined" == typeof window ? "undefined" : (0,
|
|
ee._)(window)) === "object" && "object" === (0,
|
|
ee._)(window.wx) ? window.wx : null;
|
|
return a && a.miniProgram && a.miniProgram.postMessage ? (a.miniProgram.postMessage({
|
|
data: {
|
|
methodName: r,
|
|
data: i
|
|
}
|
|
}),
|
|
Promise.resolve()) : Promise.resolve()
|
|
}
|
|
function changeTitle() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
|
|
return postNotice({
|
|
methodName: "changeTitle",
|
|
data: {
|
|
title: e
|
|
}
|
|
})
|
|
}
|
|
var et = V().oneOf([0, -1]).isRequired;
|
|
function deprecatedStr(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
return "[OzoneBridge] ".concat(e, " was deprecated, please use ").concat(r, ".").concat(i ? " Changelog for ".concat(i) : "")
|
|
}
|
|
function logDeprecated_warnDeprecated(e, r, i) {
|
|
(0,
|
|
Q.ZK)(deprecatedStr(e, r, i))
|
|
}
|
|
function ui_changeTitle(e) {
|
|
if (c.YF.isHarmony)
|
|
return (0,
|
|
H.dw)("changeTitle", e);
|
|
logDeprecated_warnDeprecated("changeTitle", "document.title = 'my title'");
|
|
var r = {
|
|
argsT: V().string.isRequired
|
|
};
|
|
return c.YF.isMiniprogram ? changeTitle(e) : bridgeAdapter_adapter("changeTitle", e, r)
|
|
}
|
|
function closeWindow() {
|
|
return (0,
|
|
H.dw)("closeWindow")
|
|
}
|
|
function confirmAntiSpam() {
|
|
return c.YF.isHarmony ? (0,
|
|
H.dw)("confirmAntiSpam") : bridgeAdapter_adapter("confirmAntiSpam")
|
|
}
|
|
function completeUrl_completeUrl(e) {
|
|
if (!e.startsWith("http"))
|
|
return e.startsWith("//") ? window.location.protocol + e : window.location.origin + e;
|
|
return e
|
|
}
|
|
i(63712),
|
|
function installPolyfill() {
|
|
if (c.YF.isMiniprogram) {
|
|
Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
});
|
|
return
|
|
}
|
|
if (!!c.YF.isXHS)
|
|
version_appVersionLt("6.36") && (window.open = function windowOpen(e) {
|
|
if (["redtop://", "uniik://"].some(function(r) {
|
|
return null == e ? void 0 : e.startsWith(r)
|
|
}))
|
|
window.location.href = e;
|
|
else {
|
|
var r = new URL(completeUrl_completeUrl(e));
|
|
r.searchParams.set("openPage", "yes"),
|
|
window.location.href = r.toString()
|
|
}
|
|
}
|
|
),
|
|
window.close = function windowClose() {
|
|
closeWindow()
|
|
}
|
|
,
|
|
c.YF.isAndroid && (appVersionEq("6.61") && !window.XHSEvents && (window.XHSEvents = {}),
|
|
version_appVersionLt("6.54") && Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
ui_changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
}))
|
|
}();
|
|
var er = i(41622)
|
|
, en = i(70879)
|
|
, ei = i(377);
|
|
i(15066);
|
|
var eo = i(36757);
|
|
function adaptGetDeviceInfo(e) {
|
|
return c.YF.isIOS && (e.deviceId = e.uniqueId),
|
|
e
|
|
}
|
|
function getDeviceInfoOld() {
|
|
if (c.YF.isHarmony)
|
|
return (0,
|
|
H.dw)("getDeviceInfo");
|
|
function imeiType() {
|
|
return version_appVersionLt("5.24") ? {} : c.YF.isIOS ? {
|
|
idfa: V().string.isRequired,
|
|
idfv: V().string.isRequired
|
|
} : {
|
|
imei: V().string.isRequired
|
|
}
|
|
}
|
|
var e = {
|
|
resT: V().shape((0,
|
|
en._)({
|
|
result: et,
|
|
appMarket: V().string.isRequired,
|
|
appVersion: V().string.isRequired,
|
|
buildNumber: V().string.isRequired,
|
|
systemVersion: V().string.isRequired,
|
|
deviceModel: V().string.isRequired,
|
|
manufacturer: V().string.isRequired,
|
|
timezone: V().string.isRequired,
|
|
deviceScreenWidth: V().number.isRequired,
|
|
deviceScreenHeight: V().number.isRequired,
|
|
carrier: V().string.isRequired,
|
|
uniqueId: V().string.isRequired
|
|
}, c.YF.isIOS ? {
|
|
applepayInfo: V().bool.isRequired
|
|
} : {}, imeiType))
|
|
};
|
|
return bridgeAdapter_adapter("getDeviceInfo").then(function(r) {
|
|
var i = (0,
|
|
eo.Lg)(r);
|
|
return r.applepay_info && (i.applepay_info = r.applepay_info,
|
|
logDeprecated_warnDeprecated("res.applepay_info", "res.applepayInfo")),
|
|
checks_checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function getDeviceInfo() {
|
|
return _getDeviceInfo.apply(this, arguments)
|
|
}
|
|
function _getDeviceInfo() {
|
|
return (_getDeviceInfo = (0,
|
|
er._)(function() {
|
|
var e, r, i, a;
|
|
return (0,
|
|
ei.Jh)(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return a.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
H.dw)("getDeviceInfo")];
|
|
case 1:
|
|
if (r = (e = a.sent() || {}).result,
|
|
i = e.value,
|
|
0 === r)
|
|
return [2, adaptGetDeviceInfo(i)];
|
|
return [2, getDeviceInfoOld()];
|
|
case 2:
|
|
return a.sent(),
|
|
[2, getDeviceInfoOld()];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var ea = i(14978)
|
|
, es = i.n(ea)
|
|
, verifyInit_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, verifyInit_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function verifySdkInit() {
|
|
return verifyInit_awaiter(this, void 0, void 0, function() {
|
|
var e;
|
|
return verifyInit_generator(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
return e.trys.push([0, 3, , 4]),
|
|
[4, retry(verifyInit_ConfigHttp, {}, 2, 2)];
|
|
case 1:
|
|
return [4, loadScript(e.sent().sdkUrl)];
|
|
case 2:
|
|
case 3:
|
|
return e.sent(),
|
|
[3, 4];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function verifyInit_ConfigHttp() {
|
|
return L.ZP.http.post("".concat(getRedHost()).concat("/api/redcaptcha/v2/getconfig"), {}, {
|
|
withCredentials: !0,
|
|
transform: !1
|
|
})
|
|
}
|
|
var __assign = function() {
|
|
return (__assign = Object.assign || function(e) {
|
|
for (var r, i = 1, a = arguments.length; i < a; i++)
|
|
for (var s in r = arguments[i],
|
|
r)
|
|
Object.prototype.hasOwnProperty.call(r, s) && (e[s] = r[s]);
|
|
return e
|
|
}
|
|
).apply(this, arguments)
|
|
}
|
|
, Captcha_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, Captcha_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function getCaptchaUrl(e, r, i, a, s, u) {
|
|
var c = encodeURIComponent(e)
|
|
, l = "".concat(getErrorPageHost(), "/web-login/captcha?redirectPath=").concat(c, "&callFrom=").concat(r);
|
|
return i && (l = "".concat(l, "&biz=").concat(i)),
|
|
a && (l = "".concat(l, "&verifyUuid=").concat(a)),
|
|
s && (l = "".concat(l, "&verifyType=").concat(s)),
|
|
u && (l = "".concat(l, "&verifyBiz=").concat(u)),
|
|
l
|
|
}
|
|
function triggerCaptcha(e, r, i) {
|
|
var a, s, u;
|
|
return Captcha_awaiter(this, void 0, void 0, function() {
|
|
var c, l, d, p, f, v, g, h, m, _, y, w, E, S, T, b, k, C, P, A, R, I, O;
|
|
return Captcha_generator(this, function(d) {
|
|
switch (d.label) {
|
|
case 0:
|
|
c = r.process461Response,
|
|
l = r.callFrom,
|
|
r.captchaOption,
|
|
p = r.captchaInCurrent,
|
|
f = (null == i ? void 0 : i.status) || "",
|
|
v = (null == i ? void 0 : i.headers) || {},
|
|
g = 461 === f && c,
|
|
h = 462 === f,
|
|
m = !L.ZP.isBrowser;
|
|
if (y = m ? e.context.ssrContext : {},
|
|
w = m ? getFullURIFromContext(y) : window.location.href,
|
|
E = m ? y.redirect : clientRedirect,
|
|
S = v["x-biz"],
|
|
T = v.verifyuuid,
|
|
b = v.verifytype,
|
|
k = f,
|
|
"301" === b)
|
|
return P = (C = window.location).host,
|
|
A = C.href,
|
|
clientRedirect("//".concat(P, "/login?redirectPath=").concat(encodeURIComponent(A))),
|
|
[2, i];
|
|
if ("302" === b)
|
|
return clientRedirect(location.origin),
|
|
[2, i];
|
|
if (R = getCaptchaUrl(w, l, S, T, b, k),
|
|
!h)
|
|
return [3, 2];
|
|
return [4, tryGenDeviceFingerprint(L.ZP.http, {
|
|
callFrom: l
|
|
}, i)];
|
|
case 1:
|
|
return [2, d.sent()];
|
|
case 2:
|
|
if (I = v.Resultpolicy || v.ResultPolicy || v.resultpolicy,
|
|
!g || "400" === I && (null === (a = null == i ? void 0 : i.data) || void 0 === a ? void 0 : a.code) >= 300030 && (null === (s = null == i ? void 0 : i.data) || void 0 === s ? void 0 : s.code) <= 300039)
|
|
return [2, i];
|
|
if (m)
|
|
return E(R),
|
|
[2, i];
|
|
try {
|
|
O = new utils_TriggerLogRequest(null === (u = null == i ? void 0 : i.config) || void 0 === u ? void 0 : u.url,k,T,b,!1),
|
|
triggerLog(O)
|
|
} catch (e) {}
|
|
return confirmAntiSpam().catch(es()(function() {
|
|
E(R)
|
|
}, 5e3)),
|
|
[2, i]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function riskVerify(e, r, i) {
|
|
var a, s, u, c;
|
|
return Captcha_awaiter(this, void 0, void 0, function() {
|
|
var e, l, d, p, f, v, g, h, m, _, y, w;
|
|
return Captcha_generator(this, function(E) {
|
|
if (e = (null == i ? void 0 : i.status) || "",
|
|
l = (null == i ? void 0 : i.headers) || {},
|
|
461 !== e && 471 !== e)
|
|
return [2, i];
|
|
if (l.verifytype && (null === (a = null == i ? void 0 : i.data) || void 0 === a ? void 0 : a.code) !== 0 && (null === (s = null == i ? void 0 : i.data) || void 0 === s ? void 0 : s.code) !== 200)
|
|
try {
|
|
triggerLog({
|
|
verifyBiz: null == i ? void 0 : i.status,
|
|
verifyUuid: l.riskuuid,
|
|
verifyType: l.verifytype,
|
|
verifyStatus: !1,
|
|
repeatVerify: !1
|
|
}, "not_match_verify_type_code_".concat(null === (u = null == i ? void 0 : i.data) || void 0 === u ? void 0 : u.code))
|
|
} catch (e) {}
|
|
if ("400" === (d = l.Resultpolicy || l.ResultPolicy || l.resultpolicy))
|
|
return (p = e,
|
|
f = d || "",
|
|
v = l.Riskuuid || l.RiskUuid || l.riskuuid || "",
|
|
g = __assign({}, i),
|
|
delete g.headers,
|
|
delete g.config,
|
|
h = encodeURIComponent(JSON.stringify(g)),
|
|
m = localStorage.getItem("xhs-pc-theme") || "",
|
|
null === (c = r.spamInterception) || void 0 === c ? void 0 : c.call(r, __assign(__assign({}, i), {
|
|
uuid: v,
|
|
verifySdkInit: verifySdkInit
|
|
}))) ? [2, i.data.code >= 300035 && i.data.code <= 300039 ? {
|
|
headers: null == i ? void 0 : i.headers,
|
|
data: i.data
|
|
} : {
|
|
headers: null == i ? void 0 : i.headers,
|
|
status: 200,
|
|
data: {
|
|
success: !1,
|
|
code: 300031,
|
|
data: null
|
|
}
|
|
}] : (_ = window.location.href,
|
|
y = "https://www.xiaohongshu.com",
|
|
(w = window.location.href).includes("sit") ? y = "http://www.sit.xiaohongshu.com" : w.includes("beta") && (y = "http://www.beta.xiaohongshu.com"),
|
|
clientRedirect("".concat(y, "/website-login/error?redirectPath=").concat(_, '"&httpStatus=').concat(p, "&verifyType=").concat(f, "&uuid=").concat(v, "&response=").concat(h, "&theme=").concat(m)),
|
|
[2]);
|
|
return [2, i]
|
|
})
|
|
})
|
|
}
|
|
var xCommonParams_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, xCommonParams_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function xCommonParams(e, r) {
|
|
return xCommonParams_awaiter(this, void 0, void 0, function() {
|
|
var i, a, s, u, l, d, p, f, v, g, h, m, _, y, w, E, S, T;
|
|
return xCommonParams_generator(this, function(T) {
|
|
switch (T.label) {
|
|
case 0:
|
|
if (i = e.platform,
|
|
a = e.includes,
|
|
s = e.carryDeviceInfo,
|
|
u = a.some(function(e) {
|
|
return r.url.includes(e)
|
|
}),
|
|
!(c.YF.isXHS && s && u))
|
|
return [2, r];
|
|
l = Date.now(),
|
|
p = (d = (0,
|
|
c.Vk)()).major,
|
|
f = d.minor,
|
|
v = d.patch,
|
|
g = getDeviceInfo(),
|
|
(h = new URLSearchParams).append("platform", i),
|
|
h.append("versionName", "".concat(p, ".").concat(f, ".").concat(v)),
|
|
T.label = 1;
|
|
case 1:
|
|
if (T.trys.push([1, 4, , 5]),
|
|
h.has("deviceId"))
|
|
return [3, 3];
|
|
return [4, g];
|
|
case 2:
|
|
_ = (m = T.sent()).deviceId,
|
|
y = m.uniqueId,
|
|
w = m.deviceFingerprint,
|
|
E = m.deviceFingerprint1,
|
|
S = m.fid,
|
|
h.append("deviceId", _ || y),
|
|
h.append("device_fingerprint", w),
|
|
h.append("device_fingerprint1", E),
|
|
h.append("fid", S),
|
|
T.label = 3;
|
|
case 3:
|
|
return [3, 5];
|
|
case 4:
|
|
return T.sent(),
|
|
[3, 5];
|
|
case 5:
|
|
return r.headers["xy-common-params"] = h.toString(),
|
|
logSec({
|
|
name: "anti_spam_sign_cost",
|
|
data: {
|
|
cost: Date.now() - l,
|
|
type: "xCommonParams",
|
|
source: null == r ? void 0 : r.url
|
|
}
|
|
}),
|
|
[2, r]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
var riskLogin_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, riskLogin_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
};
|
|
function riskLogin(e, r, i) {
|
|
return riskLogin_awaiter(this, void 0, void 0, function() {
|
|
var e, a;
|
|
return riskLogin_generator(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
e = r.forceLoginHook,
|
|
a.label = 1;
|
|
case 1:
|
|
if (a.trys.push([1, 4, , 5]),
|
|
!handlerRiskLogin(i))
|
|
return [2, i];
|
|
if ("function" != typeof e)
|
|
return [3, 3];
|
|
return [4, e()];
|
|
case 2:
|
|
a.sent(),
|
|
a.label = 3;
|
|
case 3:
|
|
return [3, 5];
|
|
case 4:
|
|
return a.sent(),
|
|
[3, 5];
|
|
case 5:
|
|
return [2, i]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function handlerRiskLogin(e) {
|
|
return 465 === Number((e || {}).status)
|
|
}
|
|
var riskVerify_awaiter = function(e, r, i, a) {
|
|
function adopt(e) {
|
|
return e instanceof i ? e : new i(function(r) {
|
|
r(e)
|
|
}
|
|
)
|
|
}
|
|
return new (i || (i = Promise))(function(i, s) {
|
|
function fulfilled(e) {
|
|
try {
|
|
step(a.next(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function rejected(e) {
|
|
try {
|
|
step(a.throw(e))
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
function step(e) {
|
|
e.done ? i(e.value) : adopt(e.value).then(fulfilled, rejected)
|
|
}
|
|
step((a = a.apply(e, r || [])).next())
|
|
}
|
|
)
|
|
}
|
|
, riskVerify_generator = function(e, r) {
|
|
var i, a, s, u, c = {
|
|
label: 0,
|
|
sent: function sent() {
|
|
if (1 & s[0])
|
|
throw s[1];
|
|
return s[1]
|
|
},
|
|
trys: [],
|
|
ops: []
|
|
};
|
|
return u = {
|
|
next: verb(0),
|
|
throw: verb(1),
|
|
return: verb(2)
|
|
},
|
|
"function" == typeof Symbol && (u[Symbol.iterator] = function() {
|
|
return this
|
|
}
|
|
),
|
|
u;
|
|
function verb(e) {
|
|
return function(r) {
|
|
return step([e, r])
|
|
}
|
|
}
|
|
function step(l) {
|
|
if (i)
|
|
throw TypeError("Generator is already executing.");
|
|
for (; u && (u = 0,
|
|
l[0] && (c = 0)),
|
|
c; )
|
|
try {
|
|
if (i = 1,
|
|
a && (s = 2 & l[0] ? a.return : l[0] ? a.throw || ((s = a.return) && s.call(a),
|
|
0) : a.next) && !(s = s.call(a, l[1])).done)
|
|
return s;
|
|
switch (a = 0,
|
|
s && (l = [2 & l[0], s.value]),
|
|
l[0]) {
|
|
case 0:
|
|
case 1:
|
|
s = l;
|
|
break;
|
|
case 4:
|
|
return c.label++,
|
|
{
|
|
value: l[1],
|
|
done: !1
|
|
};
|
|
case 5:
|
|
c.label++,
|
|
a = l[1],
|
|
l = [0];
|
|
continue;
|
|
case 7:
|
|
l = c.ops.pop(),
|
|
c.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(s = (s = c.trys).length > 0 && s[s.length - 1]) && (6 === l[0] || 2 === l[0])) {
|
|
c = 0;
|
|
continue
|
|
}
|
|
if (3 === l[0] && (!s || l[1] > s[0] && l[1] < s[3])) {
|
|
c.label = l[1];
|
|
break
|
|
}
|
|
if (6 === l[0] && c.label < s[1]) {
|
|
c.label = s[1],
|
|
s = l;
|
|
break
|
|
}
|
|
if (s && c.label < s[2]) {
|
|
c.label = s[2],
|
|
c.ops.push(l);
|
|
break
|
|
}
|
|
s[2] && c.ops.pop(),
|
|
c.trys.pop();
|
|
continue
|
|
}
|
|
l = r.call(e, c)
|
|
} catch (e) {
|
|
l = [6, e],
|
|
a = 0
|
|
} finally {
|
|
i = s = 0
|
|
}
|
|
if (5 & l[0])
|
|
throw l[1];
|
|
return {
|
|
value: l[0] ? l[1] : void 0,
|
|
done: !0
|
|
}
|
|
}
|
|
}
|
|
, eu = !1;
|
|
function triggerSpam(e, r, i) {
|
|
return riskVerify_awaiter(this, void 0, void 0, function() {
|
|
return riskVerify_generator(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
if ((null == i ? void 0 : i.status) !== 471)
|
|
return [3, 2];
|
|
return [4, initVerifySdk(i, r)];
|
|
case 1:
|
|
e.sent(),
|
|
e.label = 2;
|
|
case 2:
|
|
return [2, i]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function initVerifySdk(e, r) {
|
|
var i;
|
|
return riskVerify_awaiter(this, void 0, void 0, function() {
|
|
var a, s, u, c, l, d, p, f, v, g, h, m, _, y;
|
|
return riskVerify_generator(this, function(w) {
|
|
switch (w.label) {
|
|
case 0:
|
|
if (a = null == e ? void 0 : e.status,
|
|
u = (s = (null == e ? void 0 : e.headers) || {})["x-biz"],
|
|
c = s.verifyuuid,
|
|
l = s.verifytype,
|
|
d = a,
|
|
"301" === l)
|
|
return f = (p = window.location).host,
|
|
v = p.href,
|
|
clientRedirect("//".concat(f, "/login?redirectPath=").concat(encodeURIComponent(v))),
|
|
[2, e];
|
|
if ("302" === l)
|
|
return clientRedirect(location.origin),
|
|
[2, e];
|
|
try {
|
|
g = new utils_TriggerLogRequest(null === (i = null == e ? void 0 : e.config) || void 0 === i ? void 0 : i.url,d,c,l,eu),
|
|
triggerLog(g)
|
|
} catch (e) {}
|
|
if (!0 === eu)
|
|
return [2];
|
|
if (h = r.spamCallback,
|
|
m = r.onCaptchaClose,
|
|
y = {
|
|
type: "rotate",
|
|
mode: "popup",
|
|
verifyBiz: d || "471",
|
|
verifyUuid: c || "",
|
|
verifyType: l || "102",
|
|
biz: u,
|
|
platform: "web",
|
|
http: L.ZP.http,
|
|
onInit: function onInit() {
|
|
ubtTrack(c, "onInit")
|
|
},
|
|
onReady: function onReady() {
|
|
ubtTrack(c, "onReady")
|
|
},
|
|
onError: function onError(e, r, i) {
|
|
ubtTrack(e, "onError", "", JSON.stringify({
|
|
msg: r,
|
|
code: i
|
|
}))
|
|
},
|
|
onSuccess: function onSuccess(r) {
|
|
var i;
|
|
ubtTrack(c, "onSuccess", r),
|
|
null == _ || _.destroy(),
|
|
eu = !1,
|
|
"function" == typeof h && h(!0, null === (i = null == e ? void 0 : e.config) || void 0 === i ? void 0 : i.url)
|
|
},
|
|
onFailed: function onFailed(r) {
|
|
var i;
|
|
ubtTrack("onFail", r),
|
|
"function" == typeof h && h(!1, null === (i = null == e ? void 0 : e.config) || void 0 === i ? void 0 : i.url)
|
|
},
|
|
onClose: function onClose() {
|
|
ubtTrack("onClose"),
|
|
"function" == typeof m && m(),
|
|
eu = !1
|
|
}
|
|
},
|
|
window.initCaptcha)
|
|
return [3, 2];
|
|
return [4, verifySdkInit()];
|
|
case 1:
|
|
w.sent(),
|
|
w.label = 2;
|
|
case 2:
|
|
return _ = window.initCaptcha(y),
|
|
eu = !0,
|
|
[2]
|
|
}
|
|
})
|
|
})
|
|
}
|
|
function ubtTrack(e, r, i, a) {
|
|
var s = l.Z.get("gid")
|
|
, u = l.Z.get(d);
|
|
try {
|
|
var c = {
|
|
method: r,
|
|
rid: i || "",
|
|
verify_uuid: e || "",
|
|
web_id: u || "",
|
|
gid: s || "",
|
|
timestamp: +new Date,
|
|
extra_data: a || ""
|
|
}
|
|
, p = {
|
|
measurement_name: "infra_sec_verify_walify",
|
|
measurement_data: c
|
|
};
|
|
window.insight ? window.insight.sendCustomPoint(p) : window.eaglet && window.eaglet.push(p, "ApmXrayTracker")
|
|
} catch (e) {}
|
|
}
|
|
var ec = {
|
|
callFrom: "web",
|
|
carryDeviceInfo: !1,
|
|
includes: ["xiaohongshu.com"],
|
|
process461Response: !0,
|
|
captchaInCurrent: !1,
|
|
isHidden: "visible",
|
|
platform: "Windows",
|
|
forceLoginHook: void 0,
|
|
xsIgnore: [],
|
|
configInit: !1,
|
|
autoReload: !1,
|
|
disableMns: !1,
|
|
spamCallback: void 0,
|
|
onCaptchaClose: void 0,
|
|
onReadyToLoadJS: void 0,
|
|
loadTimeout: 4e3
|
|
}
|
|
, el = {
|
|
name: "AntiSpam",
|
|
install: function install(e, r, i) {
|
|
var a = r.http.interceptors.spam
|
|
, s = r.http.interceptors.dispatch;
|
|
ec.appId = "xhs-pc-web";
|
|
var u = Object.assign({}, ec, i);
|
|
if (r.isBrowser) {
|
|
!0 === window.sdt_source_init && (u.configInit = !0),
|
|
a.use(riskLogin.bind(null, e, u)),
|
|
a.use(riskVerify.bind(null, e, u)),
|
|
a.use(triggerCaptcha.bind(null, e, u)),
|
|
a.use(triggerSpam.bind(null, e, u)),
|
|
a.use(riskHandler.bind(null, e));
|
|
var p = (0,
|
|
c.Ij)();
|
|
u.platform = p,
|
|
s.use(signAdaptor.bind(this, u)),
|
|
r.http.interceptors.request.use(xCommonParams.bind(this, u)),
|
|
reportBroswerInfo(u, r),
|
|
updateHidden(u);
|
|
var f = l.Z.get("a1")
|
|
, v = l.Z.get(d)
|
|
, h = f && v && 52 === f.length
|
|
, m = +new Date + "";
|
|
if (l.Z.set(g, m, {
|
|
domain: "xiaohongshu.com",
|
|
expires: 365
|
|
}),
|
|
l.Z.set(g, m, {
|
|
domain: "xiaohongshu.hk",
|
|
expires: 365
|
|
}),
|
|
!h) {
|
|
for (var _ = "", y = 0; y < 1e3 && 52 !== _.length; )
|
|
_ = generateLocalId(p),
|
|
y++;
|
|
l.Z.set("a1", _, {
|
|
domain: "xiaohongshu.com",
|
|
expires: 365
|
|
}),
|
|
l.Z.set(d, N(_), {
|
|
domain: "xiaohongshu.com",
|
|
expires: 365
|
|
}),
|
|
l.Z.set("a1", _, {
|
|
domain: "xiaohongshu.hk",
|
|
expires: 365
|
|
}),
|
|
l.Z.set(d, N(_), {
|
|
domain: "xiaohongshu.hk",
|
|
expires: 365
|
|
})
|
|
}
|
|
u.captchaInCurrent && verifySdkInit()
|
|
}
|
|
}
|
|
}
|
|
},
|
|
92691: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Q: function() {
|
|
return e5
|
|
},
|
|
Z: function() {
|
|
return e8
|
|
}
|
|
});
|
|
var a, s, u, c, l, d, p = i(41622), f = i(51606), v = i(70879), g = i(27337), h = i(75649), m = i(31547), _ = i(377);
|
|
i(86651),
|
|
i(42876),
|
|
i(33933),
|
|
i(41593),
|
|
i(36277),
|
|
i(34333),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(75973),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(87989),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(19077),
|
|
i(7608),
|
|
i(97542),
|
|
i(80156),
|
|
i(50721),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(55947);
|
|
var y = i(63522);
|
|
i(72169),
|
|
i(58486);
|
|
var w = i(7862)
|
|
, E = i.n(w);
|
|
function isSupport_isSupport(e) {
|
|
var r = y.YF.isIOS ? window.webkit && window.webkit.messageHandlers : window.xhsbridge;
|
|
return r && !!r[e]
|
|
}
|
|
i(99808),
|
|
i(9557);
|
|
var S = "0";
|
|
if (y.YF.isXHS) {
|
|
var T = (0,
|
|
y.Vk)()
|
|
, b = T.major
|
|
, k = T.minor
|
|
, C = T.patch;
|
|
S = "".concat(b, ".").concat(k, ".").concat(C)
|
|
}
|
|
function coerce(e) {
|
|
var r = e.split(".").map(function(e) {
|
|
return Number.parseInt(e, 10)
|
|
});
|
|
return [r[0] || 0, r[1] || 0, r[2] || 0]
|
|
}
|
|
function compare(e, r) {
|
|
for (var i = coerce(e), a = coerce(r), s = 0, u = 0; u < 3; u++) {
|
|
if (i[u] > a[u])
|
|
return 1;
|
|
i[u] === a[u] && (s += 1)
|
|
}
|
|
return 3 === s ? 0 : -1
|
|
}
|
|
function version_appVersionLt(e) {
|
|
return 0 > compare(S, e)
|
|
}
|
|
function version_appVersionGte(e) {
|
|
return !version_appVersionLt(e)
|
|
}
|
|
function appVersionEq(e) {
|
|
return 0 === compare(S, e)
|
|
}
|
|
var P = i(35329)
|
|
, A = i(46490)
|
|
, R = i(27292)
|
|
, I = function(e) {
|
|
function BridgeError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
return (0,
|
|
A._)(this, BridgeError),
|
|
(r = (0,
|
|
P._)(this, BridgeError, (0,
|
|
h._)(a))).name = "BridgeError",
|
|
r.code = e,
|
|
r
|
|
}
|
|
return (0,
|
|
R._)(BridgeError, e),
|
|
BridgeError
|
|
}((0,
|
|
i(30961)._)(Error));
|
|
function bridge(e, r, i) {
|
|
var a = {};
|
|
if (void 0 !== r && (a.data = r),
|
|
i && (a.callback = i),
|
|
y.YF.isIOS) {
|
|
if ("registerNotice" === e && !version_appVersionLt("5.29") && version_appVersionLt("5.31")) {
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage({
|
|
data: i
|
|
})
|
|
} catch (e) {
|
|
throw new I("ERR_NATIVE",e.message)
|
|
}
|
|
return
|
|
}
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage(a)
|
|
} catch (r) {
|
|
throw new I("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
} else {
|
|
var s = JSON.stringify(a);
|
|
try {
|
|
window.xhsbridge[e](s)
|
|
} catch (r) {
|
|
throw new I("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
}
|
|
}
|
|
var O = i(4659);
|
|
function generateKey() {
|
|
return (0,
|
|
O.Z)().replace(/-/g, "_")
|
|
}
|
|
i(34885);
|
|
var N = i(72252);
|
|
function check(e, r, i, a) {
|
|
setTimeout(function() {
|
|
try {
|
|
E().checkPropTypes({
|
|
prop: e
|
|
}, {
|
|
prop: r
|
|
}, i, "ozone-bridge/".concat(a), !1, !0)
|
|
} catch (e) {
|
|
var s = e.stack.indexOf(e.message) > -1 ? e.stack : "Error: ".concat(e.message, "\n").concat(e.stack);
|
|
(0,
|
|
N.vU)(s, null, null, {
|
|
console: !0,
|
|
owl: !0
|
|
})
|
|
}
|
|
})
|
|
}
|
|
function checks_checkArgs(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
N.ZK)("argsT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "args", i)
|
|
}
|
|
function checks_checkRes(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
N.ZK)("resT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "res", i)
|
|
}
|
|
function escapeNewLineChars(e) {
|
|
return "string" == typeof e ? e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") : e
|
|
}
|
|
s = window.XHS_CALLBACKS || (window.XHS_CALLBACKS = {});
|
|
var L = {
|
|
add: function add(e, r, i) {
|
|
var a = "".concat(e, "_").concat(generateKey());
|
|
return s[a] = function callbackWrap(a) {
|
|
var s;
|
|
if (y.YF.isIOS || !version_appVersionLt("5.26.1"))
|
|
s = a;
|
|
else
|
|
try {
|
|
s = JSON.parse(escapeNewLineChars(a))
|
|
} catch (e) {
|
|
s = a
|
|
}
|
|
i && i.resT && checks_checkRes(s, i.resT, e),
|
|
r(s)
|
|
}
|
|
,
|
|
"XHS_CALLBACKS.".concat(a)
|
|
}
|
|
};
|
|
function bridgeAdapter_callbackAdapter(e, r, i, a) {
|
|
var s;
|
|
if (!isSupport_isSupport(e))
|
|
throw new I("ERR_NOT_SUPPORT","not support ".concat(e));
|
|
a && a.argsT && checks_checkArgs(r, a.argsT, e),
|
|
"function" == typeof i && (s = L.add(e, i, a)),
|
|
bridge(e, r, s)
|
|
}
|
|
function bridgeAdapter_adapter(e, r, i) {
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
var u = r
|
|
, c = i;
|
|
u && (u.argsT || u.resT) && (c = u,
|
|
u = void 0),
|
|
bridgeAdapter_callbackAdapter(e, u, a, c)
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
y.YF.isAndroid && version_appVersionLt("5.20");
|
|
function postNotice(e) {
|
|
var r = e.methodName
|
|
, i = e.data
|
|
, a = ("undefined" == typeof window ? "undefined" : (0,
|
|
m._)(window)) === "object" && "object" === (0,
|
|
m._)(window.wx) ? window.wx : null;
|
|
return a && a.miniProgram && a.miniProgram.postMessage ? (a.miniProgram.postMessage({
|
|
data: {
|
|
methodName: r,
|
|
data: i
|
|
}
|
|
}),
|
|
Promise.resolve()) : Promise.resolve()
|
|
}
|
|
function changeTitle() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
|
|
return postNotice({
|
|
methodName: "changeTitle",
|
|
data: {
|
|
title: e
|
|
}
|
|
})
|
|
}
|
|
i(25069);
|
|
var M = E().oneOf([0, -1]).isRequired;
|
|
function validators_urlType(e, r, i, a) {
|
|
if (e[r] && !/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.?%&=]*)?/.test(e[r]))
|
|
return Error("Invalid ".concat(a, " `").concat(r, "` => `").concat(JSON.stringify(e[r]), "` supplied to `").concat(i, "`, expected `url` pattern."))
|
|
}
|
|
function deprecatedStr(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
return "[OzoneBridge] ".concat(e, " was deprecated, please use ").concat(r, ".").concat(i ? " Changelog for ".concat(i) : "")
|
|
}
|
|
function logDeprecated_warnDeprecated(e, r, i) {
|
|
(0,
|
|
N.ZK)(deprecatedStr(e, r, i))
|
|
}
|
|
function ui_changeTitle(e) {
|
|
logDeprecated_warnDeprecated("changeTitle", "document.title = 'my title'");
|
|
var r = {
|
|
argsT: E().string.isRequired
|
|
};
|
|
return y.YF.isMiniprogram ? changeTitle(e) : bridgeAdapter_adapter("changeTitle", e, r)
|
|
}
|
|
function closeWindow() {
|
|
return bridgeAdapter_adapter("closeWindow")
|
|
}
|
|
function completeUrl_completeUrl(e) {
|
|
if (!e.startsWith("http"))
|
|
return e.startsWith("//") ? window.location.protocol + e : window.location.origin + e;
|
|
return e
|
|
}
|
|
(function installPolyfill() {
|
|
if (y.YF.isMiniprogram) {
|
|
Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
});
|
|
return
|
|
}
|
|
if (!!y.YF.isXHS)
|
|
version_appVersionLt("6.36") && (window.open = function windowOpen(e) {
|
|
var r = new URL(completeUrl_completeUrl(e));
|
|
r.searchParams.set("openPage", "yes"),
|
|
window.location.href = r.toString()
|
|
}
|
|
,
|
|
window.close = function windowClose() {
|
|
closeWindow()
|
|
}
|
|
),
|
|
y.YF.isAndroid && (appVersionEq("6.61") && !window.XHSEvents && (window.XHSEvents = {}),
|
|
version_appVersionLt("6.54") && Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
ui_changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
}))
|
|
}
|
|
)(),
|
|
i(15066);
|
|
var B = i(36757);
|
|
function data_getUserInfo() {
|
|
var e, r, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !1
|
|
};
|
|
var a = y.YF.isAndroid && (e = "6.5",
|
|
!version_appVersionLt("6.5")) || y.YF.isIOS && (r = "6.9",
|
|
!version_appVersionLt("6.9"))
|
|
, s = {
|
|
resT: E().shape({
|
|
result: M,
|
|
response: E().shape((0,
|
|
v._)({
|
|
userId: E().string.isRequired,
|
|
nickname: E().string.isRequired,
|
|
gender: E().number.isRequired,
|
|
userToken: E().string.isRequired,
|
|
image: validators_urlType.isRequired,
|
|
location: E().string.isRequired,
|
|
flags: E().shape({
|
|
fulishe: E().oneOfType([E().object]).isRequired,
|
|
shequ: E().oneOfType([E().object]).isRequired
|
|
})
|
|
}, version_appVersionLt("5.24") ? {} : {
|
|
lat: E().number.isRequired,
|
|
lon: E().number.isRequired,
|
|
sessionId: E().string.isRequired
|
|
}, a ? {
|
|
hashExp: E().string.isRequired
|
|
} : {}))
|
|
})
|
|
};
|
|
return bridgeAdapter_adapter("getUserInfo").then(function(e) {
|
|
var r = (0,
|
|
B.Lg)(e);
|
|
if (e.response && (e.response.flags && (e.response.flags.fulishe && (r.response.flags.fulishe = e.response.flags.fulishe),
|
|
e.response.flags.shequ && (r.response.flags.shequ = e.response.flags.shequ)),
|
|
e.response.user_id && (r.response.user_id = e.response.user_id,
|
|
logDeprecated_warnDeprecated("res.response.user_id", "res.response.userId")),
|
|
e.response.user_token && (r.response.user_token = e.response.user_token,
|
|
logDeprecated_warnDeprecated("res.response.user_token", "res.response.userToken")),
|
|
e.response.session_id && (r.response.session_id = e.response.session_id,
|
|
logDeprecated_warnDeprecated("res.response.session_id", "res.response.sessionId")),
|
|
e.response.images && !e.response.image && (r.response.image = e.response.images,
|
|
logDeprecated_warnDeprecated("res.response.images", "res.response.image"))),
|
|
checks_checkRes(r, s.resT),
|
|
i.extractValue) {
|
|
if (0 === r.result)
|
|
return r.response;
|
|
throw new I("ERR_RESULT_".concat(r.result),"res.result is not 0")
|
|
}
|
|
return r
|
|
})
|
|
}
|
|
let x = {
|
|
userId: "",
|
|
userToken: "",
|
|
sessionId: "",
|
|
hashExp: "",
|
|
flags: {}
|
|
};
|
|
function getABInfoByBridge() {
|
|
return data_getUserInfo({
|
|
extractValue: !0
|
|
}).then(e => {
|
|
let {userId: r, userToken: i, sessionId: a, hashExp: s, flags: u} = e;
|
|
return r && (x.userId = r),
|
|
i && (x.userToken = i),
|
|
a && (x.sessionId = a),
|
|
s && "string" == typeof s && (x.hashExp = s),
|
|
u && (x.flags = u),
|
|
x
|
|
}
|
|
)
|
|
}
|
|
function getABInfo() {
|
|
return getABInfoByBridge().catch( () => x)
|
|
}
|
|
function getFlagValue(...e) {
|
|
return getABInfo().then(r => {
|
|
let {flags: i} = r
|
|
, a = [];
|
|
return e.forEach(e => {
|
|
if (!i.shequ && !i.fulishe) {
|
|
a.push(void 0);
|
|
return
|
|
}
|
|
let r = i.shequ[e]
|
|
, s = i.fulishe[e];
|
|
void 0 !== r ? a.push(r) : void 0 !== s ? a.push(s) : a.push(void 0)
|
|
}
|
|
),
|
|
1 === a.length ? a[0] : a
|
|
}
|
|
)
|
|
}
|
|
var D = i(90251)
|
|
, getDomTrackerData = function getDomTrackerData1(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]
|
|
, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
|
|
if (!e || e === document.body || i > 20)
|
|
return null;
|
|
if (e.hasAttribute("data-eaglet") || e.hasAttribute("eaglet"))
|
|
return e;
|
|
var a = e.hasAttribute("eaglet-no-propagation");
|
|
return r || a ? null : getDomTrackerData(null == e ? void 0 : e.parentNode, !1, ++i)
|
|
};
|
|
function getPostData(e) {
|
|
var r, i, a, s, u = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], c = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "click";
|
|
if (!e)
|
|
throw Error("targetDom should not be ".concat(e));
|
|
var l = null
|
|
, d = null;
|
|
if ("click" === c ? l = getDomTrackerData(e, u) : "impression" === c && (l = e),
|
|
!l)
|
|
return;
|
|
if ("click" === c ? d = l.dataset.eaglet || l.getAttribute("eaglet") : "impression" === c && (d = l.dataset.impression || l.dataset.eaglet || l.getAttribute("eaglet")),
|
|
!!d) {
|
|
var p = JSON.parse(d);
|
|
Number(null == p ? void 0 : null === (i = p.event) || void 0 === i ? void 0 : null === (r = i.value) || void 0 === r ? void 0 : r.pointId) >= 2e4 && l.dataset.eaglet && l.dataset.impression;
|
|
return p
|
|
}
|
|
}
|
|
var F = function() {
|
|
function ClickCollector(e) {
|
|
var r = this;
|
|
(0,
|
|
A._)(this, ClickCollector),
|
|
(0,
|
|
f._)(this, "tracker", void 0),
|
|
this.tracker = e,
|
|
document.body.addEventListener("click", function(e) {
|
|
var i = e.target
|
|
, a = r.getData(i);
|
|
a && r.tracker.push(a)
|
|
}, !0)
|
|
}
|
|
return (0,
|
|
D._)(ClickCollector, [{
|
|
key: "getData",
|
|
value: function getData(e) {
|
|
var r = getPostData(e);
|
|
if (!!r) {
|
|
if (r.event) {
|
|
if (r.event.value.action) {
|
|
if ("impression" === r.event.value.action.value)
|
|
return
|
|
} else
|
|
r.event.value.action = {
|
|
type: "NormalizedAction",
|
|
value: "click"
|
|
},
|
|
r.event.value.seAction = "click"
|
|
} else
|
|
r.event = {
|
|
type: "Event",
|
|
value: {
|
|
action: {
|
|
type: "NormalizedAction",
|
|
value: "click"
|
|
},
|
|
seAction: "click"
|
|
}
|
|
};
|
|
return r
|
|
}
|
|
}
|
|
}]),
|
|
ClickCollector
|
|
}();
|
|
function createClickCollector(e) {
|
|
return new F(e)
|
|
}
|
|
var V = function() {
|
|
function ImpressionCollector(e) {
|
|
var r = this;
|
|
(0,
|
|
A._)(this, ImpressionCollector),
|
|
(0,
|
|
f._)(this, "tracker", void 0),
|
|
(0,
|
|
f._)(this, "countDown", void 0),
|
|
(0,
|
|
f._)(this, "intervalTimer", void 0),
|
|
(0,
|
|
f._)(this, "intervalTickCount", void 0),
|
|
(0,
|
|
f._)(this, "warningShown", void 0),
|
|
(0,
|
|
f._)(this, "countDownTimer", void 0),
|
|
this.tracker = e,
|
|
this.countDown = null,
|
|
this.intervalTimer = 0,
|
|
this.intervalTickCount = 0,
|
|
this.countDownTimer = 0,
|
|
this.warningShown = !1,
|
|
this.postData(),
|
|
this.checkByEvent(),
|
|
this.checkByInterval(),
|
|
document.addEventListener("trigger-impression", function() {
|
|
r.postData()
|
|
})
|
|
}
|
|
return (0,
|
|
D._)(ImpressionCollector, [{
|
|
key: "checkByEvent",
|
|
value: function checkByEvent() {
|
|
var e = this
|
|
, r = this.isSupportTouch() ? "touchmove" : "scroll";
|
|
window.addEventListener(r, function() {
|
|
e.postData()
|
|
}, !1)
|
|
}
|
|
}, {
|
|
key: "checkByInterval",
|
|
value: function checkByInterval() {
|
|
var e = this;
|
|
this.intervalTickCount <= 120 && (this.intervalTimer = window.setTimeout(function() {
|
|
e.intervalTickCount += 1,
|
|
e.postData(),
|
|
e.checkByInterval()
|
|
}, 5e3))
|
|
}
|
|
}, {
|
|
key: "postData",
|
|
value: function postData() {
|
|
var e = this;
|
|
this.countDownTimer && clearTimeout(this.countDownTimer),
|
|
this.countDownTimer = window.setTimeout(function() {
|
|
var r = (0,
|
|
h._)(document.querySelectorAll("[eaglet]"));
|
|
r.length > 0 && !e.warningShown && (console.warn("[WebTracker] custom data attribute `eaglet` was deprecated, please use `data-eaglet` instead"),
|
|
e.warningShown = !0);
|
|
var i = (0,
|
|
h._)(document.querySelectorAll("[data-eaglet],[data-impression]"));
|
|
(0,
|
|
h._)(r).concat((0,
|
|
h._)(i)).forEach(function(r) {
|
|
var i;
|
|
if (!((null === (i = r.dataset) || void 0 === i ? void 0 : i.eagletImp) || r.getAttribute("data-eaglet-imp"))) {
|
|
var a = e.isInnerWindow(r)
|
|
, s = e.isHidden(r);
|
|
if (a && s) {
|
|
var u = e.getData(r);
|
|
r.setAttribute("data-eaglet-imp", "true"),
|
|
u && e.tracker.push(u)
|
|
}
|
|
}
|
|
})
|
|
}, 500)
|
|
}
|
|
}, {
|
|
key: "getData",
|
|
value: function getData(e) {
|
|
var r, i, a, s, u = getPostData(e, !0, "impression");
|
|
if (!!u)
|
|
return u.event ? (u.event.value.action = {
|
|
type: "NormalizedAction",
|
|
value: "impression"
|
|
},
|
|
u.event.value.seAction = "impression",
|
|
(null === (i = u.event) || void 0 === i ? void 0 : null === (r = i.value) || void 0 === r ? void 0 : r.pointId) !== void 0 && (null === (s = u.event) || void 0 === s ? void 0 : null === (a = s.value) || void 0 === a ? void 0 : a.pointId) < 2e4 && delete u.event.value.pointId) : u.event = {
|
|
type: "Event",
|
|
value: {
|
|
action: {
|
|
type: "NormalizedAction",
|
|
value: "impression"
|
|
},
|
|
seAction: "impression"
|
|
}
|
|
},
|
|
u
|
|
}
|
|
}, {
|
|
key: "isSupportTouch",
|
|
value: function isSupportTouch() {
|
|
return "ontouchmove"in document
|
|
}
|
|
}, {
|
|
key: "isInnerWindow",
|
|
value: function isInnerWindow(e) {
|
|
var r = window.innerHeight
|
|
, i = window.innerWidth;
|
|
if (e && "function" == typeof e.getBoundingClientRect) {
|
|
var a = e.getBoundingClientRect()
|
|
, s = a.bottom >= 0 && a.top + .3 * a.height < r
|
|
, u = a.right >= 0 && a.left + .3 * a.width < i
|
|
, c = a.bottom >= 0 && .3 <= (r - a.top) / window.screen.height
|
|
, l = a.right >= 0 && .3 <= (i - a.left) / window.screen.width;
|
|
return s && u || c && l
|
|
}
|
|
return !1
|
|
}
|
|
}, {
|
|
key: "isHidden",
|
|
value: function isHidden(e) {
|
|
var r = window.getComputedStyle(e)
|
|
, i = r.getPropertyValue("position")
|
|
, a = r.getPropertyValue("display");
|
|
return "fixed" === i && "none" !== a || !!e.offsetParent
|
|
}
|
|
}]),
|
|
ImpressionCollector
|
|
}();
|
|
function createImpressionCollector(e) {
|
|
return new V(e)
|
|
}
|
|
var H = i(64593);
|
|
i(43648);
|
|
var U = i(65266)
|
|
, q = i(71022);
|
|
i(87394),
|
|
i(94941),
|
|
i(48421);
|
|
var j = i(44501);
|
|
i(1154),
|
|
i(80013),
|
|
i(57745),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057);
|
|
var W = ["t.xiaohongshu.com", "spltest.xiaohongshu.com", "t2.xiaohongshu.com", "t2-test.xiaohongshu.com", "lng.xiaohongshu.com", "apm-track.xiaohongshu.com", "apm-track-test.xiaohongshu.com", "fse.xiaohongshu.com", "fse.devops.xiaohongshu.com", "fesentry.xiaohongshu.com"]
|
|
, G = /\/\/(\S+?)[/|:]/;
|
|
function helpers_now() {
|
|
return Date.now() || +new Date
|
|
}
|
|
function isForbiddenUrl() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : W;
|
|
return r.some(function(r) {
|
|
return -1 !== e.indexOf(r)
|
|
})
|
|
}
|
|
function getTimeFromMarks(e, r) {
|
|
var i = (0,
|
|
j._)(e.filter(function(e) {
|
|
return e.name === r
|
|
}), 1)[0];
|
|
return i ? i.startTime : null
|
|
}
|
|
function toDict() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
return e.toJSON && "function" == typeof e.toJSON ? e.toJSON() : Object.keys(Object.getPrototypeOf(e)).reduce(function(r, i) {
|
|
return "function" != typeof e[i] && (r[i] = e[i]),
|
|
r
|
|
}, {})
|
|
}
|
|
var J = Object.prototype.toString
|
|
, isUndef = function(e) {
|
|
return null == e
|
|
}
|
|
, isFunc = function(e) {
|
|
return "function" == typeof e
|
|
}
|
|
, X = ["connectEnd", "connectStart", "domComplete", "domContentLoadedEventEnd", "domContentLoadedEventStart", "domInteractive", "domLoading", "domainLookupEnd", "domainLookupStart", "fetchStart", "loadEventEnd", "loadEventStart", "navigationStart", "redirectEnd", "redirectStart", "requestStart", "responseEnd", "responseStart", "secureConnectionStart", "unloadEventEnd", "unloadEventStart"]
|
|
, Y = {}
|
|
, z = []
|
|
, K = helpers_now();
|
|
function resetEntries(e) {
|
|
var r = {}
|
|
, i = [];
|
|
z.forEach(function(a) {
|
|
a.entryType !== e && (r[a.name] = a,
|
|
i.push(a))
|
|
}),
|
|
Y = r,
|
|
z = i
|
|
}
|
|
function removeEntry(e, r) {
|
|
if (isUndef(r)) {
|
|
resetEntries(e);
|
|
return
|
|
}
|
|
z = z.filter(function(i) {
|
|
return i.name !== r || i.entryType !== e
|
|
});
|
|
var i = Y[r];
|
|
i && i.entryType === e && (Y[r] = void 0)
|
|
}
|
|
function ShadowPerformanceEntry(e, r, i, a) {
|
|
this.name = e,
|
|
this.duration = a,
|
|
this.entryType = r,
|
|
this.startTime = i
|
|
}
|
|
function wrap(e) {
|
|
function setupPolyfill(r, i) {
|
|
isUndef(e.performance[r]) && (e.performance[r] = i)
|
|
}
|
|
return e.performance = e.performance || {},
|
|
setupPolyfill("now", function() {
|
|
return "function" == typeof K ? helpers_now() - K() : helpers_now() - K
|
|
}),
|
|
setupPolyfill("mark", function(e) {
|
|
if (X.indexOf(e) >= 0)
|
|
throw Error("Failed to execute 'mark' on 'Performance': '".concat(e, "' is part of the PerformanceTiming interface, and cannot be used as a mark name."));
|
|
var r = new ShadowPerformanceEntry(e,"mark",performance.now(),0);
|
|
z.push(r),
|
|
Y[e] = r
|
|
}),
|
|
setupPolyfill("measure", function(e, r, i) {
|
|
var a = 0
|
|
, s = 0
|
|
, u = helpers_now();
|
|
if (isUndef(r))
|
|
a = 0;
|
|
else if (Y[r])
|
|
a = Y[r].startTime;
|
|
else
|
|
throw Error("Failed to execute 'measure' on 'Performance': The mark '".concat(r, "' dose not exist."));
|
|
if (isUndef(i))
|
|
s = u;
|
|
else if (Y[i])
|
|
s = Y[i].startTime;
|
|
else
|
|
throw Error("Failed to execute 'measure' on 'Performance': The mark '".concat(i, "' dose not exist."));
|
|
var c = new ShadowPerformanceEntry(e,"measure",a,s - a);
|
|
z.push(c),
|
|
Y[e] = c
|
|
}),
|
|
setupPolyfill("clearMarks", function(e) {
|
|
removeEntry("mark", e)
|
|
}),
|
|
setupPolyfill("clearMeasures", function(e) {
|
|
removeEntry("measure", e)
|
|
}),
|
|
setupPolyfill("getEntries", function(e) {
|
|
var r, i = z;
|
|
return isUndef(e) ? i : (e.entryType ? r = e.name ? function(r) {
|
|
return r.entryType === e.entryType && r.name === e.name
|
|
}
|
|
: function(r) {
|
|
return r.entryType === e.entryType
|
|
}
|
|
: e.name && (r = function(r) {
|
|
return r.name === e.name
|
|
}
|
|
),
|
|
i.filter(r))
|
|
}),
|
|
setupPolyfill("getEntriesByName", function(r, i) {
|
|
var a = {
|
|
name: r
|
|
};
|
|
return i && (a.entryType = i),
|
|
e.performance.getEntries(a)
|
|
}),
|
|
setupPolyfill("getEntriesByType", function(r) {
|
|
return e.performance.getEntries({
|
|
entryType: r
|
|
})
|
|
}),
|
|
e.performance.setupPolyfill = setupPolyfill,
|
|
e.performance.setNavigationStart = function(e) {
|
|
K = e
|
|
}
|
|
,
|
|
e.performance
|
|
}
|
|
ShadowPerformanceEntry.prototype.toJSON = function toJSON() {
|
|
return {
|
|
name: this.name,
|
|
duration: this.duration,
|
|
entryType: this.entryType,
|
|
startTime: this.startTime
|
|
}
|
|
}
|
|
;
|
|
function supportNavigationTiming() {
|
|
return !!(window.performance && window.performance.timing)
|
|
}
|
|
function supportUserTiming() {
|
|
return !!(window.performance.mark && window.performance.measure && window.performance.clearMarks && window.performance.clearMeasures && window.performance.getEntries && window.performance.getEntriesByType && window.performance.getEntriesByName)
|
|
}
|
|
wrap(window);
|
|
var Z = i(34134)
|
|
, Q = function() {
|
|
function PerfTiming() {
|
|
(0,
|
|
A._)(this, PerfTiming)
|
|
}
|
|
return (0,
|
|
D._)(PerfTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
return {}
|
|
}
|
|
}, {
|
|
key: "responseCatchHook",
|
|
value: function responseCatchHook(e, r, i) {
|
|
return e
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe() {}
|
|
}, {
|
|
key: "validate",
|
|
value: function validate(e, r) {
|
|
for (; r.length; ) {
|
|
var i, a = r.shift();
|
|
if (!a.prop)
|
|
break;
|
|
if (a.default && (e[a.prop] = a.default),
|
|
a.required && !e[a.prop])
|
|
throw Error("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is missing"));
|
|
var s = !0;
|
|
if (a.validator && isFunc(a.validator))
|
|
s = a.validator(e[a.prop], e);
|
|
else {
|
|
;if (a.pattern && (i = a.pattern,
|
|
J.call(i, "[object RegExp]")))
|
|
s = a.pattern.test(e[a.prop])
|
|
}
|
|
if (!s)
|
|
throw TypeError("[".concat(this.constructor.name, "] Property '").concat(a.prop, "' is invalid"))
|
|
}
|
|
}
|
|
}]),
|
|
PerfTiming
|
|
}();
|
|
function getPaintTimes() {
|
|
var e = null
|
|
, r = null
|
|
, i = window.performance.getEntriesByType("paint");
|
|
if (i && i.length)
|
|
e = getTimeFromMarks(i, "first-paint"),
|
|
r = getTimeFromMarks(i, "first-contentful-paint");
|
|
else {
|
|
if ("number" != typeof window.performance.timing.msFirstPaint)
|
|
return null;
|
|
e = window.performance.timing.msFirstPaint - window.performance.timing.navigationStart
|
|
}
|
|
return {
|
|
firstPaint: e,
|
|
firstContentfulPaint: r
|
|
}
|
|
}
|
|
var $ = new (function(e) {
|
|
function BrowserPaintTiming() {
|
|
return (0,
|
|
A._)(this, BrowserPaintTiming),
|
|
(0,
|
|
P._)(this, BrowserPaintTiming, arguments)
|
|
}
|
|
return (0,
|
|
R._)(BrowserPaintTiming, e),
|
|
(0,
|
|
D._)(BrowserPaintTiming, [{
|
|
key: "observe",
|
|
value: function observe() {
|
|
return Z.Z.get().then(function(e) {
|
|
var r = e.firstPaint
|
|
, i = e.firstContentfulPaint
|
|
, a = e.firstMeaningfulPaint
|
|
, s = e.fullyLoaded
|
|
, u = e.firstScreen
|
|
, c = getPaintTimes();
|
|
return !c && (c = {
|
|
firstPaint: void 0 === r ? null : r,
|
|
firstContentfulPaint: void 0 === i ? null : i
|
|
}),
|
|
{
|
|
paintTimes: c,
|
|
fullyLoaded: void 0 === s ? null : s,
|
|
firstMeaningfulPaint: void 0 === a ? null : a,
|
|
firstScreenPaint: void 0 === u ? null : u
|
|
}
|
|
})
|
|
}
|
|
}]),
|
|
BrowserPaintTiming
|
|
}(Q));
|
|
new (function(e) {
|
|
function BrowserServerTiming() {
|
|
return (0,
|
|
A._)(this, BrowserServerTiming),
|
|
(0,
|
|
P._)(this, BrowserServerTiming, arguments)
|
|
}
|
|
return (0,
|
|
R._)(BrowserServerTiming, e),
|
|
(0,
|
|
D._)(BrowserServerTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = (0,
|
|
j._)(window.performance.getEntriesByType("navigation"), 1)[0];
|
|
return e && e.serverTiming || []
|
|
}
|
|
}]),
|
|
BrowserServerTiming
|
|
}(Q)),
|
|
i(95477);
|
|
var ee = new (function(e) {
|
|
function BrowserResourceTiming() {
|
|
return (0,
|
|
A._)(this, BrowserResourceTiming),
|
|
(0,
|
|
P._)(this, BrowserResourceTiming, arguments)
|
|
}
|
|
return (0,
|
|
R._)(BrowserResourceTiming, e),
|
|
(0,
|
|
D._)(BrowserResourceTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = window.performance.getEntriesByType("resource")
|
|
, r = this.filterResources(e).map(function(e) {
|
|
var r = e.toJSON();
|
|
try {
|
|
r.hostname = r.name.match(G)[1]
|
|
} catch (e) {}
|
|
return delete r.serverTiming,
|
|
delete r.workerTiming,
|
|
r
|
|
});
|
|
return isFunc(window.performance.clearResourceTimings) && window.performance.clearResourceTimings(),
|
|
r
|
|
}
|
|
}, {
|
|
key: "filterResources",
|
|
value: function filterResources() {
|
|
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], r = [], i = 0; i < e.length; i++) {
|
|
var a = e[i];
|
|
if (!(isUndef(a.toJSON) || !isFunc(a.toJSON) || 0 === a.name.indexOf("data:") || 0 === a.name.indexOf("about:") || 0 === a.name.indexOf("javascript:") || isForbiddenUrl(a.name)))
|
|
r.push(a)
|
|
}
|
|
return r
|
|
}
|
|
}]),
|
|
BrowserResourceTiming
|
|
}(Q))
|
|
, et = new (function(e) {
|
|
function BrowserNavigationTiming() {
|
|
return (0,
|
|
A._)(this, BrowserNavigationTiming),
|
|
(0,
|
|
P._)(this, BrowserNavigationTiming, arguments)
|
|
}
|
|
return (0,
|
|
R._)(BrowserNavigationTiming, e),
|
|
(0,
|
|
D._)(BrowserNavigationTiming, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
var e = toDict(window.performance.timing);
|
|
return void 0 !== e.timeToNonBlankPaint && delete e.timeToNonBlankPaint,
|
|
void 0 !== e.timeToDOMContentFlushed && delete e.timeToDOMContentFlushed,
|
|
e
|
|
}
|
|
}]),
|
|
BrowserNavigationTiming
|
|
}(Q));
|
|
function serializeParams() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return Object.keys(r).reduce(function(e, i) {
|
|
var a = r[i];
|
|
if (!a)
|
|
return e;
|
|
var s = "".concat(encodeURIComponent(i), "=").concat(encodeURIComponent(a));
|
|
return -1 === e.indexOf("?") ? e += "?".concat(s) : e += "&".concat(s),
|
|
e
|
|
}, e)
|
|
}
|
|
i(74719),
|
|
i(13396),
|
|
i(91313);
|
|
var er = function() {
|
|
function HttpTracker() {
|
|
(0,
|
|
A._)(this, HttpTracker),
|
|
this.entryHash = {}
|
|
}
|
|
return (0,
|
|
D._)(HttpTracker, [{
|
|
key: "resetEntryHash",
|
|
value: function resetEntryHash() {
|
|
this.entryHash = {}
|
|
}
|
|
}, {
|
|
key: "track",
|
|
value: function track(e, r) {
|
|
if (!e)
|
|
throw Error("[apm-metrics] mark name is required");
|
|
var i = this.entryHash[e];
|
|
void 0 !== i ? (performance.mark("".concat(e, "_end")),
|
|
this.entryHash[e] = (0,
|
|
v._)({}, i, r)) : (performance.mark("".concat(e, "_start")),
|
|
this.entryHash[e] = r)
|
|
}
|
|
}, {
|
|
key: "measure",
|
|
value: function measure(e) {
|
|
var r = this.entryHash[e];
|
|
if (!r)
|
|
return {};
|
|
try {
|
|
performance.measure(e, "".concat(e, "_start"), "".concat(e, "_end"))
|
|
} catch (e) {
|
|
return {}
|
|
}
|
|
var i = (0,
|
|
j._)(performance.getEntriesByName(e, "measure"), 1)[0];
|
|
return (0,
|
|
g._)((0,
|
|
v._)({}, r), {
|
|
measure: toDict(i)
|
|
})
|
|
}
|
|
}]),
|
|
HttpTracker
|
|
}();
|
|
function createHttpTracker() {
|
|
return new er
|
|
}
|
|
var en = Array(16);
|
|
function mathRNG() {
|
|
for (var e, r = 0; r < 16; r++)
|
|
(3 & r) == 0 && (e = 0x100000000 * Math.random()),
|
|
en[r] = e >>> ((3 & r) << 3) & 255;
|
|
return en
|
|
}
|
|
var ei = "x-b3-traceid"
|
|
, eo = new (function(e) {
|
|
function BrowserHttpRequestTiming() {
|
|
var e;
|
|
return (0,
|
|
A._)(this, BrowserHttpRequestTiming),
|
|
e = (0,
|
|
P._)(this, BrowserHttpRequestTiming, arguments),
|
|
(0,
|
|
f._)(e, "httpTracker", {}),
|
|
e
|
|
}
|
|
return (0,
|
|
R._)(BrowserHttpRequestTiming, e),
|
|
(0,
|
|
D._)(BrowserHttpRequestTiming, [{
|
|
key: "measure",
|
|
value: function measure(e, r) {
|
|
this.httpTracker.track(e, r);
|
|
var i = this.httpTracker.measure(e)
|
|
, a = i.measure
|
|
, s = void 0 === a ? {} : a
|
|
, u = (0,
|
|
H._)(i, ["measure"]);
|
|
return s.name = u.url,
|
|
delete u.url,
|
|
{
|
|
meta: u,
|
|
measure: s
|
|
}
|
|
}
|
|
}, {
|
|
key: "observe",
|
|
value: function observe() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, i = this
|
|
, a = r.httpClient
|
|
, s = r.callback
|
|
, u = r.enableResponseData
|
|
, c = void 0 !== u && u;
|
|
this.validate(r, [{
|
|
prop: "httpClient",
|
|
required: !0
|
|
}, {
|
|
prop: "callback",
|
|
required: !0,
|
|
validator: function(e) {
|
|
return "function" == typeof e
|
|
}
|
|
}]),
|
|
this.httpTracker = createHttpTracker(),
|
|
a.interceptors.request.use(function(r) {
|
|
return !isForbiddenUrl(r.url) && (r.rid = (0,
|
|
O.Z)({
|
|
rng: mathRNG
|
|
}),
|
|
e.httpTracker.track(r.rid, {
|
|
method: r.method,
|
|
matchedPath: r.matchedPath,
|
|
traceId: r.headers[ei]
|
|
})),
|
|
r
|
|
}),
|
|
a.interceptors.response.use(function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
, a = arguments.length > 2 ? arguments[2] : void 0
|
|
, u = null !== (m = null != a ? a : r.config) && void 0 !== m ? m : {};
|
|
if (isForbiddenUrl(u.url))
|
|
return e;
|
|
var l = r.request || {}
|
|
, d = {
|
|
status: r.status,
|
|
url: l.responseURL
|
|
}
|
|
, p = i.measure(u.rid, d);
|
|
if (p.meta.url = u.url,
|
|
u.level && (p.meta.level = u.level),
|
|
!0 === c) {
|
|
if (e && "[object FormData]" === Object.prototype.toString.call(e)) {
|
|
var f = {}
|
|
, v = !0
|
|
, g = !1
|
|
, h = void 0;
|
|
try {
|
|
for (var m, _, y = e.entries()[Symbol.iterator](); !(v = (_ = y.next()).done); v = !0) {
|
|
var w = _.value;
|
|
f[w[0]] = w[1]
|
|
}
|
|
} catch (e) {
|
|
g = !0,
|
|
h = e
|
|
} finally {
|
|
try {
|
|
!v && null != y.return && y.return()
|
|
} finally {
|
|
if (g)
|
|
throw h
|
|
}
|
|
}
|
|
p.meta.data = JSON.stringify(f)
|
|
} else
|
|
e && (p.meta.data = JSON.stringify(e))
|
|
}
|
|
return void 0 !== e.success && !1 == !!e.success && (p.meta.errorType = "HTTPBizError",
|
|
p.meta.errorCode = e.code,
|
|
p.meta.errorMsg = e.msg),
|
|
s(p),
|
|
e
|
|
}, function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
, u = arguments.length > 2 ? arguments[2] : void 0
|
|
, c = null !== (g = null != u ? u : r ? r.config : {}) && void 0 !== g ? g : {}
|
|
, l = {
|
|
meta: {
|
|
method: c.method,
|
|
matchedPath: c.matchedPath,
|
|
status: e.status || e.statusCode || 0,
|
|
errorType: e.name,
|
|
traceId: c.headers[ei],
|
|
url: c.url,
|
|
errorMsg: e.message
|
|
},
|
|
measure: {
|
|
entryType: "measure",
|
|
name: serializeParams(c.url, null !== (h = c.params) && void 0 !== h ? h : {})
|
|
}
|
|
};
|
|
if (c.level && (l.meta.level = c.level),
|
|
["HTTPClientError", "HTTPServerError"].includes(e.name)) {
|
|
if (c.params && Object.keys(c.params).length > 0 && isFunc(a.getUri) && (l.meta.url = a.getUri(c)),
|
|
c.data && "[object FormData]" === Object.prototype.toString.call(c.data)) {
|
|
var d = {}
|
|
, p = !0
|
|
, f = !1
|
|
, v = void 0;
|
|
try {
|
|
for (var g, h, m, _ = c.data.entries()[Symbol.iterator](); !(p = (m = _.next()).done); p = !0) {
|
|
var y = m.value;
|
|
d[y[0]] = y[1]
|
|
}
|
|
} catch (e) {
|
|
f = !0,
|
|
v = e
|
|
} finally {
|
|
try {
|
|
!p && null != _.return && _.return()
|
|
} finally {
|
|
if (f)
|
|
throw v
|
|
}
|
|
}
|
|
l.meta.data = JSON.stringify(d)
|
|
} else
|
|
c.data && (l.meta.data = JSON.stringify(c.data));
|
|
"HTTPClientError" === e.name ? e.code && "N/A" !== e.code && (l.meta.code = e.code) : "HTTPServerError" === e.name && e.code && "N/A" !== e.code && (l.meta.errorCode = e.code),
|
|
s(i.responseCatchHook(l, e, c))
|
|
}
|
|
throw e
|
|
})
|
|
}
|
|
}]),
|
|
BrowserHttpRequestTiming
|
|
}(Q));
|
|
function getMemory() {
|
|
var e = toDict(window.performance.memory);
|
|
return {
|
|
jsHeapSizeLimit: e.jsHeapSizeLimit,
|
|
totalJsHeapSize: e.totalJSHeapSize,
|
|
usedJsHeapSize: e.usedJSHeapSize
|
|
}
|
|
}
|
|
function getNetwork() {
|
|
var e = toDict(window.navigator.connection);
|
|
return void 0 !== e.onchange && delete e.onchange,
|
|
{
|
|
downlink: e.downlink,
|
|
effectiveType: e.effectiveType,
|
|
rtt: e.rtt,
|
|
saveData: e.saveData,
|
|
type: e.type
|
|
}
|
|
}
|
|
function getRenderTimes() {
|
|
var e = window.performance.getEntriesByType("mark");
|
|
return {
|
|
firstRenderStart: getTimeFromMarks(e, "firstRenderStart"),
|
|
clientRenderStart: getTimeFromMarks(e, "clientRenderStart")
|
|
}
|
|
}
|
|
function getScriptsExecutionTiming() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window.__SCRIPTS_EXECUTION_TIMING__;
|
|
return (e || []).map(function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = (0,
|
|
v._)({}, e);
|
|
return r.endTime && r.startTime ? (r.duration = r.endTime - r.startTime,
|
|
delete r.endTime) : r.duration = 0,
|
|
r
|
|
})
|
|
}
|
|
function getResourceError() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "__APM__ResourceErrorTracker__"
|
|
, r = JSON.parse(localStorage.getItem(e));
|
|
if (null == r ? void 0 : r.length) {
|
|
for (var i = [], a = [], s = 0; s < r.length; s++)
|
|
if ("xhs-pc-web" === r[s].projectName) {
|
|
var u = r[s]
|
|
, c = (u.projectName,
|
|
(0,
|
|
H._)(u, ["projectName"]));
|
|
i.push(c)
|
|
} else
|
|
r[s].projectName && a.push(r[s]);
|
|
return localStorage.setItem(e, JSON.stringify(a)),
|
|
i
|
|
}
|
|
return []
|
|
}
|
|
var ea = new (function(e) {
|
|
function EnhancedMetrics() {
|
|
return (0,
|
|
A._)(this, EnhancedMetrics),
|
|
(0,
|
|
P._)(this, EnhancedMetrics, arguments)
|
|
}
|
|
return (0,
|
|
R._)(EnhancedMetrics, e),
|
|
(0,
|
|
D._)(EnhancedMetrics, [{
|
|
key: "timing",
|
|
value: function timing() {
|
|
return {
|
|
memory: getMemory(),
|
|
network: getNetwork(),
|
|
renderTimes: getRenderTimes(),
|
|
scriptsExecutionTiming: getScriptsExecutionTiming(),
|
|
resourceError: getResourceError()
|
|
}
|
|
}
|
|
}]),
|
|
EnhancedMetrics
|
|
}(Q));
|
|
function splitEntries() {
|
|
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 30, i = []; e.length; ) {
|
|
var a = e.slice(0, r);
|
|
i.push(a),
|
|
e = e.slice(r)
|
|
}
|
|
return i
|
|
}
|
|
var es = function() {
|
|
function PerformanceCollector(e) {
|
|
var r = this
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
(0,
|
|
A._)(this, PerformanceCollector),
|
|
(0,
|
|
f._)(this, "tracker", void 0),
|
|
this.tracker = e,
|
|
this.observeRequestTiming(i),
|
|
window.addEventListener("load", function() {
|
|
return setTimeout(function() {
|
|
return r.track()
|
|
}, 0)
|
|
}),
|
|
supportUserTiming() && (this.observePaintTiming(),
|
|
this.handleResourceBuffer())
|
|
}
|
|
return (0,
|
|
D._)(PerformanceCollector, [{
|
|
key: "handleResourceBuffer",
|
|
value: function handleResourceBuffer() {
|
|
var e = this;
|
|
window.performance.onresourcetimingbufferfull = window.performance.onwebkitresourcetimingbufferfull = function() {
|
|
e.sendResourceBuffer()
|
|
}
|
|
,
|
|
(0,
|
|
q.Ld)("viewDidDisappear", function() {
|
|
return e.sendResourceBuffer()
|
|
})
|
|
}
|
|
}, {
|
|
key: "getResourceTiming",
|
|
value: function getResourceTiming() {
|
|
return {
|
|
type: "BrowserResourceTiming",
|
|
value: ee.timing()
|
|
}
|
|
}
|
|
}, {
|
|
key: "track",
|
|
value: function track() {
|
|
var e, r = ea.timing();
|
|
this.sendMetrics({
|
|
browserMemory: {
|
|
type: "BrowserMemory",
|
|
value: r.memory
|
|
}
|
|
}),
|
|
this.sendMetrics({
|
|
browserNetwork: {
|
|
type: "BrowserNetwork",
|
|
value: r.network
|
|
}
|
|
}),
|
|
supportNavigationTiming() && this.sendMetrics({
|
|
browserNavigationTiming: {
|
|
type: "BrowserNavigationTiming",
|
|
value: et.timing()
|
|
}
|
|
}),
|
|
r.scriptsExecutionTiming.length > 0 && this.sendMetrics({
|
|
browserScriptsExecutionTiming: {
|
|
type: "BrowserPerformanceMeasure",
|
|
value: r.scriptsExecutionTiming
|
|
}
|
|
}),
|
|
supportUserTiming() && (this.sendMetrics({
|
|
browserResourceTiming: this.getResourceTiming()
|
|
}),
|
|
r.renderTimes && this.sendMetrics({
|
|
browserRenderTimes: {
|
|
type: "BrowserRenderTimes",
|
|
value: r.renderTimes
|
|
}
|
|
})),
|
|
(null === (e = r.resourceError) || void 0 === e ? void 0 : e.length) > 0 && this.sendMetrics({
|
|
browserResourceError: {
|
|
type: "BrowserResourceError",
|
|
value: r.resourceError
|
|
}
|
|
})
|
|
}
|
|
}, {
|
|
key: "detectBrowserFeatures",
|
|
value: function detectBrowserFeatures() {
|
|
var e = this
|
|
, r = {
|
|
type: "BrowserModernizrFeature",
|
|
value: []
|
|
};
|
|
Promise.all([i.e("39"), i.e("37")]).then(i.t.bind(i, 51951, 23)).then(function() {
|
|
Object.keys(window.Modernizr).forEach(function(e) {
|
|
var i = window.Modernizr[e];
|
|
"boolean" == typeof i ? r.value.push({
|
|
name: e,
|
|
isSupport: i
|
|
}) : r.value.push({
|
|
name: e,
|
|
detail: JSON.stringify(i)
|
|
})
|
|
}),
|
|
e.sendMetrics({
|
|
browserModernizrFeature: r
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
key: "observePaintTiming",
|
|
value: function observePaintTiming() {
|
|
var e = this;
|
|
$.observe().then(function(r) {
|
|
var i = r.paintTimes
|
|
, a = (0,
|
|
H._)(r, ["paintTimes"]);
|
|
e.sendMetrics({
|
|
browserPaintTimes: {
|
|
type: "BrowserPaintTimes",
|
|
value: i
|
|
}
|
|
}),
|
|
e.sendMetrics({
|
|
browserFmpTimes: {
|
|
type: "BrowserFmpTimes",
|
|
value: a
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
key: "observeRequestTiming",
|
|
value: function observeRequestTiming() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
eo.observe((0,
|
|
v._)({
|
|
httpClient: U.dJ,
|
|
callback: function(r) {
|
|
var i;
|
|
e.sendMetrics({
|
|
measurement_name: "httpRequestTiming",
|
|
measurement_data: (0,
|
|
g._)((0,
|
|
v._)({}, r.meta || void 0), {
|
|
duration: null === (i = r.measure) || void 0 === i ? void 0 : i.duration
|
|
})
|
|
})
|
|
}
|
|
}, r))
|
|
}
|
|
}, {
|
|
key: "sendMetrics",
|
|
value: function sendMetrics() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
if (!!this.tracker && void 0 !== this.tracker.push && "function" == typeof this.tracker.push && 0 !== Object.keys(e).length) {
|
|
if (e.measurement_name) {
|
|
this.tracker.push(e, "ApmXrayTracker");
|
|
return
|
|
}
|
|
this.tracker.push({
|
|
browserApmTracker: {
|
|
type: "BrowserApmTracker",
|
|
value: e
|
|
}
|
|
}, "ApmTracker")
|
|
}
|
|
}
|
|
}, {
|
|
key: "sendResourceBuffer",
|
|
value: function sendResourceBuffer() {
|
|
var e = this.getResourceTiming()
|
|
, r = e.type
|
|
, i = e.value;
|
|
if (!!i.length)
|
|
for (var a = splitEntries(i, 50); a.length; )
|
|
this.sendMetrics((0,
|
|
f._)({}, r, {
|
|
type: r,
|
|
value: a.shift()
|
|
}))
|
|
}
|
|
}]),
|
|
PerformanceCollector
|
|
}();
|
|
function createPerformanceCollector(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return new es(e,r)
|
|
}
|
|
var eu = i(28934);
|
|
i(85203);
|
|
var ec = {
|
|
android: "7617000",
|
|
ios: "7700000"
|
|
}
|
|
, el = ["pageview", "page_end", "page_info", "impression", "modal_show", "modal_hide", "popup_show", "popup_hide"]
|
|
, ed = ["undefined", "default", "back", "foreground"]
|
|
, ep = ""
|
|
, ef = {
|
|
value: "default"
|
|
}
|
|
, judgePlatform = function() {
|
|
if (y.YF.isIOS)
|
|
return y.YF.isXHS ? "iOS" : "iOSBrowser";
|
|
if (y.YF.isAndroid)
|
|
return y.YF.isXHS ? "Android" : "AndroidBrowser";
|
|
return "PC"
|
|
}
|
|
, getPointInfo = function(e, r) {
|
|
var i, a, s, u, c, l, d, p, f, v, g, h, m, _, y, w, E, S = "", T = "", b = 0, k = 0, C = 0, P = 0, A = 0, R = 0;
|
|
if ((null === (a = e.event) || void 0 === a ? void 0 : null === (i = a.value) || void 0 === i ? void 0 : i.pointId) && (b = e.event.value.pointId),
|
|
null === (c = e.page) || void 0 === c ? void 0 : null === (u = c.value) || void 0 === u ? void 0 : null === (s = u.pageInstance) || void 0 === s ? void 0 : s.value) {
|
|
S = e.page.value.pageInstance.value;
|
|
var I = e.page.value.pageInstance.value.toUpperCase();
|
|
k = (null == r ? void 0 : r.PageInstance["".concat(I)]) || 0
|
|
}
|
|
if (null === (p = e.event) || void 0 === p ? void 0 : null === (d = p.value) || void 0 === d ? void 0 : null === (l = d.action) || void 0 === l ? void 0 : l.value) {
|
|
var O = e.event.value.action.value.toUpperCase();
|
|
C = (null == r ? void 0 : r.NormalizedAction["".concat(O)]) || 0
|
|
}
|
|
if (null === (g = e.event) || void 0 === g ? void 0 : null === (v = g.value) || void 0 === v ? void 0 : null === (f = v.actionInteractionType) || void 0 === f ? void 0 : f.value) {
|
|
var N = e.event.value.actionInteractionType.value.toUpperCase();
|
|
P = (null == r ? void 0 : r.ActionInteractionType["".concat(N)]) || 0
|
|
}
|
|
if (null === (_ = e.event) || void 0 === _ ? void 0 : null === (m = _.value) || void 0 === m ? void 0 : null === (h = m.targetType) || void 0 === h ? void 0 : h.value) {
|
|
var L = e.event.value.targetType.value.toUpperCase();
|
|
A = (null == r ? void 0 : r.RichTargetType["".concat(L)]) || 0
|
|
}
|
|
if (null === (E = e.event) || void 0 === E ? void 0 : null === (w = E.value) || void 0 === w ? void 0 : null === (y = w.targetDisplayType) || void 0 === y ? void 0 : y.value) {
|
|
var M = e.event.value.targetDisplayType.value.toUpperCase();
|
|
R = (null == r ? void 0 : r.TargetDisplayType["".concat(M)]) || 0
|
|
}
|
|
return T = "".concat(k, "^").concat(C, "^").concat(P, "^").concat(A, "^").concat(R),
|
|
{
|
|
pointId: b,
|
|
pageInstanceStr: S,
|
|
pageInstance: k,
|
|
action: C,
|
|
actionInteractionType: P,
|
|
targetType: A,
|
|
targetDisplayType: R,
|
|
referKey: T
|
|
}
|
|
};
|
|
function flowSourcePointProcess(e, r) {
|
|
return _flowSourcePointProcess.apply(this, arguments)
|
|
}
|
|
function _flowSourcePointProcess() {
|
|
return (_flowSourcePointProcess = (0,
|
|
p._)(function(e, r) {
|
|
var i, a, s, u, c, l, d, p, f, v, g, h, m, y, w, E, S, T, b, k, C, P, A, R, I, O, N, L, M, B, x, D, F;
|
|
return (0,
|
|
_.Jh)(this, function(_) {
|
|
switch (_.label) {
|
|
case 0:
|
|
if (v = null == e ? void 0 : null === (a = e.app) || void 0 === a ? void 0 : null === (i = a.value) || void 0 === i ? void 0 : i.buildId,
|
|
"PC" === (g = judgePlatform()) || "iOSBrowser" === g || "AndroidBrowser" === g || "Android" === g && v < ec.android || "iOS" === g && v < ec.ios)
|
|
return [2, e];
|
|
if ((null === (c = e.event) || void 0 === c ? void 0 : null === (u = c.value) || void 0 === u ? void 0 : null === (s = u.action) || void 0 === s ? void 0 : s.value) !== "pageview")
|
|
return [3, 8];
|
|
y = (m = getPointInfo(e, r)).pointId,
|
|
w = m.pageInstanceStr,
|
|
E = m.referKey,
|
|
S = {
|
|
type: 2,
|
|
spv_type: ef.value,
|
|
page_instance: w
|
|
},
|
|
y ? S.point_id = y : (S.point_id = 0,
|
|
S.refer_key = E),
|
|
_.label = 1;
|
|
case 1:
|
|
return _.trys.push([1, 3, , 4]),
|
|
[4, (0,
|
|
eu.dw)("addApmReferV2", S)];
|
|
case 2:
|
|
return _.sent(),
|
|
[3, 4];
|
|
case 3:
|
|
return T = _.sent(),
|
|
k = /^(addApmReferV2).*-12002_.*/i,
|
|
T.message && k.test(T.message) ? (C = T.message.split(":")[1].trim(),
|
|
ep = '[{"t":"E","m":"'.concat(C, '"}]')) : ep = '[{"t":"E","m":"-1010"}]',
|
|
e.event.value.rp = ep,
|
|
(null === (b = e.page) || void 0 === b ? void 0 : b.value) && (e.page.value.spvType = S.spv_type),
|
|
ef.value = "default",
|
|
[2, e];
|
|
case 4:
|
|
return _.trys.push([4, 6, , 7]),
|
|
[4, (0,
|
|
eu.dw)("getApmReferPathV2", {})];
|
|
case 5:
|
|
return ep = null == (P = _.sent()) ? void 0 : P.value,
|
|
[3, 7];
|
|
case 6:
|
|
return _.sent(),
|
|
ep = '[{"t":"E","m":"-1010"}]',
|
|
e.event.value.rp = ep,
|
|
(null === (R = e.page) || void 0 === R ? void 0 : R.value) && (e.page.value.spvType = S.spv_type),
|
|
ef.value = "default",
|
|
[2, e];
|
|
case 7:
|
|
e.event.value.rp = ep,
|
|
(null === (h = e.page) || void 0 === h ? void 0 : h.value) && (e.page.value.spvType = S.spv_type),
|
|
ef.value = "default",
|
|
_.label = 8;
|
|
case 8:
|
|
if (-1 !== el.indexOf(null === (p = e.event) || void 0 === p ? void 0 : null === (d = p.value) || void 0 === d ? void 0 : null === (l = d.action) || void 0 === l ? void 0 : l.value))
|
|
return [3, 12];
|
|
O = (I = getPointInfo(e, r)).pointId,
|
|
N = I.pageInstanceStr,
|
|
L = I.referKey,
|
|
M = {
|
|
type: 1,
|
|
page_instance: N
|
|
},
|
|
O ? M.point_id = O : (M.point_id = 0,
|
|
M.refer_key = L),
|
|
_.label = 9;
|
|
case 9:
|
|
return _.trys.push([9, 11, , 12]),
|
|
[4, (0,
|
|
eu.dw)("addApmReferV2", M)];
|
|
case 10:
|
|
return _.sent(),
|
|
[3, 12];
|
|
case 11:
|
|
return B = _.sent(),
|
|
D = /^(addApmReferV2).*-12002_.*/i,
|
|
B.message && D.test(B.message) ? (F = B.message.split(":")[1].trim(),
|
|
ep = '[{"t":"E","m":"'.concat(F, '"}]')) : ep = '[{"t":"E","m":"-1010"}]',
|
|
(null === (x = e.event) || void 0 === x ? void 0 : x.value) && (e.event.value.rp = ep),
|
|
[2, e];
|
|
case 12:
|
|
return (null === (f = e.event) || void 0 === f ? void 0 : f.value) && (e.event.value.rp = ep),
|
|
[2, e]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function flowSourceConfig() {
|
|
window.addEventListener("customPopState", function(e) {
|
|
ef.value = e.detail.spvType
|
|
})
|
|
}
|
|
var ev = {
|
|
PAGEVIEW: {
|
|
AFTEREACH: 1,
|
|
VIEWDIDAPPEAR: 2,
|
|
FOCUS: 3,
|
|
VISIBLE: 4
|
|
},
|
|
PAGE_END: {
|
|
BEFOREEACH: 1,
|
|
VIEWDIDDISAPPEAR: 2,
|
|
BLUR: 3,
|
|
HIDDEN: 4,
|
|
BEFOREUNLOAD: 5
|
|
}
|
|
}
|
|
, eg = {
|
|
value: !1
|
|
}
|
|
, eh = !0
|
|
, duration_judgePlatform = function() {
|
|
if (y.YF.isIOS)
|
|
return y.YF.isXHS ? "iOS" : "iOSBrowser";
|
|
if (y.YF.isAndroid)
|
|
return y.YF.isXHS ? "Android" : "AndroidBrowser";
|
|
return "PC"
|
|
}
|
|
, em = 0
|
|
, reportPv = function(e, r, i, a, s) {
|
|
eh = !1,
|
|
a.then(function() {
|
|
var a;
|
|
if ("function" == typeof (null == i ? void 0 : null === (a = i.meta) || void 0 === a ? void 0 : a.getTrackerData)) {
|
|
var u, c = i.meta.getTrackerData(i);
|
|
c instanceof Promise ? c.then(function(r) {
|
|
var i;
|
|
e.push((0,
|
|
g._)((0,
|
|
v._)({}, r), {
|
|
page: {
|
|
type: "Page",
|
|
value: (0,
|
|
v._)({
|
|
initiatorType: s
|
|
}, null == r ? void 0 : null === (i = r.page) || void 0 === i ? void 0 : i.value)
|
|
}
|
|
}))
|
|
}) : c && e.push((0,
|
|
g._)((0,
|
|
v._)({}, c), {
|
|
page: {
|
|
type: "Page",
|
|
value: (0,
|
|
v._)({
|
|
initiatorType: s
|
|
}, null == c ? void 0 : null === (u = c.page) || void 0 === u ? void 0 : u.value)
|
|
}
|
|
}))
|
|
} else if (r)
|
|
throw Error("[eagletPlugin] `getTrackerData` in route.meta is necessary when use liteTracker!");
|
|
else
|
|
e.flush({
|
|
event: {
|
|
type: "Event",
|
|
value: {
|
|
action: {
|
|
type: "NormalizedAction",
|
|
value: "pageview"
|
|
},
|
|
seAction: "pageview"
|
|
}
|
|
},
|
|
page: {
|
|
type: "Page",
|
|
value: {
|
|
initiatorType: s
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
, e_ = function() {
|
|
function PageDurationCollector(e, r, i, a) {
|
|
var s = this;
|
|
(0,
|
|
A._)(this, PageDurationCollector),
|
|
(0,
|
|
f._)(this, "tracker", void 0),
|
|
(0,
|
|
f._)(this, "firstEnter", void 0),
|
|
(0,
|
|
f._)(this, "pageStartTime", void 0),
|
|
(0,
|
|
f._)(this, "trackPageView", void 0),
|
|
(0,
|
|
f._)(this, "blurAndVisibilityFlag", void 0),
|
|
(0,
|
|
f._)(this, "route", void 0),
|
|
(0,
|
|
f._)(this, "durationMsData", void 0),
|
|
(0,
|
|
f._)(this, "appearListener", void 0),
|
|
(0,
|
|
f._)(this, "disappearListener", void 0),
|
|
(0,
|
|
f._)(this, "appearListenerIOS", void 0),
|
|
(0,
|
|
f._)(this, "disappearListenerIOS", void 0),
|
|
this.tracker = r,
|
|
this.firstEnter = !0,
|
|
this.pageStartTime = Date.now(),
|
|
this.trackPageView = a.trackPageView,
|
|
this.blurAndVisibilityFlag = {
|
|
pvReady: !1,
|
|
peReady: !0
|
|
},
|
|
this.route = {},
|
|
this.durationMsData = 0,
|
|
this.appearListener = {
|
|
remove: function() {
|
|
return null
|
|
}
|
|
},
|
|
this.disappearListener = {
|
|
remove: function() {
|
|
return null
|
|
}
|
|
},
|
|
this.appearListenerIOS = {
|
|
remove: function() {
|
|
return null
|
|
}
|
|
},
|
|
this.disappearListenerIOS = {
|
|
remove: function() {
|
|
return null
|
|
}
|
|
};
|
|
var trackPageEnd = function(e, r) {
|
|
i.then(function() {
|
|
if (!eh) {
|
|
em = -1,
|
|
s.durationMsData = s.durationMs();
|
|
var a, u = e || s.route;
|
|
if ("function" == typeof (null == u ? void 0 : null === (a = u.meta) || void 0 === a ? void 0 : a.getPageEnd)) {
|
|
var c = u.meta.getPageEnd(s.route);
|
|
i.then(function() {
|
|
if (c instanceof Promise)
|
|
c.then(function(e) {
|
|
var i, a = (0,
|
|
g._)((0,
|
|
v._)({}, e), {
|
|
page: {
|
|
type: "Page",
|
|
value: (0,
|
|
v._)({
|
|
initiatorType: r,
|
|
durationMs: s.durationMsData
|
|
}, null == e ? void 0 : null === (i = e.page) || void 0 === i ? void 0 : i.value)
|
|
}
|
|
});
|
|
eg.value && (a._uba_sendBeacon = !0,
|
|
eg.value = !1),
|
|
s.tracker.push(a),
|
|
eh = !0
|
|
});
|
|
else {
|
|
var e, i = (0,
|
|
g._)((0,
|
|
v._)({}, c), {
|
|
page: {
|
|
type: "Page",
|
|
value: (0,
|
|
v._)({
|
|
initiatorType: r,
|
|
durationMs: s.durationMsData
|
|
}, null == c ? void 0 : null === (e = c.page) || void 0 === e ? void 0 : e.value)
|
|
}
|
|
});
|
|
eg.value && (i._uba_sendBeacon = !0,
|
|
eg.value = !1),
|
|
s.tracker.push(i),
|
|
eh = !0
|
|
}
|
|
s.pageStartTime = 0
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
, getTrackerData = function(e) {
|
|
reportPv(s.tracker, void 0, s.route, i, e)
|
|
}
|
|
, handleViewDisappear = function(e) {
|
|
var r, i, a = null === (i = s.route) || void 0 === i ? void 0 : null === (r = i.meta) || void 0 === r ? void 0 : r.pageInstance;
|
|
!s.firstEnter && s.trackPageView && a && trackPageEnd(s.route, e)
|
|
}
|
|
, handleDidViewAppear = function(e, r) {
|
|
var i, a, u = (null == e ? void 0 : e.result) || 1;
|
|
ef.value = ed[u],
|
|
s.firstEnter = !1,
|
|
s.pageStartTime = Date.now();
|
|
var c = null === (a = s.route) || void 0 === a ? void 0 : null === (i = a.meta) || void 0 === i ? void 0 : i.pageInstance;
|
|
s.trackPageView && c && getTrackerData(r)
|
|
}
|
|
, handleVisibleVisible = function(e) {
|
|
s.pageStartTime = Date.now();
|
|
var r, i, a = null === (i = s.route) || void 0 === i ? void 0 : null === (r = i.meta) || void 0 === r ? void 0 : r.pageInstance;
|
|
s.trackPageView && a && getTrackerData(e)
|
|
}
|
|
, handleVisibleHidden = function(e) {
|
|
var r, i, a = null === (i = s.route) || void 0 === i ? void 0 : null === (r = i.meta) || void 0 === r ? void 0 : r.pageInstance;
|
|
s.trackPageView && a && trackPageEnd(s.route, e)
|
|
}
|
|
, viewDidAppear = function(e) {
|
|
if (0 === em) {
|
|
em = -1;
|
|
return
|
|
}
|
|
handleDidViewAppear(e, ev.PAGEVIEW.VIEWDIDAPPEAR)
|
|
}
|
|
, viewDidDisAppear = function(e) {
|
|
!e && (e = ev.PAGE_END.VIEWDIDDISAPPEAR),
|
|
handleViewDisappear(e)
|
|
}
|
|
, viewDidDisAppearWrapper = function() {
|
|
viewDidDisAppear(ev.PAGE_END.VIEWDIDDISAPPEAR)
|
|
}
|
|
, visibilitychangeVisible = function(e) {
|
|
handleVisibleVisible(e)
|
|
}
|
|
, visibilitychangeHidden = function(e) {
|
|
handleVisibleHidden(e)
|
|
};
|
|
y.YF.isXHS ? ("Android" === duration_judgePlatform() && (this.appearListener = (0,
|
|
eu.Ld)("viewDidAppear", viewDidAppear),
|
|
this.disappearListener = (0,
|
|
eu.Ld)("viewDidDisappear", viewDidDisAppearWrapper)),
|
|
"iOS" === duration_judgePlatform() && (this.appearListenerIOS = (0,
|
|
eu.Ld)("viewDidAppear", viewDidAppear),
|
|
this.disappearListenerIOS = (0,
|
|
eu.Ld)("viewDisappear", viewDidDisAppearWrapper))) : (window.addEventListener("visibilitychange", function() {
|
|
"visible" === document.visibilityState && s.blurAndVisibilityFlag.pvReady ? (s.updateBlurAndVisibilityFlag(!1, !0),
|
|
visibilitychangeVisible(ev.PAGEVIEW.VISIBLE)) : "hidden" === document.visibilityState && s.blurAndVisibilityFlag.peReady && (s.updateBlurAndVisibilityFlag(!0, !1),
|
|
visibilitychangeHidden(ev.PAGE_END.HIDDEN))
|
|
}),
|
|
window.addEventListener("beforeunload", function() {
|
|
if ("hidden" !== document.visibilityState)
|
|
eg.value = !0,
|
|
s.updateBlurAndVisibilityFlag(!0, !1),
|
|
viewDidDisAppear(ev.PAGE_END.BEFOREUNLOAD)
|
|
}),
|
|
window.addEventListener("focus", function() {
|
|
s.blurAndVisibilityFlag.pvReady && (s.updateBlurAndVisibilityFlag(!1, !0),
|
|
visibilitychangeVisible(ev.PAGEVIEW.FOCUS))
|
|
}),
|
|
window.addEventListener("blur", function() {
|
|
s.blurAndVisibilityFlag.peReady && (s.updateBlurAndVisibilityFlag(!0, !1),
|
|
visibilitychangeHidden(ev.PAGE_END.BLUR))
|
|
}));
|
|
var handleBeforeRouteViewDisappear = function(e, r) {
|
|
var i, a = null === (i = s.route.meta) || void 0 === i ? void 0 : i.pageInstance;
|
|
s.firstEnter ? s.firstEnter = !1 : s.trackPageView && a && trackPageEnd(e, r)
|
|
}
|
|
, handlerAfterRouteDidViewAppear = function(e) {
|
|
s.route = e,
|
|
s.pageStartTime = Date.now()
|
|
};
|
|
e.router.beforeEach(function(e, r, i) {
|
|
handleBeforeRouteViewDisappear(r, ev.PAGE_END.BEFOREEACH),
|
|
"function" == typeof i && i()
|
|
}),
|
|
e.router.afterEach(function(e, r) {
|
|
handlerAfterRouteDidViewAppear(e)
|
|
})
|
|
}
|
|
return (0,
|
|
D._)(PageDurationCollector, [{
|
|
key: "durationMs",
|
|
value: function durationMs() {
|
|
return 0 === this.pageStartTime ? 0 : Date.now() - this.pageStartTime
|
|
}
|
|
}, {
|
|
key: "updateBlurAndVisibilityFlag",
|
|
value: function updateBlurAndVisibilityFlag(e, r) {
|
|
this.blurAndVisibilityFlag.pvReady = e,
|
|
this.blurAndVisibilityFlag.peReady = r
|
|
}
|
|
}]),
|
|
PageDurationCollector
|
|
}();
|
|
function createPageDurationCollector(e, r, i, a) {
|
|
return new e_(e,r,i,a)
|
|
}
|
|
function isHTTPError(e) {
|
|
return ["HTTPClientError", "HTTPServerError", "HTTPBizError"].includes(e)
|
|
}
|
|
function ignoreDefaultError(e) {
|
|
return !!(e.errorType && isHTTPError(e.errorType)) || "AbortError" === e.errorType && "AbortError" === e.errorMessage || !1
|
|
}
|
|
function isIgnoreErrors(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : []
|
|
, i = "".concat(null == e ? void 0 : e.errorType, ": ").concat(null == e ? void 0 : e.errorMessage);
|
|
return r.includes(i)
|
|
}
|
|
function getErrorOptions(e) {
|
|
var r = e || {}
|
|
, i = r.level
|
|
, a = r.title
|
|
, s = r.extra
|
|
, u = void 0 === s ? null : s;
|
|
return {
|
|
errorLevel: i,
|
|
errorExtra: JSON.stringify((0,
|
|
v._)({
|
|
title: a
|
|
}, (void 0 === u ? "undefined" : (0,
|
|
m._)(u)) === "object" && u))
|
|
}
|
|
}
|
|
function catchHttpNetworkError(e) {
|
|
var r = e.config || {
|
|
method: "",
|
|
url: "",
|
|
data: "",
|
|
params: ""
|
|
}
|
|
, i = r.method
|
|
, a = r.url
|
|
, s = r.data
|
|
, u = r.params;
|
|
return {
|
|
measurement_name: "httpRequestTiming",
|
|
measurement_data: {
|
|
method: i,
|
|
errorType: "HTTPNetworkError",
|
|
url: a,
|
|
errorMsg: e.message,
|
|
data: "get" === i ? u : s
|
|
}
|
|
}
|
|
}
|
|
function parseError(e, r) {
|
|
if (e instanceof Error) {
|
|
var i = e.message
|
|
, a = ""
|
|
, s = 0
|
|
, u = 0
|
|
, c = e.name
|
|
, l = "";
|
|
if (e.stack) {
|
|
for (var d, p = null === (d = e.stack) || void 0 === d ? void 0 : d.split("\n"), f = 0; f < (null == p ? void 0 : p.length); f++) {
|
|
var g = /:(\d+:\d+)\)$/.exec(p[f]);
|
|
if (null == g ? void 0 : g[1]) {
|
|
var h = g[1].split(":");
|
|
a = p[f],
|
|
s = parseInt(h[0], 10) || 0,
|
|
u = parseInt(h[1], 10) || 0;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
return e.stack && (l = e.stack),
|
|
(0,
|
|
v._)({
|
|
errorLineNumber: s,
|
|
errorColNumber: u,
|
|
errorFilePath: null == a ? void 0 : a.trim(),
|
|
errorStack: l,
|
|
errorType: c,
|
|
errorMessage: i
|
|
}, r && getErrorOptions(r))
|
|
}
|
|
return "string" == typeof e ? (0,
|
|
v._)({
|
|
errorType: "Error",
|
|
errorMessage: e
|
|
}, r && getErrorOptions(r)) : null
|
|
}
|
|
function collector_jsError(e, r, i, a) {
|
|
for (var s, u, c, l, d, sendInfraJsError = function sendInfraJsError(e) {
|
|
if (!(isIgnoreErrors(e, f) || !0 === h && ignoreDefaultError(e)))
|
|
(null == g || !g(e)) && (window.apm_blankScreen_error = {
|
|
errorType: "JSError",
|
|
content: e.errorMessage
|
|
},
|
|
i.push({
|
|
measurement_name: "infraJsError",
|
|
measurement_data: e
|
|
}, "ApmXrayTracker").catch(function(e) {}))
|
|
}, sendVueError = function sendVueError(e) {
|
|
var r = parseError(e);
|
|
r && sendInfraJsError((0,
|
|
v._)({
|
|
type: "vueError"
|
|
}, r))
|
|
}, p = (0,
|
|
v._)({
|
|
enableIgnoreDefaultError: !0,
|
|
ignoreErrors: [],
|
|
ignoreError: null
|
|
}, (void 0 === a ? "undefined" : (0,
|
|
m._)(a)) === "object" && a), f = p.ignoreErrors, g = p.ignoreError, h = p.enableIgnoreDefaultError, _ = p.microApp, y = window.__ERROR_TRACKER_BUFFER__ || []; y.length; ) {
|
|
var w = y.shift()
|
|
, E = w.error
|
|
, S = w.extra
|
|
, T = S.colno
|
|
, b = S.lineno
|
|
, k = S.source;
|
|
sendInfraJsError({
|
|
type: "onerror",
|
|
errorLineNumber: b,
|
|
errorColNumber: T,
|
|
errorFilePath: null == k ? void 0 : k.trim(),
|
|
errorStack: null == E ? void 0 : E.stack,
|
|
errorType: null == E ? void 0 : E.name,
|
|
errorMessage: String((null == E ? void 0 : E.message) || E)
|
|
})
|
|
}
|
|
if ((null === (s = r.version) || void 0 === s ? void 0 : s.startsWith("3")) && (null == e ? void 0 : null === (c = e.vm) || void 0 === c ? void 0 : null === (u = c.config) || void 0 === u ? void 0 : u.errorHandler) ? e.vm.config.errorHandler = function(e) {
|
|
sendVueError(e)
|
|
}
|
|
: (null == r ? void 0 : null === (d = r.Vue) || void 0 === d ? void 0 : null === (l = d.config) || void 0 === l ? void 0 : l.errorHandler) && (r.Vue.config.errorHandler = function(e) {
|
|
sendVueError(e)
|
|
}
|
|
),
|
|
!_)
|
|
window.onerror = function(e, r, i, a, s) {
|
|
sendInfraJsError({
|
|
type: "onerror",
|
|
errorLineNumber: i,
|
|
errorColNumber: a,
|
|
errorFilePath: null == r ? void 0 : r.trim(),
|
|
errorStack: null == s ? void 0 : s.stack,
|
|
errorType: null == s ? void 0 : s.name,
|
|
errorMessage: String(e)
|
|
})
|
|
}
|
|
,
|
|
window.addEventListener("unhandledrejection", function(e) {
|
|
var r = ""
|
|
, a = ""
|
|
, s = 0
|
|
, u = 0
|
|
, c = null == e ? void 0 : null === (p = e.reason) || void 0 === p ? void 0 : p.name
|
|
, l = "";
|
|
if ("string" == typeof e.reason)
|
|
r = e.reason;
|
|
else if ("object" === (0,
|
|
m._)(e.reason)) {
|
|
if (e.reason.isAxiosError) {
|
|
var d = catchHttpNetworkError(e.reason);
|
|
i.push(d, "ApmXrayTracker");
|
|
return
|
|
}
|
|
if (e.reason.stack) {
|
|
for (var p, f, v = null === (f = e.reason.stack) || void 0 === f ? void 0 : f.split("\n"), g = 0; g < (null == v ? void 0 : v.length); g++) {
|
|
var h = /:(\d+:\d+)\)$/.exec(v[g]);
|
|
if (null == h ? void 0 : h[1]) {
|
|
var _ = h[1].split(":");
|
|
a = v[g],
|
|
s = parseInt(_[0], 10) || 0,
|
|
u = parseInt(_[1], 10) || 0;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
r = e.reason.message,
|
|
l = e.reason.stack
|
|
}
|
|
sendInfraJsError({
|
|
type: "promise",
|
|
errorLineNumber: s,
|
|
errorColNumber: u,
|
|
errorFilePath: null == a ? void 0 : a.trim(),
|
|
errorStack: l,
|
|
errorType: c,
|
|
errorMessage: r
|
|
})
|
|
})
|
|
}
|
|
var ey = !1;
|
|
function generateRandomCheckPoint(e, r) {
|
|
e = e || 5,
|
|
r = r || 10;
|
|
for (var i = window.innerHeight, a = window.innerWidth, s = [], u = 1; u <= e; u++) {
|
|
for (var c = i / (e + 1) * u, l = 1; l <= r; l++) {
|
|
var d = a / (r + 1) * l;
|
|
s.push({
|
|
x: d,
|
|
y: c
|
|
})
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
function calculateDomDepth(e) {
|
|
for (var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10, i = arguments.length > 2 ? arguments[2] : void 0, a = 0, s = i ? document.querySelector(i) : null; e && "BODY" !== e.tagName && s !== e && a < r; )
|
|
e = e.parentElement,
|
|
a++;
|
|
return a
|
|
}
|
|
function calculateBlankScreenRatio(e) {
|
|
try {
|
|
var r = 0
|
|
, i = e.domThreshold
|
|
, a = generateRandomCheckPoint(e.lines, e.columns);
|
|
return a.forEach(function(a) {
|
|
var s = (document.elementsFromPoint(a.x, a.y) || [])[0];
|
|
s && calculateDomDepth(s, e.maxDepth, e.rootElementSelector) < i && r++
|
|
}),
|
|
r / a.length
|
|
} catch (e) {}
|
|
return 0
|
|
}
|
|
function blank_screen_screenshot(e, r) {
|
|
var html2image = function html2image() {
|
|
window.html2canvas && window.html2canvas(document.body, {
|
|
scale: 360 / window.innerWidth
|
|
}).then(function(i) {
|
|
r.measurement_data.img = i.toDataURL("image/jpeg", .2),
|
|
e.push(r, "ApmXrayTracker")
|
|
})
|
|
};
|
|
if (window.html2canvas)
|
|
return html2image();
|
|
var i = document.createElement("script");
|
|
i.src = "https://fe-video-qc.xhscdn.com/fe-platform/abf6e0874371419fa6fffa7540610e2013588fe6/html2canvas.min.js",
|
|
document.head.appendChild(i),
|
|
i.onload = function() {
|
|
html2image()
|
|
}
|
|
}
|
|
function checkBlankScreenError(e, r) {
|
|
try {
|
|
if (!document.elementsFromPoint || "function" != typeof document.elementsFromPoint || ey)
|
|
return;
|
|
ey = !0,
|
|
setTimeout(function() {
|
|
ey = !1
|
|
}, 1e4);
|
|
var i = calculateBlankScreenRatio(r);
|
|
if (i > (r.threshold || .7)) {
|
|
var a, s = {
|
|
ratio: i
|
|
};
|
|
(null === (a = window.apm_blankScreen_error) || void 0 === a ? void 0 : a.errorType) ? (s.errorType = window.apm_blankScreen_error.errorType,
|
|
s.content = window.apm_blankScreen_error.content) : performance.timing.loadEventStart ? s.errorType = "other" : s.errorType = "performance",
|
|
window.apm_blankScreen_error = null;
|
|
var u = {
|
|
measurement_name: "blankScreenError",
|
|
measurement_data: s
|
|
};
|
|
r.screenshot ? blank_screen_screenshot(e, u) : e.push(u, "ApmXrayTracker")
|
|
}
|
|
} catch (e) {}
|
|
}
|
|
var throwError = function(e) {
|
|
throw Error("[Eaglet Exception] ".concat(e))
|
|
}
|
|
, capitalize = function(e) {
|
|
return "string" == typeof e ? e.replace(/\b\w/g, function(e) {
|
|
return e.toUpperCase()
|
|
}) : e
|
|
}
|
|
, isObject = function(e) {
|
|
return e && "[object Object]" === Object.prototype.toString.call(e)
|
|
}
|
|
, ew = function() {
|
|
function ProtoBuilder(e) {
|
|
(0,
|
|
A._)(this, ProtoBuilder),
|
|
this.builder = e
|
|
}
|
|
return (0,
|
|
D._)(ProtoBuilder, [{
|
|
key: "getMessageBuilder",
|
|
value: function getMessageBuilder(e) {
|
|
return !this.builder[e] && throwError("no message type found: `".concat(e, "`")),
|
|
new this.builder[e]
|
|
}
|
|
}, {
|
|
key: "getProtoSetter",
|
|
value: function getProtoSetter(e, r, i, a) {
|
|
var s = "set".concat(capitalize(i))
|
|
, u = a;
|
|
return u && u.value && (u = u.value),
|
|
Array.isArray(u) && (s += "List"),
|
|
!r[s] && throwError("no match setter `".concat(s, "` for `").concat(capitalize(i), "` in proto.").concat(e)),
|
|
s
|
|
}
|
|
}, {
|
|
key: "format",
|
|
value: function format(e, r) {
|
|
var i = this;
|
|
if (Array.isArray(r))
|
|
return r.map(function(r) {
|
|
return i.format(e, r)
|
|
});
|
|
var a = this.getMessageBuilder(e);
|
|
return Object.keys(r).forEach(function(s) {
|
|
var u = i.getProtoSetter(e, a, s, r[s]);
|
|
if (isObject(r[s])) {
|
|
var c = r[s]
|
|
, l = c.type
|
|
, d = c.value;
|
|
if ((!l || !i.builder[l]) && throwError("no match type `".concat(l, "` in `").concat(s, "` field")),
|
|
isObject(d) || Array.isArray(d)) {
|
|
var p = i.format(l, d);
|
|
a[u](p)
|
|
} else {
|
|
var f, v = i.builder[l]["string" == typeof (f = d) ? f.toUpperCase() : f];
|
|
void 0 === v && throwError("no match enum `".concat(d, "` in `").concat(l, "` field")),
|
|
a[u](v)
|
|
}
|
|
} else
|
|
a[u](r[s])
|
|
}),
|
|
a
|
|
}
|
|
}, {
|
|
key: "build",
|
|
value: function build() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "Tracker"
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
!r && throwError("missing tracker name");
|
|
var a = this.getMessageBuilder(r);
|
|
return Object.keys(i).forEach(function(s) {
|
|
var u = i[s];
|
|
(!u.type || !u.value) && throwError("missing `type` or `value` field");
|
|
var c = e.getProtoSetter(r, a, s, u.value)
|
|
, l = e.format(u.type, u.value);
|
|
a[c](l)
|
|
}),
|
|
a
|
|
}
|
|
}]),
|
|
ProtoBuilder
|
|
}();
|
|
function createBuilder(e) {
|
|
return "function" == typeof e.build ? e : new ew(e)
|
|
}
|
|
var eE = function() {
|
|
function Eaglet(e) {
|
|
var r = e.name
|
|
, i = e.builder
|
|
, a = e.emitter;
|
|
(0,
|
|
A._)(this, Eaglet),
|
|
!r && throwError("missing tracker name"),
|
|
!i && throwError("missing builder"),
|
|
!a && throwError("missing emitter"),
|
|
this.name = r,
|
|
this.builder = createBuilder(i),
|
|
this.emitter = a
|
|
}
|
|
return (0,
|
|
D._)(Eaglet, [{
|
|
key: "push",
|
|
value: function push(e) {
|
|
var r = this.builder.build(this.name, e);
|
|
this.emitter.push(r)
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
this.emitter.flush()
|
|
}
|
|
}, {
|
|
key: "destroy",
|
|
value: function destroy() {
|
|
var e;
|
|
null === (e = this.emitter) || void 0 === e || e.destroy()
|
|
}
|
|
}]),
|
|
Eaglet
|
|
}();
|
|
i(18638),
|
|
i(96336),
|
|
i(87168),
|
|
i(14190),
|
|
i(4137),
|
|
i(70805),
|
|
i(5317),
|
|
i(81167),
|
|
i(22583),
|
|
i(89655),
|
|
i(88598),
|
|
i(11530),
|
|
i(16765),
|
|
i(3398),
|
|
i(90621),
|
|
i(35904),
|
|
i(73982),
|
|
i(87683),
|
|
i(59735),
|
|
i(69167),
|
|
i(27151),
|
|
i(95341),
|
|
i(53395),
|
|
i(10074),
|
|
i(31899),
|
|
i(98398),
|
|
i(94837),
|
|
i(53077),
|
|
i(14340),
|
|
i(31578),
|
|
i(46521),
|
|
i(49932),
|
|
i(78246),
|
|
i(62444),
|
|
i(34076),
|
|
i(12334),
|
|
i(68802),
|
|
i(76267),
|
|
i(83257),
|
|
i(90834),
|
|
i(907),
|
|
i(18552);
|
|
for (var eS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", eT = {}, eb = 0; eb < eS.length; eb++)
|
|
eT[eb] = eS.charAt(eb);
|
|
function splitInt64(e) {
|
|
var r = Math.abs(e)
|
|
, i = r >>> 0
|
|
, a = Math.floor((r - i) / 0x100000000);
|
|
return a >>>= 0,
|
|
e < 0 && (a = ~a >>> 0,
|
|
(i = (~i >>> 0) + 1) > 0xffffffff && (i = 0,
|
|
(a += 1) > 0xffffffff && (a = 0))),
|
|
{
|
|
lowBits: i,
|
|
highBits: a
|
|
}
|
|
}
|
|
var ek = {
|
|
writeString: function(e) {
|
|
for (var r = [], i = 0; i < e.length; i++) {
|
|
var a = e.charCodeAt(i);
|
|
if (a < 128)
|
|
r.push(a);
|
|
else if (a < 2048)
|
|
r.push(a >> 6 | 192),
|
|
r.push(63 & a | 128);
|
|
else if (a < 65536) {
|
|
if (a >= 55296 && a <= 56319 && i + 1 < e.length) {
|
|
var s = e.charCodeAt(i + 1);
|
|
s >= 56320 && s <= 57343 && (a = (a - 55296) * 1024 + s - 56320 + 65536,
|
|
r.push(a >> 18 | 240),
|
|
r.push(a >> 12 & 63 | 128),
|
|
r.push(a >> 6 & 63 | 128),
|
|
r.push(63 & a | 128),
|
|
i += 1)
|
|
} else
|
|
r.push(a >> 12 | 224),
|
|
r.push(a >> 6 & 63 | 128),
|
|
r.push(63 & a | 128)
|
|
}
|
|
}
|
|
return r
|
|
},
|
|
writeInt64: function(e) {
|
|
for (var r = splitInt64(e), i = r.lowBits, a = r.highBits, s = []; a > 0 || i > 127; )
|
|
s.push(127 & i | 128),
|
|
i = (i >>> 7 | a << 25) >>> 0,
|
|
a >>>= 7;
|
|
return s.push(i),
|
|
s
|
|
},
|
|
writeInt32: function(e) {
|
|
var r = [];
|
|
return r.push(e >>> 0 & 255),
|
|
r.push(e >>> 8 & 255),
|
|
r.push(e >>> 16 & 255),
|
|
r.push(e >>> 24 & 255),
|
|
r
|
|
},
|
|
writeSignedVarint32: function(e) {
|
|
if (e >= 0)
|
|
return this.writeUnsignedVarint32(e);
|
|
for (var r = [], i = e, a = 0; a < 9; a++)
|
|
r.push(127 & i | 128),
|
|
i >>= 7;
|
|
return r.push(1),
|
|
r
|
|
},
|
|
writeUnsignedVarint32: function(e) {
|
|
for (var r = [], i = e; i > 127; )
|
|
r.push(127 & i | 128),
|
|
i >>>= 7;
|
|
return r.push(i),
|
|
r
|
|
},
|
|
writeBoolean: function(e) {
|
|
return [+!!e]
|
|
},
|
|
encodeByteArray: function(e) {
|
|
for (var r = [], i = 0; i < e.length; i += 3) {
|
|
var a = e[i]
|
|
, s = i + 1 < e.length
|
|
, u = s ? e[i + 1] : 0
|
|
, c = i + 2 < e.length
|
|
, l = c ? e[i + 2] : 0
|
|
, d = a >> 2
|
|
, p = (3 & a) << 4 | u >> 4
|
|
, f = (15 & u) << 2 | l >> 6
|
|
, v = 63 & l;
|
|
!c && (v = 64,
|
|
!s && (f = 64)),
|
|
r.push(eT[d], eT[p], eT[f] || "", eT[v] || "")
|
|
}
|
|
return r.join("")
|
|
}
|
|
};
|
|
function getBufferLength(e) {
|
|
return ek.writeUnsignedVarint32(e)
|
|
}
|
|
function builder_getData(e, r, i) {
|
|
var a, s = e.match(/\{(\w+):(\w+)\.(\w+)\}/), u = s[1], c = s[2], l = s[3];
|
|
if (null === (a = r[c]) || void 0 === a ? void 0 : a.value) {
|
|
var d = r[c].value[l];
|
|
if ("Enum" === u)
|
|
try {
|
|
"function" == typeof d.value.toUpperCase && (d = i[d.type][d.value.toUpperCase()])
|
|
} catch (r) {
|
|
throw Error("not support ".concat(e))
|
|
}
|
|
return {
|
|
value: d,
|
|
dataType: u
|
|
}
|
|
}
|
|
return {
|
|
value: void 0,
|
|
dataType: u
|
|
}
|
|
}
|
|
function encodeData(e, r) {
|
|
if (void 0 === r)
|
|
return [];
|
|
var i = [];
|
|
if ("String" === e && "string" == typeof r)
|
|
i = ek.writeString(r);
|
|
else if ("Int64" === e && "number" == typeof r)
|
|
i = ek.writeInt64(r);
|
|
else if ("Int32" === e && "number" == typeof r)
|
|
i = ek.writeSignedVarint32(r);
|
|
else if ("Enum" === e && "number" == typeof r)
|
|
i = ek.writeUnsignedVarint32(r);
|
|
else if ("Boolean" === e && "boolean" == typeof r)
|
|
i = ek.writeBoolean(r);
|
|
else
|
|
throw Error("not support ".concat(e, ":").concat(r));
|
|
return i
|
|
}
|
|
function buildBlock(e, r, i) {
|
|
var a, s = [], u = builder_getData(e.pop(), r, i), c = u.value, l = u.dataType;
|
|
if (void 0 === c)
|
|
return [];
|
|
if ("RepeatedString" === l)
|
|
e.pop(),
|
|
a = e,
|
|
c.forEach(function(e) {
|
|
var r = encodeData("String", e);
|
|
r.length > 0 && (a.forEach(function(e) {
|
|
return s.push(e)
|
|
}),
|
|
getBufferLength(r.length).forEach(function(e) {
|
|
return s.push(e)
|
|
}),
|
|
r.forEach(function(e) {
|
|
return s.push(e)
|
|
}))
|
|
});
|
|
else if ("String" === l) {
|
|
e.pop(),
|
|
a = e;
|
|
var d = encodeData("String", c);
|
|
d.length > 0 && (a.forEach(function(e) {
|
|
return s.push(e)
|
|
}),
|
|
getBufferLength(d.length).forEach(function(e) {
|
|
return s.push(e)
|
|
}),
|
|
d.forEach(function(e) {
|
|
return s.push(e)
|
|
}))
|
|
} else
|
|
(a = e).forEach(function(e) {
|
|
return s.push(e)
|
|
}),
|
|
encodeData(l, c).forEach(function(e) {
|
|
return s.push(e)
|
|
});
|
|
return s
|
|
}
|
|
function buildBuffer(e, r, i, a) {
|
|
var s = [];
|
|
r.forEach(function(i, u) {
|
|
if (u % 2 == 1) {
|
|
var c = []
|
|
, l = r[u - 1];
|
|
i.forEach(function(r) {
|
|
buildBlock(r, e, a).forEach(function(e) {
|
|
c.push(e)
|
|
})
|
|
}),
|
|
c.length > 0 ? (l.pop(),
|
|
getBufferLength(c.length).forEach(function(e) {
|
|
return l.push(e)
|
|
}),
|
|
s.push(c)) : s.pop()
|
|
} else
|
|
s.push(i)
|
|
});
|
|
var u = 0;
|
|
s.forEach(function(e) {
|
|
return u += e.length
|
|
});
|
|
var c = (0,
|
|
h._)(ek.writeInt64(u + 4)).concat((0,
|
|
h._)(ek.writeInt32(i)));
|
|
s = [c].concat((0,
|
|
h._)(s));
|
|
for (var l = new Uint8Array(u += c.length), d = 0, p = 0; p < s.length; p++) {
|
|
var f = s[p];
|
|
l.set(f, d),
|
|
d += f.length
|
|
}
|
|
return ek.encodeByteArray(l)
|
|
}
|
|
function titleCase(e) {
|
|
return e.slice(0, 1).toUpperCase() + e.slice(1)
|
|
}
|
|
var eC = function() {
|
|
function LiteEaglet(e) {
|
|
var r = e.name
|
|
, i = e.emitter
|
|
, a = e.trackerEnums
|
|
, s = e.versionHash;
|
|
if ((0,
|
|
A._)(this, LiteEaglet),
|
|
(0,
|
|
f._)(this, "name", void 0),
|
|
(0,
|
|
f._)(this, "emitter", void 0),
|
|
(0,
|
|
f._)(this, "versionHash", void 0),
|
|
(0,
|
|
f._)(this, "trackerEnums", void 0),
|
|
!r)
|
|
throw Error("missing name");
|
|
if (!i)
|
|
throw Error("missing emitter");
|
|
if (!a)
|
|
throw Error("missing trackerEnums");
|
|
if (!s)
|
|
throw Error("missing versionHash");
|
|
this.name = r,
|
|
this.emitter = i,
|
|
this.versionHash = s,
|
|
this.trackerEnums = a
|
|
}
|
|
return (0,
|
|
D._)(LiteEaglet, [{
|
|
key: "push",
|
|
value: function push(e) {
|
|
var r = e.data
|
|
, i = e.templateBuffers
|
|
, a = {};
|
|
Object.keys(r).forEach(function(e) {
|
|
a[titleCase(e)] = r[e]
|
|
}),
|
|
this.emitter.push(buildBuffer(a, i, this.versionHash, this.trackerEnums))
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
this.emitter.flush()
|
|
}
|
|
}]),
|
|
LiteEaglet
|
|
}();
|
|
function needImplement(e) {
|
|
throw Error("[Eaglet Emitter Exception] __proto__.".concat(e, " should be implemented"))
|
|
}
|
|
function argsCheck(e) {
|
|
if (!e.versionHash)
|
|
throw Error("[Eaglet Emitter Exception] args.versionHash is required");
|
|
if (!e.endpoint)
|
|
throw Error("[Eaglet Emitter Exception] args.endpoint is required")
|
|
}
|
|
var eP = function() {
|
|
function EmitterBase(e) {
|
|
(0,
|
|
A._)(this, EmitterBase),
|
|
(0,
|
|
f._)(this, "buffer", []),
|
|
argsCheck(e),
|
|
this.versionHash = e.versionHash,
|
|
this.endpoint = e.endpoint
|
|
}
|
|
return (0,
|
|
D._)(EmitterBase, [{
|
|
key: "shouldFlushBuffer",
|
|
value: function shouldFlushBuffer() {
|
|
return !0
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
needImplement("flush")()
|
|
}
|
|
}, {
|
|
key: "push",
|
|
value: function push(e) {
|
|
this.buffer.push(e),
|
|
this.shouldFlushBuffer(e) && this.flush()
|
|
}
|
|
}]),
|
|
EmitterBase
|
|
}()
|
|
, eA = (0,
|
|
q.dh)().then(function(e) {
|
|
return e.isTestEnv
|
|
}).catch(function() {
|
|
return !1
|
|
});
|
|
function sendToXray(e, r) {
|
|
return U.dJ.axios.post(e, r, {
|
|
headers: {
|
|
"Biz-Type": "apm_fe",
|
|
Batch: "true"
|
|
},
|
|
withCredentials: !1
|
|
}).catch(function(e) {})
|
|
}
|
|
function sendByHttp(e, r) {
|
|
return U.dJ.axios.post(e, r, {
|
|
headers: {
|
|
"Content-Type": "text/plain"
|
|
},
|
|
withCredentials: !1
|
|
}).catch(function(e) {})
|
|
}
|
|
function sendByNative(e, r, i) {
|
|
return _sendByNative.apply(this, arguments)
|
|
}
|
|
function _sendByNative() {
|
|
return (_sendByNative = (0,
|
|
p._)(function(e, r, i) {
|
|
var a;
|
|
return (0,
|
|
_.Jh)(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
if (a.trys.push([0, 5, , 6]),
|
|
!i)
|
|
return [3, 2];
|
|
return [4, (0,
|
|
q.EU)(r)];
|
|
case 1:
|
|
return a.sent(),
|
|
[3, 4];
|
|
case 2:
|
|
return [4, (0,
|
|
q.qc)(r)];
|
|
case 3:
|
|
a.sent(),
|
|
a.label = 4;
|
|
case 4:
|
|
return [3, 6];
|
|
case 5:
|
|
return a.sent(),
|
|
[2, sendByHttp(e, r)];
|
|
case 6:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function sendByDefault(e, r, i) {
|
|
return _sendByDefault.apply(this, arguments)
|
|
}
|
|
function _sendByDefault() {
|
|
return (_sendByDefault = (0,
|
|
p._)(function(e, r, i) {
|
|
var a, s, u, c;
|
|
return (0,
|
|
_.Jh)(this, function(l) {
|
|
switch (l.label) {
|
|
case 0:
|
|
if (a = i.preferNative,
|
|
u = void 0 !== (s = i.apm) && s,
|
|
c = a,
|
|
"function" != typeof a)
|
|
return [3, 2];
|
|
return [4, a(getFlagValue)];
|
|
case 1:
|
|
c = l.sent(),
|
|
l.label = 2;
|
|
case 2:
|
|
if (!0 === c)
|
|
return [2, sendByNative(e, r, u)];
|
|
return [2, sendByHttp(e, r)]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var showTrackerMessage = function(e, r) {
|
|
var i = JSON.stringify(r);
|
|
(0,
|
|
q.Ww)({
|
|
title: e,
|
|
content: i,
|
|
isNewTrack: !0
|
|
}).catch(function() {})
|
|
}
|
|
, eR = function(e) {
|
|
function DefaultEmitter(e) {
|
|
var r;
|
|
return (0,
|
|
A._)(this, DefaultEmitter),
|
|
r = (0,
|
|
P._)(this, DefaultEmitter, [e]),
|
|
(0,
|
|
f._)(r, "isLite", void 0),
|
|
(0,
|
|
f._)(r, "localDebug", void 0),
|
|
(0,
|
|
f._)(r, "preferNative", void 0),
|
|
r.isLite = e.isLite,
|
|
r.localDebug = e.debug,
|
|
r.preferNative = e.preferNative,
|
|
r
|
|
}
|
|
return (0,
|
|
R._)(DefaultEmitter, e),
|
|
(0,
|
|
D._)(DefaultEmitter, [{
|
|
key: "shouldFlushBuffer",
|
|
value: function shouldFlushBuffer() {
|
|
return !0
|
|
}
|
|
}, {
|
|
key: "serializeBinary",
|
|
value: function serializeBinary(e, r) {
|
|
var i = new r
|
|
, a = e.serializeBinary();
|
|
i.encoder_.writeSignedVarint64(a.byteLength + 4),
|
|
i.encoder_.writeInt32(this.versionHash),
|
|
i.encoder_.writeBytes(a);
|
|
var s = i.getResultBase64String();
|
|
return i.reset(),
|
|
s
|
|
}
|
|
}, {
|
|
key: "sendData",
|
|
value: function sendData(e) {
|
|
sendByDefault(u || this.localDebug ? this.endpoint.development : this.endpoint.production, e, {
|
|
preferNative: this.preferNative
|
|
}).then(function(e) {
|
|
if (!!e)
|
|
u && showTrackerMessage("success", e)
|
|
}).catch(function(e) {
|
|
u && showTrackerMessage("error", e)
|
|
})
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
var e = this;
|
|
if (!!this.buffer.length) {
|
|
var r = [eA];
|
|
!this.isLite && r.push(Promise.resolve().then(i.t.bind(i, 94287, 23))),
|
|
Promise.all(r).then(function(r) {
|
|
var i = (0,
|
|
j._)(r, 2)
|
|
, a = i[0]
|
|
, s = i[1];
|
|
if (u = a,
|
|
e.isLite)
|
|
for (; e.buffer.length; ) {
|
|
var c = e.buffer.shift();
|
|
e.sendData(c)
|
|
}
|
|
else
|
|
for (; e.buffer.length; ) {
|
|
var l = e.buffer.shift();
|
|
e.sendData(e.serializeBinary(l, s.BinaryWriter))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}]),
|
|
DefaultEmitter
|
|
}(eP);
|
|
i(96205),
|
|
i(98976);
|
|
var eI = Function("return this")();
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__ = {};
|
|
var eO = !1;
|
|
function sendToXrayByAjax(e, r, i) {
|
|
var a = new XMLHttpRequest;
|
|
a.open("POST", e, !0),
|
|
a.setRequestHeader("Content-Type", "application/json"),
|
|
a.setRequestHeader("Biz-Type", "apm_fe"),
|
|
a.setRequestHeader("Batch", i ? "true" : "false"),
|
|
a.send(JSON.stringify(r))
|
|
}
|
|
function sendToXrayByFetch(e, r, i) {
|
|
"function" == typeof fetch ? fetch(e, {
|
|
keepalive: !0,
|
|
method: "POST",
|
|
headers: {
|
|
"content-type": "application/json",
|
|
"Biz-Type": "apm_fe",
|
|
Batch: i ? "true" : "false"
|
|
},
|
|
body: JSON.stringify(r)
|
|
}).catch(function(e) {}) : sendToXrayByAjax(e, r)
|
|
}
|
|
function viewDisappearListener() {
|
|
var cb = function() {
|
|
var e = Object.keys(eI.__APM_COMBO_CACHE_GROUP_V2__);
|
|
if (e.length)
|
|
for (var r = 0; r < e.length; r++) {
|
|
var i = e[r]
|
|
, a = eI.__APM_COMBO_CACHE_GROUP_V2__[i] || {}
|
|
, s = a.data
|
|
, u = a.request;
|
|
if (null == s ? void 0 : s.length) {
|
|
if ((null == u ? void 0 : u.name) === "sendToXray")
|
|
sendToXrayByFetch.call(null, i, s, !0);
|
|
else {
|
|
var c, l = {
|
|
type: "text/plain"
|
|
}, d = new Blob([JSON.stringify(s)],l);
|
|
null === (c = navigator) || void 0 === c || c.sendBeacon(i, d)
|
|
}
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__[i] = null
|
|
}
|
|
}
|
|
};
|
|
y.YF.isXHS ? (y.YF.isAndroid && (0,
|
|
eu.Ld)("viewDidDisappear", cb),
|
|
y.YF.isIOS && (0,
|
|
eu.Ld)("viewDisappear", cb)) : (window.addEventListener || window.attachEvent)("visibilitychange", function() {
|
|
"hidden" === document.visibilityState && cb()
|
|
})
|
|
}
|
|
var helpers_requestCombo = function requestCombo(e, r) {
|
|
var i, a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, s = a.request, u = a.isCombo, c = void 0 === u || u, l = a.maxComboNum, d = void 0 === l ? 5 : l, f = a.collectTime, v = void 0 === f ? 1e3 * d : f, g = a.callback;
|
|
if (!e || "{}" === JSON.stringify(r))
|
|
return null;
|
|
var h = (i = (0,
|
|
p._)(function(e) {
|
|
var r, i, a, s, u;
|
|
return (0,
|
|
_.Jh)(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if (!(null === (r = eI.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === r ? void 0 : r.data.length))
|
|
return [3, 2];
|
|
return a = (i = eI.__APM_COMBO_CACHE_GROUP_V2__[e]).data,
|
|
s = i.timer,
|
|
u = i.request,
|
|
clearTimeout(s),
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__[e] = null,
|
|
[4, (u || sendByHttp).call(null, e, a)];
|
|
case 1:
|
|
return [2, c.sent()];
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function fetch1(e) {
|
|
return i.apply(this, arguments)
|
|
}
|
|
);
|
|
return !eO && (viewDisappearListener(),
|
|
eO = !0),
|
|
new Promise(function(i, a) {
|
|
if (c) {
|
|
if (e) {
|
|
var u;
|
|
if (!(null === (u = eI.__APM_COMBO_CACHE_GROUP_V2__) || void 0 === u ? void 0 : u[e]) && (eI.__APM_COMBO_CACHE_GROUP_V2__[e] = {
|
|
request: s,
|
|
data: [],
|
|
timer: window.setTimeout(function() {
|
|
var r, s = null === (r = eI.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === r ? void 0 : r.data;
|
|
h(e).then(function(e) {
|
|
null == g || g(s),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}, v)
|
|
}),
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__[e].data.push(r),
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__[e].data.length >= d) {
|
|
var l, p = null === (l = eI.__APM_COMBO_CACHE_GROUP_V2__[e]) || void 0 === l ? void 0 : l.data;
|
|
h(e).then(function(e) {
|
|
null == g || g(p),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}
|
|
} else
|
|
a("接口 url: ".concat(e, " 不能为空"))
|
|
} else
|
|
null == s || s.call(null, e, r).then(function(e) {
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}
|
|
)
|
|
};
|
|
function requestCombo_destroy() {
|
|
return _destroy.apply(this, arguments)
|
|
}
|
|
function _destroy() {
|
|
return (_destroy = (0,
|
|
p._)(function() {
|
|
var e;
|
|
return (0,
|
|
_.Jh)(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
var i;
|
|
if (!(e = Object.keys(eI.__APM_COMBO_CACHE_GROUP_V2__)).length)
|
|
return [3, 2];
|
|
return [4, Promise.all(e.map((i = (0,
|
|
p._)(function(e) {
|
|
var r, i, a;
|
|
return (0,
|
|
_.Jh)(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
if (i = (r = eI.__APM_COMBO_CACHE_GROUP_V2__[e]).data,
|
|
a = r.request,
|
|
!(null == i ? void 0 : i.length))
|
|
return [3, 2];
|
|
return [4, (a || sendByHttp).call(null, e, i)];
|
|
case 1:
|
|
s.sent(),
|
|
eI.__APM_COMBO_CACHE_GROUP_V2__[e] = null,
|
|
s.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
}),
|
|
function(e) {
|
|
return i.apply(this, arguments)
|
|
}
|
|
)))];
|
|
case 1:
|
|
r.sent(),
|
|
r.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var eN = {
|
|
NAME: "Tracker",
|
|
ENDPOINT: {
|
|
production: "https://t2.xiaohongshu.com/api/v2/collect",
|
|
development: "https://t2-test.xiaohongshu.com/api/v2/collect"
|
|
}
|
|
}
|
|
, eL = {
|
|
NAME: "ApmTracker",
|
|
ENDPOINT: {
|
|
production: "https://lng.xiaohongshu.com/api/collect",
|
|
development: "https://lng.xiaohongshu.com/api/collect"
|
|
}
|
|
}
|
|
, eM = {
|
|
NAME: "ApmTracker",
|
|
ENDPOINT: {
|
|
production: "https://fe.xiaohongshu.com/faas/proto/json-to-proto-json-to-proto/proxy",
|
|
development: "http://serverless.int.sit.xiaohongshu.com/function/proto/json-to-proto-json-to-proto/proxy"
|
|
}
|
|
}
|
|
, eB = {
|
|
NAME: "ApmXrayTracker",
|
|
ENDPOINT: {
|
|
production: "https://apm-fe.xiaohongshu.com/api/data",
|
|
development: "http://81.69.167.96/api/data"
|
|
}
|
|
}
|
|
, ex = {
|
|
ENDPOINT: {
|
|
production: "https://apm-fe.xiaohongshu.com/api/collect",
|
|
development: "http://81.69.167.96/api/collect"
|
|
}
|
|
}
|
|
, apm_emitter_showTrackerMessage = function(e) {
|
|
var r = JSON.stringify(e);
|
|
(0,
|
|
q.Xw)({
|
|
content: r
|
|
}).catch(function() {})
|
|
}
|
|
, eD = function(e) {
|
|
function ApmEmitter(e) {
|
|
var r;
|
|
return (0,
|
|
A._)(this, ApmEmitter),
|
|
r = (0,
|
|
P._)(this, ApmEmitter, [e]),
|
|
(0,
|
|
f._)(r, "localDebug", void 0),
|
|
(0,
|
|
f._)(r, "preferNative", void 0),
|
|
(0,
|
|
f._)(r, "enableBatchRequest", void 0),
|
|
(0,
|
|
f._)(r, "apmXrayProtoTrackerEndPoint", void 0),
|
|
(0,
|
|
f._)(r, "apmXrayTrackerEndPoint", void 0),
|
|
r.localDebug = e.debug,
|
|
r.preferNative = e.preferNative,
|
|
r.enableBatchRequest = e.enableBatchRequest,
|
|
r.apmXrayTrackerEndPoint = e.apmXrayTrackerEndPoint,
|
|
r.apmXrayProtoTrackerEndPoint = e.apmXrayProtoTrackerEndPoint,
|
|
r
|
|
}
|
|
return (0,
|
|
R._)(ApmEmitter, e),
|
|
(0,
|
|
D._)(ApmEmitter, [{
|
|
key: "shouldFlushBuffer",
|
|
value: function shouldFlushBuffer() {
|
|
return !0
|
|
}
|
|
}, {
|
|
key: "serializeBinary",
|
|
value: function serializeBinary(e, r) {
|
|
var i = new r
|
|
, a = e.serializeBinary();
|
|
i.encoder_.writeSignedVarint64(a.byteLength + 4),
|
|
i.encoder_.writeInt32(this.versionHash),
|
|
i.encoder_.writeBytes(a);
|
|
var s = i.getResultBase64String();
|
|
return i.reset(),
|
|
s
|
|
}
|
|
}, {
|
|
key: "sendLocalMetric",
|
|
value: function sendLocalMetric(e) {
|
|
if (this.localDebug) {
|
|
var r;
|
|
e.apmLog && (r = "apmLog"),
|
|
e.browserApmTracker ? r = Object.keys(e.browserApmTracker).filter(function(r) {
|
|
var i = e.browserApmTracker[r];
|
|
return Array.isArray(i) ? i.length > 0 : i
|
|
}) : e.frontApmTracker && (r = "frontApmTracker"),
|
|
console.groupCollapsed("[apm] ".concat(r.toString())),
|
|
console.log(e),
|
|
console.groupEnd()
|
|
}
|
|
}
|
|
}, {
|
|
key: "logJsonMetric",
|
|
value: function logJsonMetric(e) {
|
|
if (this.localDebug) {
|
|
var r;
|
|
if (e.apmLog && (r = "apmLog"),
|
|
e.browserApmTracker) {
|
|
var i = e.browserApmTracker.value;
|
|
r = Object.keys(i).filter(function(e) {
|
|
var r = i[e];
|
|
return Array.isArray(r) ? r.length > 0 : r
|
|
})
|
|
} else
|
|
e.frontApmTracker && (r = "frontApmTracker");
|
|
console.groupCollapsed("[apm] ".concat(r.toString())),
|
|
console.log(e),
|
|
console.groupEnd()
|
|
}
|
|
}
|
|
}, {
|
|
key: "logXrayMetric",
|
|
value: function logXrayMetric(e) {
|
|
if (this.localDebug) {
|
|
var r = e.measurement_name;
|
|
console.groupCollapsed("[apm] ".concat(r)),
|
|
console.log(e),
|
|
console.groupEnd()
|
|
}
|
|
}
|
|
}, {
|
|
key: "sendData",
|
|
value: function sendData(e, r) {
|
|
var i, a = this, s = "string" == typeof e ? "proto" : "json", u = c || this.localDebug ? this.endpoint.development : this.endpoint.production;
|
|
"proto" === s && r.frontApmTracker && (u = (null === (i = this.apmXrayProtoTrackerEndPoint) || void 0 === i ? void 0 : i.production) || ex.ENDPOINT.production);
|
|
var l = this.preferNative;
|
|
"json" === s && (l = !1),
|
|
sendByDefault(u, e, {
|
|
preferNative: l,
|
|
apm: !0
|
|
}).then(function(e) {
|
|
if (!!e)
|
|
c && apm_emitter_showTrackerMessage(e),
|
|
"proto" === s ? a.sendLocalMetric(r) : a.logJsonMetric(r)
|
|
}).catch(function(e) {
|
|
c && apm_emitter_showTrackerMessage(e),
|
|
a.localDebug && (console.group("[apm error]"),
|
|
console.error(e.detail || e),
|
|
console.groupEnd())
|
|
})
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
var e = this;
|
|
if (!!this.buffer.length) {
|
|
if (this.enableBatchRequest) {
|
|
eA.then(function(r) {
|
|
for (var i, a, s = r || e.localDebug ? e.endpoint.development : e.endpoint.production, u = r || e.localDebug ? (null === (i = e.apmXrayTrackerEndPoint) || void 0 === i ? void 0 : i.development) || eB.ENDPOINT.development : (null === (a = e.apmXrayTrackerEndPoint) || void 0 === a ? void 0 : a.production) || eB.ENDPOINT.production; e.buffer.length; ) {
|
|
var c = e.buffer.shift();
|
|
c.measurement_name ? helpers_requestCombo(u, c, {
|
|
request: sendToXray,
|
|
callback: function(r) {
|
|
(null == r ? void 0 : r.length) && r.forEach(function(r) {
|
|
e.logXrayMetric(r)
|
|
})
|
|
}
|
|
}) : helpers_requestCombo(s, c, {
|
|
callback: function(r) {
|
|
(null == r ? void 0 : r.length) && r.forEach(function(r) {
|
|
e.logJsonMetric(r)
|
|
})
|
|
}
|
|
})
|
|
}
|
|
});
|
|
return
|
|
}
|
|
Promise.all([Promise.resolve().then(i.t.bind(i, 94287, 23)), eA]).then(function(r) {
|
|
var i = (0,
|
|
j._)(r, 2)
|
|
, a = i[0];
|
|
for (c = i[1]; e.buffer.length; ) {
|
|
var s = e.buffer.shift();
|
|
"function" == typeof s.toObject ? e.sendData(e.serializeBinary(s, a.BinaryWriter), s.toObject()) : e.sendData(s, s)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}, {
|
|
key: "flushApm",
|
|
value: function flushApm(e) {
|
|
var r = this;
|
|
eA.then(function(i) {
|
|
var a, s, u = i || r.localDebug ? (null === (a = r.apmXrayTrackerEndPoint) || void 0 === a ? void 0 : a.development) || eB.ENDPOINT.development : (null === (s = r.apmXrayTrackerEndPoint) || void 0 === s ? void 0 : s.production) || eB.ENDPOINT.production;
|
|
e.measurement_name && sendToXrayByFetch(u, e)
|
|
})
|
|
}
|
|
}, {
|
|
key: "destroy",
|
|
value: function destroy() {
|
|
requestCombo_destroy()
|
|
}
|
|
}]),
|
|
ApmEmitter
|
|
}(eP)
|
|
, isUpgrade = function(e) {
|
|
if (window.insight && !e)
|
|
throw Error("请将 launcher-plugin-eaglet 插件中 apm 手动置为 false");
|
|
return !!window.insight
|
|
}
|
|
, eF = [eM.NAME, eB.NAME]
|
|
, isApmTracker = function(e) {
|
|
return eF.includes(e)
|
|
}
|
|
, getPBEndPoint = function() {
|
|
return eN.ENDPOINT
|
|
};
|
|
function createTracker(e, r) {
|
|
var i, a, s, u, c, l, d, p, f = r.enableNativeEmitter, h = r.enableBatchRequest, m = r.customEndPoint, _ = e.NAME === eN.NAME, y = {
|
|
versionHash: e.PROTOBUF_HASH,
|
|
debug: e.debug,
|
|
preferNative: f
|
|
};
|
|
return _ ? y.endpoint = {
|
|
development: (null == m ? void 0 : null === (i = m.defaultTracker) || void 0 === i ? void 0 : i.development) || getPBEndPoint().development,
|
|
production: (null == m ? void 0 : null === (a = m.defaultTracker) || void 0 === a ? void 0 : a.production) || getPBEndPoint().production
|
|
} : "json" === e.dataType ? (y.enableBatchRequest = h,
|
|
y.dataType = e.dataType,
|
|
y.endpoint = {
|
|
development: (null == m ? void 0 : null === (s = m.apmJsonTracker) || void 0 === s ? void 0 : s.development) || eM.ENDPOINT.development,
|
|
production: (null == m ? void 0 : null === (u = m.apmJsonTracker) || void 0 === u ? void 0 : u.production) || eM.ENDPOINT.production
|
|
}) : (y.enableBatchRequest = !1,
|
|
y.endpoint = {
|
|
development: (null == m ? void 0 : null === (c = m.apmTracker) || void 0 === c ? void 0 : c.development) || eL.ENDPOINT.development,
|
|
production: (null == m ? void 0 : null === (l = m.apmTracker) || void 0 === l ? void 0 : l.production) || eL.ENDPOINT.production
|
|
}),
|
|
d = e.IS_LITE ? new eC({
|
|
name: e.NAME,
|
|
emitter: new eR((0,
|
|
g._)((0,
|
|
v._)({}, y), {
|
|
isLite: !0
|
|
})),
|
|
trackerEnums: null === (p = e.tracker) || void 0 === p ? void 0 : p.trackerEnums,
|
|
versionHash: e.PROTOBUF_HASH
|
|
}) : new eE({
|
|
name: e.NAME,
|
|
builder: e.builder,
|
|
emitter: _ ? new eR(y) : new eD((0,
|
|
g._)((0,
|
|
v._)({}, y), {
|
|
apmXrayTrackerEndPoint: null == m ? void 0 : m.apmXrayTracker,
|
|
apmXrayProtoTrackerEndPoint: null == m ? void 0 : m.apmXrayProtoTracker
|
|
}))
|
|
}),
|
|
{
|
|
push: function(r) {
|
|
var i, a;
|
|
e.IS_LITE ? (r.data.app.value.trackerVersion = e.VERSION,
|
|
d.push(r)) : (null === (i = r.app) || void 0 === i ? void 0 : i.value) ? (r.app.value.trackerVersion = e.VERSION,
|
|
d.push(r)) : r.measurement_name && (null === (a = d.emitter) || void 0 === a || a.push(r))
|
|
},
|
|
flush: function() {
|
|
d.flush()
|
|
},
|
|
flushApm: function(e) {
|
|
var r;
|
|
null === (r = d.emitter) || void 0 === r || r.flushApm(e)
|
|
},
|
|
destroy: function() {
|
|
null == d || d.destroy()
|
|
}
|
|
}
|
|
}
|
|
var eV = i(94287)
|
|
, eH = i.n(eV)
|
|
, eU = function(e) {
|
|
function DefaultEmitter(e) {
|
|
var r;
|
|
return (0,
|
|
A._)(this, DefaultEmitter),
|
|
r = (0,
|
|
P._)(this, DefaultEmitter, [e]),
|
|
(0,
|
|
f._)(r, "isLite", void 0),
|
|
(0,
|
|
f._)(r, "localDebug", void 0),
|
|
r.isLite = e.isLite,
|
|
r.localDebug = e.debug,
|
|
r
|
|
}
|
|
return (0,
|
|
R._)(DefaultEmitter, e),
|
|
(0,
|
|
D._)(DefaultEmitter, [{
|
|
key: "serializeBinary",
|
|
value: function serializeBinary(e, r) {
|
|
var i = new r
|
|
, a = e.serializeBinary();
|
|
i.encoder_.writeSignedVarint64(a.byteLength + 4),
|
|
i.encoder_.writeInt32(this.versionHash),
|
|
i.encoder_.writeBytes(a);
|
|
var s = i.getResultBase64String();
|
|
return i.reset(),
|
|
s
|
|
}
|
|
}, {
|
|
key: "sendData",
|
|
value: function sendData(e) {
|
|
var r, i = l || this.localDebug ? this.endpoint.development : this.endpoint.production, a = new Blob([e],{
|
|
type: "text/plain"
|
|
});
|
|
"function" == typeof (null === (r = navigator) || void 0 === r ? void 0 : r.sendBeacon) && navigator.sendBeacon(i, a)
|
|
}
|
|
}, {
|
|
key: "flush",
|
|
value: function flush() {
|
|
var e = this;
|
|
if (!!this.buffer.length) {
|
|
var r = [eA];
|
|
!this.isLite && r.push(Promise.resolve(eH())),
|
|
Promise.all(r).then(function(r) {
|
|
var i = (0,
|
|
j._)(r, 2)
|
|
, a = i[0]
|
|
, s = i[1];
|
|
for (l = a; e.buffer.length; ) {
|
|
var u = e.buffer.shift();
|
|
e.sendData(e.serializeBinary(u, s.BinaryWriter))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}]),
|
|
DefaultEmitter
|
|
}(eP);
|
|
function createSendBeaconTracker_createTracker(e, r) {
|
|
var i, a, s = e.NAME === eN.NAME, u = {
|
|
versionHash: e.PROTOBUF_HASH,
|
|
debug: e.debug
|
|
};
|
|
s && (u.endpoint = {
|
|
development: (null == r ? void 0 : null === (i = r.defaultTracker) || void 0 === i ? void 0 : i.development) || eN.ENDPOINT.development,
|
|
production: (null == r ? void 0 : null === (a = r.defaultTracker) || void 0 === a ? void 0 : a.production) || eN.ENDPOINT.production
|
|
});
|
|
var c = new eE({
|
|
name: e.NAME,
|
|
builder: e.builder,
|
|
emitter: new eU(u)
|
|
});
|
|
return {
|
|
push: function(r) {
|
|
var i;
|
|
(null === (i = r.app) || void 0 === i ? void 0 : i.value) && (r.app.value.trackerVersion = e.VERSION,
|
|
c.push(r))
|
|
}
|
|
}
|
|
}
|
|
var unsupportedMethod = function(e) {
|
|
return void 0 === e || "function" != typeof e
|
|
}
|
|
, create_perf_utils_sendMetrics = function(e, r) {
|
|
if (!unsupportedMethod(e.toJSON)) {
|
|
var i, a = {
|
|
browserApmTracker: {
|
|
type: "BrowserApmTracker",
|
|
value: {
|
|
browserPerformanceMeasure: {
|
|
type: "BrowserPerformanceMeasure",
|
|
value: e.toJSON()
|
|
}
|
|
}
|
|
}
|
|
};
|
|
if (r && "function" == typeof r.push) {
|
|
if (isUpgrade(!0)) {
|
|
null === (i = window.insight) || void 0 === i || i.push(a);
|
|
return
|
|
}
|
|
r.push(a, eL.NAME)
|
|
}
|
|
}
|
|
};
|
|
function createPerfUtils(e) {
|
|
return {
|
|
mark: function(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
|
|
if (!unsupportedMethod(window.performance.mark))
|
|
window.performance.mark(e),
|
|
r && this.sendEntriesByName(e, "mark")
|
|
},
|
|
markPoint: function(e) {
|
|
this.mark(e, !0)
|
|
},
|
|
measure: function(e, r, i) {
|
|
if (!unsupportedMethod(window.performance.measure))
|
|
window.performance.measure(e, r, i),
|
|
r && window.performance.clearMarks(r),
|
|
i && window.performance.clearMarks(i),
|
|
this.sendEntriesByName(e, "measure")
|
|
},
|
|
sendEntriesByName: function(r, i) {
|
|
if (!unsupportedMethod(window.performance.getEntriesByName))
|
|
create_perf_utils_sendMetrics((0,
|
|
j._)(window.performance.getEntriesByName(r, i), 1)[0], e)
|
|
}
|
|
}
|
|
}
|
|
var eq = i(84560)
|
|
, ej = i.n(eq)
|
|
, eW = {};
|
|
function setPageLoadType(e, r) {
|
|
if (!r || !r.PageLoadType)
|
|
return e;
|
|
var i = r.PageLoadType
|
|
, a = i.PAGE_LOAD_TYPE_NORMAL_JUMP
|
|
, s = i.PAGE_LOAD_TYPE_REGRESSION;
|
|
if (a && s && (null == e ? void 0 : null === (l = e.event) || void 0 === l ? void 0 : null === (c = l.value) || void 0 === c ? void 0 : null === (u = c.action) || void 0 === u ? void 0 : u.value) === "pageview") {
|
|
var u, c, l, d, p, f, v = null == e ? void 0 : null === (f = e.page) || void 0 === f ? void 0 : null === (p = f.value) || void 0 === p ? void 0 : null === (d = p.pageInstance) || void 0 === d ? void 0 : d.value;
|
|
eW[v] ? e.event.value.pageLoadType = s : (eW[v] = !0,
|
|
e.event.value.pageLoadType = a)
|
|
}
|
|
return e
|
|
}
|
|
function trackerDataMerge(e, r, i, a) {
|
|
return r = setPageLoadType(r = ej()({}, i, a), e)
|
|
}
|
|
function initiatorTypeProcess(e, r) {
|
|
var i, a, s, u, c, l;
|
|
!((null == r ? void 0 : null === (a = r.Page) || void 0 === a ? void 0 : null === (i = a.prototype) || void 0 === i ? void 0 : i.setInitiatorType) && (null == r ? void 0 : null === (u = r.Page) || void 0 === u ? void 0 : null === (s = u.prototype) || void 0 === s ? void 0 : s.getInitiatorType)) && (null == e || null === (l = e.page) || void 0 === l || null === (c = l.value) || void 0 === c || delete c.initiatorType)
|
|
}
|
|
var eG = 0
|
|
, eJ = 0
|
|
, addEventSeqIdInSession = function(e, r) {
|
|
if (!!e && !!r) {
|
|
(null == e ? void 0 : null === (i = e.event) || void 0 === i ? void 0 : i.value) && (e.event.value.seqId = Date.now()),
|
|
(null == e ? void 0 : null === (a = e.app) || void 0 === a ? void 0 : a.value) && (eG += 1,
|
|
e.app.value.eventSeqIdInSession = eG);
|
|
var i, a, s, u, c, l, d, p, f, v, g, h, m, _, y, w, E, S, T, b, k, C, P, A, R = (null == r ? void 0 : null === (u = r.App) || void 0 === u ? void 0 : null === (s = u.prototype) || void 0 === s ? void 0 : s.getColdStartId) && (null == r ? void 0 : null === (l = r.App) || void 0 === l ? void 0 : null === (c = l.prototype) || void 0 === c ? void 0 : c.setColdStartId), I = (null == r ? void 0 : null === (p = r.App) || void 0 === p ? void 0 : null === (d = p.prototype) || void 0 === d ? void 0 : d.getEventSeqIdInSession) && (null == r ? void 0 : null === (v = r.App) || void 0 === v ? void 0 : null === (f = v.prototype) || void 0 === f ? void 0 : f.setEventSeqIdInSession), O = (null == r ? void 0 : null === (h = r.Event) || void 0 === h ? void 0 : null === (g = h.prototype) || void 0 === g ? void 0 : g.getSeqId) && (null == r ? void 0 : null === (_ = r.Event) || void 0 === _ ? void 0 : null === (m = _.prototype) || void 0 === m ? void 0 : m.setSeqId);
|
|
!R && (null === (b = e.app) || void 0 === b || null === (T = b.value) || void 0 === T || delete T.coldStartId),
|
|
!I && (null === (C = e.app) || void 0 === C || null === (k = C.value) || void 0 === k || delete k.eventSeqIdInSession),
|
|
!O && (null === (A = e.event) || void 0 === A || null === (P = A.value) || void 0 === P || delete P.seqId),
|
|
(null == r ? void 0 : null === (w = r.Event) || void 0 === w ? void 0 : null === (y = w.prototype) || void 0 === y ? void 0 : y.getSdkSeqId) && (null == r ? void 0 : null === (S = r.Event) || void 0 === S ? void 0 : null === (E = S.prototype) || void 0 === E ? void 0 : E.setSdkSeqId) && (eJ += 1,
|
|
e.event.value.sdkSeqId = eJ)
|
|
}
|
|
};
|
|
function objectHasKey(e, r) {
|
|
if (!r || !e)
|
|
return !1;
|
|
var i = r.split(".");
|
|
if (1 === i.length)
|
|
return void 0 !== e[i[0]] && "" !== e[i[0]] && null !== e[i[0]] || !1;
|
|
if ("object" === (0,
|
|
m._)(e[i[0]]) && null !== e[i[0]] || "function" == typeof e[i[0]]) {
|
|
var a = i.shift()
|
|
, s = i.join(".");
|
|
return objectHasKey(e[a], s)
|
|
}
|
|
return !1
|
|
}
|
|
function flatten(e) {
|
|
Object.keys(e).forEach(function(r) {
|
|
e[r] && "object" === (0,
|
|
m._)(e[r]) && flatten(e[r]),
|
|
e[r] && e[r].value && (e[r] = e[r].value),
|
|
e[r] && e[r].type && delete e[r].type
|
|
})
|
|
}
|
|
function showTypeValue(e) {
|
|
var r = JSON.parse(JSON.stringify(e));
|
|
try {
|
|
flatten(r);
|
|
var i = [r.event.action, r.event.target_type, r.page.page_instance].filter(function(e) {
|
|
return !!e
|
|
}).join(".");
|
|
console.group("[eaglet] ".concat(i)),
|
|
console.log("%c".concat(r.event.pointId || ""), "padding:0 2px;background:green;color:white", r),
|
|
console.groupEnd()
|
|
} catch (e) {
|
|
console.group("[eaglet] ".concat(r.event.value.action.value)),
|
|
console.log("%c".concat(r.event.value.pointId || ""), "padding:0 2px;background:green;color:white", r),
|
|
console.groupEnd()
|
|
}
|
|
}
|
|
var eX = "";
|
|
function addBrowserSource(e, r) {
|
|
e && r && objectHasKey(r, "Browser.prototype.setSource") && objectHasKey(r, "Browser.prototype.getSource") && "object" === (0,
|
|
m._)(e.browser) && (e.browser.value.source = eX)
|
|
}
|
|
function updateBrowserSource(e) {
|
|
if (!e)
|
|
return null;
|
|
var r = e.meta.urlSource;
|
|
eX = !0 === r ? String(Array.isArray(e.query.source) ? e.query.source[0] : e.query.source || "") : "function" == typeof r ? String(r() || "") : ""
|
|
}
|
|
var setUserId = function setUserId_setUserId(e, r) {
|
|
var i, a, s = objectHasKey(e, "Tracker.user.value"), u = objectHasKey(e, "ApmTracker.user.value"), c = objectHasKey(e, "ApmXrayTracker.context_userId");
|
|
s && (null == e ? void 0 : null === (i = e.Tracker) || void 0 === i ? void 0 : i.user) && (e.Tracker.user.value.userId = r),
|
|
u && (null == e ? void 0 : null === (a = e.ApmTracker) || void 0 === a ? void 0 : a.user) && (e.ApmTracker.user.value.userId = r),
|
|
c && e.ApmXrayTracker && (e.ApmXrayTracker.context_userId = r)
|
|
}
|
|
, eY = new Promise(function(e) {
|
|
(0,
|
|
q.dh)().then(function(r) {
|
|
e({
|
|
sessionId: r.sessionId
|
|
})
|
|
}).catch(function() {
|
|
e({
|
|
sessionId: ""
|
|
})
|
|
})
|
|
}
|
|
)
|
|
, device_judgePlatform = function() {
|
|
if (y.YF.isIOS)
|
|
return y.YF.isXHS ? "iOS" : "iOSBrowser";
|
|
if (y.YF.isAndroid)
|
|
return y.YF.isXHS ? "Android" : "AndroidBrowser";
|
|
if (y.YF.isHarmony || y.YF.isHarmonyArk)
|
|
return y.YF.isXHS ? "Harmony" : "HarmonyBrowser";
|
|
return "PC"
|
|
}
|
|
, ez = {
|
|
appVersion: "0.0.0",
|
|
systemVersion: "unknow",
|
|
uniqueId: "",
|
|
appMarket: "",
|
|
buildId: "",
|
|
bundleId: ""
|
|
}
|
|
, deviceBuilder = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ez
|
|
, r = arguments.length > 1 ? arguments[1] : void 0;
|
|
return {
|
|
app: {
|
|
type: "App",
|
|
value: {
|
|
nameTracker: {
|
|
type: "NameTracker",
|
|
value: "wapT"
|
|
},
|
|
platform: {
|
|
type: "Platform",
|
|
value: device_judgePlatform()
|
|
},
|
|
appVersion: "discovery-".concat(e.appVersion),
|
|
appMarket: e.appMarket,
|
|
buildId: e.buildNumber,
|
|
coldStartId: e.cold_start_id,
|
|
package: e.bundleId
|
|
}
|
|
},
|
|
mob: {
|
|
type: "Mobile",
|
|
value: {
|
|
osVersion: e.systemVersion,
|
|
dvceModel: e.deviceModel,
|
|
dvceManufacture: e.manufacturer,
|
|
timezone: e.timezone,
|
|
dvceScreenWidth: e.deviceScreenWidth,
|
|
dvceScreenHeight: e.deviceScreenHeight
|
|
}
|
|
},
|
|
dvc: {
|
|
type: "Device",
|
|
value: {
|
|
idfa: e.idfa,
|
|
idfv: e.idfv,
|
|
dvceId: e.uniqueId || (null == r ? void 0 : r.deviceId) || "",
|
|
gid: (null == r ? void 0 : r.gid) || ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
, deviceBuilderV2 = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ez
|
|
, r = arguments.length > 1 ? arguments[1] : void 0;
|
|
return {
|
|
context_nameTracker: "wapT",
|
|
context_platform: device_judgePlatform(),
|
|
context_appVersion: "discovery-".concat(e.appVersion),
|
|
context_osVersion: e.systemVersion,
|
|
context_deviceModel: e.deviceModel || "",
|
|
context_deviceId: e.uniqueId || (null == r ? void 0 : r.deviceId) || "",
|
|
context_package: e.bundleId
|
|
}
|
|
};
|
|
function resolveNetType() {
|
|
return new Promise(function(e) {
|
|
(0,
|
|
q._V)().then(function(r) {
|
|
var i = r.result
|
|
, a = r.value;
|
|
0 === i ? e(a.toLowerCase()) : e("unknown")
|
|
}).catch(function() {
|
|
try {
|
|
var r = window.navigator.userAgent;
|
|
e((0,
|
|
y.P7)(r).toLowerCase())
|
|
} catch (r) {
|
|
e("unknown")
|
|
}
|
|
})
|
|
}
|
|
)
|
|
}
|
|
var eK = {
|
|
wifi: "wifi",
|
|
"4g": "mobile",
|
|
"3g": "mobile",
|
|
"3g+": "mobile",
|
|
"2g": "mobile",
|
|
none: "unknow",
|
|
other: "unknow"
|
|
}
|
|
, eZ = resolveNetType().then(function(e) {
|
|
return {
|
|
network: {
|
|
type: "Network",
|
|
value: {
|
|
networkType: {
|
|
type: "NetworkType",
|
|
value: eK[e] || "unknow"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
, eQ = resolveNetType().then(function(e) {
|
|
return {
|
|
context_networkType: eK[e] || "unknow"
|
|
}
|
|
});
|
|
function getOpenId() {
|
|
if (y.YF.isMiniprogram) {
|
|
var e;
|
|
if (null === (e = window) || void 0 === e ? void 0 : e.location)
|
|
return new URLSearchParams(window.location.search).get("openid")
|
|
}
|
|
return null
|
|
}
|
|
i(67930);
|
|
var meta_user = function() {
|
|
return d ? d : d = getABInfo().then(function(e) {
|
|
return {
|
|
user: {
|
|
type: "User",
|
|
value: {
|
|
userId: e.userId || "",
|
|
hashUserId: e.userToken,
|
|
wxOpenid: getOpenId() || "",
|
|
expV4: e.hashExp
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
, purgeUserInfo = function() {
|
|
return getABInfo().then(function(e) {
|
|
return {
|
|
user: {
|
|
type: "User",
|
|
value: {
|
|
userId: e.userId || "",
|
|
hashUserId: e.userToken,
|
|
wxOpenid: getOpenId() || "",
|
|
expV4: e.hashExp
|
|
}
|
|
}
|
|
}
|
|
})
|
|
};
|
|
function getPageInfo() {
|
|
var e, r, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, a = i.params, s = void 0 === a ? {} : a, u = i.meta, c = void 0 === u ? {} : u;
|
|
c.pageInstance && (e = c.pageInstance),
|
|
c.instanceId ? r = "function" == typeof c.instanceId ? c.instanceId(i) : c.instanceId : s.id && (r = s.id);
|
|
var l = {
|
|
page: {
|
|
type: "Page",
|
|
value: {
|
|
instanceId: r
|
|
}
|
|
}
|
|
};
|
|
return e && (l.page.value.pageInstance = {
|
|
type: "PageInstance",
|
|
value: e
|
|
}),
|
|
l
|
|
}
|
|
function getBrowserInfo() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
fullPath: ""
|
|
};
|
|
if (!U.ZP.isBrowser)
|
|
return {};
|
|
var i = r.matched
|
|
, a = void 0 === i ? [] : i
|
|
, s = a.length > 0 ? a.slice(-1)[0] : null;
|
|
return {
|
|
browser: {
|
|
type: "Browser",
|
|
value: {
|
|
matchedPath: null !== (e = null == s ? void 0 : s.path) && void 0 !== e ? e : "",
|
|
route: window.location.origin + (null == r ? void 0 : r.fullPath),
|
|
userAgent: window.navigator.userAgent,
|
|
sessionId: (0,
|
|
O.Z)(),
|
|
fixedReferer: document.referrer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var getBrowserInfoV2 = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
if (!U.ZP.isBrowser)
|
|
return {};
|
|
var i = r.matched
|
|
, a = void 0 === i ? [] : i
|
|
, s = a.length > 0 ? a.slice(-1)[0] : null;
|
|
return {
|
|
context_matchedPath: null !== (e = null == s ? void 0 : s.path) && void 0 !== e ? e : "",
|
|
context_route: window.location.href,
|
|
context_userAgent: window.navigator.userAgent
|
|
}
|
|
}
|
|
, getBaseInfo = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, a = i.getUserInfo ? i.getUserInfo() : r.purgeUser ? purgeUserInfo() : meta_user(), s = {
|
|
artifactName: "xhs-pc-web",
|
|
artifactVersion: "4.62.3"
|
|
}, u = i.getArtifactInfo ? (0,
|
|
v._)({}, s, i.getArtifactInfo()) : s;
|
|
return Promise.all([(e = i,
|
|
new Promise(function(r) {
|
|
y.YF.isXHS ? (0,
|
|
eu.dw)("getDeviceInfo").then(function(e) {
|
|
e.value ? r(deviceBuilderV2(e.value)) : r(deviceBuilderV2())
|
|
}).catch(function() {
|
|
r(deviceBuilderV2())
|
|
}) : e.getDeviceInfo ? e.getDeviceInfo().then(function(e) {
|
|
r(deviceBuilderV2({}, e))
|
|
}).catch(function() {
|
|
r(deviceBuilderV2())
|
|
}) : r(deviceBuilderV2())
|
|
}
|
|
)), eQ, a, getBrowserInfoV2(r.route), u]).then(function(e) {
|
|
var r = (0,
|
|
j._)(e, 5)
|
|
, i = r[0]
|
|
, a = r[1]
|
|
, s = r[2]
|
|
, u = r[3]
|
|
, c = r[4]
|
|
, l = (0,
|
|
v._)({}, i, a, u);
|
|
return l.context_artifactName = c.artifactName,
|
|
l.context_artifactVersion = c.artifactVersion,
|
|
(null == s ? void 0 : s.user) && (l.context_userId = s.user.value.userId),
|
|
l
|
|
})
|
|
}
|
|
, data_meta = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, a = i.getUserInfo ? i.getUserInfo() : r.purgeUser ? purgeUserInfo() : meta_user(), s = {
|
|
artifactName: "xhs-pc-web",
|
|
artifactVersion: "4.62.3"
|
|
}, u = i.getArtifactInfo ? (0,
|
|
v._)({}, s, i.getArtifactInfo()) : s;
|
|
return Promise.all([(e = i,
|
|
new Promise(function(r) {
|
|
y.YF.isXHS || y.YF.isXhsMerchant ? (0,
|
|
eu.dw)("getDeviceInfo").then(function(e) {
|
|
e.value ? r(deviceBuilder(e.value)) : r(deviceBuilder())
|
|
}).catch(function() {
|
|
r(deviceBuilder())
|
|
}) : e.getDeviceInfo ? e.getDeviceInfo().then(function(e) {
|
|
r(deviceBuilder({}, e))
|
|
}).catch(function() {
|
|
r(deviceBuilder())
|
|
}) : r(deviceBuilder())
|
|
}
|
|
)), eZ, eY, a, getPageInfo(r.route), getBrowserInfo(r.route), u]).then(function(e) {
|
|
var r = (0,
|
|
j._)(e, 7)
|
|
, i = r[0]
|
|
, a = r[1]
|
|
, s = r[2]
|
|
, u = r[3]
|
|
, c = r[4]
|
|
, l = r[5]
|
|
, d = r[6]
|
|
, p = (0,
|
|
v._)({}, i, a, c, l);
|
|
return (null == u ? void 0 : u.user) && (p.user = u.user),
|
|
p.app && (p.app.value = (0,
|
|
v._)({}, p.app.value, d),
|
|
p.app.value.sessionId = s.sessionId),
|
|
p
|
|
})
|
|
}
|
|
, e$ = i(27100)
|
|
, e0 = i.n(e$);
|
|
var e1 = (a = (0,
|
|
O.Z)(),
|
|
"undefined" != typeof window && (window.SDK__SESSION__ID ? a = window.SDK__SESSION__ID : window.SDK__SESSION__ID = a),
|
|
a)
|
|
, data_event = function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 ? arguments[1] : void 0, a = arguments.length > 2 ? arguments[2] : void 0;
|
|
return (null === (e = r.event) || void 0 === e ? void 0 : e.value) ? (r.event.value.eventId = (0,
|
|
O.Z)(),
|
|
r.event.value.dvceMicroTs = 1e3 * Date.now()) : r.event = {
|
|
type: "Event",
|
|
value: {
|
|
eventId: (0,
|
|
O.Z)(),
|
|
dvceMicroTs: 1e3 * Date.now()
|
|
}
|
|
},
|
|
i === eN.NAME && (r.event.value.requestId = e0()(),
|
|
objectHasKey(a, "Event.prototype.getSdkSessionId") && objectHasKey(a, "Event.prototype.setSdkSessionId") && (r.event.value.sdkSessionId = e1)),
|
|
r
|
|
};
|
|
i(64961),
|
|
i(12996),
|
|
i(59564);
|
|
var e2 = ["infraJsError", "httpRequestTiming"];
|
|
function interceptFactory(e) {
|
|
var r = e || {}
|
|
, i = r.scopes
|
|
, a = r.handler
|
|
, s = (null == i ? void 0 : i.filter(function(e) {
|
|
return e2.find(function(r) {
|
|
return r === e
|
|
})
|
|
})) || [];
|
|
return function interceptorImplement(e) {
|
|
if (s.find(function(r) {
|
|
return r === e.measurement_name
|
|
}))
|
|
try {
|
|
return (null == a ? void 0 : a(e)) || e
|
|
} catch (e) {}
|
|
return e
|
|
}
|
|
}
|
|
function checkTrackerInstalled(e, r) {
|
|
return !!e[r] || !1
|
|
}
|
|
var e3 = ["BrowserResourceError"];
|
|
function needPbToPave(e) {
|
|
if (null == e ? void 0 : e.browserApmTracker) {
|
|
for (var r, i = null == e ? void 0 : null === (r = e.browserApmTracker) || void 0 === r ? void 0 : r.value, a = Object.keys(i), s = 0; s < (null == a ? void 0 : a.length); s++) {
|
|
var u = i[a[s]].type;
|
|
if (e3.includes(u))
|
|
return !0
|
|
}
|
|
}
|
|
return !1
|
|
}
|
|
function initialToLower(e) {
|
|
return e.charAt(0).toLowerCase() + e.slice(1)
|
|
}
|
|
function transformPb(e, r) {
|
|
var i = [];
|
|
return Object.keys(e).forEach(function(a) {
|
|
var s = e[a];
|
|
if (s) {
|
|
var u = s.type
|
|
, c = s.value;
|
|
Array.isArray(c) ? null == c || c.forEach(function(e) {
|
|
i.push((0,
|
|
g._)((0,
|
|
v._)({}, r), {
|
|
measurement_name: initialToLower(u),
|
|
measurement_data: e
|
|
}))
|
|
}) : i.push((0,
|
|
g._)((0,
|
|
v._)({}, r), {
|
|
measurement_name: initialToLower(u),
|
|
measurement_data: c
|
|
}))
|
|
}
|
|
}),
|
|
i
|
|
}
|
|
function pbToPave(e) {
|
|
var r, i = [], a = e.app, s = e.mob, u = e.dvc, c = e.network, l = e.browser, d = e.user, p = (null == a ? void 0 : a.value) || {}, f = p.artifactName, v = p.artifactVersion, g = p.appVersion, h = p.platform, m = p.buildId, _ = (d || {}).value, y = (s || {}).value, w = (u || {}).value, E = (c || {}).value, S = (l || {}).value, T = {
|
|
clientTime: Date.now(),
|
|
context_package: m || "",
|
|
context_appVersion: g,
|
|
context_artifactName: f,
|
|
context_artifactVersion: v,
|
|
context_userId: (null == _ ? void 0 : _.userId) || "",
|
|
context_deviceId: (null == w ? void 0 : w.dvceId) || "",
|
|
context_route: (null == S ? void 0 : S.route) || "",
|
|
context_matchedPath: (null == S ? void 0 : S.matchedPath) || "",
|
|
context_deviceModel: (null == y ? void 0 : y.dvceModel) || "",
|
|
context_osVersion: (null == y ? void 0 : y.osVersion) || "",
|
|
context_userAgent: (null == S ? void 0 : S.userAgent) || "",
|
|
context_networkType: (null == E ? void 0 : null === (r = E.networkType) || void 0 === r ? void 0 : r.value) || "",
|
|
context_nameTracker: "wapT",
|
|
context_platform: null == h ? void 0 : h.value
|
|
};
|
|
return e.browserApmTracker ? i = transformPb(e.browserApmTracker.value, T) : e.frontApmTracker && (i = transformPb(e.frontApmTracker.value, T)),
|
|
i
|
|
}
|
|
var e4 = []
|
|
, e5 = {
|
|
push: (0,
|
|
p._)(function() {
|
|
var e, r, i, a = arguments;
|
|
return (0,
|
|
_.Jh)(this, function(s) {
|
|
for (r = Array(e = a.length),
|
|
i = 0; i < e; i++)
|
|
r[i] = a[i];
|
|
return e4.push({
|
|
type: "push",
|
|
params: r
|
|
}),
|
|
[2]
|
|
})
|
|
}),
|
|
flush: (0,
|
|
p._)(function() {
|
|
var e, r, i, a = arguments;
|
|
return (0,
|
|
_.Jh)(this, function(s) {
|
|
for (r = Array(e = a.length),
|
|
i = 0; i < e; i++)
|
|
r[i] = a[i];
|
|
return e4.push({
|
|
type: "flush",
|
|
params: r
|
|
}),
|
|
[2]
|
|
})
|
|
}),
|
|
config: function() {
|
|
for (var e = arguments.length, r = Array(e), i = 0; i < e; i++)
|
|
r[i] = arguments[i];
|
|
e4.push({
|
|
type: "config",
|
|
params: r
|
|
})
|
|
},
|
|
extend: function() {
|
|
for (var e = arguments.length, r = Array(e), i = 0; i < e; i++)
|
|
r[i] = arguments[i];
|
|
e4.push({
|
|
type: "extend",
|
|
params: r
|
|
})
|
|
},
|
|
getABFlagValue: function() {
|
|
for (var e = arguments.length, r = Array(e), i = 0; i < e; i++)
|
|
r[i] = arguments[i];
|
|
e4.push({
|
|
type: "getABFlagValue",
|
|
params: r
|
|
})
|
|
}
|
|
}
|
|
, e7 = !0
|
|
, e6 = {}
|
|
, e9 = {}
|
|
, e8 = {
|
|
name: "eaglet",
|
|
installed: !1,
|
|
trackPageView: !0,
|
|
trackPageEnd: !0,
|
|
debug: !1,
|
|
sendBeaconTracker: {
|
|
push: function() {}
|
|
},
|
|
trackerBuilder: {},
|
|
trackers: {},
|
|
install: function(e, r) {
|
|
var i, a, s, u, c, l, d = this, w = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
|
|
if (!this.installed && !!r.isBrowser && !!e.router) {
|
|
var E = w.tracker
|
|
, S = w.liteTracker
|
|
, T = w.apmTracker
|
|
, b = w.trackPageView
|
|
, k = w.trackPageEnd
|
|
, C = w.enableNativeEmitter
|
|
, P = void 0 === C || C
|
|
, A = w.performance
|
|
, R = w.apm
|
|
, I = void 0 === R ? {} : R
|
|
, O = w.referPath
|
|
, N = void 0 !== O && O
|
|
, L = w.customEndPoint
|
|
, M = w.noSameRouter
|
|
, B = I.jsError
|
|
, x = void 0 !== B && B
|
|
, D = I.http
|
|
, F = void 0 === D ? {} : D
|
|
, V = F.enableBatchRequest
|
|
, H = void 0 === V || V
|
|
, U = F.enableResponseData
|
|
, q = I.interceptor
|
|
, j = I.blankScreenError
|
|
, W = void 0 === j ? {} : j
|
|
, G = W.threshold
|
|
, J = W.domThreshold
|
|
, X = W.maxDepth
|
|
, Y = W.lines
|
|
, z = W.columns
|
|
, K = W.autoCheckBS
|
|
, Z = void 0 !== K && K
|
|
, Q = W.autoCheckBSTime
|
|
, $ = void 0 === Q ? 3e3 : Q
|
|
, ee = W.screenshot
|
|
, et = W.rootElementSelector
|
|
, er = !1 === w.apm
|
|
, en = {
|
|
threshold: void 0 === G ? .7 : G,
|
|
domThreshold: void 0 === J ? 5 : J,
|
|
maxDepth: void 0 === X ? 10 : X,
|
|
lines: void 0 === Y ? 5 : Y,
|
|
columns: void 0 === z ? 10 : z,
|
|
autoCheckBS: Z,
|
|
autoCheckBSTime: $,
|
|
screenshot: void 0 === ee || ee,
|
|
rootElementSelector: void 0 === et ? "" : et
|
|
};
|
|
if (this.installed = !0,
|
|
this.debug = window.location.href.includes("eaglet_debug"),
|
|
E && (this.trackers.tracker = E,
|
|
E().then(function(e) {
|
|
d.trackerBuilder = e.builder
|
|
})),
|
|
S) {
|
|
if (E)
|
|
throw Error("[eagletPlugin] Cannot both use tracker and liteTracker");
|
|
this.trackers.liteTracker = S
|
|
}
|
|
T ? this.trackers.apmTracker = T : this.trackers.apmTracker = {
|
|
NAME: "ApmTracker",
|
|
PROTOBUF_HASH: 0x5c17126e,
|
|
dataType: "json",
|
|
VERSION: "0.1.33",
|
|
builder: {
|
|
build: function(e, r) {
|
|
return r
|
|
}
|
|
},
|
|
jspb: {}
|
|
},
|
|
void 0 !== b && (this.trackPageView = b),
|
|
void 0 !== k && (this.trackPageEnd = k);
|
|
var ei = Promise.all(Object.keys(this.trackers).map(function(e) {
|
|
return "function" == typeof d.trackers[e] ? d.trackers[e]() : d.trackers[e]
|
|
})).then(function(e) {
|
|
return e.map(function(e, r) {
|
|
var i = Object.keys(d.trackers)[r];
|
|
if (e.NAME === eN.NAME) {
|
|
if ("liteTracker" === i && !e.IS_LITE)
|
|
throw Error("[eagletPlugin] Illegal liteTracker");
|
|
if ("tracker" === i && e.IS_LITE)
|
|
throw Error("[eagletPlugin] Illegal tracker")
|
|
} else if ("apmTracker" !== i)
|
|
throw Error("[eagletPlugin] Illegal ".concat(i));
|
|
return e
|
|
})
|
|
}).then(function(e) {
|
|
return e.forEach(function(e) {
|
|
if (e.NAME === eN.NAME && !e.IS_LITE) {
|
|
var r, i = e.builder.NormalizedAction;
|
|
d.trackPageView && (d.trackPageView = void 0 !== (null == i ? void 0 : i.PAGEVIEW)),
|
|
d.trackPageEnd && (d.trackPageEnd = void 0 !== (null == i ? void 0 : i.PAGE_END))
|
|
}
|
|
e.debug = window.location.href.includes("eaglet_debug"),
|
|
e6[e.NAME] = createTracker(e, {
|
|
enableNativeEmitter: P,
|
|
enableBatchRequest: null !== (r = null == A ? void 0 : A.enableBatchRequest) && void 0 !== r ? r : H,
|
|
customEndPoint: L
|
|
}),
|
|
e.NAME === eN.NAME && !e.IS_LITE && !y.YF.isXHS && (d.sendBeaconTracker = createSendBeaconTracker_createTracker(e, L))
|
|
}),
|
|
e
|
|
})
|
|
, getTrackerName = function(e) {
|
|
return ei.then(function(r) {
|
|
return e || r[0].NAME
|
|
})
|
|
}
|
|
, eo = new Promise(function(r) {
|
|
var i, purgeMetaInfo = function(e) {
|
|
return data_meta(e, w).then(function(e) {
|
|
e5.extend(e, eN.NAME),
|
|
e5.extend(e, eM.NAME),
|
|
e5.extend(e, eL.NAME),
|
|
r()
|
|
})
|
|
};
|
|
e.router.afterEach(function(e, r) {
|
|
if (!0 !== M || e.fullPath != r.fullPath) {
|
|
e5.extend(getPageInfo(e), eN.NAME);
|
|
ei.then(function() {
|
|
purgeMetaInfo({
|
|
route: e
|
|
});
|
|
var r = e.meta.pageInstance;
|
|
updateBrowserSource(e),
|
|
d.trackPageView && r && reportPv(e5, S, e, ei, ev.PAGEVIEW.AFTEREACH),
|
|
e7 && (createClickCollector(e5),
|
|
createImpressionCollector(e5)),
|
|
e7 = !1
|
|
})
|
|
}
|
|
}),
|
|
(null === (i = e.auth) || void 0 === i ? void 0 : i.services) && e.auth.services.registerAfterLoginCallback && e.auth.services.registerAfterLoginCallback(function() {
|
|
purgeMetaInfo({
|
|
purgeUser: !0
|
|
})
|
|
}, !0)
|
|
}
|
|
)
|
|
, ea = new Promise(function(r) {
|
|
var i, a, purgeBaseInfo = function(e) {
|
|
return getBaseInfo(e, w).then(function(e) {
|
|
e9[eB.NAME] = e,
|
|
r()
|
|
})
|
|
};
|
|
e.router.afterEach(function(e) {
|
|
getTrackerName().then(function() {
|
|
return purgeBaseInfo({
|
|
route: e
|
|
})
|
|
})
|
|
}),
|
|
(null === (i = e.auth) || void 0 === i ? void 0 : i.services) && e.auth.services.registerAfterLoginCallback && (null === (a = e.auth.services) || void 0 === a || a.registerAfterLoginCallback(function() {
|
|
purgeBaseInfo({
|
|
purgeUser: !0
|
|
})
|
|
}, !0))
|
|
}
|
|
)
|
|
, es = interceptFactory(q);
|
|
e5 = {
|
|
supportResourceError: !0,
|
|
push: (i = (0,
|
|
p._)(function(e, r) {
|
|
var i, a, s, u, c;
|
|
return (0,
|
|
_.Jh)(this, function(l) {
|
|
var f, h, m, y;
|
|
switch (l.label) {
|
|
case 0:
|
|
if (i = e,
|
|
a = r,
|
|
!i)
|
|
return [2];
|
|
if (a === eB.NAME) {
|
|
;return f = i,
|
|
ea.then(function() {
|
|
var e, r, i = es((0,
|
|
v._)({
|
|
clientTime: Date.now()
|
|
}, e9[eB.NAME], f));
|
|
if (isUpgrade(er)) {
|
|
null === (r = window.insight) || void 0 === r || r.push(i);
|
|
return
|
|
}
|
|
null == e6 || null === (e = e6.ApmTracker) || void 0 === e || e.push(i)
|
|
}),
|
|
[2]
|
|
}
|
|
return "ApmJSONTracker" === a && (s = e.type,
|
|
(u = {})[s] = e,
|
|
i = {
|
|
frontApmTracker: {
|
|
type: "FrontApmTracker",
|
|
value: u
|
|
}
|
|
},
|
|
a = "ApmTracker"),
|
|
[4, getTrackerName(a)];
|
|
case 1:
|
|
;if (c = l.sent(),
|
|
i && !checkTrackerInstalled(e6, c))
|
|
return [2];
|
|
return h = i,
|
|
m = c,
|
|
y = 0,
|
|
eo.then((0,
|
|
p._)(function() {
|
|
var e, r, i, a, s, u, c, l, p, f, y, w;
|
|
return (0,
|
|
_.Jh)(this, function(_) {
|
|
switch (_.label) {
|
|
case 0:
|
|
if (i = {
|
|
value: !1
|
|
},
|
|
h._uba_sendBeacon && (i.value = !0,
|
|
delete h._uba_sendBeacon),
|
|
S && m === eN.NAME) {
|
|
if (h.templateData)
|
|
r = (0,
|
|
v._)({}, h.templateData, e9[m]);
|
|
else
|
|
throw Error("[eagletPlugin] Illegal push payload, you use `liteTracker` in eaglet, make sure push data with lite template")
|
|
} else {
|
|
if (h.templateData || h.templateBuffers)
|
|
throw Error("[eagletPlugin] Illegal push payload, you use `Tracker` in eaglet, make sure push data with normal template");
|
|
r = (0,
|
|
g._)((0,
|
|
v._)({}, e9[m], h), {
|
|
page: {
|
|
type: (null === (a = h.page) || void 0 === a ? void 0 : a.type) || (null === (s = e9[m].page) || void 0 === s ? void 0 : s.type),
|
|
value: (0,
|
|
v._)({}, null === (c = e9[m]) || void 0 === c ? void 0 : null === (u = c.page) || void 0 === u ? void 0 : u.value, null === (l = h.page) || void 0 === l ? void 0 : l.value)
|
|
}
|
|
}),
|
|
m === eN.NAME && (r = trackerDataMerge(d.trackerBuilder, r, e9[m], h))
|
|
}
|
|
if (r = data_event(r, m, d.trackerBuilder),
|
|
m === eN.NAME && addEventSeqIdInSession(r, d.trackerBuilder),
|
|
!(N && m === eN.NAME))
|
|
return [3, 2];
|
|
return [4, flowSourcePointProcess(r, d.trackerBuilder)];
|
|
case 1:
|
|
r = _.sent(),
|
|
_.label = 2;
|
|
case 2:
|
|
if (m === eN.NAME && (initiatorTypeProcess(r, d.trackerBuilder),
|
|
addBrowserSource(r, d.trackerBuilder)),
|
|
m !== eN.NAME && (null == r || null === (f = r.app) || void 0 === f || null === (p = f.value) || void 0 === p || delete p.coldStartId),
|
|
"ApmTracker" === m)
|
|
return needPbToPave(r) ? null == (y = pbToPave(r)) || y.forEach(function(e) {
|
|
var r;
|
|
if (isUpgrade(er)) {
|
|
var i, a = e.measurement_name, s = e.measurement_data;
|
|
null === (i = window.insight) || void 0 === i || i.push({
|
|
measurement_name: a,
|
|
measurement_data: s
|
|
});
|
|
return
|
|
}
|
|
null == e6 || null === (r = e6.ApmTracker) || void 0 === r || r.push(e)
|
|
}) : (r.browserApmTracker || r.frontApmTracker || r.apmLog) && (null == e6 || null === (w = e6.ApmTracker) || void 0 === w || w.push(r)),
|
|
[2];
|
|
if (i.value)
|
|
return i.value = !1,
|
|
d.sendBeaconTracker.push(r),
|
|
[2];
|
|
return d.debug && showTypeValue(r),
|
|
null === (e = e6[m]) || void 0 === e || e.push(S && m === eN.NAME ? {
|
|
data: r,
|
|
templateBuffers: JSON.parse(JSON.stringify(h.templateBuffers))
|
|
} : r),
|
|
[2]
|
|
}
|
|
})
|
|
})),
|
|
[2]
|
|
}
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return i.apply(this, arguments)
|
|
}
|
|
),
|
|
flushApm: (a = (0,
|
|
p._)(function(e, r) {
|
|
var i;
|
|
return (0,
|
|
_.Jh)(this, function(a) {
|
|
if ("ApmXrayTracker" === r) {
|
|
if (isUpgrade(er))
|
|
return null === (i = window.insight) || void 0 === i || i.flush(e),
|
|
[2];
|
|
ea.then(function() {
|
|
var r, i, a = (0,
|
|
v._)({
|
|
clientTime: Date.now()
|
|
}, e9[eB.NAME], e);
|
|
"function" == typeof (null === (r = e6.ApmTracker) || void 0 === r ? void 0 : r.flushApm) && (null === (i = e6.ApmTracker) || void 0 === i || i.flushApm(a))
|
|
})
|
|
}
|
|
return [2]
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
),
|
|
flush: (s = (0,
|
|
p._)(function(e, r) {
|
|
var i, a, s;
|
|
return (0,
|
|
_.Jh)(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
return [4, getTrackerName(r)];
|
|
case 1:
|
|
if (!checkTrackerInstalled(e6, a = u.sent()))
|
|
return [2];
|
|
if (isUpgrade(er) && isApmTracker(a))
|
|
return null === (s = window.insight) || void 0 === s || s.flush(e),
|
|
[2];
|
|
if (!e)
|
|
return [3, 3];
|
|
return [4, e5.push(e, a)];
|
|
case 2:
|
|
u.sent(),
|
|
u.label = 3;
|
|
case 3:
|
|
return null === (i = e6[a]) || void 0 === i || i.flush(),
|
|
[2]
|
|
}
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return s.apply(this, arguments)
|
|
}
|
|
),
|
|
config: function(e, r, i) {
|
|
var a = i || eN.NAME
|
|
, s = JSON.parse(JSON.stringify(r));
|
|
if (a !== eN.NAME && ("page" === e && delete s.value.pageInstance,
|
|
"browser" === e && delete s.value.fixedReferer),
|
|
"ApmTracker" === a && (null === (c = s.value) || void 0 === c || delete c.gid),
|
|
"ApmTracker" === a && "app" === e && (null === (l = s.value) || void 0 === l || delete l.buildId),
|
|
e9[a] ? e9[a][e] = s : e9[a] = (0,
|
|
f._)({}, e, s),
|
|
isUpgrade(er) && isApmTracker(a)) {
|
|
var u = JSON.parse(JSON.stringify(r));
|
|
if ("app" === e) {
|
|
var c, l, d, p = u.type, v = u.value, g = v.platform, h = v.appVersion, m = v.artifactName, _ = v.artifactVersion;
|
|
null === (d = window.insight) || void 0 === d || d.config(e, {
|
|
type: p,
|
|
value: {
|
|
platform: g,
|
|
appVersion: h,
|
|
artifactName: m,
|
|
artifactVersion: _
|
|
}
|
|
}, i)
|
|
}
|
|
if ("mob" === e) {
|
|
var y, w = u.type, E = u.value, S = E.osVersion, T = E.dvceModel;
|
|
null === (y = window.insight) || void 0 === y || y.config(e, {
|
|
type: w,
|
|
value: {
|
|
osVersion: S,
|
|
dvceModel: T
|
|
}
|
|
}, i)
|
|
}
|
|
if ("dvc" === e) {
|
|
var b, k = u.type, C = u.value.dvceId;
|
|
null === (b = window.insight) || void 0 === b || b.config(e, {
|
|
type: k,
|
|
value: {
|
|
dvceId: C
|
|
}
|
|
}, i)
|
|
}
|
|
if ("network" === e && (null === (P = window.insight) || void 0 === P || P.config(e, u, i)),
|
|
"browser" === e) {
|
|
var P, A, R = u || {}, I = R.type, O = R.value, N = void 0 === O ? {} : O, L = N.matchedPath, M = N.route, B = N.userAgent;
|
|
null === (A = window.insight) || void 0 === A || A.config(e, {
|
|
type: I,
|
|
value: {
|
|
matchedPath: void 0 === L ? [] : L,
|
|
route: void 0 === M ? "" : M,
|
|
userAgent: void 0 === B ? "" : B
|
|
}
|
|
}, i)
|
|
}
|
|
if ("user" === e) {
|
|
var x, D = u.type, F = u.value.userId;
|
|
null === (x = window.insight) || void 0 === x || x.config(e, {
|
|
type: D,
|
|
value: {
|
|
userId: F
|
|
}
|
|
}, i)
|
|
}
|
|
}
|
|
},
|
|
extend: function(e, r) {
|
|
Object.keys(e).forEach(function(i) {
|
|
e5.config(i, e[i], r)
|
|
})
|
|
},
|
|
getABFlagValue: function(e) {
|
|
return getFlagValue(e)
|
|
},
|
|
sendApm: function(e, r) {
|
|
var i, a = {};
|
|
a[r] = {
|
|
type: r,
|
|
value: e
|
|
};
|
|
var s = {
|
|
frontApmTracker: {
|
|
type: "FrontApmTracker",
|
|
value: a
|
|
}
|
|
};
|
|
if (isUpgrade(er)) {
|
|
null === (i = window.insight) || void 0 === i || i.push(s);
|
|
return
|
|
}
|
|
e5.push(s, "ApmTracker")
|
|
},
|
|
sendCustomError: function(e, r) {
|
|
var i = parseError(e, r);
|
|
if (i) {
|
|
var a, s = {
|
|
measurement_name: "infraJsError",
|
|
measurement_data: (0,
|
|
v._)({
|
|
type: "custom"
|
|
}, i)
|
|
};
|
|
if (isUpgrade(er)) {
|
|
null === (a = window.insight) || void 0 === a || a.push(s);
|
|
return
|
|
}
|
|
e5.push(s, "ApmXrayTracker")
|
|
}
|
|
},
|
|
checkBlankScreenError: function() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
if (isUpgrade(er)) {
|
|
null === (e = window.insight) || void 0 === e || e.checkBlankScreenError(r);
|
|
return
|
|
}
|
|
var i = (0,
|
|
v._)({}, en, r);
|
|
checkBlankScreenError(e5, i)
|
|
},
|
|
updateUserInfo: function(e) {
|
|
setUserId(e9, e)
|
|
}
|
|
},
|
|
(!0 === x || (void 0 === x ? "undefined" : (0,
|
|
m._)(x)) === "object") && !window.insight && !er && collector_jsError(e, r, e5, x),
|
|
Z && !window.insight && !er && setTimeout(function() {
|
|
checkBlankScreenError(e5, en)
|
|
}, $),
|
|
e7 && (createPageDurationCollector(e, e5, ei, (0,
|
|
g._)((0,
|
|
v._)({}, w), {
|
|
trackPageView: this.trackPageView
|
|
})),
|
|
!window.insight && !er && createPerformanceCollector(e5, {
|
|
enableResponseData: null !== (c = null == A ? void 0 : A.enableResponseData) && void 0 !== c ? c : void 0 !== U && U
|
|
})),
|
|
e4.length && e4.forEach(function(e) {
|
|
var r = e.type
|
|
, i = e.params;
|
|
return (l = e5)[r].apply(l, (0,
|
|
h._)(i))
|
|
}),
|
|
!1 !== T && Object.defineProperty(e5, "perf", {
|
|
value: createPerfUtils(e5)
|
|
}),
|
|
w.extend && "object" === (0,
|
|
m._)(w.extend) && e5.extend(w.extend),
|
|
window.eaglet = e5,
|
|
(null === (u = r.version) || void 0 === u ? void 0 : u.startsWith("3")) ? e.vm.config.globalProperties.$eaglet = e5 : r.Vue.use({
|
|
install: function(e) {
|
|
e.prototype.$eaglet = e5
|
|
}
|
|
}),
|
|
N && flowSourceConfig()
|
|
}
|
|
},
|
|
destroy: function() {
|
|
var e;
|
|
null == e6 || null === (e = e6.ApmTracker) || void 0 === e || e.destroy()
|
|
}
|
|
}
|
|
},
|
|
19676: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
ZP: function() {
|
|
return s
|
|
}
|
|
}),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333);
|
|
var a = i(54425)
|
|
, usePinia = function(e, r) {
|
|
var i = (0,
|
|
a.WB)();
|
|
i.state.value = window.__INITIAL_STATE__ || {},
|
|
e.vm.use(i),
|
|
(null == r ? void 0 : r.plugins) && r.plugins.forEach(function(e) {
|
|
return i.use(e)
|
|
}),
|
|
e.store = i
|
|
}
|
|
, s = {
|
|
name: "store",
|
|
install: function(e, r, i) {
|
|
usePinia(e, i)
|
|
}
|
|
}
|
|
},
|
|
65266: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Kf: function() {
|
|
return b.u
|
|
},
|
|
ZP: function() {
|
|
return U
|
|
},
|
|
dJ: function() {
|
|
return C
|
|
},
|
|
kg: function() {
|
|
return P
|
|
}
|
|
});
|
|
var a, s, u, c, l = i(41622), d = i(35329), p = i(46490), f = i(90251), v = i(51606), g = i(27292), h = i(70879), m = i(27337), _ = i(64593), y = i(44501), w = i(75649), E = i(377);
|
|
i(28636),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(1154),
|
|
i(80013),
|
|
i(86651),
|
|
i(9557),
|
|
i(41593),
|
|
i(87989),
|
|
i(74719),
|
|
i(13396),
|
|
i(25069),
|
|
i(58486),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(25037),
|
|
i(55947),
|
|
i(95477),
|
|
i(19077),
|
|
i(75973),
|
|
i(7608),
|
|
i(36277);
|
|
var S = i(78607)
|
|
, T = i(2754)
|
|
, b = i(53512)
|
|
, k = i(44840)
|
|
, C = i(85456)
|
|
, P = i(14166)
|
|
, A = i(50934)
|
|
, R = i(71022)
|
|
, I = i(7825)
|
|
, O = i.n(I)
|
|
, N = i(86378)
|
|
, L = i.n(N)
|
|
, M = i(17177)
|
|
, B = (a = function() {
|
|
function _Launcher(e, r) {
|
|
(0,
|
|
p._)(this, _Launcher),
|
|
(0,
|
|
v._)(this, "ops", void 0),
|
|
(0,
|
|
v._)(this, "vm", void 0),
|
|
(0,
|
|
v._)(this, "options", void 0),
|
|
(0,
|
|
v._)(this, "plugins", []),
|
|
(0,
|
|
v._)(this, "template", void 0),
|
|
(0,
|
|
v._)(this, "app", void 0),
|
|
(0,
|
|
v._)(this, "router", void 0),
|
|
(0,
|
|
v._)(this, "head", void 0),
|
|
(0,
|
|
v._)(this, "http", C),
|
|
(0,
|
|
v._)(this, "logger", P),
|
|
(0,
|
|
v._)(this, "store", void 0),
|
|
(0,
|
|
v._)(this, "context", void 0),
|
|
(0,
|
|
v._)(this, "serverContext", void 0);
|
|
var i = r.platform
|
|
, a = r.routes
|
|
, s = r.router
|
|
, u = (void 0 === s ? {} : s).routes
|
|
, c = (0,
|
|
_._)(r.router, ["routes"]);
|
|
this.ops = {
|
|
template: e,
|
|
config: r
|
|
},
|
|
this.options = (0,
|
|
m._)((0,
|
|
h._)({}, r), {
|
|
platform: void 0 === i ? "pc" : i,
|
|
router: (0,
|
|
h._)({
|
|
routes: void 0 === u ? a : u
|
|
}, c)
|
|
}),
|
|
this.template = e
|
|
}
|
|
return (0,
|
|
f._)(_Launcher, [{
|
|
key: "registerGlobalProperties",
|
|
value: function registerGlobalProperties() {
|
|
this.app.config.globalProperties.isBrowser = _Launcher.isBrowser
|
|
}
|
|
}, {
|
|
key: "registerPlugins",
|
|
value: function registerPlugins() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.plugins;
|
|
r.sort(function(e, r) {
|
|
return e.priority - r.priority
|
|
}).forEach(function(r) {
|
|
return (0,
|
|
r.install)(e, _Launcher, r.options)
|
|
})
|
|
}
|
|
}, {
|
|
key: "use",
|
|
value: function use(e, r) {
|
|
var i, a;
|
|
if (void 0 !== e.name && this.plugins.some(function(r) {
|
|
var i = r.name;
|
|
return e.name === i
|
|
}))
|
|
return this;
|
|
return this.plugins.push({
|
|
name: e.name,
|
|
install: (a = (0,
|
|
l._)(function(r, i, a) {
|
|
var s;
|
|
return (0,
|
|
E.Jh)(this, function(u) {
|
|
return e.install(r, i, a),
|
|
null === (s = e.create) || void 0 === s || s.call(e, r, i, a),
|
|
[2]
|
|
})
|
|
}),
|
|
function(e, r, i) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
),
|
|
options: r,
|
|
priority: null !== (i = e.priority) && void 0 !== i ? i : "store" === e.name ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY
|
|
}),
|
|
this
|
|
}
|
|
}, {
|
|
key: "start",
|
|
value: function start() {
|
|
throw _Launcher.NotImplementedError("start")
|
|
}
|
|
}, {
|
|
key: "render",
|
|
value: function render(e, r) {
|
|
throw _Launcher.NotImplementedError("render")
|
|
}
|
|
}, {
|
|
key: "streamingRender",
|
|
value: function streamingRender(e, r) {
|
|
throw _Launcher.NotImplementedError("streamingRender")
|
|
}
|
|
}], [{
|
|
key: "NotImplementedError",
|
|
value: function NotImplementedError(e) {
|
|
return Error("[Launcher Exception] ".concat(e, " is not implemented yet."))
|
|
}
|
|
}]),
|
|
_Launcher
|
|
}(),
|
|
(0,
|
|
v._)(a, "version", "3.32.1"),
|
|
(0,
|
|
v._)(a, "isBrowser", !0),
|
|
(0,
|
|
v._)(a, "http", C),
|
|
(0,
|
|
v._)(a, "logger", P),
|
|
a)
|
|
, x = (s = function() {
|
|
function _RootState() {
|
|
(0,
|
|
p._)(this, _RootState),
|
|
(0,
|
|
v._)(this, "skipServerPrefetch", void 0),
|
|
(0,
|
|
v._)(this, "setupServerState", void 0),
|
|
(0,
|
|
v._)(this, "onmountedServerState", void 0)
|
|
}
|
|
return (0,
|
|
f._)(_RootState, [{
|
|
key: "provideServerState",
|
|
value: function provideServerState(e, r, i) {
|
|
var a, s, u;
|
|
this.setupServerState = (0,
|
|
S.qj)(window.__SETUP_SERVER_STATE__ || {}),
|
|
this.onmountedServerState = (0,
|
|
S.qj)(window.__ONMOUNTED_SERVER_STATE__ || {}),
|
|
(0,
|
|
S.JJ)(_RootState.SETUP_SERVER_STATE, this.setupServerState),
|
|
(0,
|
|
S.JJ)(_RootState.ONMOUNTED_SERVER_STATE, this.onmountedServerState),
|
|
a = C.instance,
|
|
(u = null == i ? void 0 : null === (s = i.headers) || void 0 === s ? void 0 : s[A.XRAY_TRACE_HEADER_NAME]) && (a.defaults.headers.common[A.XRAY_TRACE_HEADER_NAME] = u),
|
|
(0,
|
|
S.JJ)(_RootState.HTTP, C)
|
|
}
|
|
}], [{
|
|
key: "provideUseServerPrefetch",
|
|
value: function provideUseServerPrefetch() {
|
|
return function useServerPrefetch2(e, r) {
|
|
var i = r.key
|
|
, a = void 0 === i ? e.name : i
|
|
, s = r.serverOnly
|
|
, u = r.clientFetch;
|
|
r.ignoreSkipServerPrefetch,
|
|
r.PARALLEL;
|
|
var c = (0,
|
|
S.iH)()
|
|
, d = (0,
|
|
S.f3)(_RootState.SETUP_SERVER_STATE) || {}
|
|
, p = void 0 !== d[a]
|
|
, f = (0,
|
|
S.f3)(_RootState.ONMOUNTED_SERVER_STATE) || {}
|
|
, v = void 0 !== f[a];
|
|
return p && (c.value = d[a]),
|
|
(0,
|
|
S.bv)((0,
|
|
l._)(function() {
|
|
return (0,
|
|
E.Jh)(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
if (v && (c.value = f[a]),
|
|
s || !(u || !(p || v)))
|
|
return [3, 2];
|
|
return [4, u ? u({
|
|
prefeched: f[a] || d[a]
|
|
}) : e({
|
|
isBrowser: !0,
|
|
prefeched: f[a] || d[a]
|
|
})];
|
|
case 1:
|
|
c.value = r.sent(),
|
|
r.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
})),
|
|
c
|
|
}
|
|
}
|
|
}, {
|
|
key: "provideUseHttp",
|
|
value: function provideUseHttp() {
|
|
return function useHttp2() {
|
|
return (0,
|
|
S.f3)(_RootState.HTTP)
|
|
}
|
|
}
|
|
}]),
|
|
_RootState
|
|
}(),
|
|
(0,
|
|
v._)(s, "SKIP_SERVER_PREFETCH", Symbol("SKIP_SERVER_PREFETCH")),
|
|
(0,
|
|
v._)(s, "SETUP_SERVER_STATE", Symbol("SETUP_SERVER_STATE")),
|
|
(0,
|
|
v._)(s, "ONMOUNTED_SERVER_STATE", Symbol("ONMOUNTED_SERVER_STATE")),
|
|
(0,
|
|
v._)(s, "HTTP", Symbol("HTTP")),
|
|
s);
|
|
function createRoot() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
|
|
, r = e.name
|
|
, i = e.skipServerPrefetch
|
|
, a = e.serverState
|
|
, s = e.customRoot
|
|
, u = e.serverContext
|
|
, c = new x
|
|
, l = (0,
|
|
S.aZ)({
|
|
name: void 0 === r ? "Root" : r,
|
|
setup: function() {
|
|
return c.provideServerState(i, a, u)
|
|
},
|
|
render: function() {
|
|
return s ? "string" == typeof s ? (0,
|
|
S.h)((0,
|
|
S.up)(s)) : (0,
|
|
S.h)(s) : (0,
|
|
S.h)((0,
|
|
S.up)("router-view"))
|
|
}
|
|
});
|
|
return {
|
|
rootState: c,
|
|
rootComponent: l
|
|
}
|
|
}
|
|
function formatComponentName(e) {
|
|
if (e) {
|
|
if (e.$root === e)
|
|
return "root";
|
|
var r, i, a, s = (null === (r = e.$options) || void 0 === r ? void 0 : r.name) || (null === (i = e.$options) || void 0 === i ? void 0 : i._componentTag);
|
|
return "".concat(s ? "component <".concat(s, ">") : "anonymous component", " at ").concat((null === (a = e.$options) || void 0 === a ? void 0 : a.__file) || "untracked")
|
|
}
|
|
return "untracked"
|
|
}
|
|
x.provideUseServerPrefetch(),
|
|
x.provideUseHttp(),
|
|
(0,
|
|
S.aZ)({
|
|
props: {
|
|
name: {
|
|
type: String,
|
|
required: !1
|
|
},
|
|
ignoreImgLoad: {
|
|
type: Boolean,
|
|
required: !1,
|
|
default: !1
|
|
},
|
|
finalized: {
|
|
type: Boolean,
|
|
required: !1,
|
|
default: !0
|
|
}
|
|
},
|
|
setup: function(e, r) {
|
|
var i = r.slots
|
|
, a = !1;
|
|
return e.finalized ? function() {
|
|
var r = null === (s = i.default) || void 0 === s ? void 0 : s.call(i);
|
|
if (!a && (a = !0,
|
|
r)) {
|
|
var s, u, c, l = r[r.length - 1], d = e.name || "__UNSET__", p = (null === (u = l.props) || void 0 === u ? void 0 : u.id) || "__UNSET__", srcListener = function(e) {
|
|
return 'function (event){var value=event.timeStamp;var legacy=value-window.performance.timing.navigationStart;if(legacy>0){value=legacy};window.__CUSTOM_FMP_REPORT__("'.concat(d, '","').concat(p, '",').concat(e, ",value)}")
|
|
};
|
|
return [r, (0,
|
|
S.h)("script", {
|
|
innerHTML: 'window.__CUSTOM_FMP_REPORT__=function (name,id,src,value){window.__CUSTOM_FMP_METRICS__={"name":name,"id":id,"src":src,"value":value||performance.now()}};window.__CUSTOM_FMP_REPORT__("'.concat(d, '","').concat(p, '","__UNSET__");').concat(!e.ignoreImgLoad && (null === (c = l.props) || void 0 === c ? void 0 : c.id) ? 'window.__CUSTOM_FMP_ELEMENT__=document.getElementById("'.concat(l.props.id, '");if(window.__CUSTOM_FMP_ELEMENT__.tagName=="IMG"){(function(){var src=window.__CUSTOM_FMP_ELEMENT__.src;window.__CUSTOM_FMP_ELEMENT__.addEventListener("load",').concat(srcListener("src"), ')})()}else{(function(){for(var el of window.__CUSTOM_FMP_ELEMENT__.getElementsByTagName("img")){var src=el.src;el.addEventListener("load",').concat(srcListener("src"), ")}})()};") : "")
|
|
})]
|
|
}
|
|
return [r]
|
|
}
|
|
: function() {
|
|
var e;
|
|
return null === (e = i.default) || void 0 === e ? void 0 : e.call(i)
|
|
}
|
|
}
|
|
});
|
|
var D = Symbol("logger")
|
|
, F = {
|
|
install: function(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
|
|
transport: {
|
|
console: !1
|
|
}
|
|
};
|
|
!r[D] && (r[D] = i,
|
|
e.logger.configure(i)),
|
|
e.app.config.errorHandler = function(r, i, a) {
|
|
var s;
|
|
return e.logger.error(r, {
|
|
componentName: formatComponentName(i),
|
|
propsData: null == i ? void 0 : null === (s = i.$options) || void 0 === s ? void 0 : s.propsData,
|
|
lifecycleHook: a
|
|
})
|
|
}
|
|
},
|
|
priority: 0
|
|
};
|
|
function getEnv(e) {
|
|
return "production"
|
|
}
|
|
var V = Symbol("http")
|
|
, install = function(e, r, i) {
|
|
var a = i;
|
|
!r[V] && (r[V] = i,
|
|
a = e.http.configure({
|
|
baseURL: ((null == i ? void 0 : i.BASE_URL) ? null == i ? void 0 : i.BASE_URL[getEnv(i.BASE_URL)] : "") || "",
|
|
apiList: null == i ? void 0 : i.API_LIST,
|
|
defaults: (0,
|
|
h._)({
|
|
timeout: 1e4,
|
|
uploadTimeout: 6e4,
|
|
adapter: null == i ? void 0 : i.adapter
|
|
}, (null == i ? void 0 : i.BASE_CONFIG) && (0,
|
|
h._)({}, i.BASE_CONFIG.defaults, i.BASE_CONFIG[getEnv(i.BASE_CONFIG)]))
|
|
})),
|
|
(null == i ? void 0 : i.dynamicAdapter) && (e.http.axios.defaults.adapter = i.dynamicAdapter(e, r, a))
|
|
};
|
|
function isSupportV3Invoke() {
|
|
return _isSupportV3Invoke.apply(this, arguments)
|
|
}
|
|
function _isSupportV3Invoke() {
|
|
return (_isSupportV3Invoke = (0,
|
|
l._)(function() {
|
|
var e;
|
|
return (0,
|
|
E.Jh)(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
if (void 0 !== u)
|
|
return [2, u];
|
|
e.label = 1;
|
|
case 1:
|
|
return e.trys.push([1, 3, , 4]),
|
|
[4, (0,
|
|
R.dz)()];
|
|
case 2:
|
|
return u = e.sent().buildNumber >= "6630000",
|
|
[3, 4];
|
|
case 3:
|
|
return e.sent(),
|
|
u = !1,
|
|
[3, 4];
|
|
case 4:
|
|
return [2, u]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function transformToSearchParams(e) {
|
|
if (!e)
|
|
return "";
|
|
var r = new URLSearchParams;
|
|
return Object.entries(e).forEach(function(e) {
|
|
var i = (0,
|
|
y._)(e, 2)
|
|
, a = i[0]
|
|
, s = i[1];
|
|
r.append(a, s)
|
|
}),
|
|
r.toString()
|
|
}
|
|
function sendClientRequestV3Adapter(e) {
|
|
return _sendClientRequestV3Adapter.apply(this, arguments)
|
|
}
|
|
function _sendClientRequestV3Adapter() {
|
|
return (_sendClientRequestV3Adapter = (0,
|
|
l._)(function(e) {
|
|
var r, i, a, s, u, l, d, p, f, v, g, _, y, w, S, T, b, k, C, P, A, I, N;
|
|
return (0,
|
|
E.Jh)(this, function(E) {
|
|
switch (E.label) {
|
|
case 0:
|
|
if (r = e.method,
|
|
i = e.url,
|
|
a = e.params,
|
|
s = e.paramsSerializer,
|
|
u = e.data,
|
|
l = e.headers,
|
|
p = void 0 !== (d = e.disableFallback) && d,
|
|
f = r.toUpperCase(),
|
|
v = (l || {})["Content-Type"],
|
|
"GET" !== f && (!(v || "").match(/application\/x-www-form-urlencoded|application\/json/) || u instanceof FormData))
|
|
return [2, O()(e)];
|
|
E.label = 1;
|
|
case 1:
|
|
if (E.trys.push([1, 6, , 7]),
|
|
_ = void 0 === u ? u : JSON.parse(u),
|
|
y = Object.prototype.toString.call(_),
|
|
_ && "[object Object]" !== y)
|
|
return [2, O()(e)];
|
|
if (w = L()(i, a, s),
|
|
S = {
|
|
method: f,
|
|
url: w,
|
|
headers: l
|
|
},
|
|
T = null,
|
|
"GET" !== f && (T = "application/x-www-form-urlencoded" === v ? transformToSearchParams(_) : JSON.stringify(_),
|
|
S.body = T),
|
|
!e.timeout)
|
|
return [3, 3];
|
|
return [4, Promise.race([new Promise(function(r, i) {
|
|
setTimeout(function() {
|
|
i("RequestTimeout")
|
|
}, e.timeout)
|
|
}
|
|
), (0,
|
|
R.qp)(S)])];
|
|
case 2:
|
|
return b = E.sent(),
|
|
[3, 5];
|
|
case 3:
|
|
return [4, (0,
|
|
R.qp)(S)];
|
|
case 4:
|
|
b = E.sent(),
|
|
E.label = 5;
|
|
case 5:
|
|
if (k = Date.now(),
|
|
C = 1,
|
|
1 === Number((null == b ? void 0 : null === (g = b.headers) || void 0 === g ? void 0 : g.h5ApiPrefetch) || 5) && (C = 2),
|
|
P = b.result,
|
|
A = b.value,
|
|
I = b.message,
|
|
0 === P)
|
|
return [2, {
|
|
data: A.body,
|
|
status: A.status,
|
|
headers: A.headers,
|
|
config: (0,
|
|
m._)((0,
|
|
h._)({}, e), {
|
|
trackData: {
|
|
requestStartTime: c,
|
|
requestEndTime: k,
|
|
prefetch: C
|
|
}
|
|
})
|
|
}];
|
|
throw Error("The result returned from sendClientRequestV3 bridge is not 0, the result code is ".concat(P, ", the message is ").concat(I));
|
|
case 6:
|
|
if ((null == (N = E.sent()) ? void 0 : N.name) === "SchemaError")
|
|
return (N.code === R.nJ.NotSupport || -1e4 === N.code) && console.warn('[Launcher Http] Run "'.concat(r, " ").concat(i, '" request with sendClientRequestV3 fail, make sure your app verion >= 6.63 and run in XHSWebView')),
|
|
[2, O()(e)];
|
|
if ("RequestTimeout" === N) {
|
|
if (p)
|
|
throw new M.th("ECONNABORTED",N);
|
|
return [2, O()(e)]
|
|
}
|
|
throw new M.th("EUseBridgeV3Error",(null == N ? void 0 : N.message) || JSON.stringify(N));
|
|
case 7:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function sendClientRequestV2Adapter(e) {
|
|
return _sendClientRequestV2Adapter.apply(this, arguments)
|
|
}
|
|
function _sendClientRequestV2Adapter() {
|
|
return (_sendClientRequestV2Adapter = (0,
|
|
l._)(function(e) {
|
|
var r, i, a, s, u, c, l, d, p, f, v, g;
|
|
return (0,
|
|
E.Jh)(this, function(_) {
|
|
switch (_.label) {
|
|
case 0:
|
|
r = e.method,
|
|
i = e.url,
|
|
a = e.params,
|
|
s = e.paramsSerializer,
|
|
c = void 0 === (u = e.data) ? u : JSON.parse(u),
|
|
_.label = 1;
|
|
case 1:
|
|
return _.trys.push([1, 3, , 4]),
|
|
l = (0,
|
|
m._)((0,
|
|
h._)({}, a), {
|
|
sid: void 0
|
|
}),
|
|
d = L()(i, l, s),
|
|
[4, (0,
|
|
R.wS)({
|
|
type: r.toUpperCase(),
|
|
url: d,
|
|
data: c
|
|
})];
|
|
case 2:
|
|
if (f = (p = _.sent()).result,
|
|
v = p.response,
|
|
0 === f)
|
|
return [2, {
|
|
data: v.body,
|
|
status: v.status,
|
|
headers: v.headers,
|
|
config: e
|
|
}];
|
|
throw Error("The result returned from sendClientRequestV2 bridge is not 0");
|
|
case 3:
|
|
g = _.sent();
|
|
throw new M.th("EUseBridgeError",g.message);
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function xhrByBridgeAdapter(e) {
|
|
return _xhrByBridgeAdapter.apply(this, arguments)
|
|
}
|
|
function _xhrByBridgeAdapter() {
|
|
return (_xhrByBridgeAdapter = (0,
|
|
l._)(function(e) {
|
|
var r, i, a, s, u, l;
|
|
return (0,
|
|
E.Jh)(this, function(d) {
|
|
switch (d.label) {
|
|
case 0:
|
|
if (c = Date.now(),
|
|
r = e.method,
|
|
a = void 0 !== (i = e.preferBridge) && i,
|
|
u = void 0 !== (s = e.useBridge) && s,
|
|
!a && !u)
|
|
return [2, O()(e)];
|
|
d.label = 1;
|
|
case 1:
|
|
if (d.trys.push([1, 4, , 5]),
|
|
a)
|
|
return [2, sendClientRequestV3Adapter(e)];
|
|
if (!u)
|
|
return [3, 3];
|
|
return console.warn("[Launcher Http] useBridge was deprecated, please use preferBridge"),
|
|
[4, isSupportV3Invoke()];
|
|
case 2:
|
|
if (d.sent()) {
|
|
if (("post" === r || "put" === r || "delete" === r) && e.headers)
|
|
return e.headers["Content-Type"] = "application/x-www-form-urlencoded",
|
|
[2, sendClientRequestV3Adapter(e)];
|
|
if ("get" === r)
|
|
return [2, sendClientRequestV3Adapter(e)]
|
|
}
|
|
return [2, sendClientRequestV2Adapter(e)];
|
|
case 3:
|
|
return [3, 5];
|
|
case 4:
|
|
throw l = d.sent(),
|
|
new M.th("EUnknowHttpError",l.message);
|
|
case 5:
|
|
return [2, ""]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var H = {
|
|
install: function(e, r, i) {
|
|
return install(e, r, (0,
|
|
h._)({
|
|
adapter: xhrByBridgeAdapter
|
|
}, i))
|
|
},
|
|
priority: 0
|
|
};
|
|
window.addEventListener("popstate", function() {
|
|
var e = new CustomEvent("customPopState",{
|
|
detail: {
|
|
spvType: "back"
|
|
}
|
|
});
|
|
window.dispatchEvent(e)
|
|
});
|
|
var U = function(e) {
|
|
function Launcher2(e, r) {
|
|
(0,
|
|
p._)(this, Launcher2),
|
|
(i = (0,
|
|
d._)(this, Launcher2, [e, r])).use(F, i.options.logger).use(H, i.options.http).use(k.W),
|
|
i.router = i.createRouter(),
|
|
i.head = (0,
|
|
b.c)(i.options.head);
|
|
var i, a = createRoot({
|
|
name: r.name,
|
|
customRoot: r.customRoot
|
|
}).rootComponent;
|
|
return i.app = i.vm = (window.__SSR__ || window.__STREAMING__ || window.__SSG__ ? S.vr : S.ri)(a),
|
|
i.app.use(i.router),
|
|
i.app.use(i.head),
|
|
i
|
|
}
|
|
return (0,
|
|
g._)(Launcher2, e),
|
|
(0,
|
|
f._)(Launcher2, [{
|
|
key: "createRouter",
|
|
value: function createRouter1() {
|
|
var e = this.options.router || {}
|
|
, r = e.useDefault404Route
|
|
, a = e.routes
|
|
, s = void 0 === a ? [] : a
|
|
, u = e.history
|
|
, c = void 0 === u ? (0,
|
|
T.PO)() : u
|
|
, l = e.linkActiveClass
|
|
, d = (0,
|
|
_._)(e, ["useDefault404Route", "routes", "history", "linkActiveClass"])
|
|
, p = void 0 === r || r ? (0,
|
|
w._)(s).concat([{
|
|
path: "/:catchAll(.*)",
|
|
component: function() {
|
|
return i.e("37").then(i.bind(i, 47332)).then(function(e) {
|
|
return e.ErrorPage
|
|
})
|
|
},
|
|
meta: {
|
|
title: "你访问的页面不见了"
|
|
}
|
|
}]) : s
|
|
, f = (0,
|
|
T.p7)((0,
|
|
h._)({
|
|
routes: this.options.appContainer ? [{
|
|
path: "/",
|
|
component: this.options.appContainer,
|
|
children: p
|
|
}] : p,
|
|
history: c,
|
|
linkActiveClass: void 0 === l ? "active" : l
|
|
}, d));
|
|
return f.afterEach(function(e) {
|
|
var r = e.meta;
|
|
"string" == typeof (null == r ? void 0 : r.title) && (document.title = r.title)
|
|
}),
|
|
f
|
|
}
|
|
}, {
|
|
key: "start",
|
|
value: function start() {
|
|
var e = this;
|
|
return (0,
|
|
l._)(function() {
|
|
var r, i;
|
|
return (0,
|
|
E.Jh)(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return e.registerGlobalProperties(),
|
|
e.registerPlugins(),
|
|
[4, null === (r = (i = e.options).beforeStart) || void 0 === r ? void 0 : r.call(i, e.app)];
|
|
case 1:
|
|
return a.sent(),
|
|
[4, e.router.isReady()];
|
|
case 2:
|
|
return a.sent(),
|
|
e.app.mount(e.template),
|
|
[2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}]),
|
|
Launcher2
|
|
}(B)
|
|
},
|
|
42723: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Kf: function() {
|
|
return w.u
|
|
}
|
|
});
|
|
var a, s, u = i(41622), c = i(46490), l = i(90251), d = i(51606), p = i(70879), f = i(27337), v = i(64593), g = i(377);
|
|
i(28636),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(1154),
|
|
i(80013),
|
|
i(86651),
|
|
i(9557),
|
|
i(41593),
|
|
i(87989),
|
|
i(74719),
|
|
i(13396),
|
|
i(25069),
|
|
i(58486),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(25037),
|
|
i(55947),
|
|
i(95477),
|
|
i(19077),
|
|
i(75973),
|
|
i(7608),
|
|
i(36277);
|
|
var h = i(78607);
|
|
i(44840);
|
|
var m = i(85456)
|
|
, _ = i(14166)
|
|
, y = i(50934);
|
|
i(71022),
|
|
i(7825),
|
|
i(86378),
|
|
i(17177);
|
|
var w = i(53512);
|
|
a = function() {
|
|
function _Launcher(e, r) {
|
|
(0,
|
|
c._)(this, _Launcher),
|
|
(0,
|
|
d._)(this, "ops", void 0),
|
|
(0,
|
|
d._)(this, "vm", void 0),
|
|
(0,
|
|
d._)(this, "options", void 0),
|
|
(0,
|
|
d._)(this, "plugins", []),
|
|
(0,
|
|
d._)(this, "template", void 0),
|
|
(0,
|
|
d._)(this, "app", void 0),
|
|
(0,
|
|
d._)(this, "router", void 0),
|
|
(0,
|
|
d._)(this, "head", void 0),
|
|
(0,
|
|
d._)(this, "http", m),
|
|
(0,
|
|
d._)(this, "logger", _),
|
|
(0,
|
|
d._)(this, "store", void 0),
|
|
(0,
|
|
d._)(this, "context", void 0),
|
|
(0,
|
|
d._)(this, "serverContext", void 0);
|
|
var i = r.platform
|
|
, a = r.routes
|
|
, s = r.router
|
|
, u = (void 0 === s ? {} : s).routes
|
|
, l = (0,
|
|
v._)(r.router, ["routes"]);
|
|
this.ops = {
|
|
template: e,
|
|
config: r
|
|
},
|
|
this.options = (0,
|
|
f._)((0,
|
|
p._)({}, r), {
|
|
platform: void 0 === i ? "pc" : i,
|
|
router: (0,
|
|
p._)({
|
|
routes: void 0 === u ? a : u
|
|
}, l)
|
|
}),
|
|
this.template = e
|
|
}
|
|
return (0,
|
|
l._)(_Launcher, [{
|
|
key: "registerGlobalProperties",
|
|
value: function registerGlobalProperties() {
|
|
this.app.config.globalProperties.isBrowser = _Launcher.isBrowser
|
|
}
|
|
}, {
|
|
key: "registerPlugins",
|
|
value: function registerPlugins() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.plugins;
|
|
r.sort(function(e, r) {
|
|
return e.priority - r.priority
|
|
}).forEach(function(r) {
|
|
return (0,
|
|
r.install)(e, _Launcher, r.options)
|
|
})
|
|
}
|
|
}, {
|
|
key: "use",
|
|
value: function use(e, r) {
|
|
var i, a;
|
|
if (void 0 !== e.name && this.plugins.some(function(r) {
|
|
var i = r.name;
|
|
return e.name === i
|
|
}))
|
|
return this;
|
|
return this.plugins.push({
|
|
name: e.name,
|
|
install: (a = (0,
|
|
u._)(function(r, i, a) {
|
|
var s;
|
|
return (0,
|
|
g.Jh)(this, function(u) {
|
|
return e.install(r, i, a),
|
|
null === (s = e.create) || void 0 === s || s.call(e, r, i, a),
|
|
[2]
|
|
})
|
|
}),
|
|
function(e, r, i) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
),
|
|
options: r,
|
|
priority: null !== (i = e.priority) && void 0 !== i ? i : "store" === e.name ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY
|
|
}),
|
|
this
|
|
}
|
|
}, {
|
|
key: "start",
|
|
value: function start() {
|
|
throw _Launcher.NotImplementedError("start")
|
|
}
|
|
}, {
|
|
key: "render",
|
|
value: function render(e, r) {
|
|
throw _Launcher.NotImplementedError("render")
|
|
}
|
|
}, {
|
|
key: "streamingRender",
|
|
value: function streamingRender(e, r) {
|
|
throw _Launcher.NotImplementedError("streamingRender")
|
|
}
|
|
}], [{
|
|
key: "NotImplementedError",
|
|
value: function NotImplementedError(e) {
|
|
return Error("[Launcher Exception] ".concat(e, " is not implemented yet."))
|
|
}
|
|
}]),
|
|
_Launcher
|
|
}(),
|
|
(0,
|
|
d._)(a, "version", "3.32.1"),
|
|
(0,
|
|
d._)(a, "isBrowser", !0),
|
|
(0,
|
|
d._)(a, "http", m),
|
|
(0,
|
|
d._)(a, "logger", _);
|
|
var E = (s = function() {
|
|
function _RootState() {
|
|
(0,
|
|
c._)(this, _RootState),
|
|
(0,
|
|
d._)(this, "skipServerPrefetch", void 0),
|
|
(0,
|
|
d._)(this, "setupServerState", void 0),
|
|
(0,
|
|
d._)(this, "onmountedServerState", void 0)
|
|
}
|
|
return (0,
|
|
l._)(_RootState, [{
|
|
key: "provideServerState",
|
|
value: function provideServerState(e, r, i) {
|
|
var a, s, u;
|
|
this.setupServerState = (0,
|
|
h.qj)(window.__SETUP_SERVER_STATE__ || {}),
|
|
this.onmountedServerState = (0,
|
|
h.qj)(window.__ONMOUNTED_SERVER_STATE__ || {}),
|
|
(0,
|
|
h.JJ)(_RootState.SETUP_SERVER_STATE, this.setupServerState),
|
|
(0,
|
|
h.JJ)(_RootState.ONMOUNTED_SERVER_STATE, this.onmountedServerState),
|
|
a = m.instance,
|
|
(u = null == i ? void 0 : null === (s = i.headers) || void 0 === s ? void 0 : s[y.XRAY_TRACE_HEADER_NAME]) && (a.defaults.headers.common[y.XRAY_TRACE_HEADER_NAME] = u),
|
|
(0,
|
|
h.JJ)(_RootState.HTTP, m)
|
|
}
|
|
}], [{
|
|
key: "provideUseServerPrefetch",
|
|
value: function provideUseServerPrefetch() {
|
|
return function useServerPrefetch2(e, r) {
|
|
var i = r.key
|
|
, a = void 0 === i ? e.name : i
|
|
, s = r.serverOnly
|
|
, c = r.clientFetch;
|
|
r.ignoreSkipServerPrefetch,
|
|
r.PARALLEL;
|
|
var l = (0,
|
|
h.iH)()
|
|
, d = (0,
|
|
h.f3)(_RootState.SETUP_SERVER_STATE) || {}
|
|
, p = void 0 !== d[a]
|
|
, f = (0,
|
|
h.f3)(_RootState.ONMOUNTED_SERVER_STATE) || {}
|
|
, v = void 0 !== f[a];
|
|
return p && (l.value = d[a]),
|
|
(0,
|
|
h.bv)((0,
|
|
u._)(function() {
|
|
return (0,
|
|
g.Jh)(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
if (v && (l.value = f[a]),
|
|
s || !(c || !(p || v)))
|
|
return [3, 2];
|
|
return [4, c ? c({
|
|
prefeched: f[a] || d[a]
|
|
}) : e({
|
|
isBrowser: !0,
|
|
prefeched: f[a] || d[a]
|
|
})];
|
|
case 1:
|
|
l.value = r.sent(),
|
|
r.label = 2;
|
|
case 2:
|
|
return [2]
|
|
}
|
|
})
|
|
})),
|
|
l
|
|
}
|
|
}
|
|
}, {
|
|
key: "provideUseHttp",
|
|
value: function provideUseHttp() {
|
|
return function useHttp2() {
|
|
return (0,
|
|
h.f3)(_RootState.HTTP)
|
|
}
|
|
}
|
|
}]),
|
|
_RootState
|
|
}(),
|
|
(0,
|
|
d._)(s, "SKIP_SERVER_PREFETCH", Symbol("SKIP_SERVER_PREFETCH")),
|
|
(0,
|
|
d._)(s, "SETUP_SERVER_STATE", Symbol("SETUP_SERVER_STATE")),
|
|
(0,
|
|
d._)(s, "ONMOUNTED_SERVER_STATE", Symbol("ONMOUNTED_SERVER_STATE")),
|
|
(0,
|
|
d._)(s, "HTTP", Symbol("HTTP")),
|
|
s);
|
|
E.provideUseServerPrefetch(),
|
|
E.provideUseHttp(),
|
|
(0,
|
|
h.aZ)({
|
|
props: {
|
|
name: {
|
|
type: String,
|
|
required: !1
|
|
},
|
|
ignoreImgLoad: {
|
|
type: Boolean,
|
|
required: !1,
|
|
default: !1
|
|
},
|
|
finalized: {
|
|
type: Boolean,
|
|
required: !1,
|
|
default: !0
|
|
}
|
|
},
|
|
setup: function(e, r) {
|
|
var i = r.slots
|
|
, a = !1;
|
|
return e.finalized ? function() {
|
|
var r = null === (s = i.default) || void 0 === s ? void 0 : s.call(i);
|
|
if (!a && (a = !0,
|
|
r)) {
|
|
var s, u, c, l = r[r.length - 1], d = e.name || "__UNSET__", p = (null === (u = l.props) || void 0 === u ? void 0 : u.id) || "__UNSET__", srcListener = function(e) {
|
|
return 'function (event){var value=event.timeStamp;var legacy=value-window.performance.timing.navigationStart;if(legacy>0){value=legacy};window.__CUSTOM_FMP_REPORT__("'.concat(d, '","').concat(p, '",').concat(e, ",value)}")
|
|
};
|
|
return [r, (0,
|
|
h.h)("script", {
|
|
innerHTML: 'window.__CUSTOM_FMP_REPORT__=function (name,id,src,value){window.__CUSTOM_FMP_METRICS__={"name":name,"id":id,"src":src,"value":value||performance.now()}};window.__CUSTOM_FMP_REPORT__("'.concat(d, '","').concat(p, '","__UNSET__");').concat(!e.ignoreImgLoad && (null === (c = l.props) || void 0 === c ? void 0 : c.id) ? 'window.__CUSTOM_FMP_ELEMENT__=document.getElementById("'.concat(l.props.id, '");if(window.__CUSTOM_FMP_ELEMENT__.tagName=="IMG"){(function(){var src=window.__CUSTOM_FMP_ELEMENT__.src;window.__CUSTOM_FMP_ELEMENT__.addEventListener("load",').concat(srcListener("src"), ')})()}else{(function(){for(var el of window.__CUSTOM_FMP_ELEMENT__.getElementsByTagName("img")){var src=el.src;el.addEventListener("load",').concat(srcListener("src"), ")}})()};") : "")
|
|
})]
|
|
}
|
|
return [r]
|
|
}
|
|
: function() {
|
|
var e;
|
|
return null === (e = i.default) || void 0 === e ? void 0 : e.call(i)
|
|
}
|
|
}
|
|
}),
|
|
Symbol("logger"),
|
|
Symbol("http"),
|
|
window.addEventListener("popstate", function() {
|
|
var e = new CustomEvent("customPopState",{
|
|
detail: {
|
|
spvType: "back"
|
|
}
|
|
});
|
|
window.dispatchEvent(e)
|
|
})
|
|
},
|
|
72252: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
ZK: function() {
|
|
return f
|
|
},
|
|
vU: function() {
|
|
return p
|
|
}
|
|
});
|
|
var a = i(70879);
|
|
i(58051),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333);
|
|
var s = {
|
|
ERROR: 50,
|
|
WARN: 40,
|
|
INFO: 30,
|
|
DEBUG: 20
|
|
};
|
|
function isPlainObject_isPlainObject(e) {
|
|
return e && "[object Object]" === Object.prototype.toString.call(e)
|
|
}
|
|
function isUndefined(e) {
|
|
return void 0 === e
|
|
}
|
|
i(55947),
|
|
i(7608),
|
|
i(75973);
|
|
var u = i(31547);
|
|
function isError(e) {
|
|
return e instanceof Error || (void 0 === e ? "undefined" : (0,
|
|
u._)(e)) === "object" && !!e.message && !!e.stack || !1
|
|
}
|
|
function normalizePayload(e, r) {
|
|
var i = {};
|
|
if (isPlainObject_isPlainObject(r))
|
|
for (var a in r)
|
|
r.hasOwnProperty(a) && (i[a] = r[a]);
|
|
if (isError(e))
|
|
i.error = !0,
|
|
i.stack = e.stack || "",
|
|
i.message = e.message || "",
|
|
void 0 !== e.code && (i.code = e.code || ""),
|
|
void 0 !== e.internal && (i.internal = e.internal);
|
|
else if (isPlainObject_isPlainObject(e))
|
|
for (var s in i.message = "no_message",
|
|
e)
|
|
e.hasOwnProperty(s) && (i[s] = e[s]);
|
|
else
|
|
i.message = String(e);
|
|
var u = 1 === Object.keys(i).length;
|
|
return Object.defineProperty(i, "plain", {
|
|
value: u
|
|
}),
|
|
i
|
|
}
|
|
i(41593);
|
|
var c = console.error && console.debug
|
|
, getMethod = function(e) {
|
|
if (c) {
|
|
if (e >= s.ERROR)
|
|
return "error";
|
|
if (e >= s.WARN)
|
|
return "warn";
|
|
if (e >= s.INFO)
|
|
return "info"
|
|
}
|
|
return "log"
|
|
}
|
|
, outputConsole = function(e, r) {
|
|
var i = getMethod(e);
|
|
console[i](r)
|
|
}
|
|
, outputForBrowser = function(e, r) {
|
|
r.error ? outputConsole(e, r.stack) : r.plain ? outputConsole(e, r.message) : outputConsole(e, r)
|
|
}
|
|
, outputForServer = function(e, r) {
|
|
r.plain ? outputConsole(e, r.message) : outputConsole(e, JSON.stringify(r))
|
|
}
|
|
, dispatchContent = function(e, r) {
|
|
outputForBrowser(e, r)
|
|
};
|
|
function consoleTransport(e, r, i) {
|
|
dispatchContent(e, normalizePayload(r, i))
|
|
}
|
|
var l = i(75649);
|
|
i(86651);
|
|
var getLogLevel = function(e) {
|
|
var r = "INFO";
|
|
return e >= s.ERROR ? r = "ERROR" : e >= s.WARN && (r = "WARN"),
|
|
{
|
|
type: "LogLevel",
|
|
value: r
|
|
}
|
|
};
|
|
function outputEaglet(e, r, i, a) {
|
|
var s, u, c = window.eaglet;
|
|
if (!!c)
|
|
u = r.error ? r.stack : r.plain ? r.message : JSON.stringify(r),
|
|
c.push({
|
|
apmLog: {
|
|
type: "ApmLog",
|
|
value: {
|
|
group: a,
|
|
message: u,
|
|
context: JSON.stringify(i),
|
|
level: getLogLevel(e),
|
|
error: {
|
|
type: "LogError",
|
|
value: {
|
|
message: (s = r).message,
|
|
stack: s.stack,
|
|
code: s.code,
|
|
internal: s.internal
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}, "ApmTracker")
|
|
}
|
|
var eaglet_dispatchContent = function() {
|
|
for (var e = arguments.length, r = Array(e), i = 0; i < e; i++)
|
|
r[i] = arguments[i];
|
|
outputEaglet.apply(void 0, (0,
|
|
l._)(r))
|
|
};
|
|
function eagletTransport(e, r, i, a) {
|
|
eaglet_dispatchContent(e, normalizePayload(r), i, a)
|
|
}
|
|
var d = {
|
|
transport: {
|
|
eaglet: !1,
|
|
sentry: !1,
|
|
console: !0
|
|
},
|
|
fields: {}
|
|
};
|
|
function shouldTransport(e, r) {
|
|
return !0 === e || "number" == typeof e && !!(r >= e) || !1
|
|
}
|
|
function log(e, r, i, s) {
|
|
var u = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {};
|
|
if (i = isPlainObject_isPlainObject(i) ? (0,
|
|
a._)({}, d.fields, i) : d.fields,
|
|
shouldTransport(void 0 === u.console ? d.transport.console : u.console, e))
|
|
consoleTransport(e, r, i, s);
|
|
if (shouldTransport(void 0 === u.eaglet ? d.transport.eaglet : u.eaglet, e))
|
|
eagletTransport(e, r, i, s)
|
|
}
|
|
var wrap = function(e) {
|
|
return function(r, i, a, s) {
|
|
return log(e, r, i, a, s)
|
|
}
|
|
}
|
|
, p = wrap(s.ERROR)
|
|
, f = wrap(s.WARN);
|
|
wrap(s.INFO),
|
|
wrap(s.DEBUG)
|
|
},
|
|
14166: function(e, r, i) {
|
|
"use strict";
|
|
i.r(r),
|
|
i.d(r, {
|
|
info: function() {
|
|
return g
|
|
},
|
|
assert: function() {
|
|
return assert
|
|
},
|
|
error: function() {
|
|
return f
|
|
},
|
|
debug: function() {
|
|
return h
|
|
},
|
|
LOG_LEVEL: function() {
|
|
return s
|
|
},
|
|
configure: function() {
|
|
return configure
|
|
},
|
|
warn: function() {
|
|
return v
|
|
},
|
|
fatal: function() {
|
|
return fatal
|
|
}
|
|
}),
|
|
i(58051),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(43648),
|
|
i(42876),
|
|
i(33933),
|
|
i(87989);
|
|
var a, s = {
|
|
FATAL: 60,
|
|
ERROR: 50,
|
|
WARN: 40,
|
|
INFO: 30,
|
|
DEBUG: 20,
|
|
TRACE: 10
|
|
};
|
|
function isPlainObject(e) {
|
|
return e && "[object Object]" === Object.prototype.toString.call(e)
|
|
}
|
|
function isUndefined(e) {
|
|
return void 0 === e
|
|
}
|
|
i(55947);
|
|
var u = i(64593);
|
|
i(7608),
|
|
i(75973);
|
|
var c = i(31547);
|
|
function isError(e) {
|
|
return e instanceof Error || (void 0 === e ? "undefined" : (0,
|
|
c._)(e)) === "object" && !!e.message && !!e.stack || !1
|
|
}
|
|
function normalizePayload(e, r) {
|
|
var i = {};
|
|
if (isPlainObject(r))
|
|
for (var a in r)
|
|
r.hasOwnProperty(a) && (i[a] = r[a]);
|
|
if (isError(e))
|
|
i.error = !0,
|
|
i.stack = e.stack || "",
|
|
i.message = e.message || "",
|
|
void 0 !== e.code && (i.code = e.code || ""),
|
|
void 0 !== e.internal && (i.internal = e.internal);
|
|
else if (isPlainObject(e))
|
|
for (var s in i.message = "no_message",
|
|
e)
|
|
e.hasOwnProperty(s) && (i[s] = e[s]);
|
|
else
|
|
i.message = String(e);
|
|
var u = 1 === Object.keys(i).length;
|
|
return Object.defineProperty(i, "plain", {
|
|
value: u
|
|
}),
|
|
i
|
|
}
|
|
i(41593);
|
|
var l = console.error && console.debug
|
|
, getMethod = function(e) {
|
|
if (l) {
|
|
if (e >= s.ERROR)
|
|
return "error";
|
|
if (e >= s.WARN)
|
|
return "warn";
|
|
if (e >= s.INFO)
|
|
return "info"
|
|
}
|
|
return "log"
|
|
}
|
|
, outputConsole = function(e, r) {
|
|
var i = getMethod(e);
|
|
console[i](r)
|
|
}
|
|
, generateOuputString = function(e) {
|
|
var r = e.message
|
|
, i = (0,
|
|
u._)(e, ["message"]);
|
|
return "".concat(r, ", extra: ").concat(JSON.stringify(i))
|
|
}
|
|
, outputForBrowser = function(e, r) {
|
|
r.error ? outputConsole(e, r.stack) : r.plain ? outputConsole(e, r.message) : outputConsole(e, generateOuputString(r))
|
|
}
|
|
, outputForServer = function(e, r) {
|
|
r.plain ? outputConsole(e, r.message) : outputConsole(e, generateOuputString(r))
|
|
}
|
|
, dispatchContent = function(e, r) {
|
|
outputForBrowser(e, r)
|
|
};
|
|
function consoleTransport(e, r, i) {
|
|
dispatchContent(e, normalizePayload(r, i))
|
|
}
|
|
var d = {
|
|
transport: {
|
|
console: !0
|
|
},
|
|
fields: {}
|
|
};
|
|
a = s.INFO,
|
|
dispatchContent(a, normalizePayload("框架和 SDK 输出的日志默认不展示,可在框架配置文件中设置开启,详见 https://doc.weixin.qq.com/doc/w3_AWkASAb9APAr8IdJI5VS0OyqetUE6?scode=ANAAyQcbAAgB8qKjm9AWkASAb9APA", {}));
|
|
var p = ["app", "prdline", "logType"];
|
|
function configure(e) {
|
|
var r = e.transport
|
|
, i = e.fields;
|
|
isPlainObject(r) && (d.transport = Object.assign(d.transport, r)),
|
|
isPlainObject(i) && p.forEach(function(e) {
|
|
e in i && (d.fields[e] = i[e])
|
|
})
|
|
}
|
|
function shouldTransport(e, r) {
|
|
return !0 === e || "number" == typeof e && !!(r >= e) || !1
|
|
}
|
|
function capitalizeFirstLetter(e) {
|
|
return e && "string" == typeof e ? e.charAt(0).toUpperCase() + e.slice(1) : ""
|
|
}
|
|
function log(e, r, i, a) {
|
|
var u, c, l, p = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, f = "";
|
|
if (f = isPlainObject(i) ? a || "" : i || "",
|
|
shouldTransport(isUndefined(p.console) ? d.transport.console : p.console, e) && ((null === (l = d.fields.logType) || void 0 === l ? void 0 : l.includes(f)) || e >= s.ERROR)) {
|
|
;u = e,
|
|
c = "[".concat(capitalizeFirstLetter(f), "] ").concat(r),
|
|
dispatchContent(u, normalizePayload(c, i))
|
|
}
|
|
}
|
|
var wrap = function(e) {
|
|
return function(r, i, a, s) {
|
|
return log(e, r, i, a, s)
|
|
}
|
|
}
|
|
, f = wrap(s.ERROR)
|
|
, v = wrap(s.WARN)
|
|
, g = wrap(s.INFO)
|
|
, h = wrap(s.DEBUG)
|
|
, fatal = function(e, r, i, a) {
|
|
throw f(e, r, i, a),
|
|
e
|
|
}
|
|
, assert = function(e, r) {
|
|
!e && fatal(r)
|
|
}
|
|
},
|
|
94934: function() {
|
|
"undefined" != typeof window && (window.process = window.process || {},
|
|
window.process.env = window.process.env || {},
|
|
window.process.env.BROWSER = !0,
|
|
window.process.env.BUILD_ENV = "production")
|
|
},
|
|
71022: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Ww: function() {
|
|
return showTrack
|
|
},
|
|
qc: function() {
|
|
return emitTrack
|
|
},
|
|
dh: function() {
|
|
return getTrackEnv
|
|
},
|
|
_V: function() {
|
|
return getNetworkType
|
|
},
|
|
EU: function() {
|
|
return emitApmTrack
|
|
},
|
|
dz: function() {
|
|
return getDeviceInfo
|
|
},
|
|
qp: function() {
|
|
return sendClientRequestV3
|
|
},
|
|
Ld: function() {
|
|
return subscribe
|
|
},
|
|
wS: function() {
|
|
return sendClientRequestV2
|
|
},
|
|
nJ: function() {
|
|
return l.nJ
|
|
},
|
|
Xw: function() {
|
|
return showApmTrack
|
|
}
|
|
}),
|
|
i(19738),
|
|
i(1154),
|
|
i(80013),
|
|
i(97357),
|
|
i(34333),
|
|
i(97542),
|
|
i(80156),
|
|
i(50721),
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(55947);
|
|
var a, s = i(63522);
|
|
i(87535),
|
|
i(75204),
|
|
i(86651),
|
|
i(87989),
|
|
i(72169),
|
|
i(58486),
|
|
i(36277);
|
|
var u = i(7862)
|
|
, c = i.n(u)
|
|
, l = i(28934);
|
|
function isSupport_isSupport(e) {
|
|
var r, i = s.YF.isIOS ? null === (r = window.webkit) || void 0 === r ? void 0 : r.messageHandlers : window.xhsbridge;
|
|
return i && !!i[e]
|
|
}
|
|
i(7608),
|
|
i(99808),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(9557);
|
|
var d = "0";
|
|
if (s.YF.isXHS) {
|
|
var p = (0,
|
|
s.Vk)()
|
|
, f = p.major
|
|
, v = p.minor
|
|
, g = p.patch;
|
|
d = "".concat(f, ".").concat(v, ".").concat(g)
|
|
}
|
|
function coerce(e) {
|
|
var r = e.split(".").map(function(e) {
|
|
return Number.parseInt(e, 10)
|
|
});
|
|
return [r[0] || 0, r[1] || 0, r[2] || 0]
|
|
}
|
|
function compare(e, r) {
|
|
for (var i = coerce(e), a = coerce(r), s = 0, u = 0; u < 3; u++) {
|
|
if (i[u] > a[u])
|
|
return 1;
|
|
i[u] === a[u] && (s += 1)
|
|
}
|
|
return 3 === s ? 0 : -1
|
|
}
|
|
function appVersionLt(e) {
|
|
return 0 > compare(d, e)
|
|
}
|
|
function version_appVersionGte(e) {
|
|
return !appVersionLt(e)
|
|
}
|
|
function appVersionEq(e) {
|
|
return 0 === compare(d, e)
|
|
}
|
|
var h = i(35329)
|
|
, m = i(46490)
|
|
, _ = i(27292)
|
|
, y = i(75649)
|
|
, w = i(30961);
|
|
i(41593);
|
|
var E = function(e) {
|
|
function BridgeError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
return (0,
|
|
m._)(this, BridgeError),
|
|
(r = (0,
|
|
h._)(this, BridgeError, (0,
|
|
y._)(a))).name = "BridgeError",
|
|
r.code = e,
|
|
r
|
|
}
|
|
return (0,
|
|
_._)(BridgeError, e),
|
|
BridgeError
|
|
}((0,
|
|
w._)(Error));
|
|
function bridge(e, r, i) {
|
|
var a = {};
|
|
if (void 0 !== r && (a.data = r),
|
|
i && (a.callback = i),
|
|
s.YF.isIOS) {
|
|
if ("registerNotice" === e && !appVersionLt("5.29") && appVersionLt("5.31")) {
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage({
|
|
data: i
|
|
})
|
|
} catch (e) {
|
|
throw new E("ERR_NATIVE",e.message)
|
|
}
|
|
return
|
|
}
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage(a)
|
|
} catch (r) {
|
|
throw new E("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
} else {
|
|
var u = JSON.stringify(a);
|
|
try {
|
|
window.xhsbridge[e](u)
|
|
} catch (r) {
|
|
throw new E("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
}
|
|
}
|
|
i(19077),
|
|
i(75973);
|
|
var S = i(4659);
|
|
function generateKey() {
|
|
return (0,
|
|
S.Z)().replace(/-/g, "_")
|
|
}
|
|
i(34885);
|
|
var T = i(72252);
|
|
function check(e, r, i, a) {
|
|
setTimeout(function() {
|
|
try {
|
|
c().checkPropTypes({
|
|
prop: e
|
|
}, {
|
|
prop: r
|
|
}, i, "ozone-bridge/".concat(a), !1, !0)
|
|
} catch (e) {
|
|
var s = e.stack.indexOf(e.message) > -1 ? e.stack : "Error: ".concat(e.message, "\n").concat(e.stack);
|
|
(0,
|
|
T.vU)(s, null, null, {
|
|
console: !0,
|
|
owl: !0
|
|
})
|
|
}
|
|
})
|
|
}
|
|
function checks_checkArgs(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
T.ZK)("argsT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "args", i)
|
|
}
|
|
function checks_checkRes(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
T.ZK)("resT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "res", i)
|
|
}
|
|
function escapeNewLineChars(e) {
|
|
return "string" == typeof e ? e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") : e
|
|
}
|
|
a = window.XHS_CALLBACKS || (window.XHS_CALLBACKS = {});
|
|
var b = {
|
|
add: function add(e, r, i) {
|
|
var u = "".concat(e, "_").concat(generateKey());
|
|
return a[u] = function callbackWrap(a) {
|
|
var u;
|
|
if (s.YF.isIOS || !appVersionLt("5.26.1"))
|
|
u = a;
|
|
else
|
|
try {
|
|
u = JSON.parse(escapeNewLineChars(a))
|
|
} catch (e) {
|
|
u = a
|
|
}
|
|
(null == i ? void 0 : i.resT) && checks_checkRes(u, i.resT, e),
|
|
r(u)
|
|
}
|
|
,
|
|
"XHS_CALLBACKS.".concat(u)
|
|
}
|
|
};
|
|
function callbackAdapter(e, r, i, a) {
|
|
var s;
|
|
if (!isSupport_isSupport(e))
|
|
throw new E("ERR_NOT_SUPPORT","not support ".concat(e));
|
|
(null == a ? void 0 : a.argsT) && checks_checkArgs(r, a.argsT, e),
|
|
"function" == typeof i && (s = b.add(e, i, a)),
|
|
bridge(e, r, s)
|
|
}
|
|
function bridgeAdapter_adapter(e, r, i) {
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
var u = r
|
|
, c = i;
|
|
u && (u.argsT || u.resT) && (c = u,
|
|
u = void 0),
|
|
callbackAdapter(e, u, a, c)
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
var k = i(31547);
|
|
s.YF.isAndroid && appVersionLt("5.20");
|
|
function postNotice(e) {
|
|
var r = e.methodName
|
|
, i = e.data
|
|
, a = ("undefined" == typeof window ? "undefined" : (0,
|
|
k._)(window)) === "object" && "object" === (0,
|
|
k._)(window.wx) ? window.wx : null;
|
|
return a && a.miniProgram && a.miniProgram.postMessage ? (a.miniProgram.postMessage({
|
|
data: {
|
|
methodName: r,
|
|
data: i
|
|
}
|
|
}),
|
|
Promise.resolve()) : Promise.resolve()
|
|
}
|
|
function changeTitle() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
|
|
return postNotice({
|
|
methodName: "changeTitle",
|
|
data: {
|
|
title: e
|
|
}
|
|
})
|
|
}
|
|
i(25069);
|
|
var C = c().oneOf([0, -1]).isRequired;
|
|
function deprecatedStr(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
return "[OzoneBridge] ".concat(e, " was deprecated, please use ").concat(r, ".").concat(i ? " Changelog for ".concat(i) : "")
|
|
}
|
|
function logDeprecated_warnDeprecated(e, r, i) {
|
|
(0,
|
|
T.ZK)(deprecatedStr(e, r, i))
|
|
}
|
|
function ui_changeTitle(e) {
|
|
logDeprecated_warnDeprecated("changeTitle", "document.title = 'my title'");
|
|
var r = {
|
|
argsT: c().string.isRequired
|
|
};
|
|
return s.YF.isMiniprogram ? changeTitle(e) : bridgeAdapter_adapter("changeTitle", e, r)
|
|
}
|
|
function setNaviBackCallbackLegacy(e) {
|
|
return callbackAdapter("setNaviBackCallback", void 0, e)
|
|
}
|
|
function closeWindow() {
|
|
return bridgeAdapter_adapter("closeWindow")
|
|
}
|
|
function showTrack(e) {
|
|
return bridgeAdapter_adapter("showTrack", e, {
|
|
argsT: c().shape({
|
|
title: c().string,
|
|
content: c().string,
|
|
isNewTrack: c().bool
|
|
})
|
|
})
|
|
}
|
|
function showApmTrack(e) {
|
|
return bridgeAdapter_adapter("showApmTrack", e, {
|
|
argsT: c().shape({
|
|
content: c().string
|
|
})
|
|
})
|
|
}
|
|
function emitTrack(e) {
|
|
return bridgeAdapter_adapter("emitTrack", e, {
|
|
argsT: c().string.isRequired
|
|
})
|
|
}
|
|
function emitApmTrack(e) {
|
|
return bridgeAdapter_adapter("emitApmTrack", e, {
|
|
argsT: c().string.isRequired
|
|
})
|
|
}
|
|
function completeUrl(e) {
|
|
if (!e.startsWith("http"))
|
|
return e.startsWith("//") ? window.location.protocol + e : window.location.origin + e;
|
|
return e
|
|
}
|
|
i(63712),
|
|
function installPolyfill() {
|
|
if (s.YF.isMiniprogram) {
|
|
Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
});
|
|
return
|
|
}
|
|
if (!!s.YF.isXHS) {
|
|
appVersionLt("6.36") && (window.open = function windowOpen(e) {
|
|
if (["redtop://", "uniik://"].some(function(r) {
|
|
return null == e ? void 0 : e.startsWith(r)
|
|
}))
|
|
window.location.href = e;
|
|
else {
|
|
var r = new URL(completeUrl(e));
|
|
r.searchParams.set("openPage", "yes"),
|
|
window.location.href = r.toString()
|
|
}
|
|
}
|
|
);
|
|
var e = window.close;
|
|
window.close = function windowClose() {
|
|
closeWindow().catch(function() {
|
|
return null == e ? void 0 : e()
|
|
})
|
|
}
|
|
,
|
|
s.YF.isAndroid && (appVersionEq("6.61") && !window.XHSEvents && (window.XHSEvents = {}),
|
|
appVersionLt("6.54") && Object.defineProperty(document, "title", {
|
|
set: function(e) {
|
|
this._title = e,
|
|
ui_changeTitle(e)
|
|
},
|
|
get: function() {
|
|
return this._title
|
|
},
|
|
configurable: !0
|
|
}))
|
|
}
|
|
}();
|
|
var P = i(41622)
|
|
, A = i(70879)
|
|
, R = i(27337)
|
|
, I = i(64593)
|
|
, O = i(377);
|
|
i(15066),
|
|
i(42876),
|
|
i(33933);
|
|
var N = i(36757);
|
|
function adaptGetDeviceInfo(e) {
|
|
return s.YF.isIOS && (e.deviceId = e.uniqueId),
|
|
e
|
|
}
|
|
function getDeviceInfoOld() {
|
|
function imeiType() {
|
|
return appVersionLt("5.24") ? {} : s.YF.isIOS ? {
|
|
idfa: c().string.isRequired,
|
|
idfv: c().string.isRequired
|
|
} : {
|
|
imei: c().string.isRequired
|
|
}
|
|
}
|
|
var e = {
|
|
resT: c().shape((0,
|
|
A._)({
|
|
result: C,
|
|
appMarket: c().string.isRequired,
|
|
appVersion: c().string.isRequired,
|
|
buildNumber: c().string.isRequired,
|
|
systemVersion: c().string.isRequired,
|
|
deviceModel: c().string.isRequired,
|
|
manufacturer: c().string.isRequired,
|
|
timezone: c().string.isRequired,
|
|
deviceScreenWidth: c().number.isRequired,
|
|
deviceScreenHeight: c().number.isRequired,
|
|
carrier: c().string.isRequired,
|
|
uniqueId: c().string.isRequired
|
|
}, s.YF.isIOS ? {
|
|
applepayInfo: c().bool.isRequired
|
|
} : {}, imeiType))
|
|
};
|
|
return bridgeAdapter_adapter("getDeviceInfo").then(function(r) {
|
|
var i = (0,
|
|
N.Lg)(r);
|
|
return r.applepay_info && (i.applepay_info = r.applepay_info,
|
|
logDeprecated_warnDeprecated("res.applepay_info", "res.applepayInfo")),
|
|
checks_checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function getDeviceInfo() {
|
|
return _getDeviceInfo.apply(this, arguments)
|
|
}
|
|
function _getDeviceInfo() {
|
|
return (_getDeviceInfo = (0,
|
|
P._)(function() {
|
|
var e, r, i, a;
|
|
return (0,
|
|
O.Jh)(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return a.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
l.dw)("getDeviceInfo")];
|
|
case 1:
|
|
if (r = (e = a.sent() || {}).result,
|
|
i = e.value,
|
|
0 === r)
|
|
return [2, adaptGetDeviceInfo(i)];
|
|
return [2, getDeviceInfoOld()];
|
|
case 2:
|
|
return a.sent(),
|
|
[2, getDeviceInfoOld()];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function getNetworkTypeLegacy() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !1
|
|
}
|
|
, r = {
|
|
resT: c().shape({
|
|
result: C,
|
|
value: c().oneOf(["WiFi", "4G", "3G+", "3G", "2G", "NONE"])
|
|
})
|
|
};
|
|
return bridgeAdapter_adapter("getNetworkType").then(function(i) {
|
|
var a = (0,
|
|
A._)({}, i);
|
|
if (("wifi" === i.value || "WIFI" === i.value) && (a.value = "WiFi"),
|
|
checks_checkRes(a, r.resT),
|
|
e.extractValue) {
|
|
if (0 === a.result)
|
|
return a.value;
|
|
throw new E("ERR_RESULT_".concat(a.result),"res.result is not 0")
|
|
}
|
|
return a
|
|
})
|
|
}
|
|
function getNetworkType() {
|
|
return _getNetworkType.apply(this, arguments)
|
|
}
|
|
function _getNetworkType() {
|
|
return (_getNetworkType = (0,
|
|
P._)(function() {
|
|
var e, r, i, a, s, u, c = arguments;
|
|
return (0,
|
|
O.Jh)(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
e = c.length > 0 && void 0 !== c[0] ? c[0] : {
|
|
extractValue: !1
|
|
},
|
|
u.label = 1;
|
|
case 1:
|
|
return u.trys.push([1, 3, , 4]),
|
|
[4, (0,
|
|
l.dw)("getNetworkType")];
|
|
case 2:
|
|
if (a = (i = (r = u.sent()) || {}).result,
|
|
s = i.value,
|
|
0 === a)
|
|
return [2, e.extractValue ? s : r];
|
|
return [3, 4];
|
|
case 3:
|
|
return u.sent(),
|
|
[2, getNetworkTypeLegacy(e)];
|
|
case 4:
|
|
return [2, getNetworkTypeLegacy(e)]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function getTrackEnvOld() {
|
|
var e = {
|
|
resT: c().shape({
|
|
isTestEnv: c().bool,
|
|
uploadOneByOne: c().bool,
|
|
sessionId: c().string
|
|
})
|
|
};
|
|
return bridgeAdapter_adapter("getTrackEnv").then(function(r) {
|
|
var i = (0,
|
|
N.Lg)(r);
|
|
return r.session_id && (i.sessionId = r.session_id),
|
|
checks_checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function getTrackEnv() {
|
|
return _getTrackEnv.apply(this, arguments)
|
|
}
|
|
function _getTrackEnv() {
|
|
return (_getTrackEnv = (0,
|
|
P._)(function() {
|
|
var e, r, i, a;
|
|
return (0,
|
|
O.Jh)(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
return a.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
l.dw)("getTrackEnv")];
|
|
case 1:
|
|
if (r = (e = a.sent() || {}).result,
|
|
i = e.value,
|
|
0 === r)
|
|
return i.session_id = i.sessionId,
|
|
[2, i];
|
|
return [3, 3];
|
|
case 2:
|
|
return a.sent(),
|
|
[2, getTrackEnvOld()];
|
|
case 3:
|
|
return [2, getTrackEnvOld()]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function basicSendClientRequest(e) {
|
|
return bridgeAdapter_adapter("sendClientRequest", e)
|
|
}
|
|
function sendClientRequestV2(e) {
|
|
var r = (0,
|
|
R._)((0,
|
|
A._)({}, e), {
|
|
url: completeUrl(e.url)
|
|
});
|
|
return isSupport_isSupport("sendClientRequestV2") && s.YF.isAndroid ? bridgeAdapter_adapter("sendClientRequestV2", r) : basicSendClientRequest(r).then(function(e) {
|
|
var r = e.result
|
|
, i = e.status
|
|
, a = e.response;
|
|
if (s.YF.isAndroid) {
|
|
if (-1 === r)
|
|
return -1 !== i ? {
|
|
result: 0,
|
|
response: {
|
|
status: i
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
}
|
|
if (-1 === r)
|
|
return a ? {
|
|
result: 0,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
})
|
|
}
|
|
function sendClientRequestV3(e) {
|
|
var r = (0,
|
|
A._)({}, e.headers)
|
|
, i = e.method.toUpperCase()
|
|
, a = r["Content-Type"]
|
|
, s = (0,
|
|
I._)(r, ["Content-Type"]);
|
|
"GET" === i || ["application/x-www-form-urlencoded", "application/json"].includes(a) ? "GET" === i && a && (r = s) : r["Content-Type"] = "application/json",
|
|
Object.keys(r).forEach(function(e) {
|
|
"string" != typeof r[e] && (r[e] = String(r[e]))
|
|
});
|
|
var u = (0,
|
|
R._)((0,
|
|
A._)({}, e), {
|
|
url: completeUrl(e.url),
|
|
headers: r
|
|
});
|
|
return (0,
|
|
l.dw)("sendClientRequestV3", u)
|
|
}
|
|
function registerNoticeLegacy(e) {
|
|
return callbackAdapter("registerNotice", void 0, e)
|
|
}
|
|
var L = {
|
|
viewWillAppearIOS: {
|
|
ios: "5.6.0"
|
|
},
|
|
viewDidAppear: {
|
|
ios: "5.39.0",
|
|
android: "5.7.0"
|
|
},
|
|
viewWillDisappearIOS: {
|
|
ios: "5.6.0"
|
|
},
|
|
viewDidDisappear: {
|
|
ios: "5.39.0",
|
|
android: "5.7.0"
|
|
},
|
|
viewAppear: {
|
|
ios: "5.6.0",
|
|
android: "5.7.0"
|
|
},
|
|
viewDisappear: {
|
|
ios: "5.6.0",
|
|
android: "5.7.0"
|
|
},
|
|
keyboardChange: {
|
|
ios: "5.7.0",
|
|
namespace: "XHSHandler"
|
|
},
|
|
afterLogin: {
|
|
ios: "5.22.0",
|
|
android: "5.22.0",
|
|
namespace: "XHSHandler"
|
|
},
|
|
dataTrafficChange: {
|
|
ios: "5.42",
|
|
android: "5.42",
|
|
namespace: "XHSHandler"
|
|
},
|
|
themeTypeChange: {
|
|
ios: "6.13",
|
|
android: "6.12",
|
|
namespace: "XHSHandler"
|
|
},
|
|
faceRecognitionResult: {
|
|
ios: "6.58",
|
|
android: "6.58",
|
|
namespace: "XHSHandler"
|
|
},
|
|
onBomLotteryStart: {
|
|
ios: "6.63",
|
|
android: "6.63",
|
|
namespace: "XHSHandler"
|
|
},
|
|
onBomLotteryEnd: {
|
|
ios: "6.63",
|
|
android: "6.63",
|
|
namespace: "XHSHandler"
|
|
},
|
|
onHitCouponFinish: {
|
|
ios: "6.65",
|
|
android: "6.65",
|
|
namespace: "XHSHandler"
|
|
},
|
|
receiveTrickleMessage: {
|
|
android: "6.81.0",
|
|
namespace: "XHSHandler"
|
|
}
|
|
};
|
|
function supportEvent(e) {
|
|
var r = L[e];
|
|
if (!r)
|
|
return !1;
|
|
return s.YF.isIOS && r.ios && !appVersionLt(r.ios) || s.YF.isAndroid && r.android && !appVersionLt(r.android)
|
|
}
|
|
function addCalledJsListener(e, r) {
|
|
window.XHSHandler = window.XHSHandler || {},
|
|
window.XHSHandler["".concat(e, "CallbackList")] = window.XHSHandler["".concat(e, "CallbackList")] || [];
|
|
for (var i = window.XHSHandler["".concat(e, "CallbackList")], a = 0; a < i.length; a++)
|
|
if (i[a] === r)
|
|
return;
|
|
i.push(r)
|
|
}
|
|
function generateCalledJsCallback(e) {
|
|
return function(r) {
|
|
var i;
|
|
((null === (i = window.XHSHandler) || void 0 === i ? void 0 : i["".concat(e, "CallbackList")]) || []).forEach(function(e) {
|
|
e(r)
|
|
})
|
|
}
|
|
}
|
|
function subscribe(e, r) {
|
|
var i = e;
|
|
if ("viewAppear" === i && logDeprecated_warnDeprecated("viewAppear", "viewDidAppear", "v2.6.0"),
|
|
"viewDisappear" === i && logDeprecated_warnDeprecated("viewDisappear", "viewDidDisappear", "v2.6.0"),
|
|
"viewWillAppearIOS" === i) {
|
|
if (s.YF.isAndroid)
|
|
return !1;
|
|
i = "viewAppear"
|
|
}
|
|
if ("viewDidAppear" === i && (s.YF.isAndroid || s.YF.isIOS && appVersionLt("5.39.0")) && (i = "viewAppear"),
|
|
"viewWillDisappearIOS" === i) {
|
|
if (s.YF.isAndroid)
|
|
return !1;
|
|
i = "viewDisappear"
|
|
}
|
|
if ("viewDidDisappear" === i && (s.YF.isAndroid || s.YF.isIOS && appVersionLt("5.39.0")) && (i = "viewDisappear"),
|
|
"navBack" === i || "setNaviBackCallback" === i)
|
|
try {
|
|
return setNaviBackCallbackLegacy(r),
|
|
!0
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
if ("notice" === i || "registerNotice" === i)
|
|
try {
|
|
return registerNoticeLegacy(r),
|
|
!0
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
if (!supportEvent(i))
|
|
return s.YF.isXHS && (0,
|
|
T.ZK)("[OzoneBridge] ".concat(i, " is not supported")),
|
|
!1;
|
|
addCalledJsListener(i, r);
|
|
var a = L[i].namespace;
|
|
if (a) {
|
|
window[a] = window[a] || {};
|
|
var u = window[a];
|
|
!u[i] && (u[i] = generateCalledJsCallback(i))
|
|
} else
|
|
!window[i] && (window[i] = generateCalledJsCallback(i));
|
|
return !0
|
|
}
|
|
},
|
|
19738: function() {
|
|
"undefined" != typeof window && (window.process = window.process || {},
|
|
window.process.env = window.process.env || {},
|
|
window.process.env.BROWSER = !0,
|
|
window.process.env.BUILD_ENV = "production")
|
|
},
|
|
63522: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Vk: function() {
|
|
return browser_getBrowserVersion
|
|
},
|
|
P7: function() {
|
|
return getNetType
|
|
},
|
|
mV: function() {
|
|
return appVersionLt
|
|
},
|
|
Np: function() {
|
|
return getOSVersion
|
|
},
|
|
Ij: function() {
|
|
return os_getOS
|
|
},
|
|
S8: function() {
|
|
return appVersionGte
|
|
},
|
|
YF: function() {
|
|
return m
|
|
}
|
|
}),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(41593);
|
|
var a = i(70879)
|
|
, s = i(27337);
|
|
function os_getOS(e) {
|
|
var r = "unspecified"
|
|
, i = e || ""
|
|
, a = {};
|
|
return i = (e || window.navigator.userAgent).toLowerCase(),
|
|
a = window.navigator,
|
|
-1 !== i.indexOf("harmony") ? r = -1 !== i.indexOf("arkweb") ? "HarmonyArk" : "Harmony" : -1 !== i.indexOf("android") && -1 === i.indexOf("harmony") ? r = "Android" : -1 !== i.indexOf("iphone") || -1 !== i.indexOf("ipad") || -1 !== i.indexOf("ipod") || "MacIntel" === a.platform && a.maxTouchPoints > 1 ? r = "iOS" : -1 !== i.indexOf("macintosh") ? r = "Mac OS" : -1 !== i.indexOf("windows") ? r = "Windows" : -1 !== i.indexOf("linux") && (r = "Linux"),
|
|
"unspecified" === r && i.indexOf("discover") >= 0 && (r = "iOS"),
|
|
r
|
|
}
|
|
function getOSVersion(e) {
|
|
var r, i = os_getOS(e = e || window.navigator.userAgent), a = {};
|
|
return ("iOS" === i ? r = /(?:iPhone OS |OS |Version\/)(\d+)[._](\d+)[._]?(\d+)?/.exec(e) : "Android" === i && (r = /Android\s(\d+)\.(\d+)\.?(\d+)?/.exec(e)),
|
|
r) ? (a.major = parseInt(r[1], 10),
|
|
a.minor = parseInt(r[2], 10),
|
|
void 0 !== r[3] && (a.patch = parseInt(r[3], 10)),
|
|
a) : {
|
|
major: 0,
|
|
minor: 0,
|
|
patch: 0
|
|
}
|
|
}
|
|
i(67930),
|
|
i(58486),
|
|
i(34885),
|
|
i(42876),
|
|
i(33933),
|
|
i(95477),
|
|
i(87989);
|
|
var u = [780, 844, 926];
|
|
function iphoneXCheck(e) {
|
|
var r = {
|
|
isIphoneX: !1,
|
|
iphoneXType: ""
|
|
};
|
|
return "iOS" !== e ? r : (812 === window.screen.height ? r.iphoneXType = "X" : 896 === window.screen.height ? r.iphoneXType = window.devicePixelRatio > 2 ? "XS Max" : "XR" : u.includes(window.screen.height) && (r.iphoneXType = 3 === window.devicePixelRatio ? "12" : ""),
|
|
r.iphoneXType && (r.isIphoneX = !0),
|
|
r)
|
|
}
|
|
function iphone14ProCheck(e) {
|
|
return "iOS" === e && [932, 852].includes(window.screen.height)
|
|
}
|
|
i(82427),
|
|
i(36062),
|
|
i(57057),
|
|
i(25069),
|
|
i(72169);
|
|
var c = ["qq", "mqqbrowser", "ucbrowser", "baiduboxapp", "baiduspider", "baidubrowser", "micromessenger", "weibo", "alipay", "discover", "redtop", "uniik", "spark", "merchant", "snowpeak", "internation", "catalog", "odyssey"];
|
|
function browser_getBrowser() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", i = "unspecified";
|
|
return e = (r || window.navigator.userAgent).toLowerCase(),
|
|
"unspecified" === (i = c.reduce(function(r, i) {
|
|
return e.indexOf(i) >= 0 && (r = i),
|
|
r
|
|
}, i)) && (e.indexOf("iphone") >= 0 || e.indexOf("macintosh") >= 0 ? i = "safari" : (e.indexOf("android") >= 0 || e.indexOf("windows nt") >= 0) && (i = "chrome")),
|
|
"mqqbrowser" === i && e.indexOf("android") >= 0 && /mqqbrowser/i.test(e) && /qq/i.test(e.replace("mqqbrowser", "")) && (i = "qq"),
|
|
i
|
|
}
|
|
function browser_getBrowserVersion() {
|
|
var e, r, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", a = {
|
|
major: 0,
|
|
minor: 0,
|
|
patch: 0
|
|
}, s = (r = (e = (i || window.navigator.userAgent).toLowerCase()).includes("discover") ? /(?:discover)\/(\d+)\.(\d+)\.?(\d+)?/ : /(?:XHS|Version|Chrome)\/(\d+)\.(\d+)\.?(\d+)?/).exec(e);
|
|
return s && (a.major = parseInt(s[1], 10),
|
|
a.minor = parseInt(s[2], 10),
|
|
void 0 !== s[3] && (a.patch = parseInt(s[3], 10))),
|
|
a
|
|
}
|
|
function browser_getBuildNumber() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", i = 0;
|
|
e = (r || window.navigator.userAgent).toLowerCase();
|
|
var a = e.match(/build\/(\d{7})/);
|
|
return a && Array.isArray(a) && (i = a[1]),
|
|
parseInt(i, 10) || 0
|
|
}
|
|
var l = {
|
|
qq: "mp_qq",
|
|
weixin: "mp_weixin",
|
|
alipay: "mp_alipay",
|
|
baidu: "mp_baidu",
|
|
toutiao: "mp_toutiao"
|
|
};
|
|
function getMpType() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""
|
|
, r = arguments.length > 1 ? arguments[1] : void 0
|
|
, i = (e || window.navigator.userAgent).toLowerCase();
|
|
if (r = r || window,
|
|
i.indexOf("swan-baiduboxapp") > -1)
|
|
return l.baidu;
|
|
if (i.indexOf("toutiaomicroapp") > -1)
|
|
return l.toutiao;
|
|
if ("miniprogram" === r.__wxjs_environment || i.indexOf("miniprogram") > -1)
|
|
return i.indexOf("qq") > -1 ? l.qq : l.weixin;
|
|
return !1
|
|
}
|
|
function getMiniprogramType(e, r) {
|
|
return getMpType(e, r)
|
|
}
|
|
function query_extractFromQuery(e) {
|
|
var r = new URLSearchParams(e);
|
|
return {
|
|
isXHS: "app" === r.get("clientsource"),
|
|
isMiniprogram: "true" === r.get("isMiniprogram"),
|
|
isFullscreen: "true" === r.get("fullscreen"),
|
|
isNaviHidden: "yes" === r.get("naviHidden"),
|
|
isThemeDark: "dark" === r.get("themeType")
|
|
}
|
|
}
|
|
i(29112),
|
|
i(67275),
|
|
i(59989),
|
|
i(7099),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109);
|
|
var d = {
|
|
isXHS: !1,
|
|
isIOS: !1,
|
|
isAndroid: !1,
|
|
isWeixin: !1,
|
|
isAlipay: !1,
|
|
isWeibo: !1,
|
|
isQQ: !1,
|
|
isQQBrowser: !1,
|
|
isMiniprogram: !1,
|
|
isBaiduMiniprogram: !1,
|
|
isQQMiniprogram: !1,
|
|
isAlipayMiniprogram: !1,
|
|
isToutiaoMiniprogram: !1,
|
|
isIphoneX: !1,
|
|
isFullscreen: !1,
|
|
isTop: !1,
|
|
isUniik: !1,
|
|
isSpark: !1,
|
|
isXhsMerchant: !1,
|
|
isSnowPeak: !1,
|
|
isInternation: !1,
|
|
isCatalog: !1,
|
|
isOdyssey: !1,
|
|
isPC: !1,
|
|
buildNumber: 0
|
|
};
|
|
function commonChecks(e) {
|
|
var r, i, u = e.navigator, c = e.location, p = u.userAgent, f = os_getOS(p), v = browser_getBrowser(p), g = getMiniprogramType(p, e), h = iphoneXCheck(f), m = query_extractFromQuery(c.search), _ = "iOS" === f, y = "Android" === f, w = "Harmony" === f, E = "HarmonyArk" === f, S = !!window.xhsbridge || !!window.XHSBridge, T = !!(null === (i = window.webkit) || void 0 === i ? void 0 : null === (r = i.messageHandlers) || void 0 === r ? void 0 : r.getDeviceInfo), b = !!window.XHSBridge, k = S || T || "discover" === v || m.isXHS || b, C = "redtop" === v, P = (p || "").toLowerCase().indexOf("mobile") > -1, A = browser_getBuildNumber(p), R = !k && !y && !_ && !P && !w && !E, I = !1;
|
|
if (k || C) {
|
|
var O = browser_getBrowserVersion(p);
|
|
I = (O.major > 6 || 6 === O.major && O.minor >= 7) && m.isFullscreen || _ && m.isNaviHidden || C && m.isFullscreen
|
|
}
|
|
return (0,
|
|
s._)((0,
|
|
a._)({}, d), {
|
|
isIOS: _,
|
|
isAndroid: y,
|
|
isHarmony: w,
|
|
isHarmonyArk: E,
|
|
isXHS: k,
|
|
isFullscreen: I,
|
|
isWeixin: "micromessenger" === v,
|
|
isAlipay: "alipay" === v,
|
|
isWeibo: "weibo" === v,
|
|
isQQ: "qq" === v,
|
|
isQQBrowser: "mqqbrowser" === v,
|
|
isMiniprogram: g === l.weixin || m.isMiniprogram,
|
|
isBaiduMiniprogram: g === l.baidu,
|
|
isQQMiniprogram: g === l.qq,
|
|
isAlipayMiniprogram: g === l.alipay,
|
|
isToutiaoMiniprogram: g === l.toutiao,
|
|
isIphone14Pro: iphone14ProCheck(f),
|
|
isIphoneX: h.isIphoneX,
|
|
iphoneXType: h.iphoneXType,
|
|
isTop: C,
|
|
isUniik: "uniik" === v,
|
|
isSpark: "spark" === v,
|
|
isXhsMerchant: "merchant" === v,
|
|
isSnowPeak: "snowpeak" === v,
|
|
isInternation: "internation" === v,
|
|
isCatalog: "catalog" === v,
|
|
isOdyssey: "odyssey" === v,
|
|
isPC: R,
|
|
isMobile: P,
|
|
buildNumber: A
|
|
})
|
|
}
|
|
function getNetTypeFromUA(e) {
|
|
var r = "Unrecognized"
|
|
, i = ["2g", "3g", "4g", "wifi", "cellnetwork"];
|
|
return (e || window.navigator.userAgent).replace(/\s?(?:NetType|nt:)\/?(\w+)\s?/g, function(e, a) {
|
|
i.indexOf(a.toLowerCase()) >= 0 && (r = a)
|
|
}),
|
|
r.toLowerCase()
|
|
}
|
|
function getNetType(e) {
|
|
return getNetTypeFromUA(e)
|
|
}
|
|
i(99808),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(9557);
|
|
var p = "0"
|
|
, f = browser_getBrowserVersion()
|
|
, v = f.major
|
|
, g = f.minor
|
|
, h = f.patch;
|
|
function coerce(e) {
|
|
var r = e.split(".").map(function(e) {
|
|
return Number.parseInt(e, 10)
|
|
});
|
|
return [r[0] || 0, r[1] || 0, r[2] || 0]
|
|
}
|
|
function compare(e, r) {
|
|
for (var i = coerce(e), a = coerce(r), s = 0; s < 3; s++) {
|
|
if (i[s] > a[s])
|
|
return 1;
|
|
if (i[s] < a[s])
|
|
return -1
|
|
}
|
|
return 0
|
|
}
|
|
function appVersionLt(e) {
|
|
return 0 > compare(p, e)
|
|
}
|
|
function appVersionGte(e) {
|
|
return !appVersionLt(e)
|
|
}
|
|
p = "".concat(v, ".").concat(g, ".").concat(h);
|
|
var m = commonChecks(window)
|
|
},
|
|
28934: function(e, r, i) {
|
|
"use strict";
|
|
function check_validateReq(e, r, i) {
|
|
arguments.length > 3 && void 0 !== arguments[3] && arguments[3]
|
|
}
|
|
function validateRes(e, r, i) {
|
|
arguments.length > 3 && void 0 !== arguments[3] && arguments[3]
|
|
}
|
|
i.d(r, {
|
|
Ld: function() {
|
|
return invoke_subscribe
|
|
},
|
|
nJ: function() {
|
|
return D
|
|
},
|
|
dw: function() {
|
|
return xhs_invoke_invoke
|
|
}
|
|
}),
|
|
(M = D || (D = {}))[M.NotSupport = 16e3] = "NotSupport",
|
|
M[M.Native = 16001] = "Native",
|
|
M[M.Validate = 17e3] = "Validate",
|
|
M[M.UnKnow = 18e3] = "UnKnow",
|
|
(B = F || (F = {})).Method = "method",
|
|
B.Event = "event",
|
|
(x = V || (V = {})).Error = "error",
|
|
x.Timing = "timing",
|
|
x.Fallback = "fallback";
|
|
var a, s, u, c, l, d, p, f, v, g, h, m, _, y, w, E, S, T, b, k, C, P, A, R, I, O, N, L, M, B, x, D, F, V, H, U, q, j, W, G, J, X, Y, z, K, Z, Q, $, ee, et, er, en, ei, eo, ea, es, eu, ec, el, ed, ep, ef, ev, eg, eh, em = i(46490), e_ = i(77698), ey = i(44270), ew = i(90251);
|
|
i(89300),
|
|
i(49930),
|
|
i(19990),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(34333),
|
|
i(87989),
|
|
i(86651),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421);
|
|
var eE = ["log", "error", "info", "warn", "dir", "time", "timeLog", "timeEnd", "clear", "table", "assert", "count", "countReset", "debug", "group", "groupCollapsed", "groupEnd"]
|
|
, bridgeConsole_noop = function noop() {};
|
|
function hasBridgeConsole() {
|
|
return !!window.bridgeConsole
|
|
}
|
|
function bridgeStart(e) {
|
|
e.name,
|
|
e.callbackId;
|
|
var r = e.type
|
|
}
|
|
function bridgeSuccess(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.res
|
|
}
|
|
function eventSuccess(e) {
|
|
e.name,
|
|
e.res
|
|
}
|
|
function bridgeValidateError(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.err
|
|
}
|
|
function bridgeError(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.err
|
|
}
|
|
function bridgeNotSupport(e) {}
|
|
(function genBridgeConsole() {
|
|
if (hasBridgeConsole())
|
|
return window.bridgeConsole.log("Bridge 面板用于输出 ozone-schema 与 ozone-bridge 调用日志, 有建议或功能不足请联系 月初(yuechu@xiaohongshu.com)"),
|
|
window.bridgeConsole;
|
|
var e = {};
|
|
return eE.forEach(function(r) {
|
|
e[r] = bridgeConsole_noop
|
|
})
|
|
}
|
|
)();
|
|
var eS = "CallbackList"
|
|
, eT = new WeakMap
|
|
, eb = function() {
|
|
function XHSEventsCB() {
|
|
(0,
|
|
em._)(this, XHSEventsCB),
|
|
(0,
|
|
ey._)(this, eT, {
|
|
writable: !0,
|
|
value: {}
|
|
})
|
|
}
|
|
return (0,
|
|
ew._)(XHSEventsCB, [{
|
|
key: "get",
|
|
value: function get(e) {
|
|
return (0,
|
|
e_._)(this, eT)[e] || []
|
|
}
|
|
}, {
|
|
key: "set",
|
|
value: function set(e, r) {
|
|
(0,
|
|
e_._)(this, eT)[e] = r
|
|
}
|
|
}]),
|
|
XHSEventsCB
|
|
}();
|
|
function addCalledJsListener(e, r) {
|
|
for (var i = "".concat(e).concat(eS), a = window.XHSEventsCB.get(i), s = 0; s < a.length; s++)
|
|
if (a[s] === r)
|
|
return;
|
|
a.push(r),
|
|
window.XHSEventsCB.set(i, a)
|
|
}
|
|
function generateCalledJsCallback(e, r) {
|
|
return function(i) {
|
|
validateRes(e, F.Event, i, r),
|
|
eventSuccess({
|
|
name: e,
|
|
res: i
|
|
}),
|
|
window.XHSEventsCB.get("".concat(e).concat(eS)).forEach(function(e) {
|
|
return e(i)
|
|
})
|
|
}
|
|
}
|
|
function removeCalledJsListener(e, r) {
|
|
return {
|
|
remove: function() {
|
|
var i = "".concat(e).concat(eS)
|
|
, a = window.XHSEventsCB.get(i);
|
|
window.XHSEventsCB.set(i, a.filter(function(e) {
|
|
return e !== r
|
|
}))
|
|
}
|
|
}
|
|
}
|
|
function subscribe(e, r, i) {
|
|
return bridgeStart({
|
|
name: e,
|
|
type: "event"
|
|
}),
|
|
addCalledJsListener(e, r),
|
|
!window.XHSEvents[e] && (window.XHSEvents[e] = generateCalledJsCallback(e, i)),
|
|
removeCalledJsListener(e, r)
|
|
}
|
|
window.XHSEvents = window.XHSEvents || {},
|
|
window.XHSEventsCB = window.XHSEventsCB || new eb,
|
|
i(36277),
|
|
i(7608);
|
|
var ek = i(63522);
|
|
i(72169),
|
|
i(58486);
|
|
var eC = i(4659)
|
|
, eP = Array(16);
|
|
function makeRng() {
|
|
for (var e, r = 0; r < 16; r++)
|
|
(3 & r) == 0 && (e = 0x100000000 * Math.random()),
|
|
eP[r] = e >>> ((3 & r) << 3) & 255;
|
|
return eP
|
|
}
|
|
function generateKey() {
|
|
return (0,
|
|
eC.Z)({
|
|
rng: makeRng
|
|
}).replace(/-/g, "_")
|
|
}
|
|
function addCallback(e, r) {
|
|
var i = "".concat(e, "_").concat(generateKey());
|
|
return window.XHSCallbacks[i] = r,
|
|
"window.XHSCallbacks.".concat(i)
|
|
}
|
|
window.XHSCallbacks = window.XHSCallbacks || {},
|
|
window.XHSInvokeCallback = function(e, r) {
|
|
window.XHSCallbacks[r] && window.XHSCallbacks[r](e)
|
|
}
|
|
;
|
|
var eA = i(35329)
|
|
, eR = i(51606)
|
|
, eI = i(27292)
|
|
, eO = i(75649)
|
|
, eN = i(30961);
|
|
i(41593);
|
|
var eL = i(72252)
|
|
, eM = function(e) {
|
|
function SchemaError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
return (0,
|
|
em._)(this, SchemaError),
|
|
r = (0,
|
|
eA._)(this, SchemaError, (0,
|
|
eO._)(a)),
|
|
(0,
|
|
eR._)(r, "code", void 0),
|
|
r.name = "SchemaError",
|
|
r.code = e,
|
|
ek.YF.isXHS && r.code === D.UnKnow && (0,
|
|
eL.vU)(r),
|
|
r
|
|
}
|
|
return (0,
|
|
eI._)(SchemaError, e),
|
|
SchemaError
|
|
}((0,
|
|
eN._)(Error))
|
|
, eB = i(70879)
|
|
, ex = i(27337)
|
|
, eD = i(64593);
|
|
function completeUrl(e) {
|
|
if (!e.startsWith("http"))
|
|
return e.startsWith("//") ? window.location.protocol + e : window.location.origin + e;
|
|
return e
|
|
}
|
|
function webp2png(e) {
|
|
if (ek.YF.isIOS) {
|
|
var r, i, a = (null == e ? void 0 : null === (r = e.response) || void 0 === r ? void 0 : r.image) || (null == e ? void 0 : null === (i = e.response) || void 0 === i ? void 0 : i.images), s = (0,
|
|
ek.Np)();
|
|
(null == s ? void 0 : s.major) < 14 && (null == a ? void 0 : a.endsWith("format/webp")) && (a = "".concat(a.substring(0, a.length - 4), "png"),
|
|
e.response.image = a,
|
|
e.response.images = a)
|
|
}
|
|
}
|
|
i(42876),
|
|
i(33933),
|
|
i(75973),
|
|
i(55947),
|
|
i(97542),
|
|
i(63712);
|
|
var eF = ["getDeviceInfo", "getSupportedEvents"]
|
|
, eV = ["getPreResponse"];
|
|
function transformArgs(e, r) {
|
|
if ("sendClientRequestV3" === e) {
|
|
var i = (0,
|
|
eB._)({}, r.headers)
|
|
, a = r.method.toUpperCase()
|
|
, s = i["Content-Type"]
|
|
, u = (0,
|
|
eD._)(i, ["Content-Type"]);
|
|
return "GET" === a || ["application/x-www-form-urlencoded", "application/json"].includes(s) ? "GET" === a && s && (i = u) : i["Content-Type"] = "application/json",
|
|
Object.keys(i).forEach(function(e) {
|
|
"string" != typeof i[e] && (i[e] = String(i[e]))
|
|
}),
|
|
(0,
|
|
ex._)((0,
|
|
eB._)({}, r), {
|
|
url: completeUrl(r.url),
|
|
headers: i
|
|
})
|
|
}
|
|
return r
|
|
}
|
|
var eH = {
|
|
getDeviceInfo: function adaptGetDeviceInfo(e) {
|
|
if (ek.YF.isIOS) {
|
|
var r;
|
|
e.value.deviceId = null == e ? void 0 : null === (r = e.value) || void 0 === r ? void 0 : r.uniqueId
|
|
}
|
|
try {
|
|
delete e.value.freeDiskStorage,
|
|
delete e.value.totalDiskCapacity
|
|
} catch (e) {
|
|
console.log("get device info interceptor error:", e.message)
|
|
}
|
|
return e
|
|
},
|
|
getUserInfo: function(e) {
|
|
return webp2png(e),
|
|
e
|
|
}
|
|
};
|
|
function transformRes(e, r) {
|
|
var i = r || {}
|
|
, a = i.result
|
|
, s = i.value
|
|
, u = i.message
|
|
, c = s;
|
|
if (eF.includes(e) && 0 === a && !("[object Object]" === Object.prototype.toString.call(c) && Object.prototype.hasOwnProperty.call(c, "result")) && (c = r),
|
|
0 === a)
|
|
return eH[e] ? eH[e](c) : c;
|
|
if (eV.includes(e))
|
|
throw new eM((null == s ? void 0 : s.message) || a,"".concat(e, ": ").concat(u));
|
|
throw new eM(a,"".concat(e, ": ").concat(u))
|
|
}
|
|
function shouldLog() {
|
|
return .01 > Math.random()
|
|
}
|
|
var eU = ["getABFlag", "addApmReferV2"];
|
|
function addMeasure(e) {
|
|
if (eU.includes(e.bridgeName))
|
|
return;
|
|
var r = window.eaglet;
|
|
if (!!r) {
|
|
if (e.logType !== V.Timing || shouldLog())
|
|
try {
|
|
r.push({
|
|
measurement_name: "bridgeMonitor",
|
|
measurement_data: (0,
|
|
eB._)({
|
|
bridgeName: e.bridgeName,
|
|
bridgeLogType: e.logType,
|
|
bridgePlatform: e.platformType
|
|
}, e.logType === V.Error ? {
|
|
bridgeError: e.errorInfo
|
|
} : {
|
|
bridgeTiming: e.timing
|
|
})
|
|
}, "ApmXrayTracker").catch(function() {})
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
i(19077);
|
|
var eq = i(41622)
|
|
, ej = i(377)
|
|
, eW = i(7862)
|
|
, eG = i.n(eW)
|
|
, eJ = i(36757);
|
|
i(25069);
|
|
var eX = eG().oneOf([0, -1]).isRequired;
|
|
function urlType(e, r, i, a) {
|
|
if (e[r] && !/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.?%&=]*)?/.test(e[r]))
|
|
return Error("Invalid ".concat(a, " `").concat(r, "` => `").concat(JSON.stringify(e[r]), "` supplied to `").concat(i, "`, expected `url` pattern."))
|
|
}
|
|
var eY = function(e) {
|
|
function BridgeError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
return (0,
|
|
em._)(this, BridgeError),
|
|
r = (0,
|
|
eA._)(this, BridgeError, (0,
|
|
eO._)(a)),
|
|
(0,
|
|
eR._)(r, "code", void 0),
|
|
r.name = "BridgeError",
|
|
r.code = e,
|
|
r
|
|
}
|
|
return (0,
|
|
eI._)(BridgeError, e),
|
|
BridgeError
|
|
}((0,
|
|
eN._)(Error));
|
|
function check(e, r, i, a) {
|
|
setTimeout(function() {
|
|
try {
|
|
eG().checkPropTypes({
|
|
prop: e
|
|
}, {
|
|
prop: r
|
|
}, i, "ozone-bridge/".concat(a), function() {
|
|
return !1
|
|
})
|
|
} catch (e) {
|
|
var s = e.stack.indexOf(e.message) > -1 ? e.stack : "Error: ".concat(e.message, "\n").concat(e.stack);
|
|
(0,
|
|
eL.vU)(s, null, null, {
|
|
console: !0,
|
|
owl: !0
|
|
})
|
|
}
|
|
})
|
|
}
|
|
function checkArgs(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
eL.ZK)("argsT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "args", i)
|
|
}
|
|
function checkRes(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
eL.ZK)("resT is necessary");
|
|
return
|
|
}
|
|
check(r, e, "res", i)
|
|
}
|
|
i(34885);
|
|
function escapeNewLineChars(e) {
|
|
return "string" == typeof e ? e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") : e
|
|
}
|
|
H = window.XHS_CALLBACKS || (window.XHS_CALLBACKS = {});
|
|
var ez = {
|
|
add: function add(e, r, i) {
|
|
var a = "".concat(e, "_").concat(generateKey());
|
|
return H[a] = function callbackWrap(a) {
|
|
var s;
|
|
if (ek.YF.isIOS || (0,
|
|
ek.S8)("5.26.1"))
|
|
s = a;
|
|
else
|
|
try {
|
|
s = JSON.parse(escapeNewLineChars(a))
|
|
} catch (e) {
|
|
s = a
|
|
}
|
|
(null == i ? void 0 : i.resT) && checkRes(s, i.resT, e),
|
|
r(s)
|
|
}
|
|
,
|
|
"XHS_CALLBACKS.".concat(a)
|
|
}
|
|
};
|
|
function isSupportAdapter(e) {
|
|
var r, i = ek.YF.isIOS ? null === (r = window.webkit) || void 0 === r ? void 0 : r.messageHandlers : window.xhsbridge;
|
|
return i && !!i[e]
|
|
}
|
|
function bridge(e, r, i) {
|
|
var a = {};
|
|
if (void 0 !== r && (a.data = r),
|
|
i && (a.callback = i),
|
|
ek.YF.isIOS) {
|
|
if ("registerNotice" === e && (0,
|
|
ek.S8)("5.29") && (0,
|
|
ek.mV)("5.31")) {
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage({
|
|
data: i
|
|
})
|
|
} catch (e) {
|
|
throw new eY("ERR_NATIVE",e.message)
|
|
}
|
|
return
|
|
}
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage(a)
|
|
} catch (r) {
|
|
throw new eY("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
} else {
|
|
var s = JSON.stringify(a);
|
|
try {
|
|
window.xhsbridge[e](s)
|
|
} catch (r) {
|
|
throw new eY("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
}
|
|
}
|
|
function callbackAdapter(e, r, i, a) {
|
|
var s;
|
|
if (!isSupportAdapter(e))
|
|
throw new eY("ERR_NOT_SUPPORT","not support ".concat(e));
|
|
(null == a ? void 0 : a.argsT) && checkArgs(r, a.argsT, e),
|
|
"function" == typeof i && (s = ez.add(e, i, a)),
|
|
bridge(e, r, s)
|
|
}
|
|
function adapter(e, r, i) {
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
var u = r
|
|
, c = i;
|
|
u && (u.argsT || u.resT) && (c = u,
|
|
u = void 0),
|
|
callbackAdapter(e, u, a, c)
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
var eK = i(31547);
|
|
function deprecatedStr(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
return "[OzoneBridge] ".concat(e, " was deprecated, please use ").concat(r, ".").concat(i ? " Changelog for ".concat(i) : "")
|
|
}
|
|
function logDeprecated_warnDeprecated(e, r, i) {
|
|
(0,
|
|
eL.ZK)(deprecatedStr(e, r, i))
|
|
}
|
|
function arrangeExtensionFriend(e) {
|
|
var r;
|
|
return "string" == typeof e ? logDeprecated_warnDeprecated("args.extension.friend String", "args.extension.friend Object") : (void 0 === e ? "undefined" : (0,
|
|
eK._)(e)) === "object" && (e.cover && !e.image && (logDeprecated_warnDeprecated("args.extension.friend.cover", "args.extension.friend.image"),
|
|
e.image = e.cover,
|
|
r = (0,
|
|
eB._)({}, e)),
|
|
ek.YF.isAndroid && (r = JSON.stringify(e))),
|
|
r
|
|
}
|
|
var eZ = ek.YF.isAndroid && (0,
|
|
ek.S8)("5.20") || !0;
|
|
function postNotice(e) {
|
|
var r = e.methodName
|
|
, i = e.data
|
|
, a = ("undefined" == typeof window ? "undefined" : (0,
|
|
eK._)(window)) === "object" && "object" === (0,
|
|
eK._)(window.wx) ? window.wx : null;
|
|
return a && a.miniProgram && a.miniProgram.postMessage ? (a.miniProgram.postMessage({
|
|
data: {
|
|
methodName: r,
|
|
data: i
|
|
}
|
|
}),
|
|
Promise.resolve()) : Promise.resolve()
|
|
}
|
|
function setShareInfo(e) {
|
|
return postNotice({
|
|
methodName: "setShareInfo",
|
|
data: e
|
|
})
|
|
}
|
|
function showToast(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if (checkArgs(e, {
|
|
argsT: eG().string.isRequired
|
|
}.argsT, "showToast"),
|
|
null == e)
|
|
throw new eY("ERR_ARGS_NULL","message should not be undefined or null");
|
|
return adapter("toast", (0,
|
|
eB._)({
|
|
message: e
|
|
}, r))
|
|
}
|
|
function showAlert(e) {
|
|
var r = "showalertV2";
|
|
checkArgs(e, {
|
|
argsT: eG().shape({
|
|
title: eG().string,
|
|
desc: eG().string,
|
|
actions: eG().arrayOf(eG().shape({
|
|
name: eG().string,
|
|
callback: eG().func
|
|
}))
|
|
})
|
|
}.argsT, "showAlert");
|
|
var i = (0,
|
|
ex._)((0,
|
|
eB._)({}, e), {
|
|
des: e.desc || ""
|
|
})
|
|
, a = []
|
|
, s = {
|
|
default: 0,
|
|
cancel: 1,
|
|
destructive: 2
|
|
};
|
|
return i.actions.forEach(function(e) {
|
|
var i = ez.add(r, e.callback);
|
|
a.push({
|
|
name: e.name,
|
|
type: s[e.style],
|
|
script: "window.".concat(i, " && window.").concat(i)
|
|
})
|
|
}),
|
|
i.actions = a,
|
|
adapter(r, i)
|
|
}
|
|
function showActionSheet(e) {
|
|
return adapter("showActionSheet", e, {
|
|
argsT: eG().shape({
|
|
title: eG().string,
|
|
desc: eG().string,
|
|
actions: eG().arrayOf(eG().shape({
|
|
name: eG().string,
|
|
value: eG().string.isRequired
|
|
}))
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().string
|
|
})
|
|
})
|
|
}
|
|
function setNavigationHidden() {
|
|
return adapter("setNavigationHidden", {
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
})
|
|
}
|
|
function showNavigationRightBarButtonItem(e) {
|
|
var r = {
|
|
argsT: eG().shape({
|
|
visible: eG().bool,
|
|
buttonTitle: eG().string,
|
|
buttonIcon: eG().string,
|
|
handler: eG().func
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
};
|
|
e.button_title && logDeprecated_warnDeprecated("args.button_title", "args.buttonTitle"),
|
|
e.button_icon && logDeprecated_warnDeprecated("args.button_icon", "args.buttonIcon"),
|
|
checkArgs(e, r.argsT, "showNavigationRightBarButtonItem");
|
|
var i = e.handler
|
|
, a = (0,
|
|
eD._)(e, ["handler"])
|
|
, s = (0,
|
|
eJ.cJ)(a);
|
|
return i && "function" == typeof i && (window.XHSHandler = (0,
|
|
ex._)((0,
|
|
eB._)({}, window.XHSHandler), {
|
|
navigationRightBarButtonItem: i
|
|
})),
|
|
adapter("showNavigationRightBarButtonItemV2", s, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function setStatusBarHiddenIOS() {
|
|
var e = !(arguments.length > 0) || void 0 === arguments[0] || arguments[0];
|
|
return adapter("setStatusBarHiddenIOS", e, {
|
|
argsT: eG().bool.isRequired
|
|
})
|
|
}
|
|
function setStatusBarTextColor() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
color: "0"
|
|
};
|
|
if (ek.YF.isIOS)
|
|
throw new eY("NOT SUPPORTED ON iOS, Please use setStatusBarStyleIOS");
|
|
return adapter("setStatusBarTextColor", e.color)
|
|
}
|
|
function alwaysBounceIOS(e) {
|
|
var r = !(arguments.length > 1) || void 0 === arguments[1] || arguments[1];
|
|
return adapter("alwaysBounceIOS", {
|
|
direction: e,
|
|
bounces: r
|
|
}, {
|
|
argsT: eG().shape({
|
|
direction: eG().oneOf(["vertical", "horizontal"]).isRequired,
|
|
bounces: eG().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function ui_setShareInfo(e) {
|
|
var r = {
|
|
argsT: eG().shape({
|
|
contentType: eG().string,
|
|
title: eG().string,
|
|
content: eG().string,
|
|
linkurl: urlType,
|
|
imageurl: urlType,
|
|
type: eG().string,
|
|
extension: eG().shape({
|
|
miniprogram: eG().shape({
|
|
title: eG().string,
|
|
desc: eG().string,
|
|
webpageurl: urlType,
|
|
path: eG().string,
|
|
thumb: eG().string,
|
|
username: eG().string
|
|
}),
|
|
friend: eG().oneOfType([eG().string, eG().shape({
|
|
source: eG().string,
|
|
type: eG().oneOf(["general", "goodsDetail", "center", "topic", "event"]),
|
|
title: eG().string,
|
|
content: eG().string,
|
|
cover: eG().string,
|
|
image: eG().string,
|
|
link: eG().string,
|
|
btn: eG().string,
|
|
avatar: eG().string,
|
|
brandName: eG().string,
|
|
id: eG().string,
|
|
desc: eG().string,
|
|
price: eG().number
|
|
})])
|
|
})
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
}
|
|
, i = e;
|
|
if (i) {
|
|
(i = (0,
|
|
eB._)({}, i)).type && !eZ && (i.type = i.type.replace(/WXMiniProgram/, "WeixinSession")),
|
|
i.image && !i.imageurl && (logDeprecated_warnDeprecated("args.image", "args.imageurl"),
|
|
i.imageurl = i.image);
|
|
var a, s = arrangeExtensionFriend(null === (a = i.extension) || void 0 === a ? void 0 : a.friend);
|
|
s && (i.extension.friend = s)
|
|
}
|
|
return ek.YF.isMiniprogram ? setShareInfo(i) : adapter("setShareInfo", i, r)
|
|
}
|
|
function showShareMenu() {
|
|
return adapter("showShareMenu")
|
|
}
|
|
function shareContent(e) {
|
|
var r, i = {
|
|
argsT: eG().shape({
|
|
type: eG().string.isRequired,
|
|
contentType: eG().oneOf(["link", "image", "text"]),
|
|
title: eG().string,
|
|
content: eG().string,
|
|
linkurl: urlType,
|
|
imageurl: urlType,
|
|
base64string: eG().string,
|
|
extension: eG().shape({
|
|
miniprogram: eG().shape({
|
|
title: eG().string,
|
|
desc: eG().string,
|
|
webpageurl: urlType,
|
|
path: eG().string,
|
|
thumb: eG().string,
|
|
username: eG().string
|
|
}),
|
|
friend: eG().oneOf([eG().string, {
|
|
source: eG().string,
|
|
type: eG().oneOf(["general", "goodsDetail", "center", "topic", "event"]),
|
|
title: eG().string,
|
|
content: eG().string,
|
|
cover: eG().string,
|
|
image: eG().string,
|
|
link: eG().string,
|
|
btn: eG().string,
|
|
avatar: eG().string,
|
|
brandName: eG().string,
|
|
id: eG().string,
|
|
desc: eG().string,
|
|
price: eG().number
|
|
}])
|
|
})
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
}, a = (0,
|
|
eB._)({}, e);
|
|
a.type && !eZ && (a.type = e.type.replace(/WXMiniProgram/, "WeixinSession")),
|
|
a.image && !a.imageurl && (logDeprecated_warnDeprecated("args.image", "args.imageurl"),
|
|
a.imageurl = a.image);
|
|
var s = arrangeExtensionFriend(null === (r = a.extension) || void 0 === r ? void 0 : r.friend);
|
|
return s && (a.extension.friend = s),
|
|
adapter("shareContentV2", a, i)
|
|
}
|
|
function pay(e) {
|
|
return adapter("pay", e)
|
|
}
|
|
function alipayClient(e) {
|
|
return adapter("alipayClient", e, {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eX,
|
|
orderid: eG().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function openURLByWechat(e) {
|
|
return adapter("openURLByWechat", e, {
|
|
argsT: eG().shape({
|
|
url: eG().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function wechatPayClient(e) {
|
|
return adapter("wechatPayClient", e, {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eX,
|
|
orderid: eG().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function supportApplePayIOS() {
|
|
return adapter("supportApplePay")
|
|
}
|
|
function applePayClientIOS(e) {
|
|
return adapter("applePayClient", e)
|
|
}
|
|
function openLinkAndroid(e) {
|
|
return adapter("openLink", e, {
|
|
argsT: eG().string.isRequired
|
|
})
|
|
}
|
|
function closeWindow() {
|
|
return adapter("closeWindow")
|
|
}
|
|
function removeVCFromStackIOS() {
|
|
return adapter("removeVCFromStack")
|
|
}
|
|
function replaceSelfWithLink(e) {
|
|
var r = e.link
|
|
, i = e.type
|
|
, a = ek.YF.isIOS && (0,
|
|
ek.S8)("5.39")
|
|
, s = {
|
|
argsT: a ? {
|
|
link: eG().string.isRequired,
|
|
type: eG().oneOf(["push", "present"]).isRequired
|
|
} : eG().string.isRequired
|
|
};
|
|
return a ? adapter("replaceSelfWithLink", {
|
|
link: r,
|
|
type: i
|
|
}, s) : adapter("replaceSelfWithLink", r, s)
|
|
}
|
|
function replaceSelfWithLinkV2Android(e) {
|
|
return adapter("replaceSelfWithLinkV2", {
|
|
link: e
|
|
})
|
|
}
|
|
function replaceRouteWith(e) {
|
|
return ek.YF.isIOS && (0,
|
|
ek.S8)("6.54") ? replaceSelfWithLink({
|
|
link: e
|
|
}) : ek.YF.isAndroid && (0,
|
|
ek.S8)("6.56") ? replaceSelfWithLinkV2Android(e) : ek.YF.isIOS && !isSupportAdapter("removeVCFromStack") ? replaceSelfWithLink({
|
|
link: e
|
|
}) : new Promise(function(r, i) {
|
|
window.open(e),
|
|
setTimeout(function() {
|
|
ek.YF.isIOS ? removeVCFromStackIOS().then(r).catch(i) : (window.close(),
|
|
r(void 0))
|
|
}, 300)
|
|
}
|
|
)
|
|
}
|
|
function openGiftPanel() {
|
|
return _openGiftPanel.apply(this, arguments)
|
|
}
|
|
function _openGiftPanel() {
|
|
return (_openGiftPanel = (0,
|
|
eq._)(function() {
|
|
return (0,
|
|
ej.Jh)(this, function(e) {
|
|
return [2, adapter("openGiftPanel")]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function setPasteBoard(e) {
|
|
var r = {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "setPasteBoard"),
|
|
adapter("setPasteBoard", {
|
|
string: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function showTrack(e) {
|
|
return adapter("showTrack", e, {
|
|
argsT: eG().shape({
|
|
title: eG().string,
|
|
content: eG().string,
|
|
isNewTrack: eG().bool
|
|
})
|
|
})
|
|
}
|
|
function showApmTrack(e) {
|
|
return adapter("showApmTrack", e, {
|
|
argsT: eG().shape({
|
|
content: eG().string
|
|
})
|
|
})
|
|
}
|
|
function webtrack(e) {
|
|
return adapter("webtrack", e, {
|
|
argsT: eG().object
|
|
})
|
|
}
|
|
function emitTrack(e) {
|
|
return adapter("emitTrack", e, {
|
|
argsT: eG().string.isRequired
|
|
})
|
|
}
|
|
function emitApmTrack(e) {
|
|
return adapter("emitApmTrack", e, {
|
|
argsT: eG().string.isRequired
|
|
})
|
|
}
|
|
function openMapWithLocation(e) {
|
|
return adapter("openMapWithLocation", e, {
|
|
argsT: eG().shape({
|
|
lat: eG().number,
|
|
long: eG().number,
|
|
direction: eG().bool,
|
|
name: eG().string,
|
|
coordinate: eG().shape({
|
|
wgs84: eG().shape({
|
|
long: eG().number,
|
|
lat: eG().number
|
|
}),
|
|
gcj02: eG().shape({
|
|
long: eG().number,
|
|
lat: eG().number
|
|
}),
|
|
bd09: eG().shape({
|
|
long: eG().number,
|
|
lat: eG().number
|
|
})
|
|
})
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX,
|
|
type: eG().oneOf(["apple", "baidu", "amap", "google"]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function confirmAntiSpam() {
|
|
return adapter("confirmAntiSpam")
|
|
}
|
|
function addComment(e) {
|
|
return adapter("addComment", e, {
|
|
argsT: eG().shape({
|
|
placeholder: eG().string,
|
|
uid: eG().string
|
|
}),
|
|
resT: eG().shape({
|
|
uid: eG().string,
|
|
is_send: eG().bool,
|
|
data: eG().shape({
|
|
content: eG().string,
|
|
at_users: eG().arrayOf(eG().shape({
|
|
userid: eG().string,
|
|
nickname: eG().string
|
|
}))
|
|
})
|
|
})
|
|
})
|
|
}
|
|
function openXhsSystemSettings() {
|
|
return _openXhsSystemSettings.apply(this, arguments)
|
|
}
|
|
function _openXhsSystemSettings() {
|
|
return (_openXhsSystemSettings = (0,
|
|
eq._)(function() {
|
|
return (0,
|
|
ej.Jh)(this, function(e) {
|
|
return [2, adapter("openXhsSystemSettings")]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function openRechargeCoinPanel() {
|
|
return adapter("openRechargeCoinPanel")
|
|
}
|
|
function openFansPanel() {
|
|
return adapter("openFansPanel")
|
|
}
|
|
function checkLoginWithAction(e) {
|
|
return adapter("checkLoginWithAction", e, {
|
|
argsT: eG().shape({
|
|
type: eG().number.isRequired
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
})
|
|
}
|
|
function logout() {
|
|
return adapter("logout")
|
|
}
|
|
function isAppInstalled(e) {
|
|
return adapter("isAppInstalled", e, {
|
|
argsT: eG().shape({
|
|
iOS: eG().string,
|
|
Android: eG().string
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function getAppInfo() {
|
|
return adapter("getAppInfo", {
|
|
resT: eG().shape({
|
|
result: eX,
|
|
version: eG().string.isRequired,
|
|
build: eG().string.isRequired,
|
|
jsversion: eG().string.isRequired,
|
|
package: eG().oneOf(["com.xingin.discover", "com.xingin.xhs"]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function getDeviceInfoOld() {
|
|
function imeiType() {
|
|
return (0,
|
|
ek.mV)("5.24") ? {} : ek.YF.isIOS ? {
|
|
idfa: eG().string.isRequired,
|
|
idfv: eG().string.isRequired
|
|
} : {
|
|
imei: eG().string.isRequired
|
|
}
|
|
}
|
|
var e = {
|
|
resT: eG().shape((0,
|
|
eB._)({
|
|
result: eX,
|
|
appMarket: eG().string.isRequired,
|
|
appVersion: eG().string.isRequired,
|
|
buildNumber: eG().string.isRequired,
|
|
systemVersion: eG().string.isRequired,
|
|
deviceModel: eG().string.isRequired,
|
|
manufacturer: eG().string.isRequired,
|
|
timezone: eG().string.isRequired,
|
|
deviceScreenWidth: eG().number.isRequired,
|
|
deviceScreenHeight: eG().number.isRequired,
|
|
carrier: eG().string.isRequired,
|
|
uniqueId: eG().string.isRequired
|
|
}, ek.YF.isIOS ? {
|
|
applepayInfo: eG().bool.isRequired
|
|
} : {}, imeiType))
|
|
};
|
|
return adapter("getDeviceInfo").then(function(r) {
|
|
var i = (0,
|
|
eJ.Lg)(r);
|
|
return r.applepay_info && (i.applepay_info = r.applepay_info,
|
|
logDeprecated_warnDeprecated("res.applepay_info", "res.applepayInfo")),
|
|
checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function getNetworkTypeLegacy() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !1
|
|
}
|
|
, r = {
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().oneOf(["WiFi", "4G", "3G+", "3G", "2G", "NONE"])
|
|
})
|
|
};
|
|
return adapter("getNetworkType").then(function(i) {
|
|
var a = (0,
|
|
eB._)({}, i);
|
|
if (("wifi" === i.value || "WIFI" === i.value) && (a.value = "WiFi"),
|
|
checkRes(a, r.resT),
|
|
e.extractValue) {
|
|
if (0 === a.result)
|
|
return a.value;
|
|
throw new eY("ERR_RESULT_".concat(a.result),"res.result is not 0")
|
|
}
|
|
return a
|
|
})
|
|
}
|
|
function getUserInfo() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !0
|
|
}
|
|
, r = Date.now();
|
|
console.warn("[OzoneBridge] getUserInfo was deprecated, use `getUserInfoV2` and `getABFlag` to replace, more info see readme");
|
|
var i = ek.YF.isAndroid && (0,
|
|
ek.S8)("6.5") || ek.YF.isIOS && (0,
|
|
ek.S8)("6.9")
|
|
, a = {
|
|
resT: eG().shape({
|
|
result: eX,
|
|
response: eG().shape((0,
|
|
eB._)({
|
|
userId: eG().string.isRequired,
|
|
nickname: eG().string.isRequired,
|
|
gender: eG().number.isRequired,
|
|
userToken: eG().string.isRequired,
|
|
image: urlType.isRequired,
|
|
location: eG().string.isRequired,
|
|
flags: eG().shape({
|
|
fulishe: eG().oneOfType([eG().object]).isRequired,
|
|
shequ: eG().oneOfType([eG().object]).isRequired
|
|
})
|
|
}, (0,
|
|
ek.S8)("5.24") ? {
|
|
lat: eG().number.isRequired,
|
|
lon: eG().number.isRequired,
|
|
sessionId: eG().string.isRequired
|
|
} : {}, i ? {
|
|
hashExp: eG().string.isRequired
|
|
} : {}))
|
|
})
|
|
};
|
|
return adapter("getUserInfo").then(function(i) {
|
|
var s = (0,
|
|
eJ.Lg)(i);
|
|
if (i.response && (i.response.flags && (i.response.flags.fulishe && (s.response.flags.fulishe = i.response.flags.fulishe),
|
|
i.response.flags.shequ && (s.response.flags.shequ = i.response.flags.shequ)),
|
|
i.response.user_id && (s.response.user_id = i.response.user_id,
|
|
logDeprecated_warnDeprecated("res.response.user_id", "res.response.userId")),
|
|
i.response.user_token && (s.response.user_token = i.response.user_token,
|
|
logDeprecated_warnDeprecated("res.response.user_token", "res.response.userToken")),
|
|
i.response.session_id && (s.response.session_id = i.response.session_id,
|
|
logDeprecated_warnDeprecated("res.response.session_id", "res.response.sessionId")),
|
|
i.response.images && !i.response.image && (s.response.image = i.response.images,
|
|
logDeprecated_warnDeprecated("res.response.images", "res.response.image"))),
|
|
webp2png(s),
|
|
checkRes(s, a.resT),
|
|
e.extractValue) {
|
|
if (0 === s.result)
|
|
return addMeasure({
|
|
platformType: "H5",
|
|
bridgeName: "getUserInfoOld",
|
|
timing: Date.now() - r,
|
|
logType: V.Timing
|
|
}),
|
|
s.response;
|
|
throw new eY("ERR_RESULT_".concat(s.result),"res.result is not 0")
|
|
}
|
|
return addMeasure({
|
|
platformType: "H5",
|
|
bridgeName: "getUserInfoOld",
|
|
timing: Date.now() - r,
|
|
logType: V.Timing
|
|
}),
|
|
s
|
|
})
|
|
}
|
|
function getTrackEnv() {
|
|
var e = {
|
|
resT: eG().shape({
|
|
isTestEnv: eG().bool,
|
|
uploadOneByOne: eG().bool,
|
|
sessionId: eG().string
|
|
})
|
|
};
|
|
return adapter("getTrackEnv").then(function(r) {
|
|
var i = (0,
|
|
eJ.Lg)(r);
|
|
return r.session_id && (i.sessionId = r.session_id),
|
|
checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function lowPowerModeEnabled() {
|
|
return adapter("lowPowerModeEnabled", {
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function requestNotificationPermission(e) {
|
|
return adapter("requestNotificationPermission", e, {
|
|
argsT: eG().shape({
|
|
engaingType: eG().number.isRequired,
|
|
engaingMessage: eG().string
|
|
})
|
|
})
|
|
}
|
|
function saveImage(e) {
|
|
return adapter("saveImage", e, {
|
|
argsT: eG().shape({
|
|
url: urlType,
|
|
base64string: eG().string,
|
|
type: eG().string.isRequired
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
})
|
|
}
|
|
function basicSendClientRequest(e) {
|
|
return adapter("sendClientRequest", e)
|
|
}
|
|
function sendClientRequest(e) {
|
|
console.warn("[OzoneBridge] sendClientRequest was deprecated, please use [Launcher http](https://code.devops.xiaohongshu.com/formula/launcher/tree/master/src/http)");
|
|
var r = {
|
|
argsT: eG().shape({
|
|
url: eG().string,
|
|
type: eG().oneOf(["GET", "POST", "PUT", "DELETE"]).isRequired,
|
|
data: eG().oneOfType([eG().object]),
|
|
transform: eG().oneOfType([eG().bool, eG().shape({
|
|
separateNumber: eG().bool
|
|
}), eG().func])
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX,
|
|
response: eG().oneOfType([eG().object]),
|
|
status: eG().number
|
|
})
|
|
};
|
|
checkArgs(e, r.argsT, "sendClientRequest");
|
|
var i = (0,
|
|
eB._)({}, e)
|
|
, a = i.transform;
|
|
return a && "object" === (0,
|
|
eK._)(i.data) && (i.data = (0,
|
|
eJ.cJ)(i.data, a),
|
|
delete i.transform),
|
|
basicSendClientRequest(i).then(function(e) {
|
|
return (checkRes(e, r.resT),
|
|
a) ? (0,
|
|
eJ.Lg)(e, a) : e
|
|
}).then(function(e) {
|
|
if (-1 === e.result) {
|
|
var r = Error();
|
|
throw r.status = e.status,
|
|
r
|
|
}
|
|
var i = e.response;
|
|
if (void 0 === i.success && 0 !== i.result || !1 === i.success) {
|
|
var a = Error();
|
|
throw a.status = i.result,
|
|
a
|
|
}
|
|
return i.data || i
|
|
})
|
|
}
|
|
function sendClientRequestV2(e) {
|
|
var r = (0,
|
|
ex._)((0,
|
|
eB._)({}, e), {
|
|
url: completeUrl(e.url)
|
|
});
|
|
return isSupportAdapter("sendClientRequestV2") && ek.YF.isAndroid ? adapter("sendClientRequestV2", r) : basicSendClientRequest(r).then(function(e) {
|
|
var r = e.result
|
|
, i = e.status
|
|
, a = e.response;
|
|
if (ek.YF.isAndroid) {
|
|
if (-1 === r)
|
|
return -1 !== i ? {
|
|
result: 0,
|
|
response: {
|
|
status: i
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
}
|
|
if (-1 === r)
|
|
return a ? {
|
|
result: 0,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
})
|
|
}
|
|
function getPrevData() {
|
|
return adapter("getPrevData", {
|
|
resT: eG().oneOfType([eG().array, eG().bool, eG().number, eG().object, eG().string])
|
|
})
|
|
}
|
|
function getItemOld(e) {
|
|
var r = {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().string
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "getItem"),
|
|
adapter("getItem", {
|
|
key: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function getItem(e) {
|
|
return _getItem.apply(this, arguments)
|
|
}
|
|
function _getItem() {
|
|
return (_getItem = (0,
|
|
eq._)(function(e) {
|
|
return (0,
|
|
ej.Jh)(this, function(r) {
|
|
return [2, getItemOld(e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function setItemOld(e, r) {
|
|
return adapter("setItem", {
|
|
key: e,
|
|
value: r
|
|
}, {
|
|
argsT: eG().shape({
|
|
key: eG().string.isRequired,
|
|
value: eG().string.isRequired
|
|
}),
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
})
|
|
}
|
|
function setItem(e, r) {
|
|
return _setItem.apply(this, arguments)
|
|
}
|
|
function _setItem() {
|
|
return (_setItem = (0,
|
|
eq._)(function(e, r) {
|
|
return (0,
|
|
ej.Jh)(this, function(i) {
|
|
return [2, setItemOld(e, r)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function removeItemOld(e) {
|
|
var r = {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eX
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "removeItem"),
|
|
adapter("removeItem", {
|
|
key: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function removeItem(e) {
|
|
return _removeItem.apply(this, arguments)
|
|
}
|
|
function _removeItem() {
|
|
return (_removeItem = (0,
|
|
eq._)(function(e) {
|
|
return (0,
|
|
ej.Jh)(this, function(r) {
|
|
return [2, removeItemOld(e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function broadcast(e) {
|
|
return adapter("broadcast", e)
|
|
}
|
|
function broadcastNative(e) {
|
|
return adapter("broadcastNative", e, {
|
|
argsT: eG().shape({
|
|
key: eG().string.isRequired,
|
|
data: eG().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function getMessageStatusIOS() {
|
|
return adapter("getMessageStatus", {
|
|
resT: eG().shape({
|
|
result: eX,
|
|
status: eG().oneOf([0, 1]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function getThirdAuth(e) {
|
|
return adapter("getThirdAuth", e, {
|
|
argsT: eG().oneOf(["weixin"]).isRequired,
|
|
resT: eG().shape({
|
|
result: eX,
|
|
value: eG().oneOfType([eG().object])
|
|
})
|
|
})
|
|
}
|
|
function getCurrentGeolocation() {
|
|
return adapter("getCurrentGeolocation")
|
|
}
|
|
function checkAppPermission(e) {
|
|
var r = {
|
|
argsT: eG().string.isRequired,
|
|
resT: eG().shape({
|
|
result: eG().oneOf([0, -1]).isRequired,
|
|
state: eG().oneOf(["denied", "granted", "undeterminated"])
|
|
})
|
|
}
|
|
, i = e.type;
|
|
return adapter("checkAppPermission", void 0 === i ? "" : i, r)
|
|
}
|
|
function areNotificationsEnabledAndroid() {
|
|
return adapter("areNotificationsEnabled", {
|
|
resT: eG().shape({
|
|
result: eG().oneOf([0, -1]).isRequired,
|
|
state: eG().oneOf(["denied", "granted"])
|
|
})
|
|
})
|
|
}
|
|
function getFileUrlFromLocalServerIOS(e) {
|
|
return _getFileUrlFromLocalServerIOS.apply(this, arguments)
|
|
}
|
|
function _getFileUrlFromLocalServerIOS() {
|
|
return (_getFileUrlFromLocalServerIOS = (0,
|
|
eq._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
ej.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, adapter("getFileUrlFromLocalServer", e, {
|
|
argsT: eG().shape({
|
|
url: urlType.isRequired
|
|
}),
|
|
resT: eG().shape({
|
|
result: eG().oneOf([0, -1]).isRequired,
|
|
value: urlType,
|
|
message: eG().string
|
|
})
|
|
})];
|
|
case 1:
|
|
if (0 === (r = i.sent()).result)
|
|
return [2, r.value];
|
|
throw new eY("ERR_RESULT_".concat(r.result),r.message)
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function toggleLocalDns(e) {
|
|
return _toggleLocalDns.apply(this, arguments)
|
|
}
|
|
function _toggleLocalDns() {
|
|
return (_toggleLocalDns = (0,
|
|
eq._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
ej.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, adapter("toggleLocalDns", {
|
|
enable: e
|
|
})];
|
|
case 1:
|
|
if (0 === (r = i.sent()).result)
|
|
return [2];
|
|
throw new eY("ERR_RESULT_".concat(r.result),r.message)
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function registerTrickleConnectTopic(e) {
|
|
return _registerTrickleConnectTopic.apply(this, arguments)
|
|
}
|
|
function _registerTrickleConnectTopic() {
|
|
return (_registerTrickleConnectTopic = (0,
|
|
eq._)(function(e) {
|
|
return (0,
|
|
ej.Jh)(this, function(r) {
|
|
return [2, adapter("registerTrickleConnectTopic", e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function getABFlag(e) {
|
|
return getUserInfo({
|
|
extractValue: !0
|
|
}).then(function(r) {
|
|
var i = e.key
|
|
, a = (r || {}).flags || {}
|
|
, s = a.fulishe
|
|
, u = a.shequ
|
|
, c = a.ios
|
|
, l = a.android
|
|
, d = ek.YF.isIOS ? c : l
|
|
, p = null;
|
|
return (null == u ? void 0 : u[i]) ? p = u[i] : (null == s ? void 0 : s[i]) ? p = s[i] : (null == d ? void 0 : d[i]) && (p = d[i]),
|
|
{
|
|
result: 0,
|
|
message: "success",
|
|
value: p
|
|
}
|
|
})
|
|
}
|
|
i(15066);
|
|
var eQ = {
|
|
toast: showToast,
|
|
showToast: showToast,
|
|
showalertV2: showAlert,
|
|
showAlert: showAlert,
|
|
removeVCFromStack: removeVCFromStackIOS,
|
|
removeVCFromStackIOS: removeVCFromStackIOS,
|
|
showNavigationRightBarButtonItemV2: showNavigationRightBarButtonItem,
|
|
showNavigationRightBarButtonItem: showNavigationRightBarButtonItem,
|
|
shareContentV2: shareContent,
|
|
shareContent: shareContent,
|
|
supportApplePay: supportApplePayIOS,
|
|
supportApplePayIOS: supportApplePayIOS,
|
|
applePayClient: applePayClientIOS,
|
|
applePayClientIOS: applePayClientIOS,
|
|
replaceSelfWithLink: replaceSelfWithLink,
|
|
replaceSelfWithLinkV2: replaceSelfWithLinkV2Android,
|
|
replaceSelfWithLinkV2Android: replaceSelfWithLinkV2Android,
|
|
replaceRouteWith: replaceRouteWith,
|
|
showActionSheet: showActionSheet,
|
|
setNavigationHidden: setNavigationHidden,
|
|
setStatusBarHiddenIOS: setStatusBarHiddenIOS,
|
|
setStatusBarStyleIOS: setStatusBarTextColor,
|
|
setStatusBarTextColor: setStatusBarTextColor,
|
|
alwaysBounceIOS: alwaysBounceIOS,
|
|
setShareInfo: ui_setShareInfo,
|
|
showShareMenu: showShareMenu,
|
|
pay: pay,
|
|
alipayClient: alipayClient,
|
|
openURLByWechat: openURLByWechat,
|
|
wechatPayClient: wechatPayClient,
|
|
openLink: openLinkAndroid,
|
|
closeWindow: closeWindow,
|
|
openGiftPanel: openGiftPanel,
|
|
setPasteBoard: setPasteBoard,
|
|
showTrack: showTrack,
|
|
showApmTrack: showApmTrack,
|
|
webtrack: webtrack,
|
|
emitTrack: emitTrack,
|
|
emitApmTrack: emitApmTrack,
|
|
openMapWithLocation: openMapWithLocation,
|
|
confirmAntiSpam: confirmAntiSpam,
|
|
addComment: addComment,
|
|
openXhsSystemSettings: openXhsSystemSettings,
|
|
openRechargeCoinPanel: openRechargeCoinPanel,
|
|
openFansPanel: openFansPanel,
|
|
getMessageStatusIOS: getMessageStatusIOS,
|
|
getMessageStatus: getMessageStatusIOS,
|
|
areNotificationsEnabledAndroid: areNotificationsEnabledAndroid,
|
|
areNotificationsEnabled: areNotificationsEnabledAndroid,
|
|
getFileUrlFromLocalServerIOS: getFileUrlFromLocalServerIOS,
|
|
getFileUrlFromLocalServer: getFileUrlFromLocalServerIOS,
|
|
checkLoginWithAction: checkLoginWithAction,
|
|
logout: logout,
|
|
isAppInstalled: isAppInstalled,
|
|
getAppInfo: getAppInfo,
|
|
getDeviceInfo: getDeviceInfoOld,
|
|
getNetworkType: getNetworkTypeLegacy,
|
|
getUserInfo: getUserInfo,
|
|
getTrackEnv: getTrackEnv,
|
|
lowPowerModeEnabled: lowPowerModeEnabled,
|
|
requestNotificationPermission: requestNotificationPermission,
|
|
saveImage: saveImage,
|
|
basicSendClientRequest: basicSendClientRequest,
|
|
sendClientRequest: sendClientRequest,
|
|
sendClientRequestV2: sendClientRequestV2,
|
|
getPrevData: getPrevData,
|
|
getItem: getItem,
|
|
setItem: setItem,
|
|
removeItem: removeItem,
|
|
broadcast: broadcast,
|
|
broadcastNative: broadcastNative,
|
|
getThirdAuth: getThirdAuth,
|
|
getCurrentGeolocation: getCurrentGeolocation,
|
|
checkAppPermission: checkAppPermission,
|
|
toggleLocalDns: toggleLocalDns,
|
|
registerTrickleConnectTopic: registerTrickleConnectTopic,
|
|
getABFlag: getABFlag
|
|
}
|
|
, e$ = {
|
|
xhs: {},
|
|
top: {}
|
|
}
|
|
, e0 = {
|
|
xhs: {},
|
|
top: {}
|
|
};
|
|
function transformBridgeResultForTest(e) {
|
|
try {
|
|
(null == e ? void 0 : e.value) !== void 0 && (null == e ? void 0 : e.value) === null && delete e.value
|
|
} catch (e) {}
|
|
return e
|
|
}
|
|
function genBridgeQueue(e, r, i, a) {
|
|
var s, u, c, l, d, p, f = a.type, v = a.app, g = a.enableValidate, h = "h5" === f ? e0 : e$, m = (null == h ? void 0 : null === (c = h.xhs) || void 0 === c ? void 0 : null === (u = c[e]) || void 0 === u ? void 0 : null === (s = u.request) || void 0 === s ? void 0 : s.queue) || [], _ = (null == h ? void 0 : null === (p = h.xhs) || void 0 === p ? void 0 : null === (d = p[e]) || void 0 === d ? void 0 : null === (l = d.result) || void 0 === l ? void 0 : l.queue) || [], y = generateKey(), w = Date.now(), E = !0, S = (0,
|
|
eO._)(m).concat([i, {
|
|
fulfilled: function(e) {
|
|
return e
|
|
},
|
|
rejected: function(i) {
|
|
return new Promise(function(a, s) {
|
|
if ("xhs" === v && -1e4 === i.code) {
|
|
E = !1;
|
|
var u = eQ[e];
|
|
if (u)
|
|
return u(r).then(function(r) {
|
|
a({
|
|
result: (null == r ? void 0 : r.result) || 0,
|
|
message: "".concat(e, " 新通道不支持,降级为老通道发送"),
|
|
value: (null == r ? void 0 : r.value) !== void 0 ? r.value : r
|
|
})
|
|
}).catch(function(e) {
|
|
s(e)
|
|
})
|
|
}
|
|
return s(i)
|
|
}
|
|
)
|
|
}
|
|
}], (0,
|
|
eO._)(_));
|
|
(void 0 === g || g) && S.push({
|
|
fulfilled: function(r) {
|
|
return E && validateRes(e, F.Method, transformBridgeResultForTest(r), v),
|
|
r
|
|
},
|
|
rejected: function(e) {
|
|
throw e
|
|
}
|
|
}),
|
|
hasBridgeConsole() && S.push({
|
|
fulfilled: function(r) {
|
|
return bridgeSuccess({
|
|
name: e,
|
|
callbackId: y,
|
|
time: Date.now() - w,
|
|
res: r
|
|
}),
|
|
r
|
|
},
|
|
rejected: function(r) {
|
|
var i = Date.now() - w;
|
|
try {
|
|
var a = JSON.parse(r.message).errorMessage;
|
|
bridgeValidateError({
|
|
name: e,
|
|
callbackId: y,
|
|
time: i,
|
|
err: JSON.stringify(a, null, 2)
|
|
})
|
|
} catch (a) {
|
|
bridgeError({
|
|
name: e,
|
|
callbackId: y,
|
|
time: i,
|
|
err: r
|
|
})
|
|
}
|
|
throw r
|
|
}
|
|
});
|
|
var T = {
|
|
method: e,
|
|
args: r
|
|
}
|
|
, b = Promise.resolve(r)
|
|
, wrapFulfilled = function(e) {
|
|
return function(r) {
|
|
return e ? e(r, T) : r
|
|
}
|
|
}
|
|
, wrapRejected = function(e) {
|
|
return function(r) {
|
|
if (e)
|
|
return e(r, null, T);
|
|
throw r
|
|
}
|
|
};
|
|
for (bridgeStart({
|
|
name: e,
|
|
callbackId: y
|
|
}); S.length; ) {
|
|
var k = S.shift();
|
|
b = b.then(wrapFulfilled(null == k ? void 0 : k.fulfilled), wrapRejected(null == k ? void 0 : k.rejected))
|
|
}
|
|
return b
|
|
}
|
|
function isSupportInvoke() {
|
|
var e, r, i, a = ek.YF.isIOS ? null === (r = window) || void 0 === r ? void 0 : null === (e = r.webkit) || void 0 === e ? void 0 : e.messageHandlers : null === (i = window) || void 0 === i ? void 0 : i.XHSBridge;
|
|
return a && !!a.invoke
|
|
}
|
|
function invoke_invoke(e, r) {
|
|
var i = Date.now();
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
if (!isSupportInvoke())
|
|
throw bridgeNotSupport(e),
|
|
new eM(D.NotSupport,"not support invoke");
|
|
var u = addCallback(e, function(r) {
|
|
var u = Date.now() - i;
|
|
try {
|
|
var c = transformRes(e, r);
|
|
addMeasure({
|
|
platformType: "H5",
|
|
bridgeName: e,
|
|
timing: u,
|
|
logType: V.Timing
|
|
}),
|
|
a(c)
|
|
} catch (r) {
|
|
addMeasure({
|
|
platformType: "H5",
|
|
bridgeName: e,
|
|
logType: V.Error,
|
|
errorInfo: (null == r ? void 0 : r.message) || "".concat(e, " call error")
|
|
}),
|
|
s(r)
|
|
}
|
|
})
|
|
, c = {
|
|
method: e,
|
|
callback: u,
|
|
args: r
|
|
};
|
|
try {
|
|
if (ek.YF.isIOS) {
|
|
var l = ek.YF.isSpark || ek.YF.isUniik || ek.YF.isSnowPeak || ek.YF.isInternation || ek.YF.isOdyssey || ek.YF.isCatalog ? c : JSON.stringify(c);
|
|
window.webkit.messageHandlers.invoke.postMessage(l)
|
|
} else
|
|
window.XHSBridge.invoke(JSON.stringify(c))
|
|
} catch (e) {
|
|
throw new eM(D.Native,null == e ? void 0 : e.message)
|
|
}
|
|
} catch (r) {
|
|
r instanceof eM ? s(r) : s(new eM(D.UnKnow,(null == r ? void 0 : r.message) || "[ozone-bridge] [".concat(e, "] call error")))
|
|
}
|
|
}
|
|
)
|
|
}
|
|
function invoke_invokeInterceptor(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "xhs"
|
|
, a = !(arguments.length > 3) || void 0 === arguments[3] || arguments[3];
|
|
return arguments.length > 4 && arguments[4],
|
|
genBridgeQueue(e, r, {
|
|
fulfilled: function(r) {
|
|
return invoke_invoke(e, transformArgs(e, r))
|
|
},
|
|
rejected: void 0
|
|
}, {
|
|
type: "h5",
|
|
app: i,
|
|
enableValidate: a
|
|
})
|
|
}
|
|
function xhs_invoke_invoke(e, r, i) {
|
|
return check_validateReq(e, F.Method, r, "xhs"),
|
|
invoke_invokeInterceptor(e, r, "xhs", !0, i)
|
|
}
|
|
function invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "xhs")
|
|
}
|
|
(a = U || (U = {})).Back = "back",
|
|
a.Default = "default",
|
|
a.Foreground = "foreground",
|
|
(s = q || (q = {})).Authorized = "authorized",
|
|
s.Denied = "denied",
|
|
s.Restricted = "restricted",
|
|
s.Undetermined = "undetermined",
|
|
(u = j || (j = {})).Denied = "denied",
|
|
u.Granted = "granted",
|
|
u.Undetermined = "undetermined",
|
|
(c = W || (W = {})).Authorized = "authorized",
|
|
c.Denied = "denied",
|
|
(l = G || (G = {})).EditProfileChangedData = "edit_profile_changed_data",
|
|
l.EditProfilePreviewData = "edit_profile_preview_data",
|
|
(d = J || (J = {})).Android = "Android",
|
|
d.Harmony = "harmony",
|
|
d.IOS = "iOS",
|
|
(X || (X = {})).EditProfileChangedData = "edit_profile_changed_data",
|
|
(p = Y || (Y = {})).DOMInsert = "domInsert",
|
|
p.Destroy = "destroy",
|
|
p.Play = "play",
|
|
p.SetPlayer = "setPlayer",
|
|
p.Stop = "stop",
|
|
(f = z || (z = {})).The1 = "1",
|
|
f.The2 = "2",
|
|
f.The3 = "3",
|
|
(v = K || (K = {})).Multi = "multi",
|
|
v.Normal = "normal",
|
|
v.Video = "video",
|
|
(g = Z || (Z = {})).CnyTopicFeed = "cny_topic_feed",
|
|
g.Topic = "topic",
|
|
g.TopicDiscussion = "topic_discussion",
|
|
g.TopicRating = "topic_rating",
|
|
(h = Q || (Q = {})).Normal = "normal",
|
|
h.Video = "video",
|
|
($ || ($ = {})).Mp4 = "mp4",
|
|
(m = ee || (ee = {})).EditProfileChangedData = "edit_profile_changed_data",
|
|
m.EditProfilePreviewData = "edit_profile_preview_data",
|
|
(_ = et || (et = {})).EditProfileChangedData = "edit_profile_changed_data",
|
|
_.EditProfilePreviewData = "edit_profile_preview_data",
|
|
(y = er || (er = {})).ApplicationJSON = "application/json",
|
|
y.ApplicationXWWWFormUrlencoded = "application/x-www-form-urlencoded",
|
|
y.ImagePNG = "image/png",
|
|
(w = en || (en = {})).Delete = "DELETE",
|
|
w.Get = "GET",
|
|
w.Post = "POST",
|
|
w.Put = "PUT",
|
|
(E = ei || (ei = {})).AccountDidSwitch = "accountDidSwitch",
|
|
E.BrandAreaCard = "brand-area-card",
|
|
E.BusinessBindsUpdate = "business_binds_update",
|
|
E.CapaActivityTopicResult = "capaActivityTopicResult",
|
|
E.CapaAdvanceOptionLiveTrailerConfigUpdate = "capa_advance_option_live_trailer_config_update",
|
|
E.CheckoutPostOrder = "checkout_post_order",
|
|
E.CloseLocationPage = "closeLocationPage",
|
|
E.ClosePoiCard = "closePoiCard",
|
|
E.CnyFMPFinished = "cnyFMPFinished",
|
|
E.CoinRechargeFinishEvent = "coin_recharge_finish_event",
|
|
E.CommonAddressRn = "common-address-rn",
|
|
E.CurationKListRefreshCategory = "curation_k_list_refresh_category",
|
|
E.CurationKMoveCategory = "curation_k_move_category",
|
|
E.CustomerServiceQuickOrderCreate = "customer_service_quick_order_create",
|
|
E.CyberidentityAuthResult = "cyberidentityAuthResult",
|
|
E.DeclarePrivacyChange = "declare_privacy_change",
|
|
E.DspyxisDetailUpdateCompass = "dspyxis-detailUpdate-compass",
|
|
E.EoiMediaOffLine = "eoi_media_off_line",
|
|
E.ExitPoipage = "exitPoipage",
|
|
E.FinanceRechargeH5 = "finance-recharge-h5",
|
|
E.FloatingClose = "floating_close",
|
|
E.FloatingFull = "floating_full",
|
|
E.ForceUpdateCnyTab = "forceUpdateCnyTab",
|
|
E.GameplayWishSuccess = "gameplayWishSuccess",
|
|
E.GetLiveFloatingStatus = "getLiveFloatingStatus",
|
|
E.GoCapaByCloseWindow = "goCapaByCloseWindow",
|
|
E.GroupTopicSelectGoods = "group_topic_select_goods",
|
|
E.GrowthFeeds = "GrowthFeeds",
|
|
E.InspirationCollectBroadcast = "inspiration_collect_broadcast",
|
|
E.IosLiveMerchantNotSupportTopUpAlert = "ios_live_merchant_not_support_top_up_alert",
|
|
E.KeyboardResponded = "keyboard_responded",
|
|
E.Kuri = "kuri",
|
|
E.LancerAddressGrowth = "lancer-address-growth",
|
|
E.LancerAddressMp = "lancer-address-mp",
|
|
E.LancerAddressSlim = "lancer-address-slim",
|
|
E.LancerInvoiceSlim = "lancer-invoice-slim",
|
|
E.LancerSparkSlim = "lancer-spark-slim",
|
|
E.LegoBoxCrossPlatformEvent = "legoBoxCrossPlatformEvent",
|
|
E.LiveDynamicBridge = "live_dynamic_bridge",
|
|
E.LiveFloatWindowMute = "live_float_window_mute",
|
|
E.LiveRefreshCouponList = "live_refresh_coupon_list",
|
|
E.LiveRoomBridge = "live-room-bridge",
|
|
E.MarketingBoxClose = "marketingBoxClose",
|
|
E.MeituanNotification = "MeituanNotification",
|
|
E.MemoryWarningNotification = "memoryWarningNotification",
|
|
E.MoreClassify = "more_classify",
|
|
E.NativePostOrder = "native_post_order",
|
|
E.NativeRnNoteLike = "native-rn-note-like",
|
|
E.ObtainedGoldenNickname = "obtained_golden_nickname",
|
|
E.OpenScreenshot = "openScreenshot",
|
|
E.OpenSnackbar = "openSnackbar",
|
|
E.OrderCreated = "order-created",
|
|
E.PoiCommentPopoverImpression = "poiCommentPopoverImpression",
|
|
E.PoiCommentTagClick = "poiCommentTagClick",
|
|
E.PoiCommentTagImpression = "poiCommentTagImpression",
|
|
E.PoiDeclareOnUpdate = "poi_declare_on_update",
|
|
E.PoiDetailOnShow = "poiDetailOnShow",
|
|
E.PoiPopcornDayRankExit = "poi-popcorn-day-rank-exit",
|
|
E.PoiPopcornDetailPkExit = "poi-popcorn-detail-pk-exit",
|
|
E.PoiPopcornTotalRankExit = "poi-popcorn-total-rank-exit",
|
|
E.PostNoteGoodsResult = "postNoteGoodsResult",
|
|
E.ProfileRefreshKey = "ProfileRefreshKey",
|
|
E.PurchaseRefresh = "purchase_refresh",
|
|
E.RealNameVerifyCompleted = "realNameVerifyCompleted",
|
|
E.RedCAPTCHAVerifySuccess = "red_captcha_verify_success",
|
|
E.RelieveFreezeAccountSuccess = "relieve_freeze_account_success",
|
|
E.ReportFinishEvent = "report_finish_event",
|
|
E.ReportNoteRemoveEvent = "report_note_remove_event",
|
|
E.RnDevtools = "rn-devtools",
|
|
E.RnDevtoolsEmitter = "rn-devtools-emitter",
|
|
E.RnNativeNoteLike = "rn-native-note-like",
|
|
E.RnPostOrder = "rn_post_order",
|
|
E.SNSRNDiscoverCommentAction = "SNSRNDiscoverCommentAction",
|
|
E.SearchRNCardImpressionEvent = "searchRNCardImpressionEvent",
|
|
E.SearchRnCard = "search_rn_card",
|
|
E.SellerFeedbackAction = "seller-feedback-action",
|
|
E.SetProfileEntries = "setProfileEntries",
|
|
E.ShareLiveTrailerCard = "share_live_trailer_card",
|
|
E.ShowTopicReadTask = "show_topic_read_task",
|
|
E.SizeBeenEntered = "size-been-entered",
|
|
E.SqaLike = "sqa-like",
|
|
E.SyncScrollviewRef = "syncScrollviewRef",
|
|
E.Test = "test",
|
|
E.TranslateY = "translateY",
|
|
E.UpdateRnLiveNoticeListInfo = "update_rn_live_notice_list_info",
|
|
E.UpdateTravelInfo = "updateTravelInfo",
|
|
E.VisitedChanged = "visitedChanged",
|
|
(S = eo || (eo = {})).BusinessExecutionEnd = "businessExecutionEnd",
|
|
S.BusinessExecutionStart = "businessExecutionStart",
|
|
S.CoreHTTPRequestEnd = "coreHttpRequestEnd",
|
|
S.CoreHTTPRequestStart = "coreHttpRequestStart",
|
|
S.FirstMeaningfulPaint = "firstMeaningfulPaint",
|
|
S.FrameExecutionEnd = "frameExecutionEnd",
|
|
S.FrameExecutionStart = "frameExecutionStart",
|
|
S.RouterStart = "routerStart",
|
|
S.ViewRenderEnd = "viewRenderEnd",
|
|
(T = ea || (ea = {})).More = "more",
|
|
T.Share = "share",
|
|
(b = es || (es = {})).Center = "center",
|
|
b.Event = "event",
|
|
b.General = "general",
|
|
b.GoodsDetail = "goodsDetail",
|
|
b.Topic = "topic",
|
|
b.XiuxiuInvite = "xiuxiuInvite",
|
|
(k = eu || (eu = {})).Image = "image",
|
|
k.Link = "link",
|
|
k.MiniProgram = "miniProgram",
|
|
k.Text = "text",
|
|
(C = ec || (ec = {})).Image = "image",
|
|
C.Link = "link",
|
|
(P = el || (el = {})).Image = "image",
|
|
P.Link = "link",
|
|
P.Text = "text",
|
|
(A = ed || (ed = {})).Emoji = "emoji",
|
|
A.Image = "image",
|
|
A.Link = "link",
|
|
A.MiniProgram = "miniProgram",
|
|
A.Text = "text",
|
|
(R = ep || (ep = {})).Image = "image",
|
|
R.Link = "link",
|
|
R.Text = "text",
|
|
(I = ef || (ef = {})).Image = "image",
|
|
I.Link = "link",
|
|
I.Text = "text",
|
|
(O = ev || (ev = {})).Goods = "goods",
|
|
O.Universal = "universal",
|
|
(N = eg || (eg = {})).PageComplete = "page_complete",
|
|
N.PageLoad = "page_load",
|
|
(L = eh || (eh = {})).Pause = "pause",
|
|
L.Resume = "resume"
|
|
},
|
|
92014: function(e, r, i) {
|
|
"use strict";
|
|
i.r(r),
|
|
i.d(r, {
|
|
OzonePanelType: function() {
|
|
return ea
|
|
},
|
|
SheetType: function() {
|
|
return em
|
|
},
|
|
SaveProfileEditDataEventKey: function() {
|
|
return ep
|
|
},
|
|
OzoneSystemName: function() {
|
|
return en
|
|
},
|
|
findCalendarEvent: function() {
|
|
return findCalendarEvent
|
|
},
|
|
invokeAurora: function() {
|
|
return xhsaurora_invoke_invoke
|
|
},
|
|
ShareToFriendType: function() {
|
|
return e_
|
|
},
|
|
subscribeAurora: function() {
|
|
return xhsaurora_invoke_subscribe
|
|
},
|
|
OzoneCalendarStatus: function() {
|
|
return Z
|
|
},
|
|
invoke: function() {
|
|
return invoke_invoke
|
|
},
|
|
Type: function() {
|
|
return es
|
|
},
|
|
BackgroundFetchFileStatus: function() {
|
|
return eP
|
|
},
|
|
SpvType: function() {
|
|
return $
|
|
},
|
|
invokePrado: function() {
|
|
return prado_invoke_invoke
|
|
},
|
|
invokeTop: function() {
|
|
return top_invoke_invoke
|
|
},
|
|
invokeUniik: function() {
|
|
return uniik_invoke_invoke
|
|
},
|
|
subscribeDocs: function() {
|
|
return xhsdocs_invoke_subscribe
|
|
},
|
|
invokeSync: function() {
|
|
return invokeSync
|
|
},
|
|
subscribePrado: function() {
|
|
return prado_invoke_subscribe
|
|
},
|
|
subscribeTop: function() {
|
|
return top_invoke_subscribe
|
|
},
|
|
setUpBridge: function() {
|
|
return setup
|
|
},
|
|
invokeDocs: function() {
|
|
return xhsdocs_invoke_invoke
|
|
},
|
|
SendCrossPlatformEventEventKey: function() {
|
|
return eg
|
|
},
|
|
QQSpaceContentType: function() {
|
|
return ew
|
|
},
|
|
ShowPhoneBindDialogType: function() {
|
|
return ek
|
|
},
|
|
WechatWorkContentType: function() {
|
|
return eb
|
|
},
|
|
subscribe: function() {
|
|
return invoke_subscribe
|
|
},
|
|
Scene: function() {
|
|
return eu
|
|
},
|
|
Method: function() {
|
|
return ev
|
|
},
|
|
EventKey: function() {
|
|
return ei
|
|
},
|
|
QQContentType: function() {
|
|
return ey
|
|
},
|
|
SaveCrossPlatformDataDataKey: function() {
|
|
return ed
|
|
},
|
|
Step: function() {
|
|
return eC
|
|
},
|
|
getUserInfoV2: function() {
|
|
return getUserInfoV2
|
|
},
|
|
SchemaErrorCode: function() {
|
|
return D.nJ
|
|
},
|
|
saveCalendarEvent: function() {
|
|
return saveCalendarEvent
|
|
},
|
|
CheckAppPermissionValue: function() {
|
|
return ee
|
|
},
|
|
ContentType: function() {
|
|
return ef
|
|
},
|
|
addMeasure: function() {
|
|
return X.b
|
|
},
|
|
removeCalendarEvent: function() {
|
|
return removeCalendarEvent
|
|
},
|
|
PerformanceName: function() {
|
|
return eh
|
|
},
|
|
WechatTimelineContentType: function() {
|
|
return eT
|
|
},
|
|
subscribeBiz: function() {
|
|
return biz_invoke_subscribe
|
|
},
|
|
WechatSessionContentType: function() {
|
|
return eS
|
|
},
|
|
subscribeUniik: function() {
|
|
return uniik_invoke_subscribe
|
|
},
|
|
OpenPfCommentListType: function() {
|
|
return ec
|
|
},
|
|
shortVibrate: function() {
|
|
return shortVibrate
|
|
},
|
|
Format: function() {
|
|
return el
|
|
},
|
|
getSession: function() {
|
|
return getSession
|
|
},
|
|
Action: function() {
|
|
return eo
|
|
},
|
|
OzonePopupStatus: function() {
|
|
return et
|
|
},
|
|
DataKey: function() {
|
|
return er
|
|
},
|
|
SinaWeiboContentType: function() {
|
|
return eE
|
|
},
|
|
invokeBiz: function() {
|
|
return biz_invoke_invoke
|
|
}
|
|
});
|
|
var a, s, u, c, l, d, p, f, v, g, h, m, _, y, w, E, S, T, b, k, C, P, A, R, I, O, N, L, M, B, x = i(70076), D = i(50837), F = i(46490), V = i(77698), H = i(44270), U = i(90251);
|
|
i(89300),
|
|
i(49930),
|
|
i(19990),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(34333),
|
|
i(87989),
|
|
i(86651),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421);
|
|
var q = i(70306)
|
|
, j = "CallbackList"
|
|
, W = new WeakMap
|
|
, G = function() {
|
|
function XHSEventsCB() {
|
|
(0,
|
|
F._)(this, XHSEventsCB),
|
|
(0,
|
|
H._)(this, W, {
|
|
writable: !0,
|
|
value: {}
|
|
})
|
|
}
|
|
return (0,
|
|
U._)(XHSEventsCB, [{
|
|
key: "get",
|
|
value: function get(e) {
|
|
return (0,
|
|
V._)(this, W)[e] || []
|
|
}
|
|
}, {
|
|
key: "set",
|
|
value: function set(e, r) {
|
|
(0,
|
|
V._)(this, W)[e] = r
|
|
}
|
|
}]),
|
|
XHSEventsCB
|
|
}();
|
|
function addCalledJsListener(e, r) {
|
|
for (var i = "".concat(e).concat(j), a = window.XHSEventsCB.get(i), s = 0; s < a.length; s++)
|
|
if (a[s] === r)
|
|
return;
|
|
a.push(r),
|
|
window.XHSEventsCB.set(i, a)
|
|
}
|
|
function generateCalledJsCallback(e, r) {
|
|
return function(i) {
|
|
(0,
|
|
x.o)(e, D.XQ.Event, i, r),
|
|
(0,
|
|
q.Wb)({
|
|
name: e,
|
|
res: i
|
|
}),
|
|
window.XHSEventsCB.get("".concat(e).concat(j)).forEach(function(e) {
|
|
return e(i)
|
|
})
|
|
}
|
|
}
|
|
function removeCalledJsListener(e, r) {
|
|
return {
|
|
remove: function() {
|
|
var i = "".concat(e).concat(j)
|
|
, a = window.XHSEventsCB.get(i);
|
|
window.XHSEventsCB.set(i, a.filter(function(e) {
|
|
return e !== r
|
|
}))
|
|
}
|
|
}
|
|
}
|
|
function subscribe(e, r, i) {
|
|
return (0,
|
|
q.mJ)({
|
|
name: e,
|
|
type: "event"
|
|
}),
|
|
addCalledJsListener(e, r),
|
|
!window.XHSEvents[e] && (window.XHSEvents[e] = generateCalledJsCallback(e, i)),
|
|
removeCalledJsListener(e, r)
|
|
}
|
|
window.XHSEvents = window.XHSEvents || {},
|
|
window.XHSEventsCB = window.XHSEventsCB || new G;
|
|
var J = i(1799);
|
|
function invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "xhs"),
|
|
(0,
|
|
J.fA)(e, r, "xhs", !0, i)
|
|
}
|
|
function invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "xhs")
|
|
}
|
|
function invokeSync(e, r, i) {
|
|
return (0,
|
|
J.xm)(e, r)
|
|
}
|
|
function top_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "top"),
|
|
(0,
|
|
J.fA)(e, r, "top", !0, i)
|
|
}
|
|
function top_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "top")
|
|
}
|
|
function biz_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "biz"),
|
|
(0,
|
|
J.fA)(e, r, "biz", !0, i)
|
|
}
|
|
function biz_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "biz")
|
|
}
|
|
function uniik_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "uniik"),
|
|
(0,
|
|
J.fA)(e, r, "uniik", !0, i)
|
|
}
|
|
function uniik_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "uniik")
|
|
}
|
|
function xhsdocs_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "xhsdocs"),
|
|
(0,
|
|
J.fA)(e, r, "xhsdocs", !0, i)
|
|
}
|
|
function xhsdocs_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "xhsdocs")
|
|
}
|
|
function xhsaurora_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "xhsaurora"),
|
|
(0,
|
|
J.fA)(e, r, "xhsaurora", !0, i)
|
|
}
|
|
function xhsaurora_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "xhsaurora")
|
|
}
|
|
function prado_invoke_invoke(e, r, i) {
|
|
return (0,
|
|
x.T)(e, D.XQ.Method, r, "prado"),
|
|
(0,
|
|
J.fA)(e, r, "prado", !0, i)
|
|
}
|
|
function prado_invoke_subscribe(e, r) {
|
|
return subscribe(e, r, "prado")
|
|
}
|
|
var X = i(27256)
|
|
, Y = i(41622)
|
|
, z = i(377);
|
|
i(36277),
|
|
i(41593);
|
|
var K = i(63522);
|
|
var Z = ((a = {}).Authorized = "authorized",
|
|
a.Denied = "denied",
|
|
a.Restricted = "restricted",
|
|
a.Undetermined = "undetermined",
|
|
a)
|
|
, Q = i(3511);
|
|
function shortVibrate() {
|
|
return _shortVibrate.apply(this, arguments)
|
|
}
|
|
function _shortVibrate() {
|
|
return (_shortVibrate = (0,
|
|
Y._)(function() {
|
|
var e, r;
|
|
return (0,
|
|
z.Jh)(this, function(i) {
|
|
if (K.YF.isIOS)
|
|
return [2, (0,
|
|
J.fA)("shortVibrate", {
|
|
id: 1519
|
|
})];
|
|
if (null === (r = window) || void 0 === r ? void 0 : null === (e = r.navigator) || void 0 === e ? void 0 : e.vibrate)
|
|
return window.navigator.vibrate(50),
|
|
[2, Promise.resolve({
|
|
message: "success",
|
|
result: 0
|
|
})];
|
|
throw new Q.Z("ERR_NOT_SUPPORT","not support shortVibrate")
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function findCalendarEvent(e) {
|
|
return _findCalendarEvent.apply(this, arguments)
|
|
}
|
|
function _findCalendarEvent() {
|
|
return (_findCalendarEvent = (0,
|
|
Y._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
z.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return i.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
J.fA)("authorizeCalendarStatus")];
|
|
case 1:
|
|
if ((r = (i.sent() || {}).value) === Z.Authorized)
|
|
return [2, (0,
|
|
J.fA)("findCalendarEvent", e)];
|
|
throw new Q.Z("calendar permission: ".concat(r));
|
|
case 2:
|
|
return [2, Promise.reject(i.sent())];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function removeCalendarEvent(e) {
|
|
return _removeCalendarEvent.apply(this, arguments)
|
|
}
|
|
function _removeCalendarEvent() {
|
|
return (_removeCalendarEvent = (0,
|
|
Y._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
z.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return i.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
J.fA)("authorizeCalendarStatus")];
|
|
case 1:
|
|
if ((r = (i.sent() || {}).value) === Z.Authorized)
|
|
return [2, (0,
|
|
J.fA)("removeCalendarEvent", e)];
|
|
throw new Q.Z("calendar permission: ".concat(r));
|
|
case 2:
|
|
return [2, Promise.reject(i.sent())];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function saveCalendarEvent(e) {
|
|
return _saveCalendarEvent.apply(this, arguments)
|
|
}
|
|
function _saveCalendarEvent() {
|
|
return (_saveCalendarEvent = (0,
|
|
Y._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
z.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return i.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
J.fA)("authorizeCalendarStatus")];
|
|
case 1:
|
|
if ((r = (i.sent() || {}).value) === Z.Authorized)
|
|
return [2, (0,
|
|
J.fA)("saveCalendarEvent", e)];
|
|
throw new Q.Z("calendar permission: ".concat(r));
|
|
case 2:
|
|
return [2, Promise.reject(i.sent())];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function getUserInfoV2() {
|
|
return (0,
|
|
J.fA)("getUserInfo")
|
|
}
|
|
function getSession() {
|
|
return _getSession.apply(this, arguments)
|
|
}
|
|
function _getSession() {
|
|
return (_getSession = (0,
|
|
Y._)(function() {
|
|
var e, r;
|
|
return (0,
|
|
z.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, getUserInfoV2()];
|
|
case 1:
|
|
if ((null == (e = i.sent()) ? void 0 : e.result) === 0)
|
|
return [2, null === (r = e.value) || void 0 === r ? void 0 : r.sessionId];
|
|
throw Error("Session 获取失败")
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
var $ = ((s = {}).Back = "back",
|
|
s.Default = "default",
|
|
s.Foreground = "foreground",
|
|
s);
|
|
var ee = ((u = {}).Denied = "denied",
|
|
u.Granted = "granted",
|
|
u.Undetermined = "undetermined",
|
|
u);
|
|
var et = ((c = {}).Authorized = "authorized",
|
|
c.Denied = "denied",
|
|
c);
|
|
var er = ((l = {}).EditProfileChangedData = "edit_profile_changed_data",
|
|
l.EditProfilePreviewData = "edit_profile_preview_data",
|
|
l);
|
|
var en = ((d = {}).Android = "Android",
|
|
d.Harmony = "harmony",
|
|
d.IOS = "iOS",
|
|
d);
|
|
var ei = ((p = {}).EditProfileChangedData = "edit_profile_changed_data",
|
|
p);
|
|
var eo = ((f = {}).DOMInsert = "domInsert",
|
|
f.Destroy = "destroy",
|
|
f.Play = "play",
|
|
f.SetPlayer = "setPlayer",
|
|
f.Stop = "stop",
|
|
f);
|
|
var ea = ((v = {}).The1 = "1",
|
|
v.The2 = "2",
|
|
v.The3 = "3",
|
|
v);
|
|
var es = ((g = {}).Multi = "multi",
|
|
g.Normal = "normal",
|
|
g.Video = "video",
|
|
g);
|
|
var eu = ((h = {}).CnyTopicFeed = "cny_topic_feed",
|
|
h.Topic = "topic",
|
|
h.TopicDiscussion = "topic_discussion",
|
|
h.TopicRating = "topic_rating",
|
|
h);
|
|
var ec = ((m = {}).Normal = "normal",
|
|
m.Video = "video",
|
|
m);
|
|
var el = ((_ = {}).Mp4 = "mp4",
|
|
_);
|
|
var ed = ((y = {}).EditProfileChangedData = "edit_profile_changed_data",
|
|
y.EditProfilePreviewData = "edit_profile_preview_data",
|
|
y);
|
|
var ep = ((w = {}).EditProfileChangedData = "edit_profile_changed_data",
|
|
w.EditProfilePreviewData = "edit_profile_preview_data",
|
|
w);
|
|
var ef = ((E = {}).ApplicationJSON = "application/json",
|
|
E.ApplicationXWWWFormUrlencoded = "application/x-www-form-urlencoded",
|
|
E.ImagePNG = "image/png",
|
|
E);
|
|
var ev = ((S = {}).Delete = "DELETE",
|
|
S.Get = "GET",
|
|
S.Post = "POST",
|
|
S.Put = "PUT",
|
|
S);
|
|
var eg = ((T = {}).AccountDidSwitch = "accountDidSwitch",
|
|
T.BrandAreaCard = "brand-area-card",
|
|
T.BusinessBindsUpdate = "business_binds_update",
|
|
T.CapaActivityTopicResult = "capaActivityTopicResult",
|
|
T.CapaAdvanceOptionLiveTrailerConfigUpdate = "capa_advance_option_live_trailer_config_update",
|
|
T.CheckoutPostOrder = "checkout_post_order",
|
|
T.CloseLocationPage = "closeLocationPage",
|
|
T.ClosePoiCard = "closePoiCard",
|
|
T.CnyFMPFinished = "cnyFMPFinished",
|
|
T.CoinRechargeFinishEvent = "coin_recharge_finish_event",
|
|
T.CommonAddressRn = "common-address-rn",
|
|
T.CurationKListRefreshCategory = "curation_k_list_refresh_category",
|
|
T.CurationKMoveCategory = "curation_k_move_category",
|
|
T.CustomerServiceQuickOrderCreate = "customer_service_quick_order_create",
|
|
T.CyberidentityAuthResult = "cyberidentityAuthResult",
|
|
T.DeclarePrivacyChange = "declare_privacy_change",
|
|
T.DspyxisDetailUpdateCompass = "dspyxis-detailUpdate-compass",
|
|
T.EoiMediaOffLine = "eoi_media_off_line",
|
|
T.ExitPoipage = "exitPoipage",
|
|
T.FinanceRechargeH5 = "finance-recharge-h5",
|
|
T.FloatingClose = "floating_close",
|
|
T.FloatingFull = "floating_full",
|
|
T.ForceUpdateCnyTab = "forceUpdateCnyTab",
|
|
T.GameplayWishSuccess = "gameplayWishSuccess",
|
|
T.GetLiveFloatingStatus = "getLiveFloatingStatus",
|
|
T.GoCapaByCloseWindow = "goCapaByCloseWindow",
|
|
T.GroupTopicSelectGoods = "group_topic_select_goods",
|
|
T.GrowthFeeds = "GrowthFeeds",
|
|
T.InspirationCollectBroadcast = "inspiration_collect_broadcast",
|
|
T.IosLiveMerchantNotSupportTopUpAlert = "ios_live_merchant_not_support_top_up_alert",
|
|
T.KeyboardResponded = "keyboard_responded",
|
|
T.Kuri = "kuri",
|
|
T.LancerAddressGrowth = "lancer-address-growth",
|
|
T.LancerAddressMp = "lancer-address-mp",
|
|
T.LancerAddressSlim = "lancer-address-slim",
|
|
T.LancerInvoiceSlim = "lancer-invoice-slim",
|
|
T.LancerSparkSlim = "lancer-spark-slim",
|
|
T.LegoBoxCrossPlatformEvent = "legoBoxCrossPlatformEvent",
|
|
T.LiveDynamicBridge = "live_dynamic_bridge",
|
|
T.LiveFloatWindowMute = "live_float_window_mute",
|
|
T.LiveRefreshCouponList = "live_refresh_coupon_list",
|
|
T.LiveRoomBridge = "live-room-bridge",
|
|
T.MarketingBoxClose = "marketingBoxClose",
|
|
T.MeituanNotification = "MeituanNotification",
|
|
T.MemoryWarningNotification = "memoryWarningNotification",
|
|
T.MoreClassify = "more_classify",
|
|
T.NativePostOrder = "native_post_order",
|
|
T.NativeRnNoteLike = "native-rn-note-like",
|
|
T.ObtainedGoldenNickname = "obtained_golden_nickname",
|
|
T.OpenScreenshot = "openScreenshot",
|
|
T.OpenSnackbar = "openSnackbar",
|
|
T.OrderCreated = "order-created",
|
|
T.PoiCommentPopoverImpression = "poiCommentPopoverImpression",
|
|
T.PoiCommentTagClick = "poiCommentTagClick",
|
|
T.PoiCommentTagImpression = "poiCommentTagImpression",
|
|
T.PoiDeclareOnUpdate = "poi_declare_on_update",
|
|
T.PoiDetailOnShow = "poiDetailOnShow",
|
|
T.PoiPopcornDayRankExit = "poi-popcorn-day-rank-exit",
|
|
T.PoiPopcornDetailPkExit = "poi-popcorn-detail-pk-exit",
|
|
T.PoiPopcornTotalRankExit = "poi-popcorn-total-rank-exit",
|
|
T.PostNoteGoodsResult = "postNoteGoodsResult",
|
|
T.ProfileRefreshKey = "ProfileRefreshKey",
|
|
T.PurchaseRefresh = "purchase_refresh",
|
|
T.RealNameVerifyCompleted = "realNameVerifyCompleted",
|
|
T.RedCAPTCHAVerifySuccess = "red_captcha_verify_success",
|
|
T.RelieveFreezeAccountSuccess = "relieve_freeze_account_success",
|
|
T.ReportFinishEvent = "report_finish_event",
|
|
T.ReportNoteRemoveEvent = "report_note_remove_event",
|
|
T.RnDevtools = "rn-devtools",
|
|
T.RnDevtoolsEmitter = "rn-devtools-emitter",
|
|
T.RnNativeNoteLike = "rn-native-note-like",
|
|
T.RnPostOrder = "rn_post_order",
|
|
T.SNSRNDiscoverCommentAction = "SNSRNDiscoverCommentAction",
|
|
T.SearchRNCardImpressionEvent = "searchRNCardImpressionEvent",
|
|
T.SearchRnCard = "search_rn_card",
|
|
T.SellerFeedbackAction = "seller-feedback-action",
|
|
T.SetProfileEntries = "setProfileEntries",
|
|
T.ShareLiveTrailerCard = "share_live_trailer_card",
|
|
T.ShowTopicReadTask = "show_topic_read_task",
|
|
T.SizeBeenEntered = "size-been-entered",
|
|
T.SqaLike = "sqa-like",
|
|
T.SyncScrollviewRef = "syncScrollviewRef",
|
|
T.Test = "test",
|
|
T.TranslateY = "translateY",
|
|
T.UpdateRnLiveNoticeListInfo = "update_rn_live_notice_list_info",
|
|
T.UpdateTravelInfo = "updateTravelInfo",
|
|
T.VisitedChanged = "visitedChanged",
|
|
T);
|
|
var eh = ((b = {}).BusinessExecutionEnd = "businessExecutionEnd",
|
|
b.BusinessExecutionStart = "businessExecutionStart",
|
|
b.CoreHTTPRequestEnd = "coreHttpRequestEnd",
|
|
b.CoreHTTPRequestStart = "coreHttpRequestStart",
|
|
b.FirstMeaningfulPaint = "firstMeaningfulPaint",
|
|
b.FrameExecutionEnd = "frameExecutionEnd",
|
|
b.FrameExecutionStart = "frameExecutionStart",
|
|
b.RouterStart = "routerStart",
|
|
b.ViewRenderEnd = "viewRenderEnd",
|
|
b);
|
|
var em = ((k = {}).More = "more",
|
|
k.Share = "share",
|
|
k);
|
|
var e_ = ((C = {}).Center = "center",
|
|
C.Event = "event",
|
|
C.General = "general",
|
|
C.GoodsDetail = "goodsDetail",
|
|
C.Topic = "topic",
|
|
C.XiuxiuInvite = "xiuxiuInvite",
|
|
C);
|
|
var ey = ((P = {}).Image = "image",
|
|
P.Link = "link",
|
|
P.MiniProgram = "miniProgram",
|
|
P.Text = "text",
|
|
P);
|
|
var ew = ((A = {}).Image = "image",
|
|
A.Link = "link",
|
|
A);
|
|
var eE = ((R = {}).Image = "image",
|
|
R.Link = "link",
|
|
R.Text = "text",
|
|
R);
|
|
var eS = ((I = {}).Emoji = "emoji",
|
|
I.Image = "image",
|
|
I.Link = "link",
|
|
I.MiniProgram = "miniProgram",
|
|
I.Text = "text",
|
|
I);
|
|
var eT = ((O = {}).Image = "image",
|
|
O.Link = "link",
|
|
O.Text = "text",
|
|
O);
|
|
var eb = ((N = {}).Image = "image",
|
|
N.Link = "link",
|
|
N.Text = "text",
|
|
N);
|
|
var ek = ((L = {}).Goods = "goods",
|
|
L.Universal = "universal",
|
|
L);
|
|
var eC = ((M = {}).PageComplete = "page_complete",
|
|
M.PageLoad = "page_load",
|
|
M);
|
|
var eP = ((B = {}).Pause = "pause",
|
|
B.Resume = "resume",
|
|
B)
|
|
, setup = function() {}
|
|
},
|
|
1799: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
bw: function() {
|
|
return invokeInterceptorWithoutValidate
|
|
},
|
|
xm: function() {
|
|
return invokeSync
|
|
},
|
|
fA: function() {
|
|
return invokeInterceptor
|
|
}
|
|
}),
|
|
i(36277),
|
|
i(34333),
|
|
i(87989),
|
|
i(7608);
|
|
var a, s = i(63522);
|
|
i(72169),
|
|
i(58486);
|
|
var u = i(4659)
|
|
, c = Array(16);
|
|
function makeRng() {
|
|
for (var e, r = 0; r < 16; r++)
|
|
(3 & r) == 0 && (e = 0x100000000 * Math.random()),
|
|
c[r] = e >>> ((3 & r) << 3) & 255;
|
|
return c
|
|
}
|
|
function generateKey() {
|
|
return (0,
|
|
u.Z)({
|
|
rng: makeRng
|
|
}).replace(/-/g, "_")
|
|
}
|
|
function addCallback(e, r) {
|
|
var i = "".concat(e, "_").concat(generateKey());
|
|
return window.XHSCallbacks[i] = r,
|
|
"window.XHSCallbacks.".concat(i)
|
|
}
|
|
window.XHSCallbacks = window.XHSCallbacks || {},
|
|
window.XHSInvokeCallback = function(e, r) {
|
|
window.XHSCallbacks[r] && window.XHSCallbacks[r](e)
|
|
}
|
|
;
|
|
var l = i(50837)
|
|
, d = i(35329)
|
|
, p = i(46490)
|
|
, f = i(51606)
|
|
, v = i(27292)
|
|
, g = i(75649)
|
|
, h = i(30961);
|
|
i(41593);
|
|
var m = i(72252)
|
|
, _ = function(e) {
|
|
function SchemaError(e) {
|
|
for (var r, i = arguments.length, a = Array(i > 1 ? i - 1 : 0), u = 1; u < i; u++)
|
|
a[u - 1] = arguments[u];
|
|
return (0,
|
|
p._)(this, SchemaError),
|
|
r = (0,
|
|
d._)(this, SchemaError, (0,
|
|
g._)(a)),
|
|
(0,
|
|
f._)(r, "code", void 0),
|
|
r.name = "SchemaError",
|
|
r.code = e,
|
|
s.YF.isXHS && r.code === l.nJ.UnKnow && (0,
|
|
m.vU)(r),
|
|
r
|
|
}
|
|
return (0,
|
|
v._)(SchemaError, e),
|
|
SchemaError
|
|
}((0,
|
|
h._)(Error))
|
|
, y = i(70879)
|
|
, w = i(27337)
|
|
, E = i(64593);
|
|
function completeUrl(e) {
|
|
if (!e.startsWith("http"))
|
|
return e.startsWith("//") ? window.location.protocol + e : window.location.origin + e;
|
|
return e
|
|
}
|
|
function webp2png(e) {
|
|
if (s.YF.isIOS) {
|
|
var r, i, a = (null == e ? void 0 : null === (r = e.response) || void 0 === r ? void 0 : r.image) || (null == e ? void 0 : null === (i = e.response) || void 0 === i ? void 0 : i.images), u = (0,
|
|
s.Np)();
|
|
(null == u ? void 0 : u.major) < 14 && (null == a ? void 0 : a.endsWith("format/webp")) && (a = "".concat(a.substring(0, a.length - 4), "png"),
|
|
e.response.image = a,
|
|
e.response.images = a)
|
|
}
|
|
}
|
|
i(42876),
|
|
i(33933),
|
|
i(75973),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(55947),
|
|
i(97542),
|
|
i(63712);
|
|
var S = ["getDeviceInfo", "getSupportedEvents"]
|
|
, T = ["getPreResponse"];
|
|
function transformArgs(e, r) {
|
|
if ("sendClientRequestV3" === e) {
|
|
var i = (0,
|
|
y._)({}, r.headers)
|
|
, a = r.method.toUpperCase()
|
|
, s = i["Content-Type"]
|
|
, u = (0,
|
|
E._)(i, ["Content-Type"]);
|
|
return "GET" === a || ["application/x-www-form-urlencoded", "application/json"].includes(s) ? "GET" === a && s && (i = u) : i["Content-Type"] = "application/json",
|
|
Object.keys(i).forEach(function(e) {
|
|
"string" != typeof i[e] && (i[e] = String(i[e]))
|
|
}),
|
|
(0,
|
|
w._)((0,
|
|
y._)({}, r), {
|
|
url: completeUrl(r.url),
|
|
headers: i
|
|
})
|
|
}
|
|
return r
|
|
}
|
|
var b = {
|
|
getDeviceInfo: function adaptGetDeviceInfo(e) {
|
|
if (s.YF.isIOS) {
|
|
var r;
|
|
e.value.deviceId = null == e ? void 0 : null === (r = e.value) || void 0 === r ? void 0 : r.uniqueId
|
|
}
|
|
try {
|
|
delete e.value.freeDiskStorage,
|
|
delete e.value.totalDiskCapacity
|
|
} catch (e) {
|
|
console.log("get device info interceptor error:", e.message)
|
|
}
|
|
return e
|
|
},
|
|
getUserInfo: function(e) {
|
|
return webp2png(e),
|
|
e
|
|
}
|
|
};
|
|
function transformRes(e, r) {
|
|
var i = r || {}
|
|
, a = i.result
|
|
, s = i.value
|
|
, u = i.message
|
|
, c = s;
|
|
if (S.includes(e) && 0 === a && !("[object Object]" === Object.prototype.toString.call(c) && Object.prototype.hasOwnProperty.call(c, "result")) && (c = r),
|
|
0 === a)
|
|
return b[e] ? b[e](c) : c;
|
|
if (T.includes(e))
|
|
throw new _((null == s ? void 0 : s.message) || a,"".concat(e, ": ").concat(u));
|
|
throw new _(a,"".concat(e, ": ").concat(u))
|
|
}
|
|
var k = i(27256)
|
|
, C = i(70306);
|
|
i(86651),
|
|
i(19077);
|
|
var P = i(70076)
|
|
, A = i(41622)
|
|
, R = i(377)
|
|
, I = i(7862)
|
|
, O = i.n(I)
|
|
, N = i(36757);
|
|
i(25069);
|
|
var L = O().oneOf([0, -1]).isRequired;
|
|
function urlType(e, r, i, a) {
|
|
if (e[r] && !/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.?%&=]*)?/.test(e[r]))
|
|
return Error("Invalid ".concat(a, " `").concat(r, "` => `").concat(JSON.stringify(e[r]), "` supplied to `").concat(i, "`, expected `url` pattern."))
|
|
}
|
|
var M = i(3511);
|
|
function checkOldBridge_check(e, r, i, a) {
|
|
setTimeout(function() {
|
|
try {
|
|
O().checkPropTypes({
|
|
prop: e
|
|
}, {
|
|
prop: r
|
|
}, i, "ozone-bridge/".concat(a), function() {
|
|
return !1
|
|
})
|
|
} catch (e) {
|
|
var s = e.stack.indexOf(e.message) > -1 ? e.stack : "Error: ".concat(e.message, "\n").concat(e.stack);
|
|
(0,
|
|
m.vU)(s, null, null, {
|
|
console: !0,
|
|
owl: !0
|
|
})
|
|
}
|
|
})
|
|
}
|
|
function checkArgs(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
m.ZK)("argsT is necessary");
|
|
return
|
|
}
|
|
checkOldBridge_check(r, e, "args", i)
|
|
}
|
|
function checkRes(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
if (!r) {
|
|
(0,
|
|
m.ZK)("resT is necessary");
|
|
return
|
|
}
|
|
checkOldBridge_check(r, e, "res", i)
|
|
}
|
|
i(34885);
|
|
function escapeNewLineChars(e) {
|
|
return "string" == typeof e ? e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") : e
|
|
}
|
|
a = window.XHS_CALLBACKS || (window.XHS_CALLBACKS = {});
|
|
var B = {
|
|
add: function add(e, r, i) {
|
|
var u = "".concat(e, "_").concat(generateKey());
|
|
return a[u] = function callbackWrap(a) {
|
|
var u;
|
|
if (s.YF.isIOS || (0,
|
|
s.S8)("5.26.1"))
|
|
u = a;
|
|
else
|
|
try {
|
|
u = JSON.parse(escapeNewLineChars(a))
|
|
} catch (e) {
|
|
u = a
|
|
}
|
|
(null == i ? void 0 : i.resT) && checkRes(u, i.resT, e),
|
|
r(u)
|
|
}
|
|
,
|
|
"XHS_CALLBACKS.".concat(u)
|
|
}
|
|
};
|
|
function isSupportAdapter(e) {
|
|
var r, i = s.YF.isIOS ? null === (r = window.webkit) || void 0 === r ? void 0 : r.messageHandlers : window.xhsbridge;
|
|
return i && !!i[e]
|
|
}
|
|
function bridge(e, r, i) {
|
|
var a = {};
|
|
if (void 0 !== r && (a.data = r),
|
|
i && (a.callback = i),
|
|
s.YF.isIOS) {
|
|
if ("registerNotice" === e && (0,
|
|
s.S8)("5.29") && (0,
|
|
s.mV)("5.31")) {
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage({
|
|
data: i
|
|
})
|
|
} catch (e) {
|
|
throw new M.Z("ERR_NATIVE",e.message)
|
|
}
|
|
return
|
|
}
|
|
try {
|
|
window.webkit.messageHandlers[e].postMessage(a)
|
|
} catch (r) {
|
|
throw new M.Z("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
} else {
|
|
var u = JSON.stringify(a);
|
|
try {
|
|
window.xhsbridge[e](u)
|
|
} catch (r) {
|
|
throw new M.Z("ERR_NATIVE","".concat(r.message, ", bridge is ").concat(e))
|
|
}
|
|
}
|
|
}
|
|
function callbackAdapter(e, r, i, a) {
|
|
var s;
|
|
if (!isSupportAdapter(e))
|
|
throw new M.Z("ERR_NOT_SUPPORT","not support ".concat(e));
|
|
(null == a ? void 0 : a.argsT) && checkArgs(r, a.argsT, e),
|
|
"function" == typeof i && (s = B.add(e, i, a)),
|
|
bridge(e, r, s)
|
|
}
|
|
function adapter(e, r, i) {
|
|
return new Promise(function(a, s) {
|
|
try {
|
|
var u = r
|
|
, c = i;
|
|
u && (u.argsT || u.resT) && (c = u,
|
|
u = void 0),
|
|
callbackAdapter(e, u, a, c)
|
|
} catch (e) {
|
|
s(e)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
var x = i(31547);
|
|
function deprecatedStr(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
|
|
return "[OzoneBridge] ".concat(e, " was deprecated, please use ").concat(r, ".").concat(i ? " Changelog for ".concat(i) : "")
|
|
}
|
|
function logDeprecated_warnDeprecated(e, r, i) {
|
|
(0,
|
|
m.ZK)(deprecatedStr(e, r, i))
|
|
}
|
|
function arrangeExtensionFriend(e) {
|
|
var r;
|
|
return "string" == typeof e ? logDeprecated_warnDeprecated("args.extension.friend String", "args.extension.friend Object") : (void 0 === e ? "undefined" : (0,
|
|
x._)(e)) === "object" && (e.cover && !e.image && (logDeprecated_warnDeprecated("args.extension.friend.cover", "args.extension.friend.image"),
|
|
e.image = e.cover,
|
|
r = (0,
|
|
y._)({}, e)),
|
|
s.YF.isAndroid && (r = JSON.stringify(e))),
|
|
r
|
|
}
|
|
var D = s.YF.isAndroid && (0,
|
|
s.S8)("5.20") || !0;
|
|
function postNotice(e) {
|
|
var r = e.methodName
|
|
, i = e.data
|
|
, a = ("undefined" == typeof window ? "undefined" : (0,
|
|
x._)(window)) === "object" && "object" === (0,
|
|
x._)(window.wx) ? window.wx : null;
|
|
return a && a.miniProgram && a.miniProgram.postMessage ? (a.miniProgram.postMessage({
|
|
data: {
|
|
methodName: r,
|
|
data: i
|
|
}
|
|
}),
|
|
Promise.resolve()) : Promise.resolve()
|
|
}
|
|
function setShareInfo(e) {
|
|
return postNotice({
|
|
methodName: "setShareInfo",
|
|
data: e
|
|
})
|
|
}
|
|
function showToast(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if (checkArgs(e, {
|
|
argsT: O().string.isRequired
|
|
}.argsT, "showToast"),
|
|
null == e)
|
|
throw new M.Z("ERR_ARGS_NULL","message should not be undefined or null");
|
|
return adapter("toast", (0,
|
|
y._)({
|
|
message: e
|
|
}, r))
|
|
}
|
|
function showAlert(e) {
|
|
var r = "showalertV2";
|
|
checkArgs(e, {
|
|
argsT: O().shape({
|
|
title: O().string,
|
|
desc: O().string,
|
|
actions: O().arrayOf(O().shape({
|
|
name: O().string,
|
|
callback: O().func
|
|
}))
|
|
})
|
|
}.argsT, "showAlert");
|
|
var i = (0,
|
|
w._)((0,
|
|
y._)({}, e), {
|
|
des: e.desc || ""
|
|
})
|
|
, a = []
|
|
, s = {
|
|
default: 0,
|
|
cancel: 1,
|
|
destructive: 2
|
|
};
|
|
return i.actions.forEach(function(e) {
|
|
var i = B.add(r, e.callback);
|
|
a.push({
|
|
name: e.name,
|
|
type: s[e.style],
|
|
script: "window.".concat(i, " && window.").concat(i)
|
|
})
|
|
}),
|
|
i.actions = a,
|
|
adapter(r, i)
|
|
}
|
|
function showActionSheet(e) {
|
|
return adapter("showActionSheet", e, {
|
|
argsT: O().shape({
|
|
title: O().string,
|
|
desc: O().string,
|
|
actions: O().arrayOf(O().shape({
|
|
name: O().string,
|
|
value: O().string.isRequired
|
|
}))
|
|
}),
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().string
|
|
})
|
|
})
|
|
}
|
|
function setNavigationHidden() {
|
|
return adapter("setNavigationHidden", {
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
})
|
|
}
|
|
function showNavigationRightBarButtonItem(e) {
|
|
var r = {
|
|
argsT: O().shape({
|
|
visible: O().bool,
|
|
buttonTitle: O().string,
|
|
buttonIcon: O().string,
|
|
handler: O().func
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
};
|
|
e.button_title && logDeprecated_warnDeprecated("args.button_title", "args.buttonTitle"),
|
|
e.button_icon && logDeprecated_warnDeprecated("args.button_icon", "args.buttonIcon"),
|
|
checkArgs(e, r.argsT, "showNavigationRightBarButtonItem");
|
|
var i = e.handler
|
|
, a = (0,
|
|
E._)(e, ["handler"])
|
|
, s = (0,
|
|
N.cJ)(a);
|
|
return i && "function" == typeof i && (window.XHSHandler = (0,
|
|
w._)((0,
|
|
y._)({}, window.XHSHandler), {
|
|
navigationRightBarButtonItem: i
|
|
})),
|
|
adapter("showNavigationRightBarButtonItemV2", s, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function setStatusBarHiddenIOS() {
|
|
var e = !(arguments.length > 0) || void 0 === arguments[0] || arguments[0];
|
|
return adapter("setStatusBarHiddenIOS", e, {
|
|
argsT: O().bool.isRequired
|
|
})
|
|
}
|
|
function setStatusBarTextColor() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
color: "0"
|
|
};
|
|
if (s.YF.isIOS)
|
|
throw new M.Z("NOT SUPPORTED ON iOS, Please use setStatusBarStyleIOS");
|
|
return adapter("setStatusBarTextColor", e.color)
|
|
}
|
|
function alwaysBounceIOS(e) {
|
|
var r = !(arguments.length > 1) || void 0 === arguments[1] || arguments[1];
|
|
return adapter("alwaysBounceIOS", {
|
|
direction: e,
|
|
bounces: r
|
|
}, {
|
|
argsT: O().shape({
|
|
direction: O().oneOf(["vertical", "horizontal"]).isRequired,
|
|
bounces: O().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function ui_setShareInfo(e) {
|
|
var r = {
|
|
argsT: O().shape({
|
|
contentType: O().string,
|
|
title: O().string,
|
|
content: O().string,
|
|
linkurl: urlType,
|
|
imageurl: urlType,
|
|
type: O().string,
|
|
extension: O().shape({
|
|
miniprogram: O().shape({
|
|
title: O().string,
|
|
desc: O().string,
|
|
webpageurl: urlType,
|
|
path: O().string,
|
|
thumb: O().string,
|
|
username: O().string
|
|
}),
|
|
friend: O().oneOfType([O().string, O().shape({
|
|
source: O().string,
|
|
type: O().oneOf(["general", "goodsDetail", "center", "topic", "event"]),
|
|
title: O().string,
|
|
content: O().string,
|
|
cover: O().string,
|
|
image: O().string,
|
|
link: O().string,
|
|
btn: O().string,
|
|
avatar: O().string,
|
|
brandName: O().string,
|
|
id: O().string,
|
|
desc: O().string,
|
|
price: O().number
|
|
})])
|
|
})
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
}
|
|
, i = e;
|
|
if (i) {
|
|
(i = (0,
|
|
y._)({}, i)).type && !D && (i.type = i.type.replace(/WXMiniProgram/, "WeixinSession")),
|
|
i.image && !i.imageurl && (logDeprecated_warnDeprecated("args.image", "args.imageurl"),
|
|
i.imageurl = i.image);
|
|
var a, u = arrangeExtensionFriend(null === (a = i.extension) || void 0 === a ? void 0 : a.friend);
|
|
u && (i.extension.friend = u)
|
|
}
|
|
return s.YF.isMiniprogram ? setShareInfo(i) : adapter("setShareInfo", i, r)
|
|
}
|
|
function showShareMenu() {
|
|
return adapter("showShareMenu")
|
|
}
|
|
function shareContent(e) {
|
|
var r, i = {
|
|
argsT: O().shape({
|
|
type: O().string.isRequired,
|
|
contentType: O().oneOf(["link", "image", "text"]),
|
|
title: O().string,
|
|
content: O().string,
|
|
linkurl: urlType,
|
|
imageurl: urlType,
|
|
base64string: O().string,
|
|
extension: O().shape({
|
|
miniprogram: O().shape({
|
|
title: O().string,
|
|
desc: O().string,
|
|
webpageurl: urlType,
|
|
path: O().string,
|
|
thumb: O().string,
|
|
username: O().string
|
|
}),
|
|
friend: O().oneOf([O().string, {
|
|
source: O().string,
|
|
type: O().oneOf(["general", "goodsDetail", "center", "topic", "event"]),
|
|
title: O().string,
|
|
content: O().string,
|
|
cover: O().string,
|
|
image: O().string,
|
|
link: O().string,
|
|
btn: O().string,
|
|
avatar: O().string,
|
|
brandName: O().string,
|
|
id: O().string,
|
|
desc: O().string,
|
|
price: O().number
|
|
}])
|
|
})
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
}, a = (0,
|
|
y._)({}, e);
|
|
a.type && !D && (a.type = e.type.replace(/WXMiniProgram/, "WeixinSession")),
|
|
a.image && !a.imageurl && (logDeprecated_warnDeprecated("args.image", "args.imageurl"),
|
|
a.imageurl = a.image);
|
|
var s = arrangeExtensionFriend(null === (r = a.extension) || void 0 === r ? void 0 : r.friend);
|
|
return s && (a.extension.friend = s),
|
|
adapter("shareContentV2", a, i)
|
|
}
|
|
function pay(e) {
|
|
return adapter("pay", e)
|
|
}
|
|
function alipayClient(e) {
|
|
return adapter("alipayClient", e, {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: L,
|
|
orderid: O().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function openURLByWechat(e) {
|
|
return adapter("openURLByWechat", e, {
|
|
argsT: O().shape({
|
|
url: O().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function wechatPayClient(e) {
|
|
return adapter("wechatPayClient", e, {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: L,
|
|
orderid: O().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function supportApplePayIOS() {
|
|
return adapter("supportApplePay")
|
|
}
|
|
function applePayClientIOS(e) {
|
|
return adapter("applePayClient", e)
|
|
}
|
|
function openLinkAndroid(e) {
|
|
return adapter("openLink", e, {
|
|
argsT: O().string.isRequired
|
|
})
|
|
}
|
|
function closeWindow() {
|
|
return adapter("closeWindow")
|
|
}
|
|
function removeVCFromStackIOS() {
|
|
return adapter("removeVCFromStack")
|
|
}
|
|
function replaceSelfWithLink(e) {
|
|
var r = e.link
|
|
, i = e.type
|
|
, a = s.YF.isIOS && (0,
|
|
s.S8)("5.39")
|
|
, u = {
|
|
argsT: a ? {
|
|
link: O().string.isRequired,
|
|
type: O().oneOf(["push", "present"]).isRequired
|
|
} : O().string.isRequired
|
|
};
|
|
return a ? adapter("replaceSelfWithLink", {
|
|
link: r,
|
|
type: i
|
|
}, u) : adapter("replaceSelfWithLink", r, u)
|
|
}
|
|
function replaceSelfWithLinkV2Android(e) {
|
|
return adapter("replaceSelfWithLinkV2", {
|
|
link: e
|
|
})
|
|
}
|
|
function replaceRouteWith(e) {
|
|
return s.YF.isIOS && (0,
|
|
s.S8)("6.54") ? replaceSelfWithLink({
|
|
link: e
|
|
}) : s.YF.isAndroid && (0,
|
|
s.S8)("6.56") ? replaceSelfWithLinkV2Android(e) : s.YF.isIOS && !isSupportAdapter("removeVCFromStack") ? replaceSelfWithLink({
|
|
link: e
|
|
}) : new Promise(function(r, i) {
|
|
window.open(e),
|
|
setTimeout(function() {
|
|
s.YF.isIOS ? removeVCFromStackIOS().then(r).catch(i) : (window.close(),
|
|
r(void 0))
|
|
}, 300)
|
|
}
|
|
)
|
|
}
|
|
function openGiftPanel() {
|
|
return _openGiftPanel.apply(this, arguments)
|
|
}
|
|
function _openGiftPanel() {
|
|
return (_openGiftPanel = (0,
|
|
A._)(function() {
|
|
return (0,
|
|
R.Jh)(this, function(e) {
|
|
return [2, adapter("openGiftPanel")]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function setPasteBoard(e) {
|
|
var r = {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "setPasteBoard"),
|
|
adapter("setPasteBoard", {
|
|
string: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function showTrack(e) {
|
|
return adapter("showTrack", e, {
|
|
argsT: O().shape({
|
|
title: O().string,
|
|
content: O().string,
|
|
isNewTrack: O().bool
|
|
})
|
|
})
|
|
}
|
|
function showApmTrack(e) {
|
|
return adapter("showApmTrack", e, {
|
|
argsT: O().shape({
|
|
content: O().string
|
|
})
|
|
})
|
|
}
|
|
function webtrack(e) {
|
|
return adapter("webtrack", e, {
|
|
argsT: O().object
|
|
})
|
|
}
|
|
function emitTrack(e) {
|
|
return adapter("emitTrack", e, {
|
|
argsT: O().string.isRequired
|
|
})
|
|
}
|
|
function emitApmTrack(e) {
|
|
return adapter("emitApmTrack", e, {
|
|
argsT: O().string.isRequired
|
|
})
|
|
}
|
|
function openMapWithLocation(e) {
|
|
return adapter("openMapWithLocation", e, {
|
|
argsT: O().shape({
|
|
lat: O().number,
|
|
long: O().number,
|
|
direction: O().bool,
|
|
name: O().string,
|
|
coordinate: O().shape({
|
|
wgs84: O().shape({
|
|
long: O().number,
|
|
lat: O().number
|
|
}),
|
|
gcj02: O().shape({
|
|
long: O().number,
|
|
lat: O().number
|
|
}),
|
|
bd09: O().shape({
|
|
long: O().number,
|
|
lat: O().number
|
|
})
|
|
})
|
|
}),
|
|
resT: O().shape({
|
|
result: L,
|
|
type: O().oneOf(["apple", "baidu", "amap", "google"]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function confirmAntiSpam() {
|
|
return adapter("confirmAntiSpam")
|
|
}
|
|
function addComment(e) {
|
|
return adapter("addComment", e, {
|
|
argsT: O().shape({
|
|
placeholder: O().string,
|
|
uid: O().string
|
|
}),
|
|
resT: O().shape({
|
|
uid: O().string,
|
|
is_send: O().bool,
|
|
data: O().shape({
|
|
content: O().string,
|
|
at_users: O().arrayOf(O().shape({
|
|
userid: O().string,
|
|
nickname: O().string
|
|
}))
|
|
})
|
|
})
|
|
})
|
|
}
|
|
function openXhsSystemSettings() {
|
|
return _openXhsSystemSettings.apply(this, arguments)
|
|
}
|
|
function _openXhsSystemSettings() {
|
|
return (_openXhsSystemSettings = (0,
|
|
A._)(function() {
|
|
return (0,
|
|
R.Jh)(this, function(e) {
|
|
return [2, adapter("openXhsSystemSettings")]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function openRechargeCoinPanel() {
|
|
return adapter("openRechargeCoinPanel")
|
|
}
|
|
function openFansPanel() {
|
|
return adapter("openFansPanel")
|
|
}
|
|
function checkLoginWithAction(e) {
|
|
return adapter("checkLoginWithAction", e, {
|
|
argsT: O().shape({
|
|
type: O().number.isRequired
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
})
|
|
}
|
|
function logout() {
|
|
return adapter("logout")
|
|
}
|
|
function isAppInstalled(e) {
|
|
return adapter("isAppInstalled", e, {
|
|
argsT: O().shape({
|
|
iOS: O().string,
|
|
Android: O().string
|
|
}),
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function getAppInfo() {
|
|
return adapter("getAppInfo", {
|
|
resT: O().shape({
|
|
result: L,
|
|
version: O().string.isRequired,
|
|
build: O().string.isRequired,
|
|
jsversion: O().string.isRequired,
|
|
package: O().oneOf(["com.xingin.discover", "com.xingin.xhs"]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function getDeviceInfoOld() {
|
|
function imeiType() {
|
|
return (0,
|
|
s.mV)("5.24") ? {} : s.YF.isIOS ? {
|
|
idfa: O().string.isRequired,
|
|
idfv: O().string.isRequired
|
|
} : {
|
|
imei: O().string.isRequired
|
|
}
|
|
}
|
|
var e = {
|
|
resT: O().shape((0,
|
|
y._)({
|
|
result: L,
|
|
appMarket: O().string.isRequired,
|
|
appVersion: O().string.isRequired,
|
|
buildNumber: O().string.isRequired,
|
|
systemVersion: O().string.isRequired,
|
|
deviceModel: O().string.isRequired,
|
|
manufacturer: O().string.isRequired,
|
|
timezone: O().string.isRequired,
|
|
deviceScreenWidth: O().number.isRequired,
|
|
deviceScreenHeight: O().number.isRequired,
|
|
carrier: O().string.isRequired,
|
|
uniqueId: O().string.isRequired
|
|
}, s.YF.isIOS ? {
|
|
applepayInfo: O().bool.isRequired
|
|
} : {}, imeiType))
|
|
};
|
|
return adapter("getDeviceInfo").then(function(r) {
|
|
var i = (0,
|
|
N.Lg)(r);
|
|
return r.applepay_info && (i.applepay_info = r.applepay_info,
|
|
logDeprecated_warnDeprecated("res.applepay_info", "res.applepayInfo")),
|
|
checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function getNetworkTypeLegacy() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !1
|
|
}
|
|
, r = {
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().oneOf(["WiFi", "4G", "3G+", "3G", "2G", "NONE"])
|
|
})
|
|
};
|
|
return adapter("getNetworkType").then(function(i) {
|
|
var a = (0,
|
|
y._)({}, i);
|
|
if (("wifi" === i.value || "WIFI" === i.value) && (a.value = "WiFi"),
|
|
checkRes(a, r.resT),
|
|
e.extractValue) {
|
|
if (0 === a.result)
|
|
return a.value;
|
|
throw new M.Z("ERR_RESULT_".concat(a.result),"res.result is not 0")
|
|
}
|
|
return a
|
|
})
|
|
}
|
|
function getUserInfo() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
extractValue: !0
|
|
}
|
|
, r = Date.now();
|
|
console.warn("[OzoneBridge] getUserInfo was deprecated, use `getUserInfoV2` and `getABFlag` to replace, more info see readme");
|
|
var i = s.YF.isAndroid && (0,
|
|
s.S8)("6.5") || s.YF.isIOS && (0,
|
|
s.S8)("6.9")
|
|
, a = {
|
|
resT: O().shape({
|
|
result: L,
|
|
response: O().shape((0,
|
|
y._)({
|
|
userId: O().string.isRequired,
|
|
nickname: O().string.isRequired,
|
|
gender: O().number.isRequired,
|
|
userToken: O().string.isRequired,
|
|
image: urlType.isRequired,
|
|
location: O().string.isRequired,
|
|
flags: O().shape({
|
|
fulishe: O().oneOfType([O().object]).isRequired,
|
|
shequ: O().oneOfType([O().object]).isRequired
|
|
})
|
|
}, (0,
|
|
s.S8)("5.24") ? {
|
|
lat: O().number.isRequired,
|
|
lon: O().number.isRequired,
|
|
sessionId: O().string.isRequired
|
|
} : {}, i ? {
|
|
hashExp: O().string.isRequired
|
|
} : {}))
|
|
})
|
|
};
|
|
return adapter("getUserInfo").then(function(i) {
|
|
var s = (0,
|
|
N.Lg)(i);
|
|
if (i.response && (i.response.flags && (i.response.flags.fulishe && (s.response.flags.fulishe = i.response.flags.fulishe),
|
|
i.response.flags.shequ && (s.response.flags.shequ = i.response.flags.shequ)),
|
|
i.response.user_id && (s.response.user_id = i.response.user_id,
|
|
logDeprecated_warnDeprecated("res.response.user_id", "res.response.userId")),
|
|
i.response.user_token && (s.response.user_token = i.response.user_token,
|
|
logDeprecated_warnDeprecated("res.response.user_token", "res.response.userToken")),
|
|
i.response.session_id && (s.response.session_id = i.response.session_id,
|
|
logDeprecated_warnDeprecated("res.response.session_id", "res.response.sessionId")),
|
|
i.response.images && !i.response.image && (s.response.image = i.response.images,
|
|
logDeprecated_warnDeprecated("res.response.images", "res.response.image"))),
|
|
webp2png(s),
|
|
checkRes(s, a.resT),
|
|
e.extractValue) {
|
|
if (0 === s.result)
|
|
return (0,
|
|
k.b)({
|
|
platformType: "H5",
|
|
bridgeName: "getUserInfoOld",
|
|
timing: Date.now() - r,
|
|
logType: l.tM.Timing
|
|
}),
|
|
s.response;
|
|
throw new M.Z("ERR_RESULT_".concat(s.result),"res.result is not 0")
|
|
}
|
|
return (0,
|
|
k.b)({
|
|
platformType: "H5",
|
|
bridgeName: "getUserInfoOld",
|
|
timing: Date.now() - r,
|
|
logType: l.tM.Timing
|
|
}),
|
|
s
|
|
})
|
|
}
|
|
function getTrackEnv() {
|
|
var e = {
|
|
resT: O().shape({
|
|
isTestEnv: O().bool,
|
|
uploadOneByOne: O().bool,
|
|
sessionId: O().string
|
|
})
|
|
};
|
|
return adapter("getTrackEnv").then(function(r) {
|
|
var i = (0,
|
|
N.Lg)(r);
|
|
return r.session_id && (i.sessionId = r.session_id),
|
|
checkRes(i, e.resT),
|
|
i
|
|
})
|
|
}
|
|
function lowPowerModeEnabled() {
|
|
return adapter("lowPowerModeEnabled", {
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().bool.isRequired
|
|
})
|
|
})
|
|
}
|
|
function requestNotificationPermission(e) {
|
|
return adapter("requestNotificationPermission", e, {
|
|
argsT: O().shape({
|
|
engaingType: O().number.isRequired,
|
|
engaingMessage: O().string
|
|
})
|
|
})
|
|
}
|
|
function saveImage(e) {
|
|
return adapter("saveImage", e, {
|
|
argsT: O().shape({
|
|
url: urlType,
|
|
base64string: O().string,
|
|
type: O().string.isRequired
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
})
|
|
}
|
|
function basicSendClientRequest(e) {
|
|
return adapter("sendClientRequest", e)
|
|
}
|
|
function sendClientRequest(e) {
|
|
console.warn("[OzoneBridge] sendClientRequest was deprecated, please use [Launcher http](https://code.devops.xiaohongshu.com/formula/launcher/tree/master/src/http)");
|
|
var r = {
|
|
argsT: O().shape({
|
|
url: O().string,
|
|
type: O().oneOf(["GET", "POST", "PUT", "DELETE"]).isRequired,
|
|
data: O().oneOfType([O().object]),
|
|
transform: O().oneOfType([O().bool, O().shape({
|
|
separateNumber: O().bool
|
|
}), O().func])
|
|
}),
|
|
resT: O().shape({
|
|
result: L,
|
|
response: O().oneOfType([O().object]),
|
|
status: O().number
|
|
})
|
|
};
|
|
checkArgs(e, r.argsT, "sendClientRequest");
|
|
var i = (0,
|
|
y._)({}, e)
|
|
, a = i.transform;
|
|
return a && "object" === (0,
|
|
x._)(i.data) && (i.data = (0,
|
|
N.cJ)(i.data, a),
|
|
delete i.transform),
|
|
basicSendClientRequest(i).then(function(e) {
|
|
return (checkRes(e, r.resT),
|
|
a) ? (0,
|
|
N.Lg)(e, a) : e
|
|
}).then(function(e) {
|
|
if (-1 === e.result) {
|
|
var r = Error();
|
|
throw r.status = e.status,
|
|
r
|
|
}
|
|
var i = e.response;
|
|
if (void 0 === i.success && 0 !== i.result || !1 === i.success) {
|
|
var a = Error();
|
|
throw a.status = i.result,
|
|
a
|
|
}
|
|
return i.data || i
|
|
})
|
|
}
|
|
function sendClientRequestV2(e) {
|
|
var r = (0,
|
|
w._)((0,
|
|
y._)({}, e), {
|
|
url: completeUrl(e.url)
|
|
});
|
|
return isSupportAdapter("sendClientRequestV2") && s.YF.isAndroid ? adapter("sendClientRequestV2", r) : basicSendClientRequest(r).then(function(e) {
|
|
var r = e.result
|
|
, i = e.status
|
|
, a = e.response;
|
|
if (s.YF.isAndroid) {
|
|
if (-1 === r)
|
|
return -1 !== i ? {
|
|
result: 0,
|
|
response: {
|
|
status: i
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
}
|
|
if (-1 === r)
|
|
return a ? {
|
|
result: 0,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
} : {
|
|
result: r
|
|
};
|
|
return {
|
|
result: r,
|
|
response: {
|
|
status: 200,
|
|
body: a
|
|
}
|
|
}
|
|
})
|
|
}
|
|
function getPrevData() {
|
|
return adapter("getPrevData", {
|
|
resT: O().oneOfType([O().array, O().bool, O().number, O().object, O().string])
|
|
})
|
|
}
|
|
function getItemOld(e) {
|
|
var r = {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().string
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "getItem"),
|
|
adapter("getItem", {
|
|
key: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function getItem(e) {
|
|
return _getItem.apply(this, arguments)
|
|
}
|
|
function _getItem() {
|
|
return (_getItem = (0,
|
|
A._)(function(e) {
|
|
return (0,
|
|
R.Jh)(this, function(r) {
|
|
return [2, getItemOld(e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function setItemOld(e, r) {
|
|
return adapter("setItem", {
|
|
key: e,
|
|
value: r
|
|
}, {
|
|
argsT: O().shape({
|
|
key: O().string.isRequired,
|
|
value: O().string.isRequired
|
|
}),
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
})
|
|
}
|
|
function setItem(e, r) {
|
|
return _setItem.apply(this, arguments)
|
|
}
|
|
function _setItem() {
|
|
return (_setItem = (0,
|
|
A._)(function(e, r) {
|
|
return (0,
|
|
R.Jh)(this, function(i) {
|
|
return [2, setItemOld(e, r)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function removeItemOld(e) {
|
|
var r = {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: L
|
|
})
|
|
};
|
|
return checkArgs(e, r.argsT, "removeItem"),
|
|
adapter("removeItem", {
|
|
key: e
|
|
}, {
|
|
resT: r.resT
|
|
})
|
|
}
|
|
function removeItem(e) {
|
|
return _removeItem.apply(this, arguments)
|
|
}
|
|
function _removeItem() {
|
|
return (_removeItem = (0,
|
|
A._)(function(e) {
|
|
return (0,
|
|
R.Jh)(this, function(r) {
|
|
return [2, removeItemOld(e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function broadcast(e) {
|
|
return adapter("broadcast", e)
|
|
}
|
|
function broadcastNative(e) {
|
|
return adapter("broadcastNative", e, {
|
|
argsT: O().shape({
|
|
key: O().string.isRequired,
|
|
data: O().string.isRequired
|
|
})
|
|
})
|
|
}
|
|
function getMessageStatusIOS() {
|
|
return adapter("getMessageStatus", {
|
|
resT: O().shape({
|
|
result: L,
|
|
status: O().oneOf([0, 1]).isRequired
|
|
})
|
|
})
|
|
}
|
|
function getThirdAuth(e) {
|
|
return adapter("getThirdAuth", e, {
|
|
argsT: O().oneOf(["weixin"]).isRequired,
|
|
resT: O().shape({
|
|
result: L,
|
|
value: O().oneOfType([O().object])
|
|
})
|
|
})
|
|
}
|
|
function getCurrentGeolocation() {
|
|
return adapter("getCurrentGeolocation")
|
|
}
|
|
function checkAppPermission(e) {
|
|
var r = {
|
|
argsT: O().string.isRequired,
|
|
resT: O().shape({
|
|
result: O().oneOf([0, -1]).isRequired,
|
|
state: O().oneOf(["denied", "granted", "undeterminated"])
|
|
})
|
|
}
|
|
, i = e.type;
|
|
return adapter("checkAppPermission", void 0 === i ? "" : i, r)
|
|
}
|
|
function areNotificationsEnabledAndroid() {
|
|
return adapter("areNotificationsEnabled", {
|
|
resT: O().shape({
|
|
result: O().oneOf([0, -1]).isRequired,
|
|
state: O().oneOf(["denied", "granted"])
|
|
})
|
|
})
|
|
}
|
|
function getFileUrlFromLocalServerIOS(e) {
|
|
return _getFileUrlFromLocalServerIOS.apply(this, arguments)
|
|
}
|
|
function _getFileUrlFromLocalServerIOS() {
|
|
return (_getFileUrlFromLocalServerIOS = (0,
|
|
A._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
R.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, adapter("getFileUrlFromLocalServer", e, {
|
|
argsT: O().shape({
|
|
url: urlType.isRequired
|
|
}),
|
|
resT: O().shape({
|
|
result: O().oneOf([0, -1]).isRequired,
|
|
value: urlType,
|
|
message: O().string
|
|
})
|
|
})];
|
|
case 1:
|
|
if (0 === (r = i.sent()).result)
|
|
return [2, r.value];
|
|
throw new M.Z("ERR_RESULT_".concat(r.result),r.message)
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function toggleLocalDns(e) {
|
|
return _toggleLocalDns.apply(this, arguments)
|
|
}
|
|
function _toggleLocalDns() {
|
|
return (_toggleLocalDns = (0,
|
|
A._)(function(e) {
|
|
var r;
|
|
return (0,
|
|
R.Jh)(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return [4, adapter("toggleLocalDns", {
|
|
enable: e
|
|
})];
|
|
case 1:
|
|
if (0 === (r = i.sent()).result)
|
|
return [2];
|
|
throw new M.Z("ERR_RESULT_".concat(r.result),r.message)
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function registerTrickleConnectTopic(e) {
|
|
return _registerTrickleConnectTopic.apply(this, arguments)
|
|
}
|
|
function _registerTrickleConnectTopic() {
|
|
return (_registerTrickleConnectTopic = (0,
|
|
A._)(function(e) {
|
|
return (0,
|
|
R.Jh)(this, function(r) {
|
|
return [2, adapter("registerTrickleConnectTopic", e)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
function getABFlag(e) {
|
|
return getUserInfo({
|
|
extractValue: !0
|
|
}).then(function(r) {
|
|
var i = e.key
|
|
, a = (r || {}).flags || {}
|
|
, u = a.fulishe
|
|
, c = a.shequ
|
|
, l = a.ios
|
|
, d = a.android
|
|
, p = s.YF.isIOS ? l : d
|
|
, f = null;
|
|
return (null == c ? void 0 : c[i]) ? f = c[i] : (null == u ? void 0 : u[i]) ? f = u[i] : (null == p ? void 0 : p[i]) && (f = p[i]),
|
|
{
|
|
result: 0,
|
|
message: "success",
|
|
value: f
|
|
}
|
|
})
|
|
}
|
|
i(15066);
|
|
var F = {
|
|
toast: showToast,
|
|
showToast: showToast,
|
|
showalertV2: showAlert,
|
|
showAlert: showAlert,
|
|
removeVCFromStack: removeVCFromStackIOS,
|
|
removeVCFromStackIOS: removeVCFromStackIOS,
|
|
showNavigationRightBarButtonItemV2: showNavigationRightBarButtonItem,
|
|
showNavigationRightBarButtonItem: showNavigationRightBarButtonItem,
|
|
shareContentV2: shareContent,
|
|
shareContent: shareContent,
|
|
supportApplePay: supportApplePayIOS,
|
|
supportApplePayIOS: supportApplePayIOS,
|
|
applePayClient: applePayClientIOS,
|
|
applePayClientIOS: applePayClientIOS,
|
|
replaceSelfWithLink: replaceSelfWithLink,
|
|
replaceSelfWithLinkV2: replaceSelfWithLinkV2Android,
|
|
replaceSelfWithLinkV2Android: replaceSelfWithLinkV2Android,
|
|
replaceRouteWith: replaceRouteWith,
|
|
showActionSheet: showActionSheet,
|
|
setNavigationHidden: setNavigationHidden,
|
|
setStatusBarHiddenIOS: setStatusBarHiddenIOS,
|
|
setStatusBarStyleIOS: setStatusBarTextColor,
|
|
setStatusBarTextColor: setStatusBarTextColor,
|
|
alwaysBounceIOS: alwaysBounceIOS,
|
|
setShareInfo: ui_setShareInfo,
|
|
showShareMenu: showShareMenu,
|
|
pay: pay,
|
|
alipayClient: alipayClient,
|
|
openURLByWechat: openURLByWechat,
|
|
wechatPayClient: wechatPayClient,
|
|
openLink: openLinkAndroid,
|
|
closeWindow: closeWindow,
|
|
openGiftPanel: openGiftPanel,
|
|
setPasteBoard: setPasteBoard,
|
|
showTrack: showTrack,
|
|
showApmTrack: showApmTrack,
|
|
webtrack: webtrack,
|
|
emitTrack: emitTrack,
|
|
emitApmTrack: emitApmTrack,
|
|
openMapWithLocation: openMapWithLocation,
|
|
confirmAntiSpam: confirmAntiSpam,
|
|
addComment: addComment,
|
|
openXhsSystemSettings: openXhsSystemSettings,
|
|
openRechargeCoinPanel: openRechargeCoinPanel,
|
|
openFansPanel: openFansPanel,
|
|
getMessageStatusIOS: getMessageStatusIOS,
|
|
getMessageStatus: getMessageStatusIOS,
|
|
areNotificationsEnabledAndroid: areNotificationsEnabledAndroid,
|
|
areNotificationsEnabled: areNotificationsEnabledAndroid,
|
|
getFileUrlFromLocalServerIOS: getFileUrlFromLocalServerIOS,
|
|
getFileUrlFromLocalServer: getFileUrlFromLocalServerIOS,
|
|
checkLoginWithAction: checkLoginWithAction,
|
|
logout: logout,
|
|
isAppInstalled: isAppInstalled,
|
|
getAppInfo: getAppInfo,
|
|
getDeviceInfo: getDeviceInfoOld,
|
|
getNetworkType: getNetworkTypeLegacy,
|
|
getUserInfo: getUserInfo,
|
|
getTrackEnv: getTrackEnv,
|
|
lowPowerModeEnabled: lowPowerModeEnabled,
|
|
requestNotificationPermission: requestNotificationPermission,
|
|
saveImage: saveImage,
|
|
basicSendClientRequest: basicSendClientRequest,
|
|
sendClientRequest: sendClientRequest,
|
|
sendClientRequestV2: sendClientRequestV2,
|
|
getPrevData: getPrevData,
|
|
getItem: getItem,
|
|
setItem: setItem,
|
|
removeItem: removeItem,
|
|
broadcast: broadcast,
|
|
broadcastNative: broadcastNative,
|
|
getThirdAuth: getThirdAuth,
|
|
getCurrentGeolocation: getCurrentGeolocation,
|
|
checkAppPermission: checkAppPermission,
|
|
toggleLocalDns: toggleLocalDns,
|
|
registerTrickleConnectTopic: registerTrickleConnectTopic,
|
|
getABFlag: getABFlag
|
|
}
|
|
, V = {
|
|
xhs: {},
|
|
top: {}
|
|
}
|
|
, H = {
|
|
xhs: {},
|
|
top: {}
|
|
};
|
|
function transformBridgeResultForTest(e) {
|
|
try {
|
|
(null == e ? void 0 : e.value) !== void 0 && (null == e ? void 0 : e.value) === null && delete e.value
|
|
} catch (e) {}
|
|
return e
|
|
}
|
|
function genBridgeQueue(e, r, i, a) {
|
|
var s, u, c, d, p, f, v = a.type, h = a.app, m = a.enableValidate, _ = "h5" === v ? H : V, y = (null == _ ? void 0 : null === (c = _.xhs) || void 0 === c ? void 0 : null === (u = c[e]) || void 0 === u ? void 0 : null === (s = u.request) || void 0 === s ? void 0 : s.queue) || [], w = (null == _ ? void 0 : null === (f = _.xhs) || void 0 === f ? void 0 : null === (p = f[e]) || void 0 === p ? void 0 : null === (d = p.result) || void 0 === d ? void 0 : d.queue) || [], E = generateKey(), S = Date.now(), T = !0, b = (0,
|
|
g._)(y).concat([i, {
|
|
fulfilled: function(e) {
|
|
return e
|
|
},
|
|
rejected: function(i) {
|
|
return new Promise(function(a, s) {
|
|
if ("xhs" === h && -1e4 === i.code) {
|
|
T = !1;
|
|
var u = F[e];
|
|
if (u)
|
|
return u(r).then(function(r) {
|
|
a({
|
|
result: (null == r ? void 0 : r.result) || 0,
|
|
message: "".concat(e, " 新通道不支持,降级为老通道发送"),
|
|
value: (null == r ? void 0 : r.value) !== void 0 ? r.value : r
|
|
})
|
|
}).catch(function(e) {
|
|
s(e)
|
|
})
|
|
}
|
|
return s(i)
|
|
}
|
|
)
|
|
}
|
|
}], (0,
|
|
g._)(w));
|
|
(void 0 === m || m) && b.push({
|
|
fulfilled: function(r) {
|
|
return T && (0,
|
|
P.o)(e, l.XQ.Method, transformBridgeResultForTest(r), h),
|
|
r
|
|
},
|
|
rejected: function(e) {
|
|
throw e
|
|
}
|
|
}),
|
|
(0,
|
|
C.eD)() && b.push({
|
|
fulfilled: function(r) {
|
|
var i = Date.now() - S;
|
|
return (0,
|
|
C.pd)({
|
|
name: e,
|
|
callbackId: E,
|
|
time: i,
|
|
res: r
|
|
}),
|
|
r
|
|
},
|
|
rejected: function(r) {
|
|
var i = Date.now() - S;
|
|
try {
|
|
var a = JSON.parse(r.message).errorMessage;
|
|
(0,
|
|
C.Us)({
|
|
name: e,
|
|
callbackId: E,
|
|
time: i,
|
|
err: JSON.stringify(a, null, 2)
|
|
})
|
|
} catch (a) {
|
|
(0,
|
|
C.UZ)({
|
|
name: e,
|
|
callbackId: E,
|
|
time: i,
|
|
err: r
|
|
})
|
|
}
|
|
throw r
|
|
}
|
|
});
|
|
var k = {
|
|
method: e,
|
|
args: r
|
|
}
|
|
, A = Promise.resolve(r)
|
|
, wrapFulfilled = function(e) {
|
|
return function(r) {
|
|
return e ? e(r, k) : r
|
|
}
|
|
}
|
|
, wrapRejected = function(e) {
|
|
return function(r) {
|
|
if (e)
|
|
return e(r, null, k);
|
|
throw r
|
|
}
|
|
};
|
|
for ((0,
|
|
C.mJ)({
|
|
name: e,
|
|
callbackId: E
|
|
}); b.length; ) {
|
|
var R = b.shift();
|
|
A = A.then(wrapFulfilled(null == R ? void 0 : R.fulfilled), wrapRejected(null == R ? void 0 : R.rejected))
|
|
}
|
|
return A
|
|
}
|
|
function isSupportInvoke() {
|
|
var e, r, i, a = s.YF.isIOS ? null === (r = window) || void 0 === r ? void 0 : null === (e = r.webkit) || void 0 === e ? void 0 : e.messageHandlers : null === (i = window) || void 0 === i ? void 0 : i.XHSBridge;
|
|
return a && !!a.invoke
|
|
}
|
|
function invoke(e, r) {
|
|
var i = Date.now();
|
|
return new Promise(function(a, u) {
|
|
try {
|
|
if (!isSupportInvoke())
|
|
throw (0,
|
|
C.f1)(e),
|
|
new _(l.nJ.NotSupport,"not support invoke");
|
|
var c = addCallback(e, function(r) {
|
|
var s = Date.now() - i;
|
|
try {
|
|
var c = transformRes(e, r);
|
|
(0,
|
|
k.b)({
|
|
platformType: "H5",
|
|
bridgeName: e,
|
|
timing: s,
|
|
logType: l.tM.Timing
|
|
}),
|
|
a(c)
|
|
} catch (r) {
|
|
(0,
|
|
k.b)({
|
|
platformType: "H5",
|
|
bridgeName: e,
|
|
logType: l.tM.Error,
|
|
errorInfo: (null == r ? void 0 : r.message) || "".concat(e, " call error")
|
|
}),
|
|
u(r)
|
|
}
|
|
})
|
|
, d = {
|
|
method: e,
|
|
callback: c,
|
|
args: r
|
|
};
|
|
try {
|
|
if (s.YF.isIOS) {
|
|
var p = s.YF.isSpark || s.YF.isUniik || s.YF.isSnowPeak || s.YF.isInternation || s.YF.isOdyssey || s.YF.isCatalog ? d : JSON.stringify(d);
|
|
window.webkit.messageHandlers.invoke.postMessage(p)
|
|
} else
|
|
window.XHSBridge.invoke(JSON.stringify(d))
|
|
} catch (e) {
|
|
throw new _(l.nJ.Native,null == e ? void 0 : e.message)
|
|
}
|
|
} catch (r) {
|
|
r instanceof _ ? u(r) : u(new _(l.nJ.UnKnow,(null == r ? void 0 : r.message) || "[ozone-bridge] [".concat(e, "] call error")))
|
|
}
|
|
}
|
|
)
|
|
}
|
|
function invokeInterceptor(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "xhs"
|
|
, a = !(arguments.length > 3) || void 0 === arguments[3] || arguments[3];
|
|
return arguments.length > 4 && arguments[4],
|
|
genBridgeQueue(e, r, {
|
|
fulfilled: function(r) {
|
|
return invoke(e, transformArgs(e, r))
|
|
},
|
|
rejected: void 0
|
|
}, {
|
|
type: "h5",
|
|
app: i,
|
|
enableValidate: a
|
|
})
|
|
}
|
|
function invokeInterceptorWithoutValidate(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "xhs";
|
|
return invokeInterceptor(e, r, i, !1)
|
|
}
|
|
function invokeSync(e, r) {
|
|
throw new _(l.nJ.NotSupport,"not support invokeSync")
|
|
}
|
|
},
|
|
3511: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
Z: function() {
|
|
return p
|
|
}
|
|
});
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(51606)
|
|
, c = i(27292)
|
|
, l = i(75649)
|
|
, d = i(30961);
|
|
i(41593);
|
|
var p = function(e) {
|
|
function BridgeError(e) {
|
|
for (var r, i = arguments.length, c = Array(i > 1 ? i - 1 : 0), d = 1; d < i; d++)
|
|
c[d - 1] = arguments[d];
|
|
return (0,
|
|
s._)(this, BridgeError),
|
|
r = (0,
|
|
a._)(this, BridgeError, (0,
|
|
l._)(c)),
|
|
(0,
|
|
u._)(r, "code", void 0),
|
|
r.name = "BridgeError",
|
|
r.code = e,
|
|
r
|
|
}
|
|
return (0,
|
|
c._)(BridgeError, e),
|
|
BridgeError
|
|
}((0,
|
|
d._)(Error))
|
|
},
|
|
27256: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
b: function() {
|
|
return addMeasure
|
|
}
|
|
});
|
|
var a = i(70879);
|
|
i(42876),
|
|
i(33933),
|
|
i(86651);
|
|
var s = i(50837);
|
|
function shouldLog() {
|
|
return .01 > Math.random()
|
|
}
|
|
var u = ["getABFlag", "addApmReferV2"];
|
|
function addMeasure(e) {
|
|
if (u.includes(e.bridgeName))
|
|
return;
|
|
var r = window.eaglet;
|
|
if (!!r) {
|
|
if (e.logType !== s.tM.Timing || shouldLog())
|
|
try {
|
|
r.push({
|
|
measurement_name: "bridgeMonitor",
|
|
measurement_data: (0,
|
|
a._)({
|
|
bridgeName: e.bridgeName,
|
|
bridgeLogType: e.logType,
|
|
bridgePlatform: e.platformType
|
|
}, e.logType === s.tM.Error ? {
|
|
bridgeError: e.errorInfo
|
|
} : {
|
|
bridgeTiming: e.timing
|
|
})
|
|
}, "ApmXrayTracker").catch(function() {})
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
},
|
|
70306: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
UZ: function() {
|
|
return bridgeError
|
|
},
|
|
Us: function() {
|
|
return bridgeValidateError
|
|
},
|
|
Wb: function() {
|
|
return eventSuccess
|
|
},
|
|
eD: function() {
|
|
return hasBridgeConsole
|
|
},
|
|
f1: function() {
|
|
return bridgeNotSupport
|
|
},
|
|
mJ: function() {
|
|
return bridgeStart
|
|
},
|
|
pd: function() {
|
|
return bridgeSuccess
|
|
}
|
|
}),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(87989);
|
|
var a = ["log", "error", "info", "warn", "dir", "time", "timeLog", "timeEnd", "clear", "table", "assert", "count", "countReset", "debug", "group", "groupCollapsed", "groupEnd"]
|
|
, noop = function noop() {};
|
|
function hasBridgeConsole() {
|
|
return !!window.bridgeConsole
|
|
}
|
|
function bridgeStart(e) {
|
|
e.name,
|
|
e.callbackId;
|
|
var r = e.type
|
|
}
|
|
function bridgeSuccess(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.res
|
|
}
|
|
function eventSuccess(e) {
|
|
e.name,
|
|
e.res
|
|
}
|
|
function bridgeValidateError(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.err
|
|
}
|
|
function bridgeError(e) {
|
|
e.name,
|
|
e.callbackId,
|
|
e.time,
|
|
e.err
|
|
}
|
|
function bridgeNotSupport(e) {}
|
|
(function genBridgeConsole() {
|
|
if (hasBridgeConsole())
|
|
return window.bridgeConsole.log("Bridge 面板用于输出 ozone-schema 与 ozone-bridge 调用日志, 有建议或功能不足请联系 月初(yuechu@xiaohongshu.com)"),
|
|
window.bridgeConsole;
|
|
var e = {};
|
|
return a.forEach(function(r) {
|
|
e[r] = noop
|
|
})
|
|
}
|
|
)()
|
|
},
|
|
70076: function(e, r, i) {
|
|
"use strict";
|
|
function validateReq(e, r, i) {
|
|
arguments.length > 3 && void 0 !== arguments[3] && arguments[3]
|
|
}
|
|
function validateRes(e, r, i) {
|
|
arguments.length > 3 && void 0 !== arguments[3] && arguments[3]
|
|
}
|
|
i.d(r, {
|
|
T: function() {
|
|
return validateReq
|
|
},
|
|
o: function() {
|
|
return validateRes
|
|
}
|
|
})
|
|
},
|
|
50837: function(e, r, i) {
|
|
"use strict";
|
|
i.d(r, {
|
|
XQ: function() {
|
|
return l
|
|
},
|
|
nJ: function() {
|
|
return c
|
|
},
|
|
tM: function() {
|
|
return d
|
|
}
|
|
});
|
|
var a, s, u, c = ((a = {})[a.NotSupport = 16e3] = "NotSupport",
|
|
a[a.Native = 16001] = "Native",
|
|
a[a.Validate = 17e3] = "Validate",
|
|
a[a.UnKnow = 18e3] = "UnKnow",
|
|
a);
|
|
var l = ((s = {}).Method = "method",
|
|
s.Event = "event",
|
|
s);
|
|
var d = ((u = {}).Error = "error",
|
|
u.Timing = "timing",
|
|
u.Fallback = "fallback",
|
|
u)
|
|
},
|
|
97493: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(35329)
|
|
, u = i(46490)
|
|
, c = i(90251)
|
|
, l = i(27292)
|
|
, d = i(36102);
|
|
i(59976),
|
|
i(74093),
|
|
i(20768),
|
|
i(41648),
|
|
i(59339),
|
|
i(47444),
|
|
i(34757),
|
|
i(85908),
|
|
i(39995),
|
|
i(22943),
|
|
i(54767),
|
|
i(55820),
|
|
i(93225),
|
|
i(33708),
|
|
i(64322),
|
|
i(47771),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(34333),
|
|
i(97553),
|
|
i(75973),
|
|
i(86651),
|
|
i(87989),
|
|
i(36277),
|
|
i(34885),
|
|
i(29273),
|
|
i(42876),
|
|
i(33933),
|
|
i(23390),
|
|
i(64817),
|
|
i(29650),
|
|
i(69038),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421),
|
|
i(1154),
|
|
i(80013);
|
|
var p = this && this.__createBinding || (Object.create ? function(e, r, i, a) {
|
|
void 0 === a && (a = i);
|
|
var s = Object.getOwnPropertyDescriptor(r, i);
|
|
(!s || ("get"in s ? !r.__esModule : s.writable || s.configurable)) && (s = {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return r[i]
|
|
}
|
|
}),
|
|
Object.defineProperty(e, a, s)
|
|
}
|
|
: function(e, r, i, a) {
|
|
void 0 === a && (a = i),
|
|
e[a] = r[i]
|
|
}
|
|
)
|
|
, f = this && this.__setModuleDefault || (Object.create ? function(e, r) {
|
|
Object.defineProperty(e, "default", {
|
|
enumerable: !0,
|
|
value: r
|
|
})
|
|
}
|
|
: function(e, r) {
|
|
e.default = r
|
|
}
|
|
)
|
|
, v = this && this.__importStar || function(e) {
|
|
if (e && e.__esModule)
|
|
return e;
|
|
var r = {};
|
|
if (null != e)
|
|
for (var i in e)
|
|
"default" !== i && Object.prototype.hasOwnProperty.call(e, i) && p(r, e, i);
|
|
return f(r, e),
|
|
r
|
|
}
|
|
, g = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
});
|
|
var h = g(i(88960))
|
|
, m = i(47324)
|
|
, _ = i(10727)
|
|
, y = i(7361)
|
|
, w = i(15900)
|
|
, E = g(i(36229))
|
|
, S = i(90316)
|
|
, T = i(74794)
|
|
, b = i(1266)
|
|
, k = i(23533)
|
|
, C = i(79066)
|
|
, P = i(87853)
|
|
, A = i(61700)
|
|
, R = i(7449)
|
|
, I = i(87014)
|
|
, O = i(21329)
|
|
, N = i(41172)
|
|
, L = (0,
|
|
h.default)("longlink:sdk")
|
|
, M = function(e) {
|
|
function LonglinkSdk(e) {
|
|
u._(this, LonglinkSdk),
|
|
(r = s._(this, LonglinkSdk))._authCtx = void 0,
|
|
r._bindCtx = void 0,
|
|
r._pushTopic = new Map,
|
|
r.initPromise = null,
|
|
r.cachedDevice = null,
|
|
r._urls = [],
|
|
r.__events__ = [],
|
|
r.isFetchingConfig = !1,
|
|
r.getEventIndex = function(e) {
|
|
return r.__events__.findIndex(function(r) {
|
|
return r.bizName === e.bizName && r.id === e.id
|
|
})
|
|
}
|
|
,
|
|
r.config = (0,
|
|
T.merge)(y.defaultConfig, e),
|
|
r.msgManager = k.MsgManager.create(r),
|
|
r._urls = [];
|
|
var r, a = i(51409);
|
|
return r.sdkVersion = a.version,
|
|
r.initPromise = r.init(),
|
|
r
|
|
}
|
|
return l._(LonglinkSdk, e),
|
|
c._(LonglinkSdk, [{
|
|
key: "env",
|
|
get: function get() {
|
|
return this.config.env
|
|
}
|
|
}, {
|
|
key: "maxComboNum",
|
|
get: function get() {
|
|
return this.config.maxComboNum || 6
|
|
}
|
|
}, {
|
|
key: "trackerLog",
|
|
get: function get() {
|
|
return this.config.trackerLog || !1
|
|
}
|
|
}, {
|
|
key: "authCtx",
|
|
get: function get() {
|
|
return this._authCtx
|
|
},
|
|
set: function set(e) {
|
|
this._authCtx = e
|
|
}
|
|
}, {
|
|
key: "bindCtx",
|
|
get: function get() {
|
|
return this._bindCtx
|
|
},
|
|
set: function set(e) {
|
|
this._bindCtx = e
|
|
}
|
|
}, {
|
|
key: "topics",
|
|
get: function get() {
|
|
return Object.keys(this._pushTopic)
|
|
}
|
|
}, {
|
|
key: "readyState",
|
|
get: function get() {
|
|
return this.transport && this.transport.readyState || _.ELongLinkState.INITIAL
|
|
}
|
|
}, {
|
|
key: "deviceInfo",
|
|
get: function get() {
|
|
return this.cachedDevice
|
|
},
|
|
set: function set(e) {
|
|
this.cachedDevice = e
|
|
}
|
|
}, {
|
|
key: "longlinkConfig",
|
|
get: function get() {
|
|
return this.config
|
|
}
|
|
}, {
|
|
key: "cacheUrls",
|
|
value: function cacheUrls() {
|
|
var e = this;
|
|
return a._(function() {
|
|
var r;
|
|
return d._(this, function(r) {
|
|
switch (r.label) {
|
|
case 0:
|
|
return r.trys.push([0, 2, , 3]),
|
|
[4, (0,
|
|
R.fetchLonglinkConfig)(e.config)];
|
|
case 1:
|
|
return [2, r.sent()];
|
|
case 2:
|
|
return r.sent(),
|
|
[2, {
|
|
longlinkHost: [],
|
|
logLevel: 1
|
|
}];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "init",
|
|
value: function init() {
|
|
var e = this;
|
|
return a._(function() {
|
|
var r, i, s, u, c, l, p, f, v, g;
|
|
return d._(this, function(v) {
|
|
switch (v.label) {
|
|
case 0:
|
|
if (v.trys.push([0, 8, , 9]),
|
|
e.config.device)
|
|
return [3, 2];
|
|
return s = e.config,
|
|
[4, (0,
|
|
P.getDefaultDeviceInfo)(e)];
|
|
case 1:
|
|
s.device = v.sent(),
|
|
v.label = 2;
|
|
case 2:
|
|
if (e.tracker = new A.NewApm(e),
|
|
e.isCustomSetRoute = !!e.config.url,
|
|
!(!e.isCustomSetRoute && e.config.protocol === b.EProtocols.Websocket))
|
|
return [3, 4];
|
|
return [4, e.cacheUrls()];
|
|
case 3:
|
|
(null == (c = v.sent()) ? void 0 : null === (u = c.longlinkHost) || void 0 === u ? void 0 : u.length) && (e._urls = (null == c ? void 0 : c.longlinkHost) || [],
|
|
e.config.url = e._urls[0]),
|
|
v.label = 4;
|
|
case 4:
|
|
return [4, S.Store.create(e, {
|
|
fallbackRoute: e.config.url,
|
|
env: e.config.env,
|
|
customStorage: null !== (l = null === (r = e.config) || void 0 === r ? void 0 : r.customStorage) && void 0 !== l ? l : null
|
|
})];
|
|
case 5:
|
|
if (e.store = v.sent(),
|
|
e.isCustomSetRoute)
|
|
return [3, 7];
|
|
return p = e.config,
|
|
[4, e.store.get()];
|
|
case 6:
|
|
p.url = v.sent().route,
|
|
e.on(_.EVENTS.CONNECTING, a._(function() {
|
|
var r;
|
|
return d._(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
return r = e.config,
|
|
[4, e.store.get(!0)];
|
|
case 1:
|
|
return r.url = i.sent().route,
|
|
[2]
|
|
}
|
|
})
|
|
})),
|
|
f = e,
|
|
e.store.on(S.EStoreEvent.ROUTE_EXPIRE, a._(function() {
|
|
var r, i, a, s, u, c;
|
|
return d._(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if (e.isFetchingConfig)
|
|
return [2];
|
|
c.label = 1;
|
|
case 1:
|
|
return c.trys.push([1, 3, 4, 5]),
|
|
e.isFetchingConfig = !0,
|
|
[4, (0,
|
|
I.pullLonglinkRoute)(f.config, null !== (i = null == f ? void 0 : null === (r = f.authCtx) || void 0 === r ? void 0 : r.uid) && void 0 !== i ? i : "".concat(Math.floor(10 * Math.random())))];
|
|
case 2:
|
|
return s = (a = c.sent()).longlinkHost,
|
|
u = a.expires,
|
|
e.store.set({
|
|
routeExipire: u,
|
|
route: s[0]
|
|
}),
|
|
[3, 5];
|
|
case 3:
|
|
return c.sent(),
|
|
[3, 5];
|
|
case 4:
|
|
return e.isFetchingConfig = !1,
|
|
[7];
|
|
case 5:
|
|
return [2]
|
|
}
|
|
})
|
|
})),
|
|
v.label = 7;
|
|
case 7:
|
|
return [2, {
|
|
longlinkHost: (null === (i = e.config) || void 0 === i ? void 0 : i.url) || "bridge"
|
|
}];
|
|
case 8:
|
|
return v.sent(),
|
|
[2, {
|
|
longlinkHost: (null === (g = e.config) || void 0 === g ? void 0 : g.url) || "bridge"
|
|
}];
|
|
case 9:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "presetAuthCtx",
|
|
value: function presetAuthCtx(e) {
|
|
this.authCtx = e
|
|
}
|
|
}, {
|
|
key: "checkState",
|
|
value: function checkState() {
|
|
return this.config.protocol === b.EProtocols.Bridge ? this.transport.checkState() : this.readyState
|
|
}
|
|
}, {
|
|
key: "checkHealthy",
|
|
value: function checkHealthy() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
|
|
reason: "checkHealthy",
|
|
respondTime: 3e3
|
|
};
|
|
return new Promise(function(i, a) {
|
|
e.transport.sendPingPacket({
|
|
resolve: i,
|
|
reject: a,
|
|
opts: r,
|
|
clearCb: function(r, i) {
|
|
if (i) {
|
|
var a;
|
|
null == e || null === (a = e.transport) || void 0 === a || a.cleanPingTimer()
|
|
}
|
|
}
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "emptyAuthCtx",
|
|
value: function emptyAuthCtx() {
|
|
this.authCtx = void 0
|
|
}
|
|
}, {
|
|
key: "emptyBindCtx",
|
|
value: function emptyBindCtx() {
|
|
this.bindCtx = void 0
|
|
}
|
|
}, {
|
|
key: "nextIp",
|
|
value: function nextIp(e) {
|
|
var r = this;
|
|
return a._(function() {
|
|
var i;
|
|
return d._(this, function(a) {
|
|
switch (a.label) {
|
|
case 0:
|
|
if (!((i = r._urls.indexOf(e)) > -1))
|
|
return [3, 2];
|
|
return [4, r.cacheUrls()];
|
|
case 1:
|
|
if (a.sent().longlinkHost.length && (r._urls.splice(i, 1),
|
|
r._urls.length > 0))
|
|
return [2, r._urls[0]];
|
|
a.label = 2;
|
|
case 2:
|
|
return [2, r._urls[0]]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "trackerCtx",
|
|
value: function trackerCtx() {
|
|
var e, r = this.config, i = this.config.device, a = {
|
|
trackerEnable: r.trackerEnable
|
|
};
|
|
return (0,
|
|
T.merge)(a, {
|
|
context_artifactName: "redlonglink",
|
|
context_artifactVersion: this.sdkVersion,
|
|
context_package: r.app,
|
|
context_appVersion: r.version,
|
|
context_nameTracker: "wapT",
|
|
context_platform: i.platform,
|
|
context_osVersion: i.osVersion,
|
|
context_deviceModel: i.deviceName,
|
|
context_deviceId: i.deviceId,
|
|
context_networkType: r.protocol,
|
|
context_matchedPath: r.domain,
|
|
context_route: r.url,
|
|
context_userAgent: i.userAgent,
|
|
measurement_name: "imlonglink",
|
|
context_networkQuality: -1,
|
|
context_userId: (null === this || void 0 === this ? void 0 : null === (e = this.authCtx) || void 0 === e ? void 0 : e.uid) || this.config.uid || "-"
|
|
})
|
|
}
|
|
}, {
|
|
key: "connect",
|
|
value: function connect() {
|
|
var e = this;
|
|
return a._(function() {
|
|
var r, a;
|
|
return d._(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
return [4, e.initPromise || e.init()];
|
|
case 1:
|
|
if (s.sent(),
|
|
(a = e.config.protocol) !== b.EProtocols.Websocket)
|
|
return [3, 2];
|
|
return r = new E.default(e),
|
|
[3, 4];
|
|
case 2:
|
|
if (a !== b.EProtocols.Bridge)
|
|
return [3, 4];
|
|
return [4, Promise.resolve().then(function() {
|
|
return v(i(88049))
|
|
})];
|
|
case 3:
|
|
r = s.sent().default.create(e),
|
|
s.label = 4;
|
|
case 4:
|
|
return e.mountTransportEvents(r),
|
|
e.on(_.EVENTS.AUTH, e.reRegisterEventsForServer.bind(e)),
|
|
[2, r.retryConnect(_.EConnectType.CONNECT)]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "close",
|
|
value: function close() {
|
|
var e = this
|
|
, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : N.CLOSE_TYPE.User.reason;
|
|
this.transport && this.transport.close((0,
|
|
N.createClose)({
|
|
code: N.CLOSE_TYPE.User.code,
|
|
reason: r
|
|
})).then(function() {
|
|
e.store.removeAllListeners(),
|
|
e.transport.removeAllListeners(),
|
|
e.removeAllListeners()
|
|
})
|
|
}
|
|
}, {
|
|
key: "mockAbnormalClose",
|
|
value: function mockAbnormalClose() {
|
|
this.transport && this.transport.mockAbnormalClose()
|
|
}
|
|
}, {
|
|
key: "reconnect",
|
|
value: function reconnect() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "biz reconnect"
|
|
, r = this;
|
|
return a._(function() {
|
|
return d._(this, function(i) {
|
|
return [2, r.transport.reconnectByBiz(e)]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "_canAuth",
|
|
value: function _canAuth() {
|
|
var e = [_.ELongLinkState.CONNECT];
|
|
if (!e.includes(this.readyState))
|
|
throw C.LonglinkError.create(C.ERR_TYPE.TransportErrorStatus, "current state: ".concat(this.readyState, ", only can auth in state: ").concat(e.join("|"), " "))
|
|
}
|
|
}, {
|
|
key: "_canSendPacket",
|
|
value: function _canSendPacket() {
|
|
var e = [_.ELongLinkState.CONNECT, _.ELongLinkState.AUTHING, _.ELongLinkState.AUTH];
|
|
if (!e.includes(this.readyState))
|
|
throw C.LonglinkError.create(C.ERR_TYPE.TransportErrorStatus, "current state: ".concat(this.readyState, ", SendPacket only can send message in state: ").concat(e.join("|"), " "))
|
|
}
|
|
}, {
|
|
key: "_canSendMessage",
|
|
value: function _canSendMessage() {
|
|
var e = [_.ELongLinkState.AUTH, _.ELongLinkState.BIND];
|
|
if (!e.includes(this.readyState))
|
|
throw C.LonglinkError.create(C.ERR_TYPE.TransportErrorStatus, "only can send in states: ".concat(e.join("|"), ", current state: ").concat(this.readyState))
|
|
}
|
|
}, {
|
|
key: "login",
|
|
value: function login(e) {
|
|
var r = this;
|
|
return a._(function() {
|
|
var i, a, s;
|
|
return d._(this, function(u) {
|
|
switch (u.label) {
|
|
case 0:
|
|
return r.presetAuthCtx(e),
|
|
L("[LOG]preset login authCx", e),
|
|
[4, r.connect()];
|
|
case 1:
|
|
if (a = (i = u.sent()).code,
|
|
s = i.msg,
|
|
a === _.EStatusCodes.SUCCESS)
|
|
return [2, r.auth(e)];
|
|
return [2, (0,
|
|
O.createFailed)(a, s)]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "auth",
|
|
value: function auth(e) {
|
|
var r = this;
|
|
return a._(function() {
|
|
var i, a, s, u, c;
|
|
return d._(this, function(l) {
|
|
return (r._canAuth(),
|
|
r.config.protocol === b.EProtocols.Bridge) ? [2, r.transport.retryBind(e)] : (a = (i = r.config || {}).device,
|
|
s = i.domain,
|
|
u = i.uid,
|
|
c = (0,
|
|
T.merge)({
|
|
uid: u,
|
|
device: a,
|
|
domain: s,
|
|
extra: {
|
|
appName: r.config.app,
|
|
appVersion: r.config.version,
|
|
"User-Agent": (0,
|
|
P.getUA)()
|
|
}
|
|
}, e || {}),
|
|
[2, r.transport.retryAuth(c, !1)])
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "subPushTopic",
|
|
value: function subPushTopic(e, r) {
|
|
Reflect.set(this._pushTopic, e, r)
|
|
}
|
|
}, {
|
|
key: "removePushTopic",
|
|
value: function removePushTopic(e) {
|
|
Reflect.deleteProperty(this._pushTopic, e)
|
|
}
|
|
}, {
|
|
key: "getTopicCallback",
|
|
value: function getTopicCallback(e) {
|
|
return Reflect.get(this._pushTopic, e)
|
|
}
|
|
}, {
|
|
key: "sendPacket",
|
|
value: function sendPacket(e, r) {
|
|
var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
|
|
this._canSendPacket();
|
|
var a = this.transport.createPayload(e, r, i)
|
|
, s = a.packet
|
|
, u = a.payload;
|
|
this.transport.send(u, s)
|
|
}
|
|
}, {
|
|
key: "sendRaw",
|
|
value: function sendRaw(e) {
|
|
this._canSendPacket(),
|
|
this.transport.write(e)
|
|
}
|
|
}, {
|
|
key: "sendMessage",
|
|
value: function sendMessage(e, r, i) {
|
|
var s = this;
|
|
return a._(function() {
|
|
return d._(this, function(a) {
|
|
return s._canSendMessage(),
|
|
[2, s.msgManager.sendMessage(e, r, i)]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "mountTransportEvents",
|
|
value: function mountTransportEvents(e) {
|
|
var r = this
|
|
, i = Object.keys(_.EVENTS).map(function(e) {
|
|
return _.EVENTS[e]
|
|
});
|
|
this.transport && this.transport.removeAllListeners(),
|
|
this.transport = e,
|
|
i.forEach(function(i) {
|
|
(i === _.EVENTS.MESSAGE_ACK || i === _.EVENTS.REGISTER_EVENT_ACK) && e.on(i, r.msgManager.onMessageAck.bind(r.msgManager)),
|
|
e.on(i, r.emit.bind(r, i))
|
|
})
|
|
}
|
|
}, {
|
|
key: "registerEventsForServer",
|
|
value: function registerEventsForServer(e, r) {
|
|
var i = this;
|
|
return a._(function() {
|
|
var a, s, u, c, l, p;
|
|
return d._(this, function(d) {
|
|
switch (d.label) {
|
|
case 0:
|
|
if (!e || Array.isArray(e) && 0 === e.length)
|
|
return [2];
|
|
if (s = null !== (a = null == r ? void 0 : r.reconnectTag) && void 0 !== a && a,
|
|
u = Array.isArray(e) ? e : [e],
|
|
!s && (u = u.filter(function(e) {
|
|
return !(i.getEventIndex(e) > -1)
|
|
})),
|
|
!u.length)
|
|
return [2];
|
|
d.label = 1;
|
|
case 1:
|
|
return d.trys.push([1, 3, , 4]),
|
|
c = u.map(function(e) {
|
|
return {
|
|
eventId: e.id,
|
|
bizName: e.bizName
|
|
}
|
|
}),
|
|
[4, i.sendMessage({
|
|
registerInfos: c,
|
|
type: b.RegisterType.Register
|
|
}, {
|
|
messageType: w.EPacketType.REGISTE_EVENT,
|
|
headerFilter: ["action", "bizId", "serviceId", "oneWay"]
|
|
}, null !== (l = null == r ? void 0 : r.retryOptions) && void 0 !== l ? l : {})];
|
|
case 2:
|
|
if (d.sent(),
|
|
s)
|
|
return [2];
|
|
return u.forEach(function(e) {
|
|
0 > i.getEventIndex(e) && i.__events__.push(e)
|
|
}),
|
|
u.forEach(function(e) {
|
|
if (null == e ? void 0 : e.cb) {
|
|
var r = "".concat(e.bizName, "_").concat(e.id);
|
|
i.subPushTopic(r, e.cb)
|
|
}
|
|
}),
|
|
[3, 4];
|
|
case 3:
|
|
throw d.sent(),
|
|
C.LonglinkError.create(C.ERR_TYPE.TransportErrorStatus, "register event(s) failed ");
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "unregisterEventsForServer",
|
|
value: function unregisterEventsForServer(e, r) {
|
|
var i = this;
|
|
return a._(function() {
|
|
var a, s, u, c;
|
|
return d._(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if (!e || Array.isArray(e) && 0 === e.length || !(a = (a = Array.isArray(e) ? e : [e]).filter(function(e) {
|
|
return i.getEventIndex(e) > -1
|
|
})).length)
|
|
return [2];
|
|
c.label = 1;
|
|
case 1:
|
|
return c.trys.push([1, 3, , 4]),
|
|
s = a.map(function(e) {
|
|
return {
|
|
eventId: e.id,
|
|
bizName: e.bizName
|
|
}
|
|
}),
|
|
[4, i.sendMessage({
|
|
registerInfos: s,
|
|
type: b.RegisterType.UnRegister
|
|
}, {
|
|
messageType: w.EPacketType.REGISTE_EVENT,
|
|
headerFilter: ["action", "bizId", "serviceId", "oneWay"]
|
|
}, null !== (u = null == r ? void 0 : r.retryOptions) && void 0 !== u ? u : {})];
|
|
case 2:
|
|
return c.sent(),
|
|
i.__events__ = i.__events__.filter(function(e) {
|
|
return !a.some(function(r) {
|
|
return r.bizName === e.bizName && r.id === e.id
|
|
})
|
|
}),
|
|
a.forEach(function(e) {
|
|
var r = "".concat(e.bizName, "_").concat(e.id);
|
|
i.removePushTopic(r)
|
|
}),
|
|
[3, 4];
|
|
case 3:
|
|
throw c.sent(),
|
|
C.LonglinkError.create(C.ERR_TYPE.TransportErrorStatus, "unregister event(s) failed ");
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "reRegisterEventsForServer",
|
|
value: function reRegisterEventsForServer() {
|
|
this.registerEventsForServer(this.__events__, {
|
|
reconnectTag: !0
|
|
})
|
|
}
|
|
}], [{
|
|
key: "LonglinkState",
|
|
get: function get() {
|
|
return _.ELongLinkState
|
|
}
|
|
}, {
|
|
key: "EVENTS",
|
|
get: function get() {
|
|
return _.EVENTS
|
|
}
|
|
}, {
|
|
key: "create",
|
|
value: function create(e) {
|
|
return new this(e)
|
|
}
|
|
}]),
|
|
LonglinkSdk
|
|
}(m.EventEmitter);
|
|
r.default = M
|
|
},
|
|
7800: function(e, r, i) {
|
|
"use strict";
|
|
var a, s = i(51606);
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.createPacket = r.packetHeaderMap = void 0;
|
|
var u = i(15900)
|
|
, c = i(74794)
|
|
, l = i(10727);
|
|
r.packetHeaderMap = (a = {},
|
|
s._(a, u.EPacketType.PING, function(e) {
|
|
return {
|
|
header: {
|
|
seq: e.seq,
|
|
type: u.EPacketType.PING,
|
|
bizId: e.bizId || -1,
|
|
action: l.ELonglinkAction.PING
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.PONG, function(e) {
|
|
return {
|
|
header: {
|
|
seq: e.seq,
|
|
type: u.EPacketType.PONG,
|
|
bizId: e.bizId || -1,
|
|
action: l.ELonglinkAction.PONG
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.AUTH, function(e) {
|
|
return {
|
|
header: {
|
|
sTime: (0,
|
|
c.now)(),
|
|
seq: e.seq,
|
|
type: u.EPacketType.AUTH,
|
|
contentType: e.sdkConfig.contentType,
|
|
bizId: e.bizId || -1,
|
|
action: l.ELonglinkAction.AUTH,
|
|
traceId: (0,
|
|
c.genTraceId)()
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.BIND, function(e) {
|
|
return {
|
|
header: {
|
|
sTime: (0,
|
|
c.now)(),
|
|
seq: e.seq,
|
|
type: u.EPacketType.BIND,
|
|
bizId: e.bizId || -1,
|
|
action: l.ELonglinkAction.BIND,
|
|
traceId: (0,
|
|
c.genTraceId)()
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.VIRTUAL_LINK, function(e) {
|
|
return {
|
|
header: {
|
|
sTime: (0,
|
|
c.now)(),
|
|
seq: e.seq,
|
|
type: u.EPacketType.VIRTUAL_LINK,
|
|
bizId: e.bizId || -1,
|
|
action: l.ELonglinkAction.VIRTUAL_LINK,
|
|
traceId: (0,
|
|
c.genTraceId)()
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.MESSAGE, function(e) {
|
|
return {
|
|
header: {
|
|
sTime: (0,
|
|
c.now)(),
|
|
seq: e.seq,
|
|
type: u.EPacketType.MESSAGE,
|
|
bizId: e.bizId || -1,
|
|
contentType: e.sdkConfig.contentType,
|
|
traceId: (0,
|
|
c.genTraceId)(),
|
|
action: l.ELonglinkAction.MESSAGE
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.MESSAGE_DOWN_ACK, function(e) {
|
|
return {
|
|
header: {
|
|
seq: e.seq,
|
|
type: u.EPacketType.MESSAGE_DOWN_ACK,
|
|
bizId: e.bizId || -1,
|
|
traceId: (0,
|
|
c.genTraceId)(),
|
|
action: l.ELonglinkAction.MESSAGE_DOWN_ACK
|
|
}
|
|
}
|
|
}),
|
|
s._(a, u.EPacketType.REGISTE_EVENT, function(e) {
|
|
return {
|
|
header: {
|
|
sTime: (0,
|
|
c.now)(),
|
|
seq: e.seq,
|
|
type: u.EPacketType.REGISTE_EVENT,
|
|
contentType: e.sdkConfig.contentType,
|
|
traceId: (0,
|
|
c.genTraceId)()
|
|
}
|
|
}
|
|
}),
|
|
a);
|
|
r.createPacket = function(e, i, a, s) {
|
|
var u = r.packetHeaderMap[e](i);
|
|
return u.header = (0,
|
|
c.merge)(u.header, a),
|
|
u.body = s || {},
|
|
u
|
|
}
|
|
},
|
|
13398: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(15313).Buffer
|
|
, s = i(31547);
|
|
i(7608),
|
|
i(41593),
|
|
i(87989),
|
|
i(19077),
|
|
i(75973);
|
|
var u = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.decodePacket = r.encodePacket = void 0;
|
|
var c = u(i(88960))
|
|
, l = i(36189)
|
|
, d = (0,
|
|
c.default)("longlink parser");
|
|
function endcodeAsString(e, r) {
|
|
try {
|
|
return JSON.stringify(e)
|
|
} catch (e) {
|
|
throw Error("输入的 packet 格式非法, ".concat(e.message))
|
|
}
|
|
}
|
|
function decodeString(e, r) {
|
|
try {
|
|
return JSON.parse(e)
|
|
} catch (e) {
|
|
throw d("decode error", e),
|
|
Error("接收 packet 字符串非法, ".concat(e.message))
|
|
}
|
|
}
|
|
function endcodeAsBinary(e) {
|
|
return d("encode %O to buffer", e),
|
|
a.from([])
|
|
}
|
|
function decodeBinary(e) {
|
|
return d("decodeBinary %O to packet", e),
|
|
null
|
|
}
|
|
function encodePacket(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : l.EPacketFormat.STRING
|
|
, i = arguments.length > 2 ? arguments[2] : void 0;
|
|
return r === l.EPacketFormat.BINARY ? endcodeAsBinary(e) : endcodeAsString(e, i)
|
|
}
|
|
function decodePacket(e, r) {
|
|
if ((void 0 === e ? "undefined" : s._(e)) === "object")
|
|
return e instanceof a ? decodeBinary(e) : e;
|
|
return decodeString(e, r)
|
|
}
|
|
r.encodePacket = encodePacket,
|
|
r.decodePacket = decodePacket,
|
|
r.default = {
|
|
encodePacket: encodePacket,
|
|
decodePacket: decodePacket
|
|
}
|
|
},
|
|
95260: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(35329)
|
|
, u = i(46490)
|
|
, c = i(90251)
|
|
, l = i(27292)
|
|
, d = i(70879)
|
|
, p = i(27337)
|
|
, f = i(75649)
|
|
, v = i(36102);
|
|
i(74093),
|
|
i(20768),
|
|
i(41648),
|
|
i(59339),
|
|
i(47444),
|
|
i(34757),
|
|
i(85908),
|
|
i(39995),
|
|
i(22943),
|
|
i(54767),
|
|
i(55820),
|
|
i(93225),
|
|
i(33708),
|
|
i(64322),
|
|
i(47771),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(34333),
|
|
i(42876),
|
|
i(33933),
|
|
i(86651),
|
|
i(87989),
|
|
i(36277),
|
|
i(43648),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(21608),
|
|
i(7608),
|
|
i(41593),
|
|
i(19077),
|
|
i(75973);
|
|
var g = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
});
|
|
var h = i(47324)
|
|
, m = g(i(88960))
|
|
, _ = g(i(13398))
|
|
, y = i(15900)
|
|
, w = i(36189)
|
|
, E = i(1266)
|
|
, S = i(74794)
|
|
, T = i(10727)
|
|
, b = i(79066)
|
|
, k = i(70594)
|
|
, C = i(41172)
|
|
, P = i(7800)
|
|
, A = i(61357)
|
|
, R = i(21329)
|
|
, I = i(39998)
|
|
, O = (0,
|
|
m.default)("longlink:Transport")
|
|
, N = function(e) {
|
|
function Transport(e) {
|
|
var r;
|
|
return u._(this, Transport),
|
|
(r = s._(this, Transport)).sdk = e,
|
|
r.transportMap = new Map,
|
|
r._seq = 0,
|
|
r.closeCounter = 0,
|
|
r.pingTimeoutCounter = 0,
|
|
r.pingIntervalIndex = 0,
|
|
r.channelId = "channel-id",
|
|
r.useBridge = !1,
|
|
r.sdk = e,
|
|
r.useBridge = r.sdkConfig.protocol === E.EProtocols.Bridge,
|
|
r.initInterval(),
|
|
r
|
|
}
|
|
return l._(Transport, e),
|
|
c._(Transport, [{
|
|
key: "sdkConfig",
|
|
get: function get() {
|
|
return this.sdk.config
|
|
}
|
|
}, {
|
|
key: "authCtx",
|
|
get: function get() {
|
|
return this.sdk.authCtx
|
|
}
|
|
}, {
|
|
key: "bindCtx",
|
|
get: function get() {
|
|
return this.sdk.bindCtx
|
|
}
|
|
}, {
|
|
key: "connCtx",
|
|
get: function get() {
|
|
return {
|
|
url: this.sdkConfig.url,
|
|
env: this.sdkConfig.env
|
|
}
|
|
}
|
|
}, {
|
|
key: "bizId",
|
|
get: function get() {
|
|
return this.sdkConfig.bizId
|
|
}
|
|
}, {
|
|
key: "readyState",
|
|
get: function get() {
|
|
return this._readyState
|
|
},
|
|
set: function set(e) {
|
|
this._readyState = e,
|
|
this.emit(T.EVENTS.STATE, e)
|
|
}
|
|
}, {
|
|
key: "seq",
|
|
get: function get() {
|
|
return this._seq
|
|
}
|
|
}, {
|
|
key: "initInterval",
|
|
value: function initInterval() {
|
|
this.pingIntervalIndex = 0
|
|
}
|
|
}, {
|
|
key: "addSeq",
|
|
value: function addSeq() {
|
|
this._seq += 1
|
|
}
|
|
}, {
|
|
key: "nextPingInterval",
|
|
value: function nextPingInterval() {
|
|
this.pingIntervalIndex += 1
|
|
}
|
|
}, {
|
|
key: "getPingInterval",
|
|
value: function getPingInterval() {
|
|
var e, r = (null === (e = this.sdkConfig) || void 0 === e ? void 0 : e.pingInterval) || [6e3];
|
|
if (this.pingIntervalIndex < r.length) {
|
|
var i = r[this.pingIntervalIndex];
|
|
return this.nextPingInterval(),
|
|
i
|
|
}
|
|
return r[r.length - 1]
|
|
}
|
|
}, {
|
|
key: "setMap",
|
|
value: function setMap(e, r) {
|
|
this.transportMap.set(e, r)
|
|
}
|
|
}, {
|
|
key: "getMap",
|
|
value: function getMap(e) {
|
|
return this.transportMap.get(e)
|
|
}
|
|
}, {
|
|
key: "deleteMap",
|
|
value: function deleteMap(e) {
|
|
return this.transportMap.delete(e)
|
|
}
|
|
}, {
|
|
key: "clearAll",
|
|
value: function clearAll() {
|
|
O("clear all")
|
|
}
|
|
}, {
|
|
key: "inConnecting",
|
|
value: function inConnecting() {
|
|
return [T.ELongLinkState.CONNECTING].includes(this.readyState)
|
|
}
|
|
}, {
|
|
key: "inReConnecting",
|
|
value: function inReConnecting() {
|
|
return [T.ELongLinkState.RECONNECTING].includes(this.readyState)
|
|
}
|
|
}, {
|
|
key: "emitClose",
|
|
value: function emitClose(e) {
|
|
e.code !== C.CLOSE_TYPE.User.code && this.sdk.tracker.push({
|
|
evt: I.EEvtName.CLOS,
|
|
cnt: this.closeCounter,
|
|
extra: d._({
|
|
closeEvt: e
|
|
}, this.connCtx)
|
|
}),
|
|
this.emit(T.EVENTS.CLOSE, e)
|
|
}
|
|
}, {
|
|
key: "processError",
|
|
value: function processError(e) {
|
|
var r = !(arguments.length > 1) || void 0 === arguments[1] || arguments[1]
|
|
, i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
|
|
if (this.sdk.tracker.push({
|
|
evt: I.EEvtName.ERR,
|
|
extra: d._({
|
|
err: {
|
|
code: e.code,
|
|
message: e.message,
|
|
detail: null == e ? void 0 : e.detail
|
|
}
|
|
}, this.connCtx)
|
|
}),
|
|
r && this.emit(T.EVENTS.ERROR, e),
|
|
i)
|
|
throw e
|
|
}
|
|
}, {
|
|
key: "connect",
|
|
value: function connect(e, r) {
|
|
this.setMap(T.EVENTS.CONNECT, {
|
|
resolve: e,
|
|
reject: r
|
|
}),
|
|
this.readyState !== T.ELongLinkState.RECONNECTING && (this.readyState = T.ELongLinkState.CONNECTING),
|
|
this.emit(T.EVENTS.CONNECTING, this.sdk.config),
|
|
this.doConnect()
|
|
}
|
|
}, {
|
|
key: "onConnect",
|
|
value: function onConnect() {
|
|
O("onConnect readyState", this.readyState),
|
|
this.readyState = T.ELongLinkState.CONNECT,
|
|
this.emit(T.EVENTS.CONNECT, {
|
|
ctx: this.sdk.config
|
|
});
|
|
var e = (this.getMap(T.EVENTS.CONNECT) || {}).resolve;
|
|
e && (e((0,
|
|
R.createSuccess)()),
|
|
this.deleteMap(T.EVENTS.CONNECT))
|
|
}
|
|
}, {
|
|
key: "onReConnect",
|
|
value: function onReConnect() {
|
|
this.readyState = T.ELongLinkState.CONNECT,
|
|
this.useBridge ? this.retryBind() : (O("[onReConnect] retryAuth"),
|
|
this.retryAuth(this.authCtx, !0))
|
|
}
|
|
}, {
|
|
key: "reconnectBySdk",
|
|
value: function reconnectBySdk(e, r) {
|
|
var i = this;
|
|
return a._(function() {
|
|
var a;
|
|
return v._(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
return e && i.close(r),
|
|
a = r.reason,
|
|
i.readyState = T.ELongLinkState.RECONNECTING,
|
|
i.emit(T.EVENTS.RECONNECTING, "".concat(a, " by sdk")),
|
|
[4, i.changeURL()];
|
|
case 1:
|
|
return s.sent(),
|
|
i.retryConnect(T.EConnectType.RECONNECT, a, !0).then(function() {
|
|
i.onReConnect()
|
|
}),
|
|
[2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "reconnectByBiz",
|
|
value: function reconnectByBiz(e) {
|
|
var r = this;
|
|
return a._(function() {
|
|
return v._(this, function(i) {
|
|
return ![T.ELongLinkState.CLOSE, T.ELongLinkState.CLOSING].includes(r.readyState) && r.close((0,
|
|
C.createClose)({
|
|
reason: e,
|
|
code: C.CLOSE_TYPE.ReconnectClose.code
|
|
})),
|
|
r.readyState = T.ELongLinkState.RECONNECTING,
|
|
r.emit(T.EVENTS.RECONNECTING, "".concat(e, " by biz")),
|
|
[2, r.retryConnect(T.EConnectType.RECONNECT, e, !1).then(function(e) {
|
|
return r.onReConnect(),
|
|
e
|
|
})]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "retryBind",
|
|
value: function retryBind(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]
|
|
, i = this;
|
|
return a._(function() {
|
|
var s, u, c;
|
|
return v._(this, function(l) {
|
|
var f;
|
|
if (!e && !i.bindCtx)
|
|
return i.processError(b.LonglinkError.create(k.ERR_TYPE_BASE.DefaultError, "bind 上下文为空,通道无法正常运行")),
|
|
[2, (0,
|
|
R.createFailed)(T.EStatusCodes.FAILED, "empty bindCtx")];
|
|
return s = (0,
|
|
S.ptime)(),
|
|
u = i.sdkConfig.authTimeout,
|
|
c = i.sdkConfig.authRetryAttempts,
|
|
e && i.setBindCtx(e),
|
|
[2, (0,
|
|
S.promiseTimeoutAndRetry)(function() {
|
|
return {
|
|
promise: new Promise(function(e, r) {
|
|
i.bind(e, r)
|
|
}
|
|
),
|
|
info: "bind"
|
|
}
|
|
}, {
|
|
timeout: u,
|
|
retryAttempts: c,
|
|
retryInterval: i.sdkConfig.retryInterval
|
|
}, (f = a._(function(e, r) {
|
|
var i;
|
|
return v._(this, function(e) {
|
|
return (i = (null == r ? void 0 : r.code) || -1,
|
|
(0,
|
|
S.octopusErrorCodeScope)(i) === T.EErrorAvailable.Available) ? [2, !1] : [2, !0]
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return f.apply(this, arguments)
|
|
}
|
|
)).then(function(e) {
|
|
var r = e.result
|
|
, a = e.retryTimes;
|
|
return i.sdk.tracker.push({
|
|
evt: I.EEvtName.BIND_OK,
|
|
ts: (0,
|
|
S.ptime)() - s,
|
|
cnt: a
|
|
}),
|
|
p._(d._({}, r), {
|
|
data: r.data
|
|
})
|
|
}).catch(function(e) {
|
|
i.authFailedCb(T.ELongLinkState.BINDING),
|
|
i.sdk.tracker.push({
|
|
evt: I.EEvtName.BIND_NOT,
|
|
cnt: (null == e ? void 0 : null === (a = e.errors) || void 0 === a ? void 0 : a.length) || -1,
|
|
extra: {
|
|
url: i.sdkConfig.url,
|
|
env: i.sdkConfig.env,
|
|
error: (0,
|
|
S.uniq)((null == e ? void 0 : null === (s = e.errors) || void 0 === s ? void 0 : s.slice(0, 5).map(function(e) {
|
|
return e.message
|
|
})) || []).join(", "),
|
|
errorCnt: null == e ? void 0 : e.errors.length,
|
|
ctx: i.authCtx
|
|
}
|
|
});
|
|
var a, s, u, c, l = b.LonglinkError.create({
|
|
code: (null == e ? void 0 : null === (u = e.errors[0]) || void 0 === u ? void 0 : u.code) || b.ERR_TYPE.TransportBindFailed.code,
|
|
message: (null == e ? void 0 : null === (c = e.errors[0]) || void 0 === c ? void 0 : c.message) || b.ERR_TYPE.TransportBindFailed.message
|
|
});
|
|
i.processError(l, !0, !r)
|
|
})]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "_canAuthRetry",
|
|
value: function _canAuthRetry() {
|
|
return !![T.ELongLinkState.CONNECT, T.ELongLinkState.AUTH].includes(this.readyState) || (this.processError(b.LonglinkError.create(b.ERR_TYPE.TransportErrorStatus, "鉴权重试时为 ".concat(this.readyState, " 态")), !0, !1),
|
|
!1)
|
|
}
|
|
}, {
|
|
key: "retryAuth",
|
|
value: function retryAuth(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]
|
|
, i = this;
|
|
return a._(function() {
|
|
var s, u, c;
|
|
return v._(this, function(l) {
|
|
var f;
|
|
if (!e)
|
|
return i.processError(b.LonglinkError.create(k.ERR_TYPE_BASE.DefaultError, "鉴权上下文为空,通道无法正常运行"), !0, !r),
|
|
[2, (0,
|
|
R.createFailed)(T.EStatusCodes.FAILED, "empty authCtx")];
|
|
return i.setAuthCtx(e),
|
|
s = (0,
|
|
S.ptime)(),
|
|
u = i.sdkConfig.authTimeout,
|
|
c = i.sdkConfig.authRetryAttempts,
|
|
[2, (0,
|
|
S.promiseTimeoutAndRetry)(function() {
|
|
return {
|
|
promise: new Promise(function(e, r) {
|
|
i.auth(e, r)
|
|
}
|
|
),
|
|
info: "auth"
|
|
}
|
|
}, {
|
|
timeout: u,
|
|
retryAttempts: c,
|
|
retryInterval: i.sdkConfig.retryInterval
|
|
}, (f = a._(function(e, r) {
|
|
var a;
|
|
return v._(this, function(e) {
|
|
return i._canAuthRetry() ? (a = (null == r ? void 0 : r.code) || -1,
|
|
(0,
|
|
S.octopusErrorCodeScope)(a) === T.EErrorAvailable.Available) ? [2, !1] : [2, !0] : [2, !0]
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return f.apply(this, arguments)
|
|
}
|
|
)).then(function(e) {
|
|
var r = e.result
|
|
, a = e.retryTimes;
|
|
return i.sdk.tracker.push({
|
|
evt: I.EEvtName.AUTH_OK,
|
|
ts: (0,
|
|
S.ptime)() - s,
|
|
cnt: a
|
|
}),
|
|
p._(d._({}, r), {
|
|
data: r.data
|
|
})
|
|
}).catch(function(e) {
|
|
i.authFailedCb(T.ELongLinkState.AUTHING),
|
|
i.sdk.tracker.push({
|
|
evt: I.EEvtName.AUTH_NOT,
|
|
cnt: (null == e ? void 0 : null === (a = e.errors) || void 0 === a ? void 0 : a.length) || -1,
|
|
extra: {
|
|
url: i.sdkConfig.url,
|
|
env: i.sdkConfig.env,
|
|
error: (0,
|
|
S.uniq)((null == e ? void 0 : null === (s = e.errors) || void 0 === s ? void 0 : s.slice(0, 5).map(function(e) {
|
|
return e.message
|
|
})) || []).join(", "),
|
|
errorCnt: null == e ? void 0 : e.errors.length,
|
|
ctx: i.authCtx
|
|
}
|
|
});
|
|
var a, s, u, c, l = b.LonglinkError.create({
|
|
code: (null == e ? void 0 : null === (u = e.errors[0]) || void 0 === u ? void 0 : u.code) || b.ERR_TYPE.TransportAuthFailed.code,
|
|
message: (null == e ? void 0 : null === (c = e.errors[0]) || void 0 === c ? void 0 : c.message) || b.ERR_TYPE.TransportAuthFailed.message
|
|
});
|
|
i.processError(l, !0, !r)
|
|
})]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "changeURL",
|
|
value: function changeURL() {
|
|
var e = this;
|
|
return a._(function() {
|
|
var r;
|
|
return v._(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
if (!e.sdkConfig.openChangeUrl)
|
|
return [2, !0];
|
|
if (T.EEnv.SIT !== e.sdkConfig.env)
|
|
return [3, 2];
|
|
return [4, e.sdk.nextIp(e.sdkConfig.url)];
|
|
case 1:
|
|
if (r = i.sent())
|
|
return e.sdkConfig.url = r,
|
|
[2, !0];
|
|
return [2, !1];
|
|
case 2:
|
|
return [2, !0]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "retryConnect",
|
|
value: function retryConnect() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : T.EConnectType.CONNECT
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""
|
|
, i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]
|
|
, s = this;
|
|
return a._(function() {
|
|
var u, c, l;
|
|
return v._(this, function(g) {
|
|
var h;
|
|
return u = (0,
|
|
S.ptime)(),
|
|
c = s.sdkConfig.connectTimeout,
|
|
l = e === T.EConnectType.CONNECT,
|
|
O("[log] retryConnect", e, c),
|
|
[2, (0,
|
|
S.promiseTimeoutAndRetry)(function() {
|
|
return {
|
|
promise: new Promise(function(e, r) {
|
|
s.connect(e, r)
|
|
}
|
|
),
|
|
info: e
|
|
}
|
|
}, {
|
|
useRetry: !0,
|
|
timeout: c,
|
|
retryAttempts: s.sdkConfig.maxReconnectAttempts,
|
|
retryInterval: f._(Array(10).fill(500)).concat(f._(Array(10).fill(3e3)), [5e3])
|
|
}, (h = a._(function(e) {
|
|
var r;
|
|
return v._(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
if (s.protocol !== E.EProtocols.Websocket || !(e > 0))
|
|
return [3, 2];
|
|
return [4, s.changeURL()];
|
|
case 1:
|
|
return O("[LOG] change URL result", e, r = !i.sent()),
|
|
[2, r];
|
|
case 2:
|
|
return [2, !1]
|
|
}
|
|
})
|
|
}),
|
|
function(e) {
|
|
return h.apply(this, arguments)
|
|
}
|
|
)).then(function(e) {
|
|
var i = e.result
|
|
, a = e.retryTimes;
|
|
return s.sdk.tracker.push({
|
|
evt: l ? I.EEvtName.CONN_OK : I.EEvtName.RECONN_OK,
|
|
ts: (0,
|
|
S.ptime)() - u,
|
|
cnt: a,
|
|
extra: {
|
|
reason: r
|
|
}
|
|
}),
|
|
p._(d._({}, i), {
|
|
data: p._(d._({}, i.data), {
|
|
longlinkHost: s.sdkConfig.url
|
|
})
|
|
})
|
|
}).catch(function(e) {
|
|
O("[ERROR] retryConnect failed", s.sdkConfig.maxReconnectAttempts),
|
|
s.sdk.tracker.push({
|
|
evt: l ? I.EEvtName.CONN_NOT : I.EEvtName.RECONN_NOT,
|
|
cnt: (null == e ? void 0 : null === (r = e.errors) || void 0 === r ? void 0 : r.length) || -1,
|
|
extra: {
|
|
error: (0,
|
|
S.uniq)((null == e ? void 0 : null === (a = e.errors) || void 0 === a ? void 0 : a.slice(0, 5).map(function(e) {
|
|
return e.message
|
|
})) || []).join(", "),
|
|
errorCnt: null == e ? void 0 : null === (u = e.errors) || void 0 === u ? void 0 : u.length,
|
|
ctx: s.connCtx,
|
|
extra: {
|
|
config: s.sdkConfig
|
|
}
|
|
}
|
|
});
|
|
var r, a, u, c = b.LonglinkError.create(l ? b.ERR_TYPE.TransportConnFailed : b.ERR_TYPE.TransportReconnectFailed, e.message);
|
|
s.processError(c, !0, !i)
|
|
})]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "mockAbnormalClose",
|
|
value: function mockAbnormalClose() {
|
|
this.close((0,
|
|
C.createClose)({
|
|
code: 1006,
|
|
reason: "模拟异常关闭",
|
|
wasClean: !0
|
|
}))
|
|
}
|
|
}, {
|
|
key: "close",
|
|
value: function close(e) {
|
|
var r = this;
|
|
return this.closeHealthCheck(),
|
|
new Promise(function() {
|
|
r.onCloseing(e)
|
|
}
|
|
)
|
|
}
|
|
}, {
|
|
key: "onCloseing",
|
|
value: function onCloseing(e) {
|
|
return this.readyState = T.ELongLinkState.CLOSING,
|
|
this.doClose(e),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPreConnectClose",
|
|
value: function onPreConnectClose(e) {
|
|
O("[LOG]onPreConnectClose", e),
|
|
this.processError(b.LonglinkError.create(b.ERR_TYPE.TransportPreConnectClose, "", e), !1),
|
|
this.emit(T.EVENTS.PRE_CONNECT_CLOSE, e)
|
|
}
|
|
}, {
|
|
key: "onClose",
|
|
value: function onClose(e) {
|
|
var r = this;
|
|
return a._(function() {
|
|
return v._(this, function(i) {
|
|
return O("[close]onClose", e, r.readyState),
|
|
!r.inReConnecting() && !r.inConnecting() && Promise.resolve().then(function() {
|
|
r.readyState = T.ELongLinkState.CLOSE,
|
|
r.clearAll(),
|
|
r.emitClose(e),
|
|
!(0,
|
|
S.isUserClose)(e) && (O("[close] should reconnect", e),
|
|
r.reconnectBySdk(!1, e))
|
|
}),
|
|
[2]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "cleanPingTimer",
|
|
value: function cleanPingTimer() {
|
|
O("[log] cleanPingTimer"),
|
|
clearTimeout(this.pingTimer),
|
|
this.pingTimer = null,
|
|
this.pingTimeoutCounter = 0;
|
|
var e = this.getMap(T.EVENTS.PING);
|
|
e && (null == e || e.resolve((0,
|
|
R.createSuccess)()),
|
|
this.deleteMap(T.EVENTS.PING))
|
|
}
|
|
}, {
|
|
key: "setPingTimeout",
|
|
value: function setPingTimeout() {
|
|
var e = this;
|
|
this.pingTimer = setTimeout(function() {
|
|
O("[error] ping timeout", e.pingTimeoutCounter),
|
|
e.initInterval(),
|
|
e.healthCheck(),
|
|
e.pingTimeoutCounter += 1,
|
|
e.pingTimeoutCounter >= e.sdkConfig.pingLimit && (e.reconnectBySdk(!0, (0,
|
|
C.createClose)(C.CLOSE_TYPE.PingTimeout)),
|
|
e.processError(b.LonglinkError.create(b.ERR_TYPE.TransportPingTimeout)))
|
|
}, this.sdkConfig.pingTimeout)
|
|
}
|
|
}, {
|
|
key: "sendPingPacket",
|
|
value: function sendPingPacket(e) {
|
|
var r = this
|
|
, i = this.createPayload(y.EPacketType.PING)
|
|
, a = i.payload
|
|
, s = i.packet;
|
|
if (e) {
|
|
this.setMap(T.EVENTS.PING, e);
|
|
var u, c = e.opts;
|
|
this.pingTimer = setTimeout(function() {
|
|
r.deleteMap(T.EVENTS.PING),
|
|
r.reconnectBySdk(!0, (0,
|
|
C.createClose)({
|
|
code: C.CLOSE_TYPE.HealthCheck.code,
|
|
reason: (null == c ? void 0 : c.reason) || "health check failed"
|
|
})),
|
|
e.reject((0,
|
|
R.createFailed)(T.EStatusCodes.FAILED, "ping packet timeout"))
|
|
}, (null == c ? void 0 : c.respondTime) || (null == c ? void 0 : c.timeout) || (null === (u = this.sdkConfig) || void 0 === u ? void 0 : u.pingTimeout))
|
|
}
|
|
return this.send(a, s, null == e ? void 0 : e.clearCb.bind(this))
|
|
}
|
|
}, {
|
|
key: "openPing",
|
|
value: function openPing() {
|
|
var e = this
|
|
, r = this.getPingInterval();
|
|
this.pingSenderTimer = setTimeout(function() {
|
|
[T.ELongLinkState.AUTH, T.ELongLinkState.BIND, T.ELongLinkState.CONNECT].includes(e.readyState) && (e.sendPingPacket(),
|
|
e.setPingTimeout(),
|
|
e.openPing())
|
|
}, r || 5e3)
|
|
}
|
|
}, {
|
|
key: "closeHealthCheck",
|
|
value: function closeHealthCheck() {
|
|
clearTimeout(this.pingSenderTimer),
|
|
this.pingSenderTimer = null
|
|
}
|
|
}, {
|
|
key: "healthCheck",
|
|
value: function healthCheck() {
|
|
this.closeHealthCheck(),
|
|
this.openPing()
|
|
}
|
|
}, {
|
|
key: "authFailedCb",
|
|
value: function authFailedCb(e) {
|
|
this.deleteMap(e),
|
|
this.readyState = T.ELongLinkState.CONNECT
|
|
}
|
|
}, {
|
|
key: "setAuthCtx",
|
|
value: function setAuthCtx(e) {
|
|
this.sdk.authCtx = e
|
|
}
|
|
}, {
|
|
key: "setBindCtx",
|
|
value: function setBindCtx(e) {
|
|
this.sdk.bindCtx = e
|
|
}
|
|
}, {
|
|
key: "bind",
|
|
value: function bind(e, r) {
|
|
var i, a = this.createPayload(y.EPacketType.VIRTUAL_LINK, {}, {
|
|
sceneId: this.sdkConfig.app,
|
|
sceneUserId: null === (i = this.bindCtx) || void 0 === i ? void 0 : i.sid,
|
|
handleType: T.EVirtualLinkHandleType.CREATE
|
|
}), s = a.packet, u = a.payload;
|
|
this.readyState = T.ELongLinkState.BINDING,
|
|
this.emit(T.EVENTS.BINDING, s),
|
|
this.setMap(T.ELongLinkState.BINDING, {
|
|
resolve: e,
|
|
reject: r
|
|
}),
|
|
this.send(u, s, this.onPacketBindAck.bind(this))
|
|
}
|
|
}, {
|
|
key: "auth",
|
|
value: function auth(e, r) {
|
|
var i, a = this.createPayload(y.EPacketType.AUTH, {}, p._(d._({}, this.sdk.authCtx), {
|
|
extra: JSON.stringify(null === this || void 0 === this ? void 0 : null === (i = this.authCtx) || void 0 === i ? void 0 : i.extra)
|
|
})), s = a.payload, u = a.packet;
|
|
this.readyState = T.ELongLinkState.AUTHING,
|
|
this.emit(T.EVENTS.AUTHING, u),
|
|
this.setMap(T.ELongLinkState.AUTHING, {
|
|
resolve: e,
|
|
reject: r
|
|
}),
|
|
this.send(s, u)
|
|
}
|
|
}, {
|
|
key: "unbind",
|
|
value: function unbind() {
|
|
var e, r, i = {
|
|
businessType: w.BusinessType.impaas,
|
|
payloadType: w.BridgePayloadType.bind,
|
|
options: {
|
|
bizId: this.sdkConfig.bizId,
|
|
echo: !1,
|
|
retryCount: this.sdkConfig.sendRetryAttempts,
|
|
timeout: this.sdkConfig.authTimeout
|
|
},
|
|
payload: JSON.stringify({
|
|
identity: null === (r = this.sdk) || void 0 === r ? void 0 : null === (e = r.authCtx) || void 0 === e ? void 0 : e.sid,
|
|
cancel: !0
|
|
})
|
|
};
|
|
this.send(i, i)
|
|
}
|
|
}, {
|
|
key: "appBind",
|
|
value: function appBind(e) {
|
|
var r = this;
|
|
if (!e)
|
|
throw Error("bindContext 为空,请检查");
|
|
this.readyState !== T.ELongLinkState.CONNECT && this.emit(T.EVENTS.SDK_ERROR, Error("bind() 仅在 ".concat(T.ELongLinkState.CONNECT, " 态时可调用"))),
|
|
this.setAuthCtx(e);
|
|
var i = {
|
|
businessType: w.BusinessType.impaas,
|
|
payloadType: w.BridgePayloadType.bind,
|
|
options: {
|
|
bizId: this.sdkConfig.bizId,
|
|
echo: !1,
|
|
retryCount: this.sdkConfig.sendRetryAttempts,
|
|
timeout: this.sdkConfig.authTimeout
|
|
},
|
|
payload: JSON.stringify({
|
|
identity: e.sid,
|
|
cancel: !1
|
|
})
|
|
};
|
|
this.readyState = T.ELongLinkState.BINDING,
|
|
this.emit(T.EVENTS.BINDING, i);
|
|
var a = new Promise(function(e, a) {
|
|
r.setMap(T.ELongLinkState.BINDING, {
|
|
resolve: e,
|
|
reject: a
|
|
}),
|
|
r.send(i, i, r.onPacketBindAck.bind(r))
|
|
}
|
|
);
|
|
return (0,
|
|
S.timeoutPromise)(this.sdkConfig.authTimeout, a, b.LonglinkError.create(b.ERR_TYPE.TransportBindFailed), function() {
|
|
r.authFailedCb(T.ELongLinkState.BINDING)
|
|
})
|
|
}
|
|
}, {
|
|
key: "createPayload",
|
|
value: function createPayload(e, r, i) {
|
|
var a, s = (0,
|
|
P.createPacket)(e, this, r, i);
|
|
if (this.sdkConfig.protocol === E.EProtocols.Websocket) {
|
|
var u = _.default.encodePacket(s, this.sdkConfig.packetFormat, this);
|
|
return {
|
|
packet: s,
|
|
payload: u
|
|
}
|
|
}
|
|
var c = this.sdkConfig
|
|
, l = c.sendTimeout
|
|
, f = c.sendRetryAttempts
|
|
, v = c.debugEcho;
|
|
[y.EPacketType.MESSAGE, y.EPacketType.PING].includes(e) && (s.header = p._(d._({}, s.header), {
|
|
authorization: null === (a = this.bindCtx) || void 0 === a ? void 0 : a.sid
|
|
}));
|
|
var g = (0,
|
|
A.createBridgePacket)(this, e, s, {
|
|
timeout: l,
|
|
retryCount: f,
|
|
echo: v
|
|
});
|
|
return {
|
|
packet: g,
|
|
payload: g
|
|
}
|
|
}
|
|
}, {
|
|
key: "send",
|
|
value: function send(e, r, i) {
|
|
try {
|
|
this.useBridge ? (this.onSend(e, r),
|
|
this.write(e).then(function() {
|
|
for (var e = arguments.length, r = Array(e), a = 0; a < e; a++)
|
|
r[a] = arguments[a];
|
|
i && i.apply(void 0, [void 0].concat(f._(r)))
|
|
}).catch(function(e) {
|
|
i(e)
|
|
})) : (this.write(e),
|
|
this.onSend(e, r))
|
|
} catch (r) {
|
|
var a = b.LonglinkError.create(b.ERR_TYPE.TransportErrorWriteData, r.message, e);
|
|
this.onError(a),
|
|
O("[error] send()", a)
|
|
}
|
|
return r
|
|
}
|
|
}, {
|
|
key: "onSend",
|
|
value: function onSend(e, r) {
|
|
this.emit(T.EVENTS.SEND, e, r),
|
|
this.addSeq()
|
|
}
|
|
}, {
|
|
key: "protocol",
|
|
get: function get() {
|
|
return this.sdkConfig.protocol
|
|
}
|
|
}, {
|
|
key: "onError",
|
|
value: function onError(e) {
|
|
if (O("[onError]", this.readyState, e.message, e.detail),
|
|
this.inConnecting()) {
|
|
var r = this.getMap(T.EVENTS.CONNECT);
|
|
r && (0,
|
|
r.reject)(b.LonglinkError.create(this.protocol === E.EProtocols.Websocket ? b.ERR_TYPE.WebSocketErrorCreate : b.ERR_TYPE.BridgeErrorCreate, (null == e ? void 0 : e.message) || "".concat(this.protocol, " connect error")))
|
|
} else
|
|
this.processError(e, !0, !1)
|
|
}
|
|
}, {
|
|
key: "onData",
|
|
value: function onData(e) {
|
|
this.emit(T.EVENTS.DATA, e);
|
|
var r = _.default.decodePacket(e, this);
|
|
return this.onPacket(r),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacket",
|
|
value: function onPacket(e) {
|
|
var r, i = null === (r = e.header) || void 0 === r ? void 0 : r.type;
|
|
switch (this.emit(T.EVENTS.PACKET, e),
|
|
this.cleanPingTimer(),
|
|
i) {
|
|
case y.EPacketType.PING:
|
|
this.onPacketPing();
|
|
break;
|
|
case y.EPacketType.PONG:
|
|
this.onPacketPong(e);
|
|
break;
|
|
case y.EPacketType.AUTH_ACK:
|
|
this.onPacketAuthAck(e);
|
|
break;
|
|
case y.EPacketType.CLOSE:
|
|
this.onPacketClose(e);
|
|
break;
|
|
case y.EPacketType.CLOSE_ACK:
|
|
this.onPacketCloseAck(e);
|
|
break;
|
|
case y.EPacketType.MESSAGE_DOWN:
|
|
this.onPacketMessageDown(e);
|
|
break;
|
|
case y.EPacketType.MESSAGE_ACK:
|
|
this.onPacketMessageAck(e);
|
|
break;
|
|
case y.EPacketType.REGISTE_EVENT_ACK:
|
|
this.onRegisterEventAck(e);
|
|
break;
|
|
default:
|
|
O("[unknown packet]", e),
|
|
this.onPacketUnknown(e)
|
|
}
|
|
}
|
|
}, {
|
|
key: "onPacketAuthAck",
|
|
value: function onPacketAuthAck(e) {
|
|
var r = this.getMap(T.ELongLinkState.AUTHING) || {}
|
|
, i = r.resolve
|
|
, a = r.reject;
|
|
if (i) {
|
|
if ((null == e ? void 0 : e.body) && (null == e ? void 0 : null === (c = e.body) || void 0 === c ? void 0 : c.code) === T.EStatusCodes.SUCCESS) {
|
|
this.readyState = T.ELongLinkState.AUTH,
|
|
this.healthCheck();
|
|
var s, u, c, l, d, p = (0,
|
|
R.createSuccess)(T.EStatusCodes.SUCCESS, T.EStatusMessage.SUCCESS, e.body.data);
|
|
this.emit(T.EVENTS.AUTH, e.body),
|
|
this.channelId = (null === (d = e.body) || void 0 === d ? void 0 : null === (l = d.data) || void 0 === l ? void 0 : l.channelId) || "channel-id",
|
|
i(p)
|
|
} else
|
|
this.readyState = T.ELongLinkState.CONNECT,
|
|
a(b.LonglinkError.create({
|
|
code: (null == e ? void 0 : null === (s = e.body) || void 0 === s ? void 0 : s.code) || k.ERR_TYPE_BASE.DefaultError,
|
|
message: null == e ? void 0 : null === (u = e.body) || void 0 === u ? void 0 : u.msg
|
|
}, "", (null == e ? void 0 : e.body) || {}))
|
|
}
|
|
return this.deleteMap(T.ELongLinkState.AUTHING),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketBindAck",
|
|
value: function onPacketBindAck(e, r) {
|
|
var i = this.getMap(T.ELongLinkState.BINDING) || {}
|
|
, a = i.resolve
|
|
, s = i.reject;
|
|
if (e)
|
|
O("bind ack 报错", e),
|
|
s(e);
|
|
else {
|
|
var u, c, l = (null == r ? void 0 : null === (p = r.value) || void 0 === p ? void 0 : p.payload) || "{}", d = "string" == typeof l ? JSON.parse(l) : l;
|
|
if ((null == d ? void 0 : d.body) && (null == d ? void 0 : null === (f = d.body) || void 0 === f ? void 0 : f.code) === T.EStatusCodes.SUCCESS) {
|
|
this.readyState = T.ELongLinkState.BIND;
|
|
var p, f, v, g = (0,
|
|
R.createSuccess)(T.EStatusCodes.SUCCESS, T.EStatusMessage.SUCCESS, d.body.data);
|
|
this.emit(T.EVENTS.BIND, null == d ? void 0 : d.body),
|
|
this.channelId = (null === (v = d.body) || void 0 === v ? void 0 : v.data.channelId) || "channel-id",
|
|
a(g)
|
|
} else
|
|
this.readyState = T.ELongLinkState.CONNECT,
|
|
s(b.LonglinkError.create({
|
|
code: (null == d ? void 0 : null === (u = d.body) || void 0 === u ? void 0 : u.code) || k.ERR_TYPE_BASE.DefaultError,
|
|
message: null == d ? void 0 : null === (c = d.body) || void 0 === c ? void 0 : c.msg
|
|
}, "", (null == d ? void 0 : d.body) || {}))
|
|
}
|
|
return this.deleteMap(T.ELongLinkState.BINDING),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketMessageAck",
|
|
value: function onPacketMessageAck(e) {
|
|
return this.emit(T.EVENTS.MESSAGE_ACK, e),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onRegisterEventAck",
|
|
value: function onRegisterEventAck(e) {
|
|
return this.emit(T.EVENTS.REGISTER_EVENT_ACK, e),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketClose",
|
|
value: function onPacketClose(e) {
|
|
var r;
|
|
return this.doClose((0,
|
|
C.createClose)({
|
|
code: C.CLOSE_TYPE.Kickout.code,
|
|
reason: (null == e ? void 0 : null === (r = e.body) || void 0 === r ? void 0 : r.reason) || "kickout by service"
|
|
})),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketCloseAck",
|
|
value: function onPacketCloseAck(e) {
|
|
var r;
|
|
return this.close((0,
|
|
C.createClose)({
|
|
reason: (null == e ? void 0 : null === (r = e.body) || void 0 === r ? void 0 : r.reason) || "send close packet by close_ack",
|
|
code: C.CLOSE_TYPE.Kickout.code
|
|
})),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketPing",
|
|
value: function onPacketPing() {
|
|
var e = this.createPayload(y.EPacketType.PONG)
|
|
, r = e.payload
|
|
, i = e.packet;
|
|
return this.send(r, i),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketPong",
|
|
value: function onPacketPong(e) {
|
|
var r;
|
|
return this.emit(T.EVENTS.PONG, (null === (r = e.header) || void 0 === r ? void 0 : r.ts) || -1),
|
|
this
|
|
}
|
|
}, {
|
|
key: "onPacketMessageDown",
|
|
value: function onPacketMessageDown(e) {
|
|
var r = this
|
|
, i = e.header
|
|
, a = i.bizId
|
|
, s = i.domain
|
|
, u = i.oneWay
|
|
, c = i.traceId
|
|
, l = a === T.PUSH_BIZ_ID;
|
|
if (Promise.resolve().then(function() {
|
|
try {
|
|
var i = null == e ? void 0 : e.body;
|
|
if (l) {
|
|
var a = i;
|
|
(0,
|
|
S.isString)(a) && (a = JSON.parse(a || "{}")),
|
|
r.emit(l ? T.EVENTS.PUSH_MESSAGE : T.EVENTS.MESSAGE_DOWN, a, e);
|
|
var s = a.topic
|
|
, u = a.payload
|
|
, f = r.sdk.getTopicCallback(s);
|
|
f && f(u, a)
|
|
}
|
|
r.emit(T.EVENTS.MESSAGE_DOWN, p._(d._({}, i), {
|
|
traceId: c
|
|
}), e)
|
|
} catch (i) {
|
|
r.processError(b.LonglinkError.create(b.ERR_TYPE.TransportDownMsgFailed, "解析下行 msg 失败".concat(i.message), e), !0, !1)
|
|
}
|
|
}),
|
|
!u && this.sdkConfig.protocol !== E.EProtocols.Bridge) {
|
|
var f, v = {
|
|
code: T.EStatusCodes.SUCCESS,
|
|
msg: T.EStatusMessage.SUCCESS
|
|
};
|
|
(!a || !s) && (v.code = T.EStatusCodes.FAILED,
|
|
v.msg = "message_down in empty biz or domain"),
|
|
null === (f = e.header) || void 0 === f || delete f.type;
|
|
var g = this.createPayload(y.EPacketType.MESSAGE_DOWN_ACK, e.header, v)
|
|
, h = g.payload
|
|
, m = g.packet;
|
|
this.send(h, m)
|
|
}
|
|
return this
|
|
}
|
|
}, {
|
|
key: "onPacketUnknown",
|
|
value: function onPacketUnknown(e) {
|
|
return O("unknown packet", e),
|
|
this.processError(b.LonglinkError.create(b.ERR_TYPE.TransportUnknowPacket, "", e), !0, !1),
|
|
this
|
|
}
|
|
}]),
|
|
Transport
|
|
}(h.EventEmitter);
|
|
r.default = N
|
|
},
|
|
88049: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(35329)
|
|
, u = i(46490)
|
|
, c = i(90251)
|
|
, l = i(27292)
|
|
, d = i(36102);
|
|
i(36277),
|
|
i(34333),
|
|
i(42876),
|
|
i(33933),
|
|
i(19077),
|
|
i(75973),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109);
|
|
var p = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
});
|
|
var f = i(92014)
|
|
, v = p(i(88960))
|
|
, g = p(i(95260))
|
|
, h = i(79066)
|
|
, m = i(10727)
|
|
, _ = i(74794)
|
|
, y = (0,
|
|
v.default)("longlink:bridge")
|
|
, w = function(e) {
|
|
function Bridge(e) {
|
|
var r;
|
|
return u._(this, Bridge),
|
|
(r = s._(this, Bridge, [e])).$io = null,
|
|
r.subs = [],
|
|
r
|
|
}
|
|
return l._(Bridge, e),
|
|
c._(Bridge, [{
|
|
key: "checkState",
|
|
value: function checkState() {
|
|
var e = this;
|
|
return a._(function() {
|
|
return d._(this, function(r) {
|
|
try {
|
|
return [2, new Promise(function(r, i) {
|
|
e.invoke("rimStateGet", function(e) {
|
|
r(e.value.state)
|
|
}).catch(function() {
|
|
i(m.ELongLinkState.CLOSE)
|
|
})
|
|
}
|
|
)]
|
|
} catch (e) {
|
|
return y("rimStateGet failed", e),
|
|
[2, Promise.reject(m.ELongLinkState.CLOSE)]
|
|
}
|
|
return [2]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "doConnect",
|
|
value: function doConnect() {
|
|
var e = this;
|
|
try {
|
|
this.$io && this.unMountEvents(),
|
|
this.invoke("rimStateGet").then(function(r) {
|
|
var i = r.value;
|
|
y("获取状态 rimStateGet", i);
|
|
var a = i.state
|
|
, s = void 0 === a ? m.ELongLinkState.INITIAL : a;
|
|
e.emit(m.EVENTS.BRIDGE_STATE, s),
|
|
[m.ELongLinkState.AUTH].includes(s) ? e.onConnect() : e._doReconnect()
|
|
}).catch(function(e) {
|
|
y("bridge 连接获取状态失败", e)
|
|
}),
|
|
this.mountEvents()
|
|
} catch (e) {
|
|
y("bridge connect error", e),
|
|
this.onError(h.LonglinkError.create(h.ERR_TYPE.BridgeErrorCreate, "", e))
|
|
}
|
|
return this
|
|
}
|
|
}, {
|
|
key: "_doReconnect",
|
|
value: function _doReconnect() {
|
|
this.invoke("rimReconnect").then(function() {}).catch(function(e) {
|
|
console.log("调用端侧重连错误", e)
|
|
})
|
|
}
|
|
}, {
|
|
key: "doReConnect",
|
|
value: function doReConnect() {}
|
|
}, {
|
|
key: "doClose",
|
|
value: function doClose(e) {
|
|
console.log("bridge doClose 断连", e),
|
|
this.onClose(e),
|
|
this.unMountEvents(),
|
|
this.unbind()
|
|
}
|
|
}, {
|
|
key: "unMountEvents",
|
|
value: function unMountEvents() {
|
|
for ((0,
|
|
_.log)("订阅个数", this.subs.length); this.subs.length; )
|
|
(0,
|
|
_.log)("订阅个数", this.subs.length),
|
|
this.subs.shift()()
|
|
}
|
|
}, {
|
|
key: "preRimData",
|
|
value: function preRimData(e) {
|
|
console.log("收到 pre data", e),
|
|
this.emit(m.EVENTS.PRE_DATA, e)
|
|
}
|
|
}, {
|
|
key: "preRimSend",
|
|
value: function preRimSend(e) {
|
|
this.emit(m.EVENTS.PRE_SEND, e)
|
|
}
|
|
}, {
|
|
key: "mountEvents",
|
|
value: function mountEvents() {
|
|
var e, r = this;
|
|
(0,
|
|
f.subscribeBiz)("rimState", function(e) {
|
|
(0,
|
|
_.log)("bridge 状态变化", e);
|
|
var i = e.value
|
|
, a = i.state;
|
|
console.log("收到 rim-bridge 状态变化", a),
|
|
r.emit(m.EVENTS.BRIDGE_STATE, a),
|
|
a === m.ELongLinkState.CONNECTING || (a === m.ELongLinkState.AUTH ? r.onReConnect() : [m.ELongLinkState.CLOSING, m.ELongLinkState.CLOSE].includes(a) && console.log("native 断连状态", i))
|
|
}),
|
|
(0,
|
|
f.subscribeBiz)("rimPreData", function(e) {
|
|
var i = e.value;
|
|
r.preRimData(i)
|
|
}),
|
|
(0,
|
|
f.subscribeBiz)("rimPreSend", function(e) {
|
|
var i = e.value;
|
|
r.preRimSend(i)
|
|
}),
|
|
(0,
|
|
f.subscribeBiz)("rimDataIMPAAS", function(e) {
|
|
var i = e.value;
|
|
if (console.log("端侧下推", e),
|
|
i) {
|
|
var a = (null == i ? void 0 : i.payload) || "{}"
|
|
, s = "string" == typeof a ? JSON.parse(a) : a;
|
|
r.onPacketMessageDown(s)
|
|
}
|
|
}),
|
|
(0,
|
|
f.subscribeBiz)("rimError", (e = a._(function(e) {
|
|
var r, i, a;
|
|
return d._(this, function(i) {
|
|
return (r = null == e ? void 0 : e.value).message,
|
|
601 === (a = r.result),
|
|
[2]
|
|
})
|
|
}),
|
|
function(r) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
))
|
|
}
|
|
}, {
|
|
key: "write",
|
|
value: function write(e) {
|
|
return y("[log] bridge Transport", e),
|
|
(0,
|
|
_.log)("bridge Send", e),
|
|
this.invoke("rimSend", e)
|
|
}
|
|
}, {
|
|
key: "invoke",
|
|
value: function invoke(e) {
|
|
var r = this
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return Promise.race([(0,
|
|
f.invokeBiz)(e, i), new Promise(function(e, i) {
|
|
setTimeout(function() {
|
|
i(h.LonglinkError.create(h.ERR_TYPE.BridgeErrorEvent, "bridge 通道发送超时"))
|
|
}, r.sdkConfig.sendTimeout)
|
|
}
|
|
)])
|
|
}
|
|
}], [{
|
|
key: "create",
|
|
value: function create(e) {
|
|
return new this(e)
|
|
}
|
|
}]),
|
|
Bridge
|
|
}(g.default);
|
|
r.default = w
|
|
},
|
|
61357: function(e, r, i) {
|
|
"use strict";
|
|
i(7608),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.createBridgePacket = void 0;
|
|
var a = i(15900)
|
|
, s = i(36189);
|
|
function createOpts(e, r) {
|
|
var i, a;
|
|
return {
|
|
timeout: null !== (i = null == r ? void 0 : r.timeout) && void 0 !== i ? i : e.sdkConfig.sendTimeout,
|
|
retryCount: null !== (a = null == r ? void 0 : r.retryCount) && void 0 !== a ? a : e.sdkConfig,
|
|
echo: r.echo,
|
|
bizId: 10
|
|
}
|
|
}
|
|
function createBridgePacket(e, r, i, u) {
|
|
var c = {
|
|
payloadType: s.BridgePayloadType.message,
|
|
businessType: s.BusinessType.impaas,
|
|
payload: JSON.stringify({})
|
|
};
|
|
switch (r) {
|
|
case a.EPacketType.PING:
|
|
case a.EPacketType.MESSAGE:
|
|
case a.EPacketType.VIRTUAL_LINK:
|
|
c = {
|
|
businessType: s.BusinessType.impaas,
|
|
payloadType: s.BridgePayloadType.message,
|
|
options: createOpts(e, u),
|
|
payload: JSON.stringify(i)
|
|
}
|
|
}
|
|
return c
|
|
}
|
|
r.createBridgePacket = createBridgePacket
|
|
},
|
|
90316: function(e, r, i) {
|
|
"use strict";
|
|
var a, s = i(41622), u = i(35329), c = i(46490), l = i(90251), d = i(27292), p = i(36102);
|
|
i(86651),
|
|
i(19077),
|
|
i(75973),
|
|
i(7608),
|
|
i(87989);
|
|
var f = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.EStoreEvent = r.Store = void 0;
|
|
var v = f(i(47324))
|
|
, g = i(92381)
|
|
, h = i(39998);
|
|
(a || (a = {})).ROUTE_EXPIRE = "routeExpire",
|
|
r.EStoreEvent = a;
|
|
var m = function(e) {
|
|
function Store(e) {
|
|
var r;
|
|
return c._(this, Store),
|
|
(r = u._(this, Store)).fallbackRoute = e,
|
|
r
|
|
}
|
|
return d._(Store, e),
|
|
l._(Store, [{
|
|
key: "get",
|
|
value: function get() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]
|
|
, r = this;
|
|
return s._(function() {
|
|
var i, s, u, c;
|
|
return p._(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
if (c.trys.push([0, 6, , 7]),
|
|
!(!e || !r.memoryCache))
|
|
return [3, 4];
|
|
return [4, Store.storage.getItem(Store.key)];
|
|
case 1:
|
|
if (i = JSON.parse(c.sent()))
|
|
return [3, 3];
|
|
return [4, Store.initStore()];
|
|
case 2:
|
|
c.sent(),
|
|
c.label = 3;
|
|
case 3:
|
|
return [3, 5];
|
|
case 4:
|
|
i = r.memoryCache,
|
|
c.label = 5;
|
|
case 5:
|
|
return s = i.route,
|
|
u = i.routeExipire,
|
|
(new Date().getTime() >= u || !s) && r.emit(a.ROUTE_EXPIRE),
|
|
[2, {
|
|
route: (null == s ? void 0 : s.length) > 0 ? s : r.fallbackRoute,
|
|
routeExipire: u
|
|
}];
|
|
case 6:
|
|
return c.sent(),
|
|
Store.sdk.tracker.push({
|
|
evt: h.EEvtName.STORAGE_GET
|
|
}),
|
|
[2, {
|
|
route: r.fallbackRoute,
|
|
routeExipire: new Date().getTime()
|
|
}];
|
|
case 7:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "set",
|
|
value: function set(e) {
|
|
var r = this;
|
|
return s._(function() {
|
|
var i;
|
|
return p._(this, function(i) {
|
|
switch (i.label) {
|
|
case 0:
|
|
r.memoryCache = e,
|
|
i.label = 1;
|
|
case 1:
|
|
return i.trys.push([1, 3, , 4]),
|
|
[4, Store.storage.setItem(Store.key, JSON.stringify(e))];
|
|
case 2:
|
|
return i.sent(),
|
|
[3, 4];
|
|
case 3:
|
|
return i.sent(),
|
|
Store.sdk.tracker.push({
|
|
evt: h.EEvtName.STORAGE_SET
|
|
}),
|
|
[3, 4];
|
|
case 4:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}], [{
|
|
key: "initStore",
|
|
value: function initStore() {
|
|
return s._(function() {
|
|
var e;
|
|
return p._(this, function(e) {
|
|
switch (e.label) {
|
|
case 0:
|
|
return e.trys.push([0, 2, , 3]),
|
|
[4, Store.storage.setItem(Store.key, JSON.stringify({
|
|
route: null,
|
|
routeExipire: new Date().getTime()
|
|
}))];
|
|
case 1:
|
|
return e.sent(),
|
|
[3, 3];
|
|
case 2:
|
|
return e.sent(),
|
|
Store.sdk.tracker.push({
|
|
evt: h.EEvtName.STORAGE_INIT
|
|
}),
|
|
[3, 3];
|
|
case 3:
|
|
return [2]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "create",
|
|
value: function create(e, r) {
|
|
var i = this;
|
|
return s._(function() {
|
|
var a, s, u;
|
|
return p._(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
return a = r.fallbackRoute,
|
|
s = r.env,
|
|
u = r.customStorage,
|
|
Store.key = "".concat("RED_IM_STORE", "_").concat(s),
|
|
Store.sdk = e,
|
|
u && (Store.storage = u),
|
|
[4, Store.storage.getItem(Store.key)];
|
|
case 1:
|
|
if (c.sent())
|
|
return [3, 3];
|
|
return [4, Store.initStore()];
|
|
case 2:
|
|
c.sent(),
|
|
c.label = 3;
|
|
case 3:
|
|
return [2, new i(a)]
|
|
}
|
|
})
|
|
})()
|
|
}
|
|
}]),
|
|
Store
|
|
}(v.default);
|
|
r.Store = m,
|
|
m.storage = g.defaultStorage
|
|
},
|
|
36229: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(35329)
|
|
, u = i(46490)
|
|
, c = i(90251)
|
|
, l = i(27292)
|
|
, d = i(70879)
|
|
, p = i(36102);
|
|
i(87989),
|
|
i(43648);
|
|
var f = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
});
|
|
var v = f(i(88960))
|
|
, g = f(i(95260))
|
|
, h = i(79066)
|
|
, m = i(41172)
|
|
, _ = i(74794)
|
|
, y = i(78943)
|
|
, w = (0,
|
|
v.default)("longlink: ws")
|
|
, E = function(e) {
|
|
function Websocket(e) {
|
|
var r;
|
|
return u._(this, Websocket),
|
|
(r = s._(this, Websocket, [e])).$io = null,
|
|
r._listeners = {},
|
|
r
|
|
}
|
|
return l._(Websocket, e),
|
|
c._(Websocket, [{
|
|
key: "checkState",
|
|
value: function checkState() {
|
|
var e = this;
|
|
return a._(function() {
|
|
return p._(this, function(r) {
|
|
return [2, e.readyState]
|
|
})
|
|
})()
|
|
}
|
|
}, {
|
|
key: "doConnect",
|
|
value: function doConnect() {
|
|
try {
|
|
this.$io && this.unMountEvents(),
|
|
w("[websocket] doconnect"),
|
|
this.$io = new y(this.sdkConfig.url),
|
|
this.mountEvents()
|
|
} catch (e) {
|
|
this.onError(h.LonglinkError.create(h.ERR_TYPE.WebSocketErrorCreate, (null == e ? void 0 : e.message) || ""))
|
|
}
|
|
return this
|
|
}
|
|
}, {
|
|
key: "doReConnect",
|
|
value: function doReConnect() {
|
|
this.doConnect()
|
|
}
|
|
}, {
|
|
key: "doClose",
|
|
value: function doClose(e) {
|
|
var r = this
|
|
, i = e.code
|
|
, a = e.reason;
|
|
w("doClose = (".concat(i, ", ").concat(a, ")")),
|
|
this.$io && ((0,
|
|
_.notNeedEmitClose)(e) && (this.$io.onclose = function(e) {
|
|
r.onPreConnectClose(e)
|
|
}
|
|
),
|
|
this.$io.close(i, (a || "normal close").slice(0, 123)))
|
|
}
|
|
}, {
|
|
key: "unMountEvents",
|
|
value: function unMountEvents() {
|
|
delete this._listeners,
|
|
this.$io.onopen = null,
|
|
this.$io.onclose = null,
|
|
this.$io.onmessage = null,
|
|
this.$io.onerror = null,
|
|
this.$io = null
|
|
}
|
|
}, {
|
|
key: "mountEvents",
|
|
value: function mountEvents() {
|
|
var e = this;
|
|
this.$io.onopen = this.onConnect.bind(this),
|
|
this.$io.onclose = function(r) {
|
|
w("[ws onclose]", r.reason),
|
|
e.unMountEvents(),
|
|
e.onClose((0,
|
|
m.createClose)({
|
|
code: r.code,
|
|
reason: r.reason,
|
|
wasClean: r.wasClean
|
|
}))
|
|
}
|
|
,
|
|
this.$io.onerror = function(r) {
|
|
var i = h.LonglinkError.create(h.ERR_TYPE.WebSocketErrorEvent, "", d._({}, (null == r ? void 0 : r.error) || {}));
|
|
e.onError(i)
|
|
}
|
|
,
|
|
this.$io.onmessage = function(r) {
|
|
e.onData(r.data)
|
|
}
|
|
}
|
|
}, {
|
|
key: "write",
|
|
value: function write(e) {
|
|
this.$io && this.$io.send(e)
|
|
}
|
|
}]),
|
|
Websocket
|
|
}(g.default);
|
|
r.default = E
|
|
},
|
|
10727: function(e, r) {
|
|
"use strict";
|
|
var i, a, s, u, c, l, d, p, f, v, g, h, m, _, y, w, E, S, T, b, k, C, P, A, R, I;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.ELongLinkState = r.EMsgEvents = r.EVENTS = r.EAuthType = r.EContentType = r.ELonglinkAction = r.EVirtualLinkHandleType = r.ErrorCode = r.EStatusMessage = r.EStatusCodes = r.EConnectType = r.EEnv = r.EErrorAvailable = r.PUSH_BIZ_ID = void 0,
|
|
r.PUSH_BIZ_ID = 2,
|
|
(_ = r.EErrorAvailable || (r.EErrorAvailable = {})).Available = "Available",
|
|
_.UnAvailable = "UnAvailable",
|
|
_.Other = "Other",
|
|
_.Biz = "Biz",
|
|
(y = r.EEnv || (r.EEnv = {})).SIT = "SIT",
|
|
y.BETA = "BETA",
|
|
y.PROD = "PROD",
|
|
(w = r.EConnectType || (r.EConnectType = {})).CONNECT = "CONNECT",
|
|
w.RECONNECT = "RECONNECT",
|
|
(E = r.EStatusCodes || (r.EStatusCodes = {}))[E.SUCCESS = 0] = "SUCCESS",
|
|
E[E.FAILED = -1] = "FAILED",
|
|
(S = r.EStatusMessage || (r.EStatusMessage = {})).SUCCESS = "success",
|
|
S.FAILED = "failed",
|
|
(T = r.ErrorCode || (r.ErrorCode = {}))[T.SYSTEM_ERROR = 500] = "SYSTEM_ERROR",
|
|
(b = r.EVirtualLinkHandleType || (r.EVirtualLinkHandleType = {}))[b.CREATE = 0] = "CREATE",
|
|
b[b.CANCEL = 1] = "CANCEL",
|
|
(k = r.ELonglinkAction || (r.ELonglinkAction = {})).PING = "ping",
|
|
k.PONG = "pong",
|
|
k.AUTH = "auth",
|
|
k.BIND = "bind",
|
|
k.VIRTUAL_LINK = "virtual_link",
|
|
k.MESSAGE = "msg",
|
|
k.MESSAGE_DOWN_ACK = "msg_down_ack",
|
|
(C = r.EContentType || (r.EContentType = {})).JSON = "json",
|
|
C.PROTOBUF = "protobuf",
|
|
(P = r.EAuthType || (r.EAuthType = {})).GENERIC = "generic",
|
|
P.PORCH = "porch",
|
|
P.RED_PASSPORT = "red_passport",
|
|
P.ANONYMOUS = "anonymous",
|
|
(A = r.EVENTS || (r.EVENTS = {})).INITIAL = "initial",
|
|
A.CONNECTING = "connecting",
|
|
A.RECONNECTING = "reconnecting",
|
|
A.RECONNECT_FAILED = "reconnect_failed",
|
|
A.CONNECT = "connect",
|
|
A.CONNECT_FAILED = "connect_failed",
|
|
A.AUTHING = "authing",
|
|
A.AUTH = "auth",
|
|
A.AUTH_FAILED = "auth_failed",
|
|
A.BINDING = "binding",
|
|
A.BIND = "bind",
|
|
A.BIND_FAILED = "bind_failed",
|
|
A.SEND = "send",
|
|
A.PING = "ping",
|
|
A.PONG = "pong",
|
|
A.CLOSING = "closing",
|
|
A.CLOSE = "close",
|
|
A.ERROR = "error",
|
|
A.SDK_ERROR = "sdk_error",
|
|
A.DATA = "data",
|
|
A.PACKET = "packet",
|
|
A.MESSAGE_SEND = "message_send",
|
|
A.MESSAGE_ACK = "message_ack",
|
|
A.MESSAGE_DOWN = "message_down",
|
|
A.REGISTER_EVENT_ACK = "register_event_ack",
|
|
A.PUSH_MESSAGE = "push_message",
|
|
A.STATE = "state",
|
|
A.PRE_CONNECT_CLOSE = "pre_connect_close",
|
|
A.BRIDGE_STATE = "bridge_state",
|
|
A.PRE_DATA = "pre_data",
|
|
A.PRE_SEND = "pre_send",
|
|
(R = r.EMsgEvents || (r.EMsgEvents = {})).SEND_MESSAGE = "message_send_message",
|
|
R.SEND_FAIL = "message_send_fail",
|
|
R.SEND_SUCCESS = "message_send_success",
|
|
(I = r.ELongLinkState || (r.ELongLinkState = {})).INITIAL = "initial",
|
|
I.CONNECTING = "connecting",
|
|
I.RECONNECTING = "reconnecting",
|
|
I.CONNECT = "connect",
|
|
I.AUTHING = "authing",
|
|
I.AUTH = "auth",
|
|
I.BINDING = "binding",
|
|
I.BIND = "bind",
|
|
I.CLOSING = "closing",
|
|
I.CLOSE = "close"
|
|
},
|
|
7361: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(75649);
|
|
i(21608),
|
|
i(87989),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.defaultConfig = void 0;
|
|
var s = i(10727)
|
|
, u = i(1266)
|
|
, c = i(36189)
|
|
, l = [, , , , , ].fill(5e3)
|
|
, d = Array(10).fill(15e3);
|
|
r.defaultConfig = {
|
|
contentType: s.EContentType.JSON,
|
|
packetFormat: c.EPacketFormat.STRING,
|
|
protocol: u.EProtocols.Websocket,
|
|
env: s.EEnv.PROD,
|
|
connectTimeout: a._(l).concat(a._(d), [3e4]),
|
|
authTimeout: 8e3,
|
|
authRetryAttempts: 10,
|
|
authType: s.EAuthType.GENERIC,
|
|
openChangeUrl: !1,
|
|
sendTimeout: 5e3,
|
|
sendRetryAttempts: 5,
|
|
retryInterval: 3e3,
|
|
pingTimeout: 4e3,
|
|
pingInterval: [3e3, 8e3, 14e3, 28e3, 3e4],
|
|
pingLimit: 1,
|
|
trackerLevel: 1,
|
|
trackerLog: !1,
|
|
autoReconnect: !0,
|
|
maxReconnectAttempts: 1 / 0,
|
|
closeLimit: 10,
|
|
debugEcho: !1,
|
|
maxComboNum: 8,
|
|
trackerEnable: !0
|
|
}
|
|
},
|
|
15900: function(e, r) {
|
|
"use strict";
|
|
var i, a;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.NameOfPacketType = r.EPacketType = void 0,
|
|
(a = r.EPacketType || (r.EPacketType = {}))[a.PING = 0] = "PING",
|
|
a[a.PONG = 128] = "PONG",
|
|
a[a.AUTH = 1] = "AUTH",
|
|
a[a.AUTH_ACK = 129] = "AUTH_ACK",
|
|
a[a.CLOSE = 2] = "CLOSE",
|
|
a[a.CLOSE_ACK = 130] = "CLOSE_ACK",
|
|
a[a.MESSAGE = 3] = "MESSAGE",
|
|
a[a.MESSAGE_ACK = 131] = "MESSAGE_ACK",
|
|
a[a.MESSAGE_DOWN = 4] = "MESSAGE_DOWN",
|
|
a[a.MESSAGE_DOWN_ACK = 132] = "MESSAGE_DOWN_ACK",
|
|
a[a.BIND = 5] = "BIND",
|
|
a[a.BIND_ACK = 133] = "BIND_ACK",
|
|
a[a.SWITCH = 6] = "SWITCH",
|
|
a[a.SWITCH_ACK = 134] = "SWITCH_ACK",
|
|
a[a.VIRTUAL_LINK = 8] = "VIRTUAL_LINK",
|
|
a[a.VIRTUAL_LINK_ACK = 136] = "VIRTUAL_LINK_ACK",
|
|
a[a.REGISTE_EVENT = 9] = "REGISTE_EVENT",
|
|
a[a.REGISTE_EVENT_ACK = 153] = "REGISTE_EVENT_ACK",
|
|
r.NameOfPacketType = {
|
|
0: "PING",
|
|
128: "PONG",
|
|
1: "AUTH",
|
|
129: "AUTH_ACK",
|
|
2: "CLOSE",
|
|
130: "CLOSE_ACK",
|
|
3: "MESSAGE",
|
|
131: "MESSAGE_ACK",
|
|
4: "MESSAGE_DOWN",
|
|
132: "MESSAGE_DOWN_ACK",
|
|
5: "BIND",
|
|
133: "BIND_ACK",
|
|
8: "VIRTUAL_LINK",
|
|
136: "VIRTUAL_LINK_ACK",
|
|
6: "SWITCH",
|
|
134: "SWITCH_ACK"
|
|
}
|
|
},
|
|
8027: function(e, r, i) {
|
|
"use strict";
|
|
i(59976);
|
|
var a = this && this.__createBinding || (Object.create ? function(e, r, i, a) {
|
|
void 0 === a && (a = i);
|
|
var s = Object.getOwnPropertyDescriptor(r, i);
|
|
(!s || ("get"in s ? !r.__esModule : s.writable || s.configurable)) && (s = {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return r[i]
|
|
}
|
|
}),
|
|
Object.defineProperty(e, a, s)
|
|
}
|
|
: function(e, r, i, a) {
|
|
void 0 === a && (a = i),
|
|
e[a] = r[i]
|
|
}
|
|
)
|
|
, s = this && this.__exportStar || function(e, r) {
|
|
for (var i in e)
|
|
"default" !== i && !Object.prototype.hasOwnProperty.call(r, i) && a(r, e, i)
|
|
}
|
|
, u = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.EMPTY_ERROR_CODE = r.ERR_TYPE_BASE = r.BaseError = r.LonglinkSdk = void 0;
|
|
var c = i(97493);
|
|
Object.defineProperty(r, "LonglinkSdk", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return u(c).default
|
|
}
|
|
}),
|
|
s(i(15900), r),
|
|
s(i(7361), r),
|
|
s(i(10727), r),
|
|
s(i(1266), r),
|
|
s(i(36189), r),
|
|
s(i(21155), r),
|
|
s(i(61700), r),
|
|
s(i(65061), r),
|
|
s(i(39998), r),
|
|
s(i(13398), r),
|
|
s(i(74794), r),
|
|
s(i(41172), r),
|
|
s(i(87853), r),
|
|
s(i(34493), r),
|
|
s(i(44509), r);
|
|
var l = i(70594);
|
|
Object.defineProperty(r, "BaseError", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return l.BaseError
|
|
}
|
|
}),
|
|
Object.defineProperty(r, "ERR_TYPE_BASE", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return l.ERR_TYPE_BASE
|
|
}
|
|
}),
|
|
Object.defineProperty(r, "EMPTY_ERROR_CODE", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return l.EMPTY_ERROR_CODE
|
|
}
|
|
})
|
|
},
|
|
1266: function(e, r) {
|
|
"use strict";
|
|
var i, a, s, u, c, l, d, p, f, v, g, h;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.RegisterType = r.EPlatformType = r.EOSType = r.EConnectStatus = r.EStartTime = r.EProtocols = void 0,
|
|
(d = r.EProtocols || (r.EProtocols = {})).Websocket = "WS",
|
|
d.Bridge = "bridge",
|
|
(p = r.EStartTime || (r.EStartTime = {})).CONNECT_START = "connect_start",
|
|
p.AUTH_START = "auth_start",
|
|
p.SEND_START = "send_start",
|
|
p.PING_START = "ping_start",
|
|
(f = r.EConnectStatus || (r.EConnectStatus = {})).CONNECT = "connect",
|
|
f.CONNECTED = "connected",
|
|
f.RECONNECT = "reconnect",
|
|
f.RECONNECTED = "reconnected",
|
|
(v = r.EOSType || (r.EOSType = {})).WEB = "web",
|
|
v.IOS = "iOS",
|
|
v.ANDROID = "Android",
|
|
(g = r.EPlatformType || (r.EPlatformType = {})).BROWSER = "browser",
|
|
g.PHONE = "phone",
|
|
g.PAD = "pad",
|
|
g.IPHONE = "iPhone",
|
|
g.IPAD = "iPad",
|
|
g.WINDOWS = "windows",
|
|
g.MAC = "mac",
|
|
(h = r.RegisterType || (r.RegisterType = {}))[h.Register = 1] = "Register",
|
|
h[h.UnRegister = 0] = "UnRegister"
|
|
},
|
|
36189: function(e, r) {
|
|
"use strict";
|
|
var i, a, s, u, c, l, d, p;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.BusinessType = r.BridgePayloadType = r.BridgeDataType = r.EPacketFormat = void 0,
|
|
(c = r.EPacketFormat || (r.EPacketFormat = {})).STRING = "string",
|
|
c.BINARY = "binary",
|
|
(l = r.BridgeDataType || (r.BridgeDataType = {}))[l.jsonObject = 0] = "jsonObject",
|
|
l[l.buffer = 1] = "buffer",
|
|
l[l.string = 2] = "string",
|
|
(d = r.BridgePayloadType || (r.BridgePayloadType = {})).bind = "bind",
|
|
d.message = "message",
|
|
d.context = "context",
|
|
(p = r.BusinessType || (r.BusinessType = {})).cs = "CS",
|
|
p.impaas = "IMPAAS"
|
|
},
|
|
7449: function(e, r, i) {
|
|
"use strict";
|
|
var a, s, u = i(51606);
|
|
i(36277),
|
|
i(34333),
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(87989),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.fetchLonglinkConfig = void 0;
|
|
var c = i(10727)
|
|
, l = i(1266)
|
|
, d = i(70594)
|
|
, p = i(34493)
|
|
, f = (a = {},
|
|
u._(a, c.EEnv.BETA, "wss://apppush.beta.xiaohongshu.com:443/longlink"),
|
|
u._(a, c.EEnv.PROD, "wss://apppush-sh5.xiaohongshu.com:443/longlink"),
|
|
a)
|
|
, v = (s = {},
|
|
u._(s, c.EEnv.SIT, "https://edith.sit.xiaohongshu.com/api/sns/octopus/router/longlinkconfig"),
|
|
u._(s, c.EEnv.BETA, ""),
|
|
u._(s, c.EEnv.PROD, "https://edith.xiaohongshu.com/api/sns/octopus/router/longlinkconfig"),
|
|
s);
|
|
r.fetchLonglinkConfig = function(e) {
|
|
return new Promise(function(r, i) {
|
|
var a = e.env
|
|
, s = e.domain
|
|
, u = e.device
|
|
, g = e.protocol
|
|
, h = e.serviceTag
|
|
, m = u || {}
|
|
, _ = m.platform
|
|
, y = m.os
|
|
, w = m.appVersion
|
|
, E = m.deviceId;
|
|
a === c.EEnv.SIT ? (0,
|
|
p.httpFetch)(v[c.EEnv.SIT], {
|
|
"Service-Tag": e.serviceTag || ""
|
|
}, {
|
|
domain: s,
|
|
field: 0,
|
|
platform: _,
|
|
os: y,
|
|
ws: g === l.EProtocols.Websocket,
|
|
appVersion: w,
|
|
deviceId: E,
|
|
"Service-Tag": h
|
|
}, "GET").then(function(e) {
|
|
var s, u = e.data;
|
|
(null == u ? void 0 : u.dns) && (null == u ? void 0 : null === (s = u.dns) || void 0 === s ? void 0 : s.china) ? r({
|
|
longlinkHost: u.dns.china.map(function(e) {
|
|
return "ws://".concat(e, ":5444/longlink")
|
|
})
|
|
}) : i(d.BaseError.create(d.ERR_TYPE_BASE.HttpFetchError, "".concat(a, " 获取长连配置失败")))
|
|
}).catch(function(e) {
|
|
i(d.BaseError.create(d.ERR_TYPE_BASE.HttpFetchError, e.message))
|
|
}) : r({
|
|
longlinkHost: [f[a]]
|
|
})
|
|
}
|
|
)
|
|
}
|
|
},
|
|
25834: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(70879)
|
|
, s = i(27337);
|
|
i(42876),
|
|
i(33933),
|
|
i(43648),
|
|
i(34885);
|
|
var u = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.processHttpRes = r.processBody = void 0;
|
|
var c = (0,
|
|
u(i(88960)).default)("longlink:debug");
|
|
r.processBody = function(e, r) {
|
|
if (window && "_Debug_Mode_"in window) {
|
|
var i = window._Debug_Mode_;
|
|
if (c("[longlink-DEBUG]", null == i ? void 0 : i[r]),
|
|
null == i ? void 0 : i.open) {
|
|
var a = null == i ? void 0 : i[r];
|
|
if (null == a ? void 0 : a.open)
|
|
return {
|
|
code: a.code,
|
|
msg: a.msg,
|
|
data: e.data
|
|
}
|
|
}
|
|
}
|
|
return e
|
|
}
|
|
;
|
|
r.processHttpRes = function(e) {
|
|
if (window && "_Debug_Mode_"in window) {
|
|
var r = window._Debug_Mode_;
|
|
if (null == r ? void 0 : r.open) {
|
|
var i = "/api/impaas"
|
|
, u = e.config.url;
|
|
if (u.includes(i)) {
|
|
var l = u.slice(u.indexOf(i) + i.length)
|
|
, d = null == r ? void 0 : r[l];
|
|
if (c("[http-res-DEBUG]", d),
|
|
null == d ? void 0 : d.openHttp)
|
|
return s._(a._({}, e), {
|
|
status: d.code,
|
|
statusText: d.msg
|
|
})
|
|
}
|
|
}
|
|
}
|
|
return e
|
|
}
|
|
},
|
|
23533: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(46490)
|
|
, u = i(90251)
|
|
, c = i(36102);
|
|
i(74093),
|
|
i(20768),
|
|
i(41648),
|
|
i(59339),
|
|
i(47444),
|
|
i(34757),
|
|
i(85908),
|
|
i(39995),
|
|
i(22943),
|
|
i(54767),
|
|
i(55820),
|
|
i(93225),
|
|
i(33708),
|
|
i(64322),
|
|
i(47771),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(34333),
|
|
i(87989),
|
|
i(42876),
|
|
i(33933),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(36277),
|
|
i(86651),
|
|
i(29744);
|
|
var l = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.MsgManager = void 0;
|
|
var d = l(i(88960))
|
|
, p = i(10727)
|
|
, f = i(15900)
|
|
, v = i(74794)
|
|
, g = i(79066)
|
|
, h = i(39998)
|
|
, m = i(25834)
|
|
, _ = i(70594)
|
|
, y = (0,
|
|
d.default)("longlink:msg")
|
|
, w = function() {
|
|
function MsgManager(e) {
|
|
s._(this, MsgManager),
|
|
this.ctx = e,
|
|
this.sMidMap = new Map
|
|
}
|
|
return u._(MsgManager, [{
|
|
key: "onMessageAck",
|
|
value: function onMessageAck(e) {
|
|
var r = e.header
|
|
, i = e.body
|
|
, a = r.sMid
|
|
, s = r.traceId;
|
|
if (a) {
|
|
var u = this.getMap(a);
|
|
if (u) {
|
|
var c = u.resolve
|
|
, l = u.reject
|
|
, d = u.action
|
|
, f = (0,
|
|
m.processBody)(i, d)
|
|
, v = f.code
|
|
, h = f.msg
|
|
, y = f.data;
|
|
v !== p.EStatusCodes.SUCCESS ? l(_.BaseError.create({
|
|
code: v,
|
|
message: h
|
|
}, h, {
|
|
traceId: s,
|
|
data: i
|
|
})) : c({
|
|
code: v,
|
|
msg: h,
|
|
data: y,
|
|
headers: {
|
|
sMid: a,
|
|
traceId: s
|
|
}
|
|
}),
|
|
this.deleteMap(a)
|
|
} else
|
|
this.ctx.transport.onError(g.LonglinkError.create(g.ERR_TYPE.TransportMsgMapFailed, "未找到 ".concat(a, " 的消息映射,可能是未发该消息")))
|
|
}
|
|
}
|
|
}, {
|
|
key: "onBridgeMessageAck",
|
|
value: function onBridgeMessageAck(e, r, i) {
|
|
var a;
|
|
if ((null == i ? void 0 : null === (a = i.value) || void 0 === a ? void 0 : a.payload) !== "null")
|
|
try {
|
|
var s = this.getMap(e)
|
|
, u = s.reject;
|
|
if (r)
|
|
s && u(g.LonglinkError.create(g.ERR_TYPE.TransportSendMsgFailed, "bridge send error", r));
|
|
else {
|
|
var c = i.result
|
|
, l = i.value;
|
|
if (c === p.EStatusCodes.SUCCESS) {
|
|
var d = l.payload;
|
|
if (d) {
|
|
var f = (0,
|
|
v.string2Object)(d);
|
|
this.onMessageAck(f)
|
|
}
|
|
} else {
|
|
var h = g.LonglinkError.create(g.ERR_TYPE.TransportSendMsgFailed, "bridge send ack error, result not success", i);
|
|
u(h),
|
|
this.ctx.transport.onError(h)
|
|
}
|
|
}
|
|
} catch (e) {
|
|
this.ctx.transport.onError(g.LonglinkError.create(g.ERR_TYPE.TransportSendMsgFailed, "bridge send ack error, catch", r))
|
|
}
|
|
}
|
|
}, {
|
|
key: "transportSend",
|
|
value: function transportSend(e, r, i) {
|
|
return this.ctx.transport.useBridge ? this.ctx.transport.send(r, i, this.onBridgeMessageAck.bind(this, e)) : (this.ctx.transport.healthCheck(),
|
|
this.ctx.transport.send(r, i))
|
|
}
|
|
}, {
|
|
key: "_canMsgRetry",
|
|
value: function _canMsgRetry() {
|
|
var e = this.ctx.readyState;
|
|
return !![p.ELongLinkState.AUTH].includes(e) || (this.ctx.transport.processError(g.LonglinkError.create(g.ERR_TYPE.TransportErrorStatus, "发消息重试时为 ".concat(e, " 态")), !1),
|
|
!1)
|
|
}
|
|
}, {
|
|
key: "sendMessage",
|
|
value: function sendMessage(e, r) {
|
|
var i, s, u = this, l = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
|
|
useRetry: !0
|
|
}, d = (0,
|
|
v.ptime)(), g = this.ctx.config, m = (null == r ? void 0 : r.sMid) || (0,
|
|
v.genUuid)(), _ = (null == r ? void 0 : r.oneWay) || !1, w = (null == r ? void 0 : r.action) || "/send/message", E = {
|
|
bizId: (null == r ? void 0 : r.bizId) || g.bizId,
|
|
serviceId: (null == r ? void 0 : r.serviceId) || "general",
|
|
action: w,
|
|
oneWay: _,
|
|
sMid: m
|
|
};
|
|
_ && delete E.sMid,
|
|
Array.isArray(null == r ? void 0 : r.headerFilter) && r.headerFilter.forEach(function(e) {
|
|
null == E || delete E[e]
|
|
});
|
|
var S = null !== (s = null == r ? void 0 : r.messageType) && void 0 !== s ? s : f.EPacketType.MESSAGE
|
|
, T = this.ctx.transport.createPayload(S, E, e)
|
|
, b = T.packet
|
|
, k = T.payload;
|
|
this.ctx.emit(S === f.EPacketType.MESSAGE ? p.EVENTS.MESSAGE_SEND : p.EVENTS.REGISTER_EVENT_ACK, k);
|
|
var sender = function() {
|
|
return {
|
|
promise: new Promise(function(e, r) {
|
|
!_ && u.setMap(m, {
|
|
resolve: e,
|
|
reject: r,
|
|
action: w
|
|
}),
|
|
u.transportSend(_ ? "one-way" : m, k, b)
|
|
}
|
|
),
|
|
info: w
|
|
}
|
|
};
|
|
if (_)
|
|
return Promise.resolve(sender().promise),
|
|
Promise.resolve({
|
|
code: p.EStatusCodes.SUCCESS,
|
|
msg: "".concat(w, " ").concat(p.EStatusMessage.SUCCESS)
|
|
});
|
|
if (!l.useRetry)
|
|
return Promise.resolve(sender().promise);
|
|
var C = this;
|
|
return (0,
|
|
v.promiseTimeoutAndRetry)(sender, {
|
|
useRetry: l.useRetry,
|
|
retryAttempts: (null == l ? void 0 : l.retryAttempts) || g.sendRetryAttempts,
|
|
timeout: (null == l ? void 0 : l.timeout) || g.sendTimeout,
|
|
retryInterval: (null == l ? void 0 : l.retryInterval) || g.retryInterval
|
|
}, (i = a._(function(e, r) {
|
|
var i, a;
|
|
return c._(this, function(s) {
|
|
if (y("[sendMessage] failed", e, r.code, r.message),
|
|
C.ctx.tracker.push({
|
|
evt: h.EEvtName.MSG_NOT,
|
|
api: w,
|
|
extra: {
|
|
url: C.ctx.config.url,
|
|
err: r,
|
|
failCnt: e
|
|
}
|
|
}),
|
|
!C._canMsgRetry())
|
|
return [2, !0];
|
|
if ((i = null == r ? void 0 : r.code) !== p.EStatusCodes.SUCCESS) {
|
|
if ((a = (0,
|
|
v.octopusErrorCodeScope)(i)) === p.EErrorAvailable.Available)
|
|
return [2, !1];
|
|
if (a === p.EErrorAvailable.UnAvailable)
|
|
return [2, !0]
|
|
}
|
|
return [2, !1]
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return i.apply(this, arguments)
|
|
}
|
|
)).then(function(e) {
|
|
var r = e.result
|
|
, i = e.retryTimes
|
|
, a = e.retryErrors;
|
|
return u.ctx.tracker.push({
|
|
evt: h.EEvtName.MSG_OK,
|
|
ts: (0,
|
|
v.ptime)() - d,
|
|
cnt: i,
|
|
api: w,
|
|
extra: {
|
|
retryErrors: a
|
|
}
|
|
}),
|
|
r
|
|
}).catch(function(e) {
|
|
throw e
|
|
}).finally(function() {
|
|
u.deleteMap(m)
|
|
})
|
|
}
|
|
}, {
|
|
key: "setMap",
|
|
value: function setMap(e, r) {
|
|
this.sMidMap.set(e, r)
|
|
}
|
|
}, {
|
|
key: "getMap",
|
|
value: function getMap(e) {
|
|
return this.sMidMap.get(e)
|
|
}
|
|
}, {
|
|
key: "deleteMap",
|
|
value: function deleteMap(e) {
|
|
return this.sMidMap.delete(e)
|
|
}
|
|
}], [{
|
|
key: "create",
|
|
value: function create(e) {
|
|
return new this(e)
|
|
}
|
|
}]),
|
|
MsgManager
|
|
}();
|
|
r.MsgManager = w
|
|
},
|
|
21329: function(e, r, i) {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.createFailed = r.createSuccess = void 0;
|
|
var a = i(10727);
|
|
r.createSuccess = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : a.EStatusCodes.SUCCESS
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : a.EStatusMessage.SUCCESS
|
|
, i = arguments.length > 2 ? arguments[2] : void 0;
|
|
return {
|
|
code: e,
|
|
msg: r,
|
|
data: i
|
|
}
|
|
}
|
|
;
|
|
r.createFailed = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : a.EStatusCodes.FAILED
|
|
, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : a.EStatusMessage.FAILED
|
|
, i = arguments.length > 2 ? arguments[2] : void 0;
|
|
return {
|
|
code: e,
|
|
msg: r,
|
|
data: i
|
|
}
|
|
}
|
|
},
|
|
87014: function(e, r, i) {
|
|
"use strict";
|
|
var a, s, u = i(41622), c = i(51606), l = i(36102);
|
|
i(36277),
|
|
i(34333),
|
|
i(42876),
|
|
i(33933),
|
|
i(87989),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.pullLonglinkRoute = r.longlinkHostMap = void 0;
|
|
var d = i(10727)
|
|
, p = i(1266)
|
|
, f = i(70594)
|
|
, v = i(34493);
|
|
r.longlinkHostMap = (a = {},
|
|
c._(a, d.EEnv.BETA, "wss://apppush.beta.xiaohongshu.com:443/longlink"),
|
|
c._(a, d.EEnv.PROD, "wss://apppush-sh5.xiaohongshu.com:443/longlink"),
|
|
a);
|
|
var g = (s = {},
|
|
c._(s, d.EEnv.SIT, "https://edith.sit.xiaohongshu.com/api/sns/octopus/router/longlinkconfig"),
|
|
c._(s, d.EEnv.BETA, "https://edith.beta.xiaohongshu.com/api/sns/octopus/router/longlinkconfig"),
|
|
c._(s, d.EEnv.PROD, "https://edith.xiaohongshu.com/api/sns/octopus/router/longlinkconfig"),
|
|
s);
|
|
r.pullLonglinkRoute = function(e, i) {
|
|
return new Promise(function(a, s) {
|
|
var c, h = e.env, m = e.domain, _ = e.device, y = e.protocol, w = e.serviceTag, E = _ || {}, S = E.platform, T = E.os, b = E.appVersion, k = E.deviceId;
|
|
if ([d.EEnv.SIT, d.EEnv.BETA, d.EEnv.PROD].includes(h)) {
|
|
;(0,
|
|
v.httpFetch)(g[h], {
|
|
"Service-Tag": e.serviceTag || ""
|
|
}, {
|
|
domain: m,
|
|
protocol: "WS",
|
|
field: 0,
|
|
platform: S,
|
|
os: T,
|
|
ws: y === p.EProtocols.Websocket,
|
|
appVersion: b,
|
|
deviceId: k,
|
|
userId: i,
|
|
"Service-Tag": w
|
|
}, "GET").then((c = u._(function(e) {
|
|
var r, i, u, c, p, v;
|
|
return l._(this, function(l) {
|
|
return (null == (u = e.data) ? void 0 : null === (r = u.dns) || void 0 === r ? void 0 : r.chost) && ((null == u ? void 0 : u.port) || (null == u ? void 0 : null === (i = u.dns) || void 0 === i ? void 0 : i.port)) ? h === d.EEnv.SIT ? a({
|
|
longlinkHost: ["ws://".concat(u.dns.china[0], ":").concat(null == u ? void 0 : null === (c = u.dns) || void 0 === c ? void 0 : c.port, "/longlink")],
|
|
expires: null !== (p = null == u ? void 0 : u.validTime) && void 0 !== p ? p : new Date().getTime()
|
|
}) : a({
|
|
longlinkHost: ["wss://".concat(u.dns.chost, ":").concat(null == u ? void 0 : u.port, "/longlink")],
|
|
expires: null !== (v = null == u ? void 0 : u.validTime) && void 0 !== v ? v : new Date().getTime()
|
|
}) : s(f.BaseError.create(f.ERR_TYPE_BASE.HttpFetchError, "".concat(h, " 获取长连配置失败"))),
|
|
[2]
|
|
})
|
|
}),
|
|
function(e) {
|
|
return c.apply(this, arguments)
|
|
}
|
|
)).catch(function(e) {
|
|
s(f.BaseError.create(f.ERR_TYPE_BASE.HttpFetchError, e.message))
|
|
})
|
|
} else
|
|
a({
|
|
longlinkHost: [r.longlinkHostMap[h]],
|
|
expires: new Date().getTime()
|
|
})
|
|
}
|
|
)
|
|
}
|
|
},
|
|
275: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(46490);
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
});
|
|
r.default = function ApmAdapter() {
|
|
a._(this, ApmAdapter)
|
|
}
|
|
},
|
|
39998: function(e, r) {
|
|
"use strict";
|
|
var i, a;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.EEvtName = void 0,
|
|
(a = r.EEvtName || (r.EEvtName = {})).CONN_OK = "conn_ok",
|
|
a.CONN_NOT = "conn_not",
|
|
a.RECONN_OK = "reconn_ok",
|
|
a.RECONN_NOT = "reconn_not",
|
|
a.AUTH_OK = "auth_ok",
|
|
a.AUTH_NOT = "auth_not",
|
|
a.BIND_OK = "bind_ok",
|
|
a.BIND_NOT = "bind_not",
|
|
a.MSG_STA = "msg_sta",
|
|
a.MSG_OK = "msg_ok",
|
|
a.MSG_NOT = "msg_not",
|
|
a.MSG_FAIL = "msg_fail",
|
|
a.ERR = "err",
|
|
a.CLOS = "clos",
|
|
a.API_OK = "api_ok",
|
|
a.API_NOT = "api_not",
|
|
a.LOGIN_OK = "login_ok",
|
|
a.LOGIN_NOT = "login_not",
|
|
a.NOT_READY = "not_ready",
|
|
a.SDK_READY = "sdk_ready",
|
|
a.SDK_ERROR = "sdk_error",
|
|
a.STORAGE_INIT = "storage_init",
|
|
a.STORAGE_SET = "storage_set",
|
|
a.STORAGE_GET = "storage_get"
|
|
},
|
|
65061: function(e, r) {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
})
|
|
},
|
|
21155: function(e, r, i) {
|
|
"use strict";
|
|
var a, s, u, c, l = i(46490), d = i(90251), p = i(70879), f = i(27337);
|
|
i(34885),
|
|
i(75973),
|
|
i(87535),
|
|
i(75204),
|
|
i(97357),
|
|
i(34333),
|
|
i(7608),
|
|
i(42876),
|
|
i(33933);
|
|
var v = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.Metrics = r.EMetricsEventName = r.EMetricsSdkEventName = void 0;
|
|
var g = v(i(15876))
|
|
, h = i(74794);
|
|
(a = r.EMetricsSdkEventName || (r.EMetricsSdkEventName = {})).MISS_PROPERTY = "sdk_miss_property",
|
|
a.ENCODE_FAILED = "sdk_encode_failed",
|
|
a.DECODE_FAILED = "sdk_decode_failed",
|
|
a.WRONG_TYPE = "sdk_wrong_type",
|
|
a.WRITE_FAILED = "sdk_write_failed",
|
|
(s = c = r.EMetricsEventName || (r.EMetricsEventName = {})).CONNECT_TIME = "connect_time",
|
|
s.CONNECT_FAILED = "connect_failed",
|
|
s.AUTH_TIME = "auth_time",
|
|
s.AUTH_FAILED = "auth_failed",
|
|
s.SEND_TIME = "send_time",
|
|
s.SEND_FAILED = "send_failed",
|
|
s.PING_TIME = "ping_time",
|
|
s.PING_FAILED = "ping_failed",
|
|
s.ERR_MSG = "err_msg",
|
|
s.CLOSE_EVENT = "close_event",
|
|
s.RECONNECT_EVT = "reconnect_evt",
|
|
s.RECONNECT_FAILED = "reconnect_failed",
|
|
s.MSG_DOWN = "msg_down",
|
|
s.PUSH_MSG = "push_msg";
|
|
var m = function() {
|
|
function Metrics(e, r) {
|
|
l._(this, Metrics),
|
|
e.app,
|
|
e.version;
|
|
var i = e.url;
|
|
e.domain,
|
|
e.authType,
|
|
e.uid,
|
|
this.artifactName = r.artifactName,
|
|
this.artifactVersion = r.artifactVersion,
|
|
this.base = {
|
|
url: i
|
|
},
|
|
this._repeatEvt = {}
|
|
}
|
|
return d._(Metrics, [{
|
|
key: "sendApm",
|
|
value: function sendApm(e) {
|
|
this.base.url.indexOf("wss");
|
|
var r = {
|
|
app: {
|
|
type: "App",
|
|
value: {
|
|
platform: {
|
|
type: "Platform",
|
|
value: "PC"
|
|
},
|
|
appVersion: "discovery-0.0.0",
|
|
artifactName: this.artifactName || "@xhs/red-longlink",
|
|
artifactVersion: this.artifactVersion || "0.0.0"
|
|
}
|
|
},
|
|
mob: {
|
|
type: "Mobile",
|
|
value: {
|
|
osVersion: "unknow"
|
|
}
|
|
},
|
|
dvc: {
|
|
type: "Device",
|
|
value: {
|
|
dvceId: ""
|
|
}
|
|
},
|
|
network: {
|
|
type: "Network",
|
|
value: {
|
|
networkType: {
|
|
type: "NetworkType",
|
|
value: "unknow"
|
|
}
|
|
}
|
|
},
|
|
browser: {
|
|
type: "Browser",
|
|
value: {
|
|
matchedPath: "",
|
|
route: "",
|
|
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
|
|
sessionId: "-"
|
|
}
|
|
},
|
|
user: {
|
|
type: "User",
|
|
value: {
|
|
userId: "-"
|
|
}
|
|
},
|
|
frontApmTracker: {
|
|
type: "FrontApmTracker",
|
|
value: {
|
|
InfraRedImWeb: {
|
|
type: "InfraRedImWeb",
|
|
value: e
|
|
}
|
|
}
|
|
}
|
|
};
|
|
(0,
|
|
g.default)("https://fe.xiaohongshu.com/faas/proto/json-to-proto-json-to-proto/proxy", r, {
|
|
maxComboNum: 6,
|
|
collectTime: 6e3
|
|
})
|
|
}
|
|
}, {
|
|
key: "sendRepeat",
|
|
value: function sendRepeat() {
|
|
var e = this;
|
|
Object.keys(this._repeatEvt).forEach(function(r) {
|
|
e.sendApm(e._repeatEvt[r])
|
|
}),
|
|
this._repeatEvt = {},
|
|
clearTimeout(this._repeatTimmer),
|
|
this._repeatTimmer = void 0
|
|
}
|
|
}, {
|
|
key: "push",
|
|
value: function push(e, r, i, a) {
|
|
var s, u = this, l = f._(p._({}, this.base), {
|
|
sdkTime: (0,
|
|
h.now)(),
|
|
evt: e,
|
|
ts: r,
|
|
extra: JSON.stringify(i),
|
|
content: JSON.stringify(a || {})
|
|
}), d = [c.ERR_MSG, c.CLOSE_EVENT, c.RECONNECT_EVT];
|
|
(null == d ? void 0 : d.includes(e)) ? (this._repeatEvt[e] = l,
|
|
(null === (s = this._repeatEvt) || void 0 === s ? void 0 : s.hasOwnProperty(e)) && (this._repeatTimmer = setTimeout(function() {
|
|
u.sendRepeat()
|
|
}, 8e3))) : (e === c.PING_TIME && (this.sendRepeat(),
|
|
clearTimeout(this._repeatTimmer),
|
|
this._repeatTimmer = void 0),
|
|
this.sendApm(l))
|
|
}
|
|
}]),
|
|
Metrics
|
|
}();
|
|
r.Metrics = m
|
|
},
|
|
61700: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(90251)
|
|
, c = i(51606)
|
|
, l = i(27292)
|
|
, d = i(70879)
|
|
, p = i(27337);
|
|
i(86651),
|
|
i(7608),
|
|
i(58051);
|
|
var f = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.NewApm = void 0;
|
|
var v = f(i(15876))
|
|
, g = i(74794)
|
|
, h = f(i(275))
|
|
, m = i(39998)
|
|
, _ = i(34493)
|
|
, y = function(e) {
|
|
function NewApm(e) {
|
|
var r, i;
|
|
return s._(this, NewApm),
|
|
(r = a._(this, NewApm)).ctx = e,
|
|
r.prodUrl = "https://apm-fe.xiaohongshu.com/api/data",
|
|
r.testUrl = "https://apm-fe-test.xiaohongshu.com/api/data",
|
|
r.cnt_map = (i = {},
|
|
c._(i, m.EEvtName.MSG_STA, 0),
|
|
c._(i, m.EEvtName.MSG_OK, 0),
|
|
i),
|
|
r
|
|
}
|
|
return l._(NewApm, e),
|
|
u._(NewApm, [{
|
|
key: "collect",
|
|
value: function collect(e) {
|
|
e === m.EEvtName.MSG_STA && (this.cnt_map[m.EEvtName.MSG_STA] += 1),
|
|
e === m.EEvtName.MSG_OK && (this.cnt_map[m.EEvtName.MSG_OK] += 1);
|
|
var r = this.cnt_map[m.EEvtName.MSG_STA]
|
|
, i = this.cnt_map[m.EEvtName.MSG_OK];
|
|
r > 5 && (this.push({
|
|
evt: m.EEvtName.MSG_STA,
|
|
cnt: r,
|
|
ts: i
|
|
}),
|
|
this.cnt_map[m.EEvtName.MSG_STA] = 0,
|
|
this.cnt_map[m.EEvtName.MSG_OK] = 0)
|
|
}
|
|
}, {
|
|
key: "push",
|
|
value: function push(e, r) {
|
|
var i, a, s, u, c = null === (i = this.ctx) || void 0 === i ? void 0 : i.trackerCtx();
|
|
if (!!(null === (s = null == c ? void 0 : c.trackerEnable) || void 0 === s || s)) {
|
|
var l = (null == r ? void 0 : r.networkType) || c.context_networkType
|
|
, f = {
|
|
clientEventTime: (0,
|
|
g.now)(),
|
|
clientTime: (0,
|
|
g.now)(),
|
|
context_nameTracker: c.context_nameTracker,
|
|
context_platform: c.context_platform,
|
|
context_appVersion: c.context_appVersion,
|
|
context_osVersion: c.context_osVersion,
|
|
context_deviceModel: c.context_deviceModel,
|
|
context_deviceId: c.context_deviceId,
|
|
context_package: c.context_package,
|
|
context_networkType: l,
|
|
context_matchedPath: c.context_matchedPath,
|
|
context_route: c.context_route,
|
|
context_userAgent: c.context_userAgent,
|
|
context_artifactName: c.context_artifactName,
|
|
context_artifactVersion: c.context_artifactVersion,
|
|
context_networkQuality: c.context_networkQuality,
|
|
context_userId: c.context_userId,
|
|
measurement_name: c.measurement_name,
|
|
measurement_data: p._(d._({}, e), {
|
|
env: this.ctx.env,
|
|
extra: JSON.stringify(Object.assign(null !== (u = e.extra) && void 0 !== u ? u : {}, {
|
|
traceid: (0,
|
|
_.getFetchCtx)()
|
|
}))
|
|
})
|
|
}
|
|
, h = this.prodUrl;
|
|
(null === this || void 0 === this ? void 0 : null === (a = this.ctx) || void 0 === a ? void 0 : a.trackerLog) && (0,
|
|
g.log)("%c [埋点数据]", "color:#0f0;", null == e ? void 0 : e.evt, h, f);
|
|
try {
|
|
(0,
|
|
v.default)(h, f, {
|
|
maxComboNum: this.ctx.maxComboNum,
|
|
collectTime: 3e3
|
|
})
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
}]),
|
|
NewApm
|
|
}(h.default);
|
|
r.NewApm = y
|
|
},
|
|
41172: function(e, r) {
|
|
"use strict";
|
|
function createClose(e) {
|
|
return {
|
|
code: e.code,
|
|
reason: e.reason,
|
|
wasClean: (null == e ? void 0 : e.wasClean) || !1
|
|
}
|
|
}
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.createClose = r.CLOSE_TYPE = void 0,
|
|
r.CLOSE_TYPE = {
|
|
WsAbnormal: {
|
|
code: 1006,
|
|
reason: "服务异常断连"
|
|
},
|
|
Kickout: {
|
|
code: 3103,
|
|
reason: "下推异常,服务重启"
|
|
},
|
|
User: {
|
|
code: 4e3,
|
|
reason: "用户自主断连"
|
|
},
|
|
PingTimeout: {
|
|
code: 4001,
|
|
reason: "长连接心跳超时断连"
|
|
},
|
|
HealthCheck: {
|
|
code: 4002,
|
|
reason: "健康检查失败关闭"
|
|
},
|
|
ReconnectClose: {
|
|
code: 4004,
|
|
reason: "用户重连断连"
|
|
},
|
|
ConnectTimeoutClose: {
|
|
code: 4005,
|
|
reason: "连接超时关闭"
|
|
},
|
|
Frequent: {
|
|
code: 5104300,
|
|
reason: "长连接频繁断连"
|
|
},
|
|
Abnormal: {
|
|
code: 5104301,
|
|
reason: "长连接异常断连"
|
|
},
|
|
NetworkFail: {
|
|
code: 5104302,
|
|
reason: "长连接因网络断开被关闭"
|
|
}
|
|
},
|
|
r.createClose = createClose
|
|
},
|
|
44509: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(27292)
|
|
, c = i(30961);
|
|
i(41593),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.CustomAggregateError = void 0;
|
|
var l = function(e) {
|
|
function CustomAggregateError(e) {
|
|
var r, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "Multiple errors occurred", u = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
|
|
return s._(this, CustomAggregateError),
|
|
(r = a._(this, CustomAggregateError, [i])).errors = e,
|
|
r.message = i,
|
|
r.cnt = u,
|
|
r.name = "CustomAggregateError",
|
|
r.errors = e,
|
|
r
|
|
}
|
|
return u._(CustomAggregateError, e),
|
|
CustomAggregateError
|
|
}(c._(Error));
|
|
r.CustomAggregateError = l
|
|
},
|
|
79066: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(27292);
|
|
i(75973),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057),
|
|
i(97357),
|
|
i(34333),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.LonglinkError = r.ERR_CODE = r.ERR_TYPE = void 0;
|
|
var c = i(70594);
|
|
r.ERR_TYPE = {
|
|
WebSocketErrorCreate: {
|
|
code: 5104100,
|
|
message: "创建 WebSocket 错误"
|
|
},
|
|
WebSocketErrorEvent: {
|
|
code: 5104101,
|
|
message: "WebSocket 运行时错误"
|
|
},
|
|
BridgeErrorCreate: {
|
|
code: 5104102,
|
|
message: "Bridge 通道连接错误"
|
|
},
|
|
BridgeErrorEvent: {
|
|
code: 5104103,
|
|
message: "Bridge 通道运行时错误"
|
|
},
|
|
TransportErrorWriteData: {
|
|
code: 5104200,
|
|
message: "上行数据错误"
|
|
},
|
|
TransportUnknowPacket: {
|
|
code: 5104201,
|
|
message: "收到未知类型的包"
|
|
},
|
|
TransportConnFailed: {
|
|
code: 5104202,
|
|
message: "通道连接失败"
|
|
},
|
|
TransportAuthFailed: {
|
|
code: 5104203,
|
|
message: "通道鉴权失败"
|
|
},
|
|
TransportBindFailed: {
|
|
code: 5104204,
|
|
message: "虚拟绑定失败"
|
|
},
|
|
TransportPingTimeout: {
|
|
code: 5104205,
|
|
message: "通道心跳超时"
|
|
},
|
|
TransportWrongType: {
|
|
code: 5104206,
|
|
message: "不支持该类型包"
|
|
},
|
|
TransportReconnectFailed: {
|
|
code: 5104207,
|
|
message: "通道重连失败"
|
|
},
|
|
TransportDownMsgFailed: {
|
|
code: 5104208,
|
|
message: "解析下行消息失败"
|
|
},
|
|
FrequentClose: {
|
|
code: 5104209,
|
|
message: "通道频繁断连"
|
|
},
|
|
AbnormalClose: {
|
|
code: 5104210,
|
|
message: "通道异常断连"
|
|
},
|
|
TransportSendMsgFailed: {
|
|
code: 5104211,
|
|
message: "发送消息失败"
|
|
},
|
|
TransportMsgMapFailed: {
|
|
code: 5104212,
|
|
message: "消息 smid 映射查找失败"
|
|
},
|
|
TransportErrorStatus: {
|
|
code: 5104213,
|
|
message: "长连不在正确状态下操作"
|
|
},
|
|
TransportPreConnectClose: {
|
|
code: 5104214,
|
|
message: "上次连接 close 回调"
|
|
}
|
|
},
|
|
r.ERR_CODE = Object.keys(r.ERR_TYPE).reduce(function(e, i) {
|
|
return e[i] = r.ERR_TYPE[i].code,
|
|
e
|
|
}, {});
|
|
var l = function(e) {
|
|
function LonglinkError(e) {
|
|
return s._(this, LonglinkError),
|
|
a._(this, LonglinkError, [e])
|
|
}
|
|
return u._(LonglinkError, e),
|
|
LonglinkError
|
|
}(c.BaseError);
|
|
r.LonglinkError = l
|
|
},
|
|
70594: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(35329)
|
|
, s = i(46490)
|
|
, u = i(90251)
|
|
, c = i(27292)
|
|
, l = i(30961);
|
|
i(75973),
|
|
i(82427),
|
|
i(36062),
|
|
i(57057),
|
|
i(97357),
|
|
i(34333),
|
|
i(41593),
|
|
i(7608),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.BaseError = r.ERR_CODE = r.ERR_TYPE_BASE = r.EMPTY_ERROR_CODE = void 0,
|
|
r.EMPTY_ERROR_CODE = -1,
|
|
r.ERR_TYPE_BASE = {
|
|
DefaultError: {
|
|
code: 5104001,
|
|
message: "sdk default error"
|
|
},
|
|
TimeoutError: {
|
|
code: 5104002,
|
|
message: "sdk timeout error"
|
|
},
|
|
HttpFetchError: {
|
|
code: 5104003,
|
|
message: "http fetch error"
|
|
}
|
|
},
|
|
r.ERR_CODE = Object.keys(r.ERR_TYPE_BASE).reduce(function(e, i) {
|
|
return e[i] = r.ERR_TYPE_BASE[i].code,
|
|
e
|
|
}, {});
|
|
var d = function(e) {
|
|
function BaseError(e) {
|
|
s._(this, BaseError);
|
|
var r, i = e.errType, u = e.message, c = e.detail;
|
|
return (r = a._(this, BaseError, [u])).retryTimes = 0,
|
|
r.retryErrors = [],
|
|
r.code = i.code,
|
|
r.detail = c,
|
|
r
|
|
}
|
|
return c._(BaseError, e),
|
|
u._(BaseError, [{
|
|
key: "toString",
|
|
value: function toString() {
|
|
return JSON.stringify({
|
|
code: this.code,
|
|
message: this.message,
|
|
detail: this.detail,
|
|
retryTimes: this.retryTimes,
|
|
retryErrors: this.retryErrors
|
|
})
|
|
}
|
|
}], [{
|
|
key: "create",
|
|
value: function create() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : r.ERR_TYPE_BASE.DefaultError
|
|
, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e.message
|
|
, a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}
|
|
, s = {};
|
|
return (null == a ? void 0 : a.code) && (s.code = a.code),
|
|
(null == a ? void 0 : a.reason) && (s.reason = a.reason),
|
|
(null == a ? void 0 : a.message) && (s.message = a.message),
|
|
(null == a ? void 0 : a.wasClean) && (s.wasClean = a.wasClean),
|
|
(null == a ? void 0 : a.isTrusted) && (s.wasClean = a.isTrusted),
|
|
new this({
|
|
errType: e,
|
|
message: i || e.message,
|
|
detail: {}
|
|
})
|
|
}
|
|
}]),
|
|
BaseError
|
|
}(l._(Error));
|
|
r.BaseError = d,
|
|
d.ERR_CODE = r.ERR_CODE
|
|
},
|
|
87853: function(e, r, i) {
|
|
"use strict";
|
|
i(34885),
|
|
i(95477),
|
|
i(58486),
|
|
i(72169),
|
|
i(87989),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.getDefaultDeviceInfo = r.getUA = r.getDeviceInfo = r.networkStatus = void 0;
|
|
var a = i(1266)
|
|
, s = i(74794);
|
|
r.networkStatus = function() {
|
|
return 1
|
|
}
|
|
;
|
|
function getFingerPrint() {
|
|
return "".concat((0,
|
|
s.now)())
|
|
}
|
|
function getPlatform() {
|
|
return a.EPlatformType.BROWSER
|
|
}
|
|
function getOS() {
|
|
return a.EOSType.WEB
|
|
}
|
|
function getUA() {
|
|
return "undefined" == typeof window || window.navigator ? "not-browser-ua" : window.navigator.userAgent
|
|
}
|
|
function getDefaultDeviceInfo(e) {
|
|
if (null !== e.deviceInfo)
|
|
return e.deviceInfo;
|
|
var i = (0,
|
|
r.getDeviceInfo)()
|
|
, a = {
|
|
deviceId: (0,
|
|
s.genUuid)(),
|
|
fingerprint: getFingerPrint(),
|
|
platform: getPlatform(),
|
|
os: getOS(),
|
|
osVersion: i.osVersion,
|
|
deviceName: i.browserName,
|
|
appVersion: i.browserVersion,
|
|
userAgent: i.userAgent || "ua"
|
|
};
|
|
return e.deviceInfo = a,
|
|
a
|
|
}
|
|
r.getDeviceInfo = function() {
|
|
var e, r, i, a, s, u, c = null !== (r = null === (e = navigator) || void 0 === e ? void 0 : e.userAgent) && void 0 !== r ? r : "";
|
|
return c.indexOf("Opera") > -1 || c.indexOf("OPR") > -1 ? (i = "Opera",
|
|
a = (a = c.match(/(Opera|OPR)\/?\s*(\.?\d+(\.\d+)*)/i)) ? a[2] : "0.0.0") : c.indexOf("Edg") > -1 ? (i = "Microsoft Edge",
|
|
a = (a = c.match(/(Edg)\/?\s*(\.?\d+(\.\d+)*)/i)) ? a[2] : "0.0.0") : c.indexOf("Chrome") > -1 ? (i = "Chrome",
|
|
a = (a = c.match(/(Chrome)\/?\s*(\.?\d+(\.\d+)*)/i)) ? a[2] : "0.0.0") : c.indexOf("Safari") > -1 ? (i = "Safari",
|
|
a = (a = c.match(/(Safari)\/?\s*(\.?\d+(\.\d+)*)/i)) ? a[2] : "0.0.0") : c.indexOf("Firefox") > -1 ? (i = "Firefox",
|
|
a = (a = c.match(/(Firefox)\/?\s*(\.?\d+(\.\d+)*)/i)) ? a[2] : "0.0.0") : (i = "Unknown",
|
|
a = "0.0.0"),
|
|
-1 !== c.indexOf("Windows") ? (s = "Windows",
|
|
u = (u = c.match(/Windows NT\s*(\d+\.\d+)/)) ? u[1] : "Unknown") : -1 !== c.indexOf("Mac OS X") ? (s = "macOS",
|
|
u = (u = c.match(/Mac OS X\s*(\d+[_.]\d+)/)) ? u[1].replace(/_/g, ".") : "Unknown") : -1 !== c.indexOf("Android") ? (s = "Android",
|
|
u = (u = c.match(/Android\s*(\d+\.\d+)/)) ? u[1] : "Unknown") : (-1 !== c.indexOf("Linux") ? s = "Linux" : s = "Unknown",
|
|
u = "Unknown"),
|
|
{
|
|
browserName: i,
|
|
browserVersion: a,
|
|
osName: s,
|
|
osVersion: u,
|
|
userAgent: c
|
|
}
|
|
}
|
|
,
|
|
r.getUA = getUA,
|
|
r.getDefaultDeviceInfo = getDefaultDeviceInfo
|
|
},
|
|
34493: function(e, r, i) {
|
|
"use strict";
|
|
var a, s = i(70879), u = i(27337);
|
|
i(42876),
|
|
i(33933),
|
|
i(36277),
|
|
i(34333),
|
|
i(87989);
|
|
var c = this && this.__importDefault || function(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
;
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.setFetchCtx = r.getFetchCtx = r.httpFetch = void 0;
|
|
var l = c(i(86246))
|
|
, d = i(70594)
|
|
, p = i(25834)
|
|
, f = i(74794)
|
|
, v = l.default.create({
|
|
timeout: 1e4,
|
|
headers: {
|
|
"Content-Type": "application/json"
|
|
}
|
|
});
|
|
v.interceptors.response.use(function(e) {
|
|
var r, i;
|
|
if (!(null == e ? void 0 : null === (i = e.config) || void 0 === i ? void 0 : null === (r = i.url) || void 0 === r ? void 0 : r.includes("apm-fe"))) {
|
|
var a = (0,
|
|
p.processHttpRes)(e);
|
|
if (200 !== a.status) {
|
|
var s = a.headers
|
|
, u = (null == a ? void 0 : a.statusText) || "http request failed";
|
|
return Promise.reject(d.BaseError.create({
|
|
code: a.status || -1,
|
|
message: u
|
|
}, u, {
|
|
status: a.status,
|
|
traceId: (null == s ? void 0 : s["request-id"]) || "empty-trace-id",
|
|
data: a.data
|
|
}))
|
|
}
|
|
}
|
|
return e
|
|
}, function(e) {
|
|
return Promise.reject(e)
|
|
});
|
|
var g = function(e, r, i) {
|
|
var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "POST"
|
|
, c = arguments.length > 4 ? arguments[4] : void 0;
|
|
return new Promise(function(l, p) {
|
|
var g = (c || {}).disbaleTrace
|
|
, h = s._({
|
|
"Content-Type": "application/json"
|
|
}, r);
|
|
!g && (h["x-b3-traceid"] = (0,
|
|
f.genTraceId)()),
|
|
v({
|
|
url: e,
|
|
method: a,
|
|
params: "GET" === a ? i : void 0,
|
|
headers: h,
|
|
data: "POST" === a ? i : void 0
|
|
}).then(function(e) {
|
|
l(u._(s._({}, e.data), {
|
|
headers: e.headers
|
|
}))
|
|
}).catch(function(r) {
|
|
r.response ? p(d.BaseError.create(d.ERR_TYPE_BASE.HttpFetchError, "request(".concat(e, ") send but response code = ").concat(r.response.status), r.response)) : r.request ? p(d.BaseError.create(d.ERR_TYPE_BASE.HttpFetchError, "request(".concat(e, ") send with no response"), null == r ? void 0 : r.config)) : p(r)
|
|
})
|
|
}
|
|
)
|
|
}
|
|
, h = function() {
|
|
return a
|
|
}
|
|
, m = function(e) {
|
|
a = e
|
|
};
|
|
r.httpFetch = g,
|
|
r.getFetchCtx = h,
|
|
r.setFetchCtx = m
|
|
},
|
|
15876: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(41622)
|
|
, s = i(36102);
|
|
i(7608),
|
|
i(86651),
|
|
i(36277),
|
|
i(34333),
|
|
i(87989),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.destroy = void 0;
|
|
var u = i(34493)
|
|
, c = Function("return this")();
|
|
c.__APM_COMBO_CACHE_GROUP__ = null;
|
|
var l = !1
|
|
, d = null;
|
|
function sendByHttp(e, r) {
|
|
return (0,
|
|
u.httpFetch)(e, {
|
|
"Biz-Type": "apm_fe",
|
|
Batch: !0
|
|
}, r, "POST", {
|
|
disbaleTrace: !0
|
|
})
|
|
}
|
|
function requestCombo(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}
|
|
, u = i.request
|
|
, p = void 0 === u ? null : u
|
|
, f = i.isCombo
|
|
, v = void 0 === f || f
|
|
, g = i.maxComboNum
|
|
, h = void 0 === g ? 5 : g
|
|
, m = i.collectTime
|
|
, _ = void 0 === m ? 1e3 * h : m
|
|
, y = i.callback
|
|
, w = void 0 === y ? null : y;
|
|
if (e && "{}" !== JSON.stringify(r)) {
|
|
var E, S = (E = a._(function() {
|
|
var e, r, i, a, u;
|
|
return s._(this, function(s) {
|
|
switch (s.label) {
|
|
case 0:
|
|
if (s.trys.push([0, 3, , 4]),
|
|
!(null === (e = c.__APM_COMBO_CACHE_GROUP__) || void 0 === e ? void 0 : e.data.length))
|
|
return [3, 2];
|
|
return i = (r = c.__APM_COMBO_CACHE_GROUP__).key,
|
|
a = r.data,
|
|
clearTimeout(r.timer),
|
|
c.__APM_COMBO_CACHE_GROUP__ = null,
|
|
[4, (p || sendByHttp).call(null, i, a)];
|
|
case 1:
|
|
return [2, s.sent()];
|
|
case 2:
|
|
return [3, 4];
|
|
case 3:
|
|
return s.sent(),
|
|
[3, 4];
|
|
case 4:
|
|
return [2, null]
|
|
}
|
|
})
|
|
}),
|
|
function fetch() {
|
|
return E.apply(this, arguments)
|
|
}
|
|
);
|
|
return !l && (l = !0),
|
|
new Promise(function(i, a) {
|
|
if (v) {
|
|
if (e) {
|
|
var s;
|
|
if (d = e,
|
|
!(null === (s = c.__APM_COMBO_CACHE_GROUP__) || void 0 === s ? void 0 : s.key) && (c.__APM_COMBO_CACHE_GROUP__ = {
|
|
key: e,
|
|
data: [],
|
|
timer: setTimeout(function() {
|
|
var e, r = null === (e = c.__APM_COMBO_CACHE_GROUP__) || void 0 === e ? void 0 : e.data;
|
|
S().then(function(e) {
|
|
null == w || w(r),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}, _)
|
|
}),
|
|
c.__APM_COMBO_CACHE_GROUP__.data.push(r),
|
|
c.__APM_COMBO_CACHE_GROUP__.data.length >= h) {
|
|
var u, l = null === (u = c.__APM_COMBO_CACHE_GROUP__) || void 0 === u ? void 0 : u.data;
|
|
S().then(function(e) {
|
|
null == w || w(l),
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}
|
|
} else
|
|
a("接口 url: ".concat(e, " 不能为空"))
|
|
} else
|
|
p.call(null, e, r).then(function(e) {
|
|
i(e)
|
|
}).catch(function(e) {
|
|
a(e)
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}
|
|
function destroy() {
|
|
var e;
|
|
(null === (e = c.__APM_COMBO_CACHE_GROUP__) || void 0 === e ? void 0 : e.data.length) && d && (navigator.sendBeacon(d, JSON.stringify(c.__APM_COMBO_CACHE_GROUP__.data)),
|
|
c.__APM_COMBO_CACHE_GROUP__ = null)
|
|
}
|
|
r.default = requestCombo,
|
|
r.destroy = destroy
|
|
},
|
|
92381: function(e, r, i) {
|
|
"use strict";
|
|
var a, s, u, c = i(41622), l = i(36102);
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.defaultStorage = void 0;
|
|
var d = {
|
|
setItem: (a = c._(function(e, r) {
|
|
return l._(this, function(i) {
|
|
try {
|
|
return localStorage.setItem(e, r),
|
|
[2, r]
|
|
} catch (e) {
|
|
return [2, null]
|
|
}
|
|
return [2]
|
|
})
|
|
}),
|
|
function(e, r) {
|
|
return a.apply(this, arguments)
|
|
}
|
|
),
|
|
getItem: (s = c._(function(e) {
|
|
var r;
|
|
return l._(this, function(i) {
|
|
try {
|
|
if (r = localStorage.getItem(e),
|
|
null !== r)
|
|
return [2, r];
|
|
return [2, null]
|
|
} catch (e) {
|
|
return [2, null]
|
|
}
|
|
return [2]
|
|
})
|
|
}),
|
|
function(e) {
|
|
return s.apply(this, arguments)
|
|
}
|
|
),
|
|
removeItem: (u = c._(function(e) {
|
|
return l._(this, function(r) {
|
|
try {
|
|
localStorage.removeItem(e)
|
|
} catch (e) {}
|
|
return [2]
|
|
})
|
|
}),
|
|
function(e) {
|
|
return u.apply(this, arguments)
|
|
}
|
|
)
|
|
};
|
|
r.defaultStorage = d
|
|
},
|
|
74794: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(15313).Buffer
|
|
, s = i(41622)
|
|
, u = i(70879)
|
|
, c = i(36102);
|
|
i(6045),
|
|
i(10364),
|
|
i(67673),
|
|
i(19077),
|
|
i(75973),
|
|
i(42876),
|
|
i(33933),
|
|
i(87394),
|
|
i(94941),
|
|
i(48421),
|
|
i(97357),
|
|
i(34333),
|
|
i(34885),
|
|
i(36277),
|
|
i(27461),
|
|
i(23339),
|
|
i(51109),
|
|
i(87989),
|
|
i(9557),
|
|
i(55947),
|
|
i(87535),
|
|
i(75204),
|
|
i(86651),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.promiseTimeoutAndRetry = r.isString = r.merge = r.formatMetricsError = r.isEmptyString = r.isCloseEvent = r.isObject = r.isRawData = r.genTraceId = r.genMidId = r.genUuid = r.isAbnormalClose = r.notNeedEmitClose = r.isUserClose = r.diffTime = r.ptime = r.now = r.timeoutPromise = r.uniq = r.octopusErrorCodeScope = r.string2Object = r.formatErrors = r.log = void 0;
|
|
var l = i(50142)
|
|
, d = i(10727)
|
|
, p = i(41172)
|
|
, f = i(44509)
|
|
, v = i(70594)
|
|
, g = i(34493);
|
|
r.log = console.log.bind(console);
|
|
r.formatErrors = function(e) {
|
|
return (null == e ? void 0 : e.map(function(e) {
|
|
return {
|
|
code: e.code,
|
|
message: e.message
|
|
}
|
|
})) || []
|
|
}
|
|
;
|
|
r.string2Object = function(e) {
|
|
return "string" == typeof e ? JSON.parse(e) : e
|
|
}
|
|
;
|
|
r.octopusErrorCodeScope = function(e) {
|
|
if (e) {
|
|
if ([v.ERR_TYPE_BASE.DefaultError.code, v.ERR_TYPE_BASE.TimeoutError.code, v.ERR_TYPE_BASE.HttpFetchError.code].includes(e) || -1 === e || e >= 5e6 && e < 5003e3)
|
|
return d.EErrorAvailable.Available;
|
|
if (5104213 === e || e >= 2e6 && e <= 2009999 || e >= 3e6 && e <= 3009999 || e >= 31e5 && e <= 3109999)
|
|
return d.EErrorAvailable.UnAvailable
|
|
}
|
|
return d.EErrorAvailable.Other
|
|
}
|
|
;
|
|
function timeoutPromise() {
|
|
var e, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 5e3, i = arguments.length > 1 ? arguments[1] : void 0, a = arguments.length > 2 ? arguments[2] : void 0, s = arguments.length > 3 ? arguments[3] : void 0;
|
|
return Promise.race([new Promise(function(i, u) {
|
|
e = setTimeout(function() {
|
|
s && s(),
|
|
u(a)
|
|
}, r)
|
|
}
|
|
), i]).then(function(r) {
|
|
return clearTimeout(e),
|
|
r
|
|
}).catch(function(r) {
|
|
throw clearTimeout(e),
|
|
r
|
|
})
|
|
}
|
|
function now() {
|
|
return new Date().getTime()
|
|
}
|
|
function ptime() {
|
|
return now()
|
|
}
|
|
function diffTime(e) {
|
|
if (e)
|
|
return now() - e
|
|
}
|
|
function isUserClose(e) {
|
|
return [p.CLOSE_TYPE.User.code, p.CLOSE_TYPE.ReconnectClose.code].includes(null == e ? void 0 : e.code)
|
|
}
|
|
function notNeedEmitClose(e) {
|
|
return [p.CLOSE_TYPE.ReconnectClose.code, p.CLOSE_TYPE.HealthCheck.code, p.CLOSE_TYPE.PingTimeout.code].includes(null == e ? void 0 : e.code)
|
|
}
|
|
function isAbnormalClose(e) {
|
|
return [p.CLOSE_TYPE.WsAbnormal.code, p.CLOSE_TYPE.Kickout.code, p.CLOSE_TYPE.PingTimeout.code].includes(e.code)
|
|
}
|
|
function genUuid() {
|
|
return "".concat(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16), "-").concat(new Date().getTime().toString(16))
|
|
}
|
|
function genMidId() {
|
|
return genUuid()
|
|
}
|
|
function genTraceId() {
|
|
var e = (0,
|
|
l.traceId)();
|
|
return (0,
|
|
g.setFetchCtx)(e),
|
|
e
|
|
}
|
|
r.uniq = function(e) {
|
|
return e ? e.filter(function(r, i) {
|
|
return e.indexOf(r, 0) === i
|
|
}) : []
|
|
}
|
|
,
|
|
r.timeoutPromise = timeoutPromise,
|
|
r.now = now,
|
|
r.ptime = ptime,
|
|
r.diffTime = diffTime,
|
|
r.isUserClose = isUserClose,
|
|
r.notNeedEmitClose = notNeedEmitClose,
|
|
r.isAbnormalClose = isAbnormalClose,
|
|
r.genUuid = genUuid,
|
|
r.genMidId = genMidId,
|
|
r.genTraceId = genTraceId;
|
|
r.isRawData = function(e) {
|
|
return "string" == typeof e || e instanceof a
|
|
}
|
|
;
|
|
r.isObject = function(e) {
|
|
return "[object Object]" === Object.prototype.toString.call(e)
|
|
}
|
|
;
|
|
r.isCloseEvent = function(e) {
|
|
return "[object CloseEvent]" === Object.prototype.toString.call(e)
|
|
}
|
|
;
|
|
function formatMetricsError(e, r) {
|
|
return {
|
|
type: e,
|
|
detail: r
|
|
}
|
|
}
|
|
function merge(e) {
|
|
for (var i = arguments.length, a = Array(i > 1 ? i - 1 : 0), s = 1; s < i; s++)
|
|
a[s - 1] = arguments[s];
|
|
var c = u._({}, e);
|
|
return e && a ? (null == a || a.forEach(function(e) {
|
|
e && Object.keys(e).forEach(function(i) {
|
|
var a = c[i]
|
|
, s = e[i];
|
|
Array.isArray(a) && Array.isArray(s) ? c[i] = a.concat(s) : (0,
|
|
r.isObject)(a) && (0,
|
|
r.isObject)(s) ? c[i] = merge(a, s) : (0,
|
|
r.isObject)(s) ? c[i] = merge({}, s) : c[i] = s
|
|
})
|
|
}),
|
|
c) : c
|
|
}
|
|
function isString(e) {
|
|
return "string" == typeof e || e instanceof String
|
|
}
|
|
function promiseTimeoutAndRetry(e) {
|
|
return _promiseTimeoutAndRetry.apply(this, arguments)
|
|
}
|
|
function _promiseTimeoutAndRetry() {
|
|
return (_promiseTimeoutAndRetry = s._(function(e) {
|
|
var i, a, u, l, d, p, g, h, m = arguments;
|
|
function getArrayItem(e) {
|
|
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0
|
|
, i = e || [5e3]
|
|
, a = h[r];
|
|
if (a < i.length) {
|
|
var s = i[a];
|
|
return h[r] += 1,
|
|
s
|
|
}
|
|
return i[i.length - 1]
|
|
}
|
|
function sendOrRetry(e, r) {
|
|
return _sendOrRetry.apply(this, arguments)
|
|
}
|
|
function _sendOrRetry() {
|
|
return (_sendOrRetry = s._(function(e, s) {
|
|
var h, m, _, y, w, E, S, T, b, k;
|
|
return c._(this, function(c) {
|
|
switch (c.label) {
|
|
case 0:
|
|
_ = (m = (h = e)()).promise,
|
|
y = m.info,
|
|
w = m.transportType,
|
|
c.label = 1;
|
|
case 1:
|
|
return c.trys.push([1, 3, , 7]),
|
|
[4, Promise.race([_, new Promise(function(e, r) {
|
|
return setTimeout(function() {
|
|
return r(v.BaseError.create(v.ERR_TYPE_BASE.TimeoutError, "", {
|
|
transportType: w,
|
|
info: y
|
|
}))
|
|
}, Array.isArray(p) ? getArrayItem(p, 1) : p)
|
|
}
|
|
)])];
|
|
case 2:
|
|
return E = c.sent(),
|
|
u && u(E),
|
|
[2, {
|
|
result: E,
|
|
retryTimes: s,
|
|
retryErrors: (0,
|
|
r.formatErrors)(l),
|
|
transportType: w
|
|
}];
|
|
case 3:
|
|
if (S = c.sent(),
|
|
l.push(S),
|
|
!i.useRetry)
|
|
throw new f.CustomAggregateError(l,"no retry option",0);
|
|
if (T = !1,
|
|
!a)
|
|
return [3, 5];
|
|
return [4, a(s, S, w)];
|
|
case 4:
|
|
b = c.sent(),
|
|
(0,
|
|
r.isObject)(b) ? (T = b.stop,
|
|
b.newPromise && (h = b.newPromise)) : T = b,
|
|
c.label = 5;
|
|
case 5:
|
|
if (s >= d || T)
|
|
throw new f.CustomAggregateError(l,"[".concat(y, "] failed after retry ").concat(T ? s : d, " times"),s);
|
|
return k = Array.isArray(g) ? getArrayItem(g, 0) : g,
|
|
[4, new Promise(function(e) {
|
|
return setTimeout(e, k)
|
|
}
|
|
)];
|
|
case 6:
|
|
return c.sent(),
|
|
[2, sendOrRetry(h, s + 1)];
|
|
case 7:
|
|
return [2]
|
|
}
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
return c._(this, function(r) {
|
|
return i = m.length > 1 && void 0 !== m[1] ? m[1] : {
|
|
timeout: 3e3,
|
|
retryAttempts: 3,
|
|
retryInterval: 1e3,
|
|
useRetry: !0
|
|
},
|
|
a = m.length > 2 ? m[2] : void 0,
|
|
u = m.length > 3 ? m[3] : void 0,
|
|
l = [],
|
|
d = i.retryAttempts,
|
|
p = i.timeout,
|
|
g = i.retryInterval,
|
|
h = [0, 0],
|
|
[2, sendOrRetry(e, 0)]
|
|
})
|
|
})).apply(this, arguments)
|
|
}
|
|
r.isEmptyString = function(e) {
|
|
return void 0 === e || "" === e
|
|
}
|
|
,
|
|
r.formatMetricsError = formatMetricsError,
|
|
r.merge = merge,
|
|
r.isString = isString,
|
|
r.promiseTimeoutAndRetry = promiseTimeoutAndRetry
|
|
},
|
|
50142: function(e, r, i) {
|
|
"use strict";
|
|
i(87989),
|
|
i(34333),
|
|
i(55947),
|
|
i(57015),
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.traceId = void 0;
|
|
var a = i(73271)
|
|
, s = i(2044);
|
|
function traceId() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date.now();
|
|
return "".concat(s.fromNumber(e, !0).shiftLeft(23).or(a.Int.seq()).toString(16).padStart(16, "0")).concat(new s(a.Int.random(32),a.Int.random(32),!0).toString(16).padStart(16, "0"))
|
|
}
|
|
r.traceId = traceId
|
|
},
|
|
2605: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(46490)
|
|
, s = i(90251)
|
|
, u = i(51606);
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.Int = void 0;
|
|
var c = function() {
|
|
function Int() {
|
|
a._(this, Int)
|
|
}
|
|
return s._(Int, null, [{
|
|
key: "random",
|
|
value: function random(e) {
|
|
return Math.floor(Math.random() * Math.pow(2, e))
|
|
}
|
|
}, {
|
|
key: "seq",
|
|
value: function seq() {
|
|
return Int.SEQ > Int.MAX_SEQ && (Int.SEQ = 0),
|
|
Int.SEQ++
|
|
}
|
|
}]),
|
|
Int
|
|
}();
|
|
u._(c, "MAX_SEQ", 8388607),
|
|
u._(c, "SEQ", c.random(23)),
|
|
r.Int = c
|
|
},
|
|
73271: function(e, r, i) {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.Int = void 0;
|
|
var a = i(2605);
|
|
Object.defineProperty(r, "Int", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return a.Int
|
|
}
|
|
})
|
|
},
|
|
49264: function(e, r) {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.XRAY_TRACE_HEADER_NAME = void 0,
|
|
r.XRAY_TRACE_HEADER_NAME = "x-xray-traceid"
|
|
},
|
|
50934: function(e, r, i) {
|
|
"use strict";
|
|
i(87989),
|
|
i(34333),
|
|
i(55947),
|
|
i(57015);
|
|
r.XRAY_TRACE_HEADER_NAME = void 0;
|
|
var a, s = i(61327), u = i(7448), c = i(49264);
|
|
function traceId() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date.now();
|
|
return "".concat(u.fromNumber(e, !0).shiftLeft(23).or(s.Int.seq()).toString(16).padStart(16, "0")).concat(new u(s.Int.random(32),s.Int.random(32),!0).toString(16).padStart(16, "0"))
|
|
}
|
|
Object.defineProperty(r, "XRAY_TRACE_HEADER_NAME", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return c.XRAY_TRACE_HEADER_NAME
|
|
}
|
|
})
|
|
},
|
|
80280: function(e, r, i) {
|
|
"use strict";
|
|
var a = i(46490)
|
|
, s = i(90251)
|
|
, u = i(51606);
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.Int = void 0;
|
|
var c = function() {
|
|
function Int() {
|
|
a._(this, Int)
|
|
}
|
|
return s._(Int, null, [{
|
|
key: "random",
|
|
value: function random(e) {
|
|
return Math.floor(Math.random() * Math.pow(2, e))
|
|
}
|
|
}, {
|
|
key: "seq",
|
|
value: function seq() {
|
|
return Int.SEQ > Int.MAX_SEQ && (Int.SEQ = 0),
|
|
Int.SEQ++
|
|
}
|
|
}]),
|
|
Int
|
|
}();
|
|
u._(c, "MAX_SEQ", 8388607),
|
|
u._(c, "SEQ", c.random(23)),
|
|
r.Int = c
|
|
},
|
|
61327: function(e, r, i) {
|
|
"use strict";
|
|
Object.defineProperty(r, "__esModule", {
|
|
value: !0
|
|
}),
|
|
r.Int = void 0;
|
|
var a = i(80280);
|
|
Object.defineProperty(r, "Int", {
|
|
enumerable: !0,
|
|
get: function get() {
|
|
return a.Int
|
|
}
|
|
})
|
|
},
|
|
51409: function(e) {
|
|
"use strict";
|
|
e.exports = JSON.parse('{"name":"@xhs/red-longlink","version":"2.0.15","keywords":["xhs","longlink","websocket","octopus"],"author":"yanhui <yanhui1@xiaohongshu.com>","description":"IM 长连层, 为上层 SDK 封装传输层能力, 提供事件、状态订阅能力","directories":{"test":"tests","lib":"dist"},"maintainers":["feci"],"scripts":{"dev":"tsc -w","prepublishOnly":"npm run build","build":"tsc","test":"DEBUG=longlink:test && jest"},"publishConfig":{"registry":"http://npm.devops.xiaohongshu.com:7001"},"files":["dist/**/*"],"license":"ISC","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","dependencies":{"@xhs/ozone-schema":"1.142.0","@xhs/untrace":"0.0.1","axios":"0.19.2","esm":"^3.2.25","events":"^3.2.0","isomorphic-ws":"^4.0.1","tiny-typed-emitter":"^2.1.0"},"devDependencies":{"@types/events":"^3.0.0","@types/node":"^20.3.1","@types/ws":"^8.5.5","debug":"4.3.4","vue-tsc":"^1.0.9"},"peerDependencies":{"@react-native-async-storage/async-storage":"*"},"gitHead":"646a2358d50a82017cde8304bc3b2234ffd298d1"}')
|
|
}
|
|
}]);
|
|
//# sourceMappingURL=https://picasso-private-1251524319.cos.ap-shanghai.myqcloud.com/data/formula-static/formula/xhs-pc-web/vendor-dynamic.3e7bc84b.js.map
|