diff --git a/packages/xhs-core/docs/core.js b/packages/xhs-core/docs/core.js new file mode 100644 index 0000000..735a896 --- /dev/null +++ b/packages/xhs-core/docs/core.js @@ -0,0 +1,27446 @@ +(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 ","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 diff --git a/packages/xhs-core/docs/x-common.md b/packages/xhs-core/docs/x-common.md new file mode 100644 index 0000000..02d264d --- /dev/null +++ b/packages/xhs-core/docs/x-common.md @@ -0,0 +1,17 @@ +```js +{ + "s0": 5, // 平台代码(如5代表PC端) + "s1": "", // 预留字段 目前为空值 + "x0": "1", // RC4密钥版本号 + "x1": "4.1.0", // 算法版本号 + "x2": "Windows", // 操作系统类型 + "x3": "xhs-pc-web", // 应用标识 + "x4": "4.62.3", // 客户端版本号 + "x5": "1961ae22425vlf2zbnuz0fzj06s9hml658rk8mt7d50000872854", // cookie中a1 的值 + "x6": 1744612488534, // x-t参数值 +"x7":"XYW_eyJzaWduU3ZuIjoiNTYiLCJzaWduVHlwZSI6IngyIiwiYXBwSWQiOiJ4aHMtcGMtd2ViIiwic2lnblZlcnNpb24iOiIxIiwicGF5bG9hZCI6ImNhYmNiZTYwZTA2ZjE0MWU3ZWNjN2E2ODNkOGNhNDlmZjFiMDMxODdhYjU4MjUyN2I5MWU4NjYzNDBhZmQ0N2NiZGI5MzY4N2YzNDBhMjVkYzE3MGEzMmY5MGFkN2Q0YzUwOThmOGQ2YTAyMjY0NDQ2ODY5YjM1MTJlZjZlZWE3MzRhZGVkNDNkMDAyMzY0ZDBlODgxNmFhMWMwYjIyMmNiNWU4ZGM5Y2ZhZDUyODAzNGQ0MTYyNDA2NWNmZjQ5YzY2OWNkMzUwNDJlYzhjYmFmNTlkNGNlMDU5M2EyNTVhMzU5NTZkZmU0MWJjYjUzMjc3MTc5YWEwNGI1NDhjMjQ2MzJhODgxMWUyMGQyMDA5MDM0MjMzOTkxMWVjOWQ2NzYwZGZiOTlmYzY3N2VjMTA4YmZkOGZhYTI3OTc5NWM5MjEwOTA4MTk5YWYzZjJlODE1NGY2MDYzOTk3MDNmMjI3ZmRiZTk0ZDE5NjUxZjFkNjZjMTBlMDdlN2NiYjU4NjExMzc1OTk5Zjc4ZmY0MWFkZGFmYzQwMDIwMmFkNWUxIn0=",// X-s参数值 + "x8": "I38rHdgsjopgIvesdVwgIC+oIELmBZ5e3VwXLgFTIxS3bqwErFeexd0ekncAzMFYnqthIhJeSnMDKutRI3KsYorWHPtGrbV0P9WfIi/eWc6eYqtyQApPI37ekmR6QL+5Ii6sdneeSfqYHqwl2qt5B0DBIx+PGDi/sVtkIxdsxuwr4qtiIhuaIE3e3LV0I3VTIC7e0utl2ADmsLveDSKsSPw5IEvsiVtJOqw8BuwfPpdeTFWOIx4TIiu6ZPwrPut5IvlaLbgs3qtxIxes1VwHIkumIkIyejgsY/WTge7eSqte/D7sDcpipedeYrDtIC6eDVw2IENsSqtlnlSuNjVtIx5e1qt3bmAeVn8LIESzIESJ+9DUIvzy4I8OIic7ZPwFIviC4o/sDLds6PwVIC7eSd7sf0k4IEve6WGMtVwUIids3s/sxZNeiVtbcUeeYVwCIvTnc06efuwALnOsSuwoIxltIxZSouwOgVwpsoTHPW5ef7NekuwcIEosSgoe1LuMIiNeWL0sxdh5IiJsxPw9IhR9JPwJPutWIv3e1Vt1IiNs1qw5IEKsdVtANqwJsVwXIvq5IxVn8fWRKWoe3qtFIhh2IiNeSPwzblQzn0JsWU4xIiZe4utbZPwRIvvexqtYPpdeVYdsTLYeIhNskdesiqtppuw+IvJeSPwvIieeV0DeIvOedfKeSPtUIx3s6qwV4B8qIkWJIvvsxFOekaKsDYeeSqwoIkpgIEpYzPwqIxGSIE7eirqSwnvs0VtZIhpBbut14lNedM0eYPwpmPwZIvmxIkzZpuwyqPt4Iv5sTeKsVPterVtqIiFwLPwkIvGCwcDWIxdsVb6s1LKeSVwDsqtFI3hxIi7sSqteICNeTg4BIE+0Hs+MIhSvIEAeSPwKGutToVteIkh2ICAsSl0eDqwZJDPnIhL1gVtFOPt1IiqJIikCIxQmIv/edB0sdnbesuw5IhL8yuwFOqwrIC/eWFIpIxqHJBJeiPtZQqtf+jh0tLPzI3baJuwRIxOsYjEYI3QUwuwBIxkCbPtBPVtlICPqICzNIEYMtqwnI3uEIv/sdPwGNjlcIvZVIh6siMJsSuw/IhTpICLb20hoIhbrJ0F4ICOsVnNeTqwuIv3sfPtXICr1IEOsVuwvIEbltqwJIhOsSUL6JVtHBVtfIE7eTVt0Iv7sTg42IvKsTfAsjutfrcNs0VwDQg6sYVtMIkNsWAJejqtUIvDmIxT7QqwMreYRIiJe1PwXNmNejUmNQVt7IiTTIxKsTe+AIkKeiPt3IEZ9IC5ejBYHICWMIxWMzfmFIEOekeqsIvk4IiWwIEosVckEeVt9JutS+eAeVdJs1qtaIh7eDB0ejqwiPqtiIkETyPtO2uw3BVtgguwerVt4oIds0desWcKeffKsSPtdIvMTI3cGIhurIE0sWYJsVbHmoqtkIvFrbc==", // 浏览器环境信息(localStorage中的MINI_BROSWER_INFO_KEY) + "x9": -1854331133,//对(x6+x7+x8)的加密结果(如RC4或AES) + "x10": 22 // 签名计数,可以写死 +} +``` \ No newline at end of file diff --git a/packages/xhs-core/src/index.js b/packages/xhs-core/src/index.js index bb007db..d597a9d 100644 --- a/packages/xhs-core/src/index.js +++ b/packages/xhs-core/src/index.js @@ -57,6 +57,10 @@ class XhsClient { if (cookie) { this.cookie = cookie; } + this.axiosInstance.interceptors.request.use((config) => { + this.printResult('request', config); + return config; + }); } /** * @params {*} args @@ -79,7 +83,16 @@ class XhsClient { const cookieStr = this.axiosInstance.defaults.headers.Cookie; return cookieStr ? qs.parse(cookieStr.replace(/; /g, '&')) : {}; } - + getAgentHeader(config) { + const headers = config?.headers || {}; + const newHeaders = { + 'user-agent': this.userAgent, + 'Content-Type': 'application/json', + ...headers, + }; + config.headers = newHeaders; + return config; + } _preHeaders(url, data = null) { let a1 = this.cookieDict.a1; let b1 = ''; @@ -91,10 +104,13 @@ class XhsClient { headers: { 'x-s': X_S, 'x-t': X_t, - 'xs-common': X_S_COMMON, + // 'x-s-common': X_S_COMMON, }, }; } + getXCommon(a1, b1, x_s, x_t) { + return getXCommon(a1, b1 || '', x_s, String(x_t)); + } getCookieMap() { const cookie = this.cookie; let cookieDict = {}; @@ -127,8 +143,19 @@ class XhsClient { try { delete config.sign; const requestOptions = { method, url, ...config }; - this.printResult('request', requestOptions); - const response = await this.axiosInstance(requestOptions); + // const newConfig = this.getAgentHeader(requestOptions); + const newConfig = requestOptions; + const response = await this.axiosInstance(newConfig).catch((error) => { + console.error('Error in request:', error?.status); + return { + code: error.status, + status: error.status, + msg: '请求失败', + data: null, + error: error, + }; + }); + console.log('response', response.status); if (!response.data) return response; if (response.status === 471 || response.status === 461) { const verifyType = response.headers['verifytype']; @@ -136,20 +163,12 @@ class XhsClient { throw new NeedVerifyError(`出现验证码,请求失败,Verifytype: ${verifyType},Verifyuuid: ${verifyUuid}`, response, verifyType, verifyUuid); } - const data = response.data; + const data = response?.data; this.printResult('reponse', { url: url, response, }); - if (data.success) { - return data; - } else if (data.code === ErrorEnum.IP_BLOCK.code) { - throw new IPBlockError(ErrorEnum.IP_BLOCK.msg, response); - } else if (data.code === ErrorEnum.SIGN_FAULT.code) { - throw new SignError(ErrorEnum.SIGN_FAULT.msg, response); - } else { - throw new DataFetchError(data, response); - } + return data; } catch (error) { if (error.response && (error.response.status === 471 || error.response.status) === 461) { // Handle verification error @@ -157,9 +176,51 @@ class XhsClient { const verifyUuid = error.response.headers['verifyuuid']; throw new NeedVerifyError(`出现验证码,请求失败,Verifytype: ${verifyType},Verifyuuid: ${verifyUuid}`, error.response, verifyType, verifyUuid); } - throw error; + console.error('Error in request:', error); + return { + code: 500, + msg: '请求失败', + data: null, + }; } } + /** + * GET的请求 data必须为null + * @param {*} uri + * @param {*} data + * @param {*} config + * @returns + */ + async requestSign(uri, data = null, config = {}) { + const header = config.headers || {}; + const xs = header['x-s']; + const needSign = config.needSign ?? true; + if (needSign && config.sign && !xs) { + await config.sign(uri, data, config); + } + // else if (needSign && !xs) { + // const { headers } = this._preHeaders(uri, data); + // config = { ...config, headers: { ...config.headers, ...headers } }; + // } + delete config.sign; + delete config.needSign; + + return config; + } + getEndpoint(config) { + let endpoint = this._host; + let isCreator = config?.isCreator ?? false; + let isCustomer = config?.isCustomer ?? false; + if (isCustomer) { + endpoint = this._customerHost; + } else if (isCreator) { + endpoint = this._creatorHost; + } + delete config.isCreator; + delete config.isCustomer; + + return { endpoint, isCreator, isCustomer }; + } /** * * @param {*} uri @@ -168,6 +229,7 @@ class XhsClient { * @param {*} [config.sign] - Whether to sign the request * @param {boolean} [config.isCreator] - Whether the request is for a creator * @param {boolean} [config.isCustomer] - Whether the request is for a customer + * @param {boolean} [config.needSign] - 是否需要 sign * @param {*} [config.headers] - XSEC token for authentication * @returns */ @@ -175,22 +237,10 @@ class XhsClient { if (params) { uri = `${uri}?${qs.stringify(params)}`; } - const header = config.headers || {}; - const xs = header['x-s']; - if (config.sign && !xs) { - await config.sign(uri, null, config); - } else if (!xs) { - const { headers } = this._preHeaders(uri, null); - config = { ...config, headers: { ...config.headers, ...headers } }; - } - let isCreator = config?.isCreator ?? false; - let isCustomer = config?.isCustomer ?? false; - let endpoint = this._host; - if (isCustomer) { - endpoint = this._customerHost; - } else if (isCreator) { - endpoint = this._creatorHost; - } + this.printResult('get', { uri, params, config }); + const endpoint = this.getEndpoint(config).endpoint; + config = await this.requestSign(uri, null, config); + return this.request('GET', `${endpoint}${uri}`, config); } /** @@ -201,27 +251,15 @@ class XhsClient { * @param {*} [config.sign] - Whether to sign the request * @param {boolean} [config.isCreator] - Whether the request is for a creator * @param {boolean} [config.isCustomer] - Whether the request is for a customer + * @param {boolean} [config.needSign] - 是否需要 sign * @param {*} [config.headers] - XSEC token for authentication * @returns */ async post(uri, data = null, config = {}) { let jsonStr = data ? JSON.stringify(data) : null; - let endpoint = this._host; - const header = config.headers || {}; - const xs = header['x-s']; - if (config.sign && !xs) { - await config.sign(uri, data, config); - } else if (!xs) { - const { headers } = this._preHeaders(uri, data); - config = { ...config, headers: { ...config.headers, ...headers } }; - } - let isCreator = config?.isCreator ?? false; - let isCustomer = config?.isCustomer ?? false; - if (isCustomer) { - endpoint = this._customerHost; - } else if (isCreator) { - endpoint = this._creatorHost; - } + const endpoint = this.getEndpoint(config).endpoint; + config = await this.requestSign(uri, data, config); + this.printResult('post', { uri, data, config }); if (data) { return this.request('POST', `${endpoint}${uri}`, { ...config, diff --git a/packages/xhs/.gitignore b/packages/xhs/.gitignore new file mode 100644 index 0000000..a548f4e --- /dev/null +++ b/packages/xhs/.gitignore @@ -0,0 +1 @@ +db-sqlite \ No newline at end of file diff --git a/packages/xhs/package.json b/packages/xhs/package.json index ec6e81c..69bc05f 100644 --- a/packages/xhs/package.json +++ b/packages/xhs/package.json @@ -24,5 +24,10 @@ "devDependencies": { "@kevisual/xhs-core": "workspace:*", "@types/node": "^22.15.3" + }, + "dependencies": { + "nanoid": "^5.1.5", + "sequelize": "^6.37.7", + "sqlite3": "^5.1.7" } } \ No newline at end of file diff --git a/packages/xhs/src/app.ts b/packages/xhs/src/app.ts index 9614c8c..9ea0c52 100644 --- a/packages/xhs/src/app.ts +++ b/packages/xhs/src/app.ts @@ -3,9 +3,13 @@ import { XhsServices } from '@/services/xhs-services.ts'; export const app = new QueryRouterServer(); export const xhsServices = new XhsServices(); -export const cookie = - 'a1=1968ba02ff4xrt6hfrzdiz7ubs82j9y3vx11vfw9c40000317680;abRequestId=0a794332-4561-5f49-93f7-780b8b028e1f;access-token-creator.xiaohongshu.com=customer.creator.AT-68c517498636784561614544frjvxzj7yu8iewie;agora_session=6a0031373435393132333637323735343733393437313634000000000000;customerClientId=536706778174172;galaxy_creator_session_id=OhpHDDSoADhNEhnH5LLnQpletFLApu1fd91f;galaxy.creator.beaker.session.id=1745912429847011598150;gid=yjKqYfK0qDyYyj2DDSqd4ujxyW9kvxIuT62ddkMWhElyuxq8yDd6hl888q2WYy88j8i80yYD;loadts=1746020512562;sec_poison_id=441c932e-a6ac-4d8d-97ae-beb14adb1929;unread={%22ub%22:%2267eaf1fe000000001202c3ea%22%2C%22ue%22:%226803aa37000000001c0319d8%22%2C%22uc%22:35};web_session=040069b2e9c511ca302086ca253a4bde8b1cd1;webBuild=4.62.3;webId=97e5f097499594cad49aa0bd1a8ed83f;websectiga=3633fe24d49c7dd0eb923edc8205740f10fdb18b25d424d2a2322c6196d2a4ad;x-user-id-creator.xiaohongshu.com=639d86590000000026006076;xsecappid=xhs-pc-web;acw_tc=0a00df6217460205042195762e721fba339a0dbe8e4738b961a5ff15e74619;'; +const cookie = + 'a1=1969088bf22oidhober22hsb74h3qoavpucdvmrbb30000712484;abRequestId=e1b9d999-8838-528a-9933-5f3ac9134d8c;gid=yjKj8YYdSSUqyjKj8YYDi76FJJl3fxlDdFJJSDDxMDW4xfq8qAl0hh888WyJ4Y48ySjjfKfd;loadts=1746193349304;sec_poison_id=74e35006-555a-47a5-a11b-7d4a2482b933;unread={%22ub%22:%2268077ca2000000001b03bff6%22%2C%22ue%22:%22680e491b000000000b015506%22%2C%22uc%22:30};web_session=040069b2e9c511ca302098d5213a4b8556ed1d;webBuild=4.62.3;webId=bffbeec4c301c7b3dc284ee35dd742fb;websectiga=cffd9dcea65962b05ab048ac76962acee933d26157113bb213105a116241fa6c;xsecappid=xhs-pc-web;acw_tc=0a00d5b517461933472156520e55fc213ae73b04699cd042b86f1525ccab06;'; xhsServices.createRoot({ cookie, + signConfig: { + signUrl: 'http://light.xiongxiao.me:5006/sign', + // signUrl: 'http://localhost:5006/sign', + }, }); diff --git a/packages/xhs/src/libs/user-agent/list.ts b/packages/xhs/src/libs/user-agent/list.ts new file mode 100644 index 0000000..b578790 --- /dev/null +++ b/packages/xhs/src/libs/user-agent/list.ts @@ -0,0 +1,71 @@ +export const list = [ + { + 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.109 Safari/537.36 CrKey/1.54.248666' }, + { 'user-agent': 'Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.188 Safari/537.36 CrKey/1.54.250320' }, + { 'user-agent': 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+' }, + { 'user-agent': 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+' }, + { 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' }, + { 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' }, + { 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { + 'user-agent': + 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)' }, + { 'user-agent': 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36', + }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36' }, + { 'user-agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { + 'user-agent': + 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36', + }, + { 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1' }, + { + 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + }, + { 'user-agent': 'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1' }, +]; +export const randomUserAgent = () => { + const randomIndex = Math.floor(Math.random() * list.length); + return list[randomIndex]['user-agent']; +}; diff --git a/packages/xhs/src/libs/xhs-api/api.ts b/packages/xhs/src/libs/xhs-api/api.ts new file mode 100644 index 0000000..4ea0f0a --- /dev/null +++ b/packages/xhs/src/libs/xhs-api/api.ts @@ -0,0 +1,50 @@ +type ApiInfo = { + uri: string; + method?: 'GET' | 'POST'; + needSign?: boolean; + description?: string; + isCreator?: boolean; +}; +export const api: ApiInfo[] = [ + { + uri: '/api/sns/web/v1/you/mentions', + method: 'GET', + description: '获取@我的消息', + }, + { + uri: '/api/sns/web/v1/you/likes', + method: 'GET', + description: '获取点赞的消息', + }, + { + uri: '/api/sns/web/v1/you/connections', + method: 'GET', + description: '获取关注的消息', + needSign: true, + }, + { + uri: '/api/sns/web/v1/you/mentions', + method: 'GET', + needSign: true, + description: '获取@我的消息', + }, +]; + +type ReturnApiInfo = { + apiInfo: ApiInfo; + needSign: boolean; +}; +export const getApiInfo = (uri: string): ReturnApiInfo | null => { + const apiInfo = api.find((item) => item.uri?.startsWith(uri)); + if (apiInfo) { + return { + apiInfo, + needSign: apiInfo.needSign ?? true, + }; + } else { + } + return { + apiInfo: null, + needSign: true, + }; +}; diff --git a/packages/xhs/src/libs/xhs.ts b/packages/xhs/src/libs/xhs.ts index 4568108..a38e3fa 100644 --- a/packages/xhs/src/libs/xhs.ts +++ b/packages/xhs/src/libs/xhs.ts @@ -1,3 +1,4 @@ +import { getApiInfo } from './xhs-api/api.ts'; import { XhsClient as XhsClientBase } from '@kevisual/xhs-core'; import { Mention, CommonentInfo } from './xhs-type/mention.ts'; @@ -13,17 +14,29 @@ type SignInfo = { a1: string; web_session?: string; }; +type SignResponse = { + a1: string; + sign: { + b1: string; + b1b1: string; + ['x-s']: string; + ['x-t']: string; + }; + [key: string]: any; +}; type SignOptions = { signUrl?: string; }; -export const getSign = async (signInfo: SignInfo, options?: SignOptions) => { +export const getSign = async (signInfo: SignInfo, options?: SignOptions): Promise => { const { uri, data, a1, web_session } = signInfo; // console.log('getSign', uri, data, a1, web_session); // let signUri = new URL(uri, 'http://light.xiongxiao.me:5006').pathname; // signUri = '/api/sns/web/v2/user/me'; try { - let signUrl = options?.signUrl || 'http://light.xiongxiao.me:5006/sign'; - // signUrl = 'http://localhost:5005/sign' + let signUrl = options?.signUrl || 'http://localhost:5005/sign'; + // signUrl = 'http://localhost:5005/sign'; + // const urlA1 = ''http://light.xiongxiao.me:5006/a1'; + // const urlA1 = 'http://localhost:5005/a1'; const signs = await fetch(signUrl, { method: 'POST', headers: { @@ -52,18 +65,27 @@ export class XhsClient extends XhsClientBase { constructor(opts: XhsOptions) { super(opts as any); } - printResult(msg: string, response: any) { + getApiInfo = getApiInfo; + printResult(msg: string, data: any) { if (msg === 'response') { - console.log('url', response.url); - if (response.response) { - console.log('status', response.response.status); - console.log('data', response.response.data); + console.log('url', data.url); + console.log('status', data?.response?.status); + if (data.response) { + console.log('data', data.response.data); } } else if (msg === 'request') { - // console.log('request', response); + console.log('request', data); } else if (msg === 'html') { // console.log('html', response); } + switch (msg) { + case 'get': + console.log('get', data); + break; + case 'sign': + console.log('sign', data); + break; + } } /** * 获取未读消息 @@ -71,7 +93,7 @@ export class XhsClient extends XhsClientBase { */ async getUnread(): Promise> { const url = '/api/sns/web/unread_count'; - const response = await this.get(url); + const response = await this.get(url, null, { needSign: false }); return response; } @@ -103,6 +125,12 @@ export class XhsClient extends XhsClientBase { const response = await super.getUserInfoFromHtml(userId); return response as ReturnData; } + /** + * 这个接口不能多用,否则会出现封控406错误 + * @param num + * @param cursor + * @returns + */ async getFollowNotifications(num = 10, cursor = '') { const url = '/api/sns/web/v1/you/connections'; type Connection = { @@ -129,18 +157,14 @@ export class XhsClient extends XhsClientBase { * @uri /api/sns/web/v1/you/mentions * @returns */ - async getMention(num = 10): Promise> { + async getMention(num = 20): Promise> { const url = '/api/sns/web/v1/you/mentions'; const response = await this.get( url, - { num }, + { num: 20, cursor: '' }, { sign: this.sign.bind(this), - // headers: { - // 'x-s': - // 'XYW_eyJzaWduU3ZuIjoiNTYiLCJzaWduVHlwZSI6IngyIiwiYXBwSWQiOiJsb2dpbiIsInNpZ25WZXJzaW9uIjoiMSIsInBheWxvYWQiOiJiNGJmMGI2MDVkZTlkOWMyY2RlNTI2YmVjNjM2ZmIxMjkxYzUxMTIyYWQyOTk5MzIyMzNjMmU0OTEzMWFmYzgzY2FmOGQzZDIzMTA0Y2RlNWUzZDZlZDczMDg0MmUzYzAxOTNkY2FjZjEyZjk1NTMzZGQzY2ZkMGFmOTg5MGZmMDIwNWI0MmQwOTNiYmJjMGNkZWU3MzdmOGE2MmRkYWVlYjZhMjcxZDViNjZkNGRjYjA1NDg2MGZhNTllN2M5MjE0ZDE2OTJjYWQyZjZmNzE1NThmYWQ3YjQxZjlhZTNiYjA1ZDExN2YzYWI2ZjRjYzY5MzcyMzRhOTY1OTkxYzMwMWY2YjI1MzY4MTZiNzM1YzhmMWEzOTk2ODhkMWU0NDFiODljYTNlNzQ3YWNlN2M2MGIzZDlhZWQwZDVlZDZlNGFhMDE5MmQ5YzZjNDE1M2IxM2RjODAwYjUzZTQxYWEzOTU4MjJhMzYyMmJjODEwYmY4MzA3MjkwMjY2ZDUzNmQwMjdkMTJlOWEwMzhlZmY1YWU4OTM5NDVlNDhmYmY2MCJ9', - // 'x-t': '1746097556685', - // }, + needSign: true, }, ); return response; @@ -148,15 +172,25 @@ export class XhsClient extends XhsClientBase { async sign(uri: string, data: any, config: any) { let headers = config?.headers || {}; const cookieDist = this.getCookieMap(); + const apiInfo = this.getApiInfo(uri); + if (apiInfo && !apiInfo?.needSign) { + return config || {}; + } const web_session = cookieDist['web_session']; const a1 = cookieDist['a1']; const res = await getSign({ uri, data, a1, web_session }, this.signConfig); - if (res) { - headers['x-s'] = res?.['x-s']; - headers['x-t'] = res?.['x-t']; + const _sign = res.sign; + this.printResult('sign', { uri, apiInfo, res }); + const xs = _sign?.['x-s']; + const xt = _sign?.['x-t']; + const b1 = _sign?.['b1']; + if (res && xs) { + headers['x-s'] = xs; + headers['x-t'] = xt; + // headers['x-s-common'] = this.getXCommon(a1, b1, xs, xt); config.headers = headers; } else { - console.log('get sign error'); + console.log('get sign error', res); throw new Error('get sign error'); } return config; diff --git a/packages/xhs/src/routes/mentions/unread-task.ts b/packages/xhs/src/routes/mentions/unread-task.ts index 49b18f4..c8b1e55 100644 --- a/packages/xhs/src/routes/mentions/unread-task.ts +++ b/packages/xhs/src/routes/mentions/unread-task.ts @@ -1,7 +1,7 @@ import { app, xhsServices } from '@/app.ts'; import { Mention } from '@/libs/xhs-type/mention.ts'; import { Parse } from '@/libs/parse.ts'; -import { client } from '@/test/common.ts'; + app .route({ path: 'mention', diff --git a/packages/xhs/src/services/xhs-db/comment.ts b/packages/xhs/src/services/xhs-db/comment.ts new file mode 100644 index 0000000..5c402b9 --- /dev/null +++ b/packages/xhs/src/services/xhs-db/comment.ts @@ -0,0 +1,44 @@ +import { InitOptions, Model, Sequelize, SyncOptions } from 'sequelize'; +import { DataTypes } from 'sequelize'; +export class Comment extends Model { + declare id: number; + declare content: string; + declare note_id: string; + declare user_id: string; + declare comment_id: string; + declare created_at: Date; + declare updated_at: Date; + static async initModel(sequelize: Sequelize, initOptions?: InitOptions, opts?: SyncOptions) { + Comment.init( + { + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true, + }, + content: { + type: DataTypes.TEXT, + allowNull: false, + }, + note_id: { + type: DataTypes.STRING, + allowNull: false, + }, + user_id: { + type: DataTypes.STRING, + allowNull: false, + }, + comment_id: { + type: DataTypes.STRING, + allowNull: false, + }, + }, + { + sequelize, // passing the `sequelize` instance is required + modelName: 'Comment', // we need to choose the model name + ...initOptions, + }, + ); + await Comment.sync(opts || {}); + } +} diff --git a/packages/xhs/src/services/xhs-db/db-manager.ts b/packages/xhs/src/services/xhs-db/db-manager.ts new file mode 100644 index 0000000..ea28de9 --- /dev/null +++ b/packages/xhs/src/services/xhs-db/db-manager.ts @@ -0,0 +1,3 @@ +export class DBManager { + constructor() {} +} \ No newline at end of file diff --git a/packages/xhs/src/services/xhs-db/db.ts b/packages/xhs/src/services/xhs-db/db.ts new file mode 100644 index 0000000..fcbd6e7 --- /dev/null +++ b/packages/xhs/src/services/xhs-db/db.ts @@ -0,0 +1,16 @@ +import { Sequelize } from 'sequelize'; + +type SequelizeOptions = { + storage: string; + logging?: boolean; + [key: string]: any; +}; +export const createSequelize = (opts?: SequelizeOptions) => { + const dbPath = opts?.storage || 'xhs.db'; + const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: dbPath, + logging: opts?.logging ?? true, + }); + return sequelize; +}; diff --git a/packages/xhs/src/services/xhs-services.ts b/packages/xhs/src/services/xhs-services.ts index 5a1560a..c0dc16f 100644 --- a/packages/xhs/src/services/xhs-services.ts +++ b/packages/xhs/src/services/xhs-services.ts @@ -1,4 +1,8 @@ import { XhsClient } from '@/libs/xhs.ts'; +import { Sequelize } from 'sequelize'; +import { createSequelize } from '@/services/xhs-db/db.ts'; +import path from 'node:path'; +import fs from 'node:fs'; type XhsClientOptions = { key: string; @@ -6,12 +10,14 @@ type XhsClientOptions = { signConfig?: { signUrl: string; }; + initDB?: boolean; [key: string]: any; }; type XhsClientMap = { client: XhsClient; key: string; options: XhsClientOptions; + db: Sequelize; }; type XhsServicesOptions = { root?: string; @@ -29,9 +35,34 @@ export class XhsServices { } const client = new XhsClient({ cookie }); client.signConfig = signConfig; - this.map.set(key, { client, key, options }); + const storagePath = options.storage || `db-sqlite/xhs-${key}.db`; + const storage = path.resolve(storagePath); + const dir = path.dirname(storage); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + let isNew = options?.initDB ?? false; + if (!fs.existsSync(storage) || !isNew) { + isNew = true; + } + const db = createSequelize({ storage: storage }); + const xhsClientMap = { + client, + key, + options, + db, + }; + if (isNew) { + this.initDb(xhsClientMap); + } + this.map.set(key, xhsClientMap); + return client; } + async initDb(xhsClientMap: XhsClientMap) { + // + } + createRoot(options: Partial) { options.key = options.key || this.root; return this.createClient(options as XhsClientOptions); diff --git a/packages/xhs/src/test/command.ts b/packages/xhs/src/test/command.ts index efbc896..d352a73 100644 --- a/packages/xhs/src/test/command.ts +++ b/packages/xhs/src/test/command.ts @@ -1,6 +1,9 @@ import { program } from 'commander'; +import './query/add-comment.ts'; + import './query/get-components.ts'; import './query/get-note.ts'; +import './query/get-sign.ts' import './query/mention.ts' import './query/unread.ts'; import './query/get-userinfo.ts'; diff --git a/packages/xhs/src/test/common.ts b/packages/xhs/src/test/common.ts index 6968656..2787c6b 100644 --- a/packages/xhs/src/test/common.ts +++ b/packages/xhs/src/test/common.ts @@ -1,8 +1,4 @@ -import { XhsClient, xhsServices } from '../index.ts'; +import { xhsServices } from '../index.ts'; import { program } from 'commander'; -export const cookie = - 'a1=1968ba02ff4xrt6hfrzdiz7ubs82j9y3vx11vfw9c40000317680;abRequestId=0a794332-4561-5f49-93f7-780b8b028e1f;access-token-creator.xiaohongshu.com=customer.creator.AT-68c517498636784561614544frjvxzj7yu8iewie;agora_session=6a0031373435393132333637323735343733393437313634000000000000;customerClientId=536706778174172;galaxy_creator_session_id=OhpHDDSoADhNEhnH5LLnQpletFLApu1fd91f;galaxy.creator.beaker.session.id=1745912429847011598150;gid=yjKqYfK0qDyYyj2DDSqd4ujxyW9kvxIuT62ddkMWhElyuxq8yDd6hl888q2WYy88j8i80yYD;loadts=1746020512562;sec_poison_id=441c932e-a6ac-4d8d-97ae-beb14adb1929;unread={%22ub%22:%2267eaf1fe000000001202c3ea%22%2C%22ue%22:%226803aa37000000001c0319d8%22%2C%22uc%22:35};web_session=040069b2e9c511ca302086ca253a4bde8b1cd1;webBuild=4.62.3;webId=97e5f097499594cad49aa0bd1a8ed83f;websectiga=3633fe24d49c7dd0eb923edc8205740f10fdb18b25d424d2a2322c6196d2a4ad;x-user-id-creator.xiaohongshu.com=639d86590000000026006076;xsecappid=xhs-pc-web;acw_tc=0a00df6217460205042195762e721fba339a0dbe8e4738b961a5ff15e74619;'; - -export const client = new XhsClient({ cookie } as any); export { program, xhsServices }; diff --git a/packages/xhs/src/test/db/comment.ts b/packages/xhs/src/test/db/comment.ts new file mode 100644 index 0000000..9a54c49 --- /dev/null +++ b/packages/xhs/src/test/db/comment.ts @@ -0,0 +1,24 @@ +import { Comment } from '@/services/xhs-db/comment.ts'; + +import { Sequelize, Model, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; +import path from 'path'; +const dbPath = path.join(process.cwd(), './test2.db'); +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: dbPath, + logging: false, +}); + +const commentTest = async () => { + await Comment.initModel(sequelize, null, { alter: true }); + const comment = await Comment.create({ + content: 'test', + note_id: '1', + user_id: '1', + comment_id: '1', + }); + console.log(comment.toJSON()); + const comments = await Comment.findAll(); + console.log(comments.map((item) => item.toJSON())); +}; +commentTest(); diff --git a/packages/xhs/src/test/db/index.ts b/packages/xhs/src/test/db/index.ts new file mode 100644 index 0000000..c6c5499 --- /dev/null +++ b/packages/xhs/src/test/db/index.ts @@ -0,0 +1,40 @@ +import { Sequelize, Model, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; +import path from 'path'; +const dbPath = path.join(process.cwd(), './test2.db'); +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: dbPath, +}); +console.log('dbPath', dbPath); +sequelize + .authenticate() + .then(() => { + console.log('Connection has been established successfully.'); + }) + .catch((err) => { + console.error('Unable to connect to the database:', err); + }); +// Define a User model +class User extends Model, InferCreationAttributes> { + declare username: string | null; + declare birthday: Date | null; +} + +User.init( + { + username: DataTypes.STRING, + birthday: DataTypes.DATE, + }, + { sequelize, modelName: 'user' }, +); + +(async () => { + await sequelize.sync({ alter: true }); + const jane = await User.create({ + username: 'janedoe', + birthday: new Date(1980, 6, 20), + }); + console.log(jane.toJSON()); + const users = await User.findAll(); + console.log(users.map((item) => item.toJSON())); +})(); diff --git a/packages/xhs/src/test/db/sqlite3.ts b/packages/xhs/src/test/db/sqlite3.ts new file mode 100644 index 0000000..d5e98b5 --- /dev/null +++ b/packages/xhs/src/test/db/sqlite3.ts @@ -0,0 +1,20 @@ +import sqlite3 from 'sqlite3'; + +const db = new sqlite3.Database('./test.db'); + +db.serialize(() => { + db.run('CREATE TABLE lorem (info TEXT)'); + + const stmt = db.prepare('INSERT INTO lorem VALUES (?)'); + for (let i = 0; i < 10; i++) { + stmt.run('Ipsum ' + i); + } + stmt.finalize(); + + db.each('SELECT rowid AS id, info FROM lorem', (err, row) => { + // @ts-ignore + console.log(row.id + ': ' + row.info); + }); +}); + +db.close(); diff --git a/packages/xhs/src/test/fetch-test.ts b/packages/xhs/src/test/fetch-test.ts new file mode 100644 index 0000000..d224e87 --- /dev/null +++ b/packages/xhs/src/test/fetch-test.ts @@ -0,0 +1,30 @@ +const res = await fetch('https://edith.xiaohongshu.com/api/sns/web/v1/you/mentions?num=1&cursor=', { + headers: { + accept: 'application/json, text/plain, */*', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + priority: 'u=1, i', + 'sec-ch-ua': '"Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"macOS"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'same-site', + 'x-b3-traceid': 'f0a77d639fe56582', + 'x-mns': 'unload', + 'x-s': + 'XYW_eyJzaWduU3ZuIjoiNTYiLCJzaWduVHlwZSI6IngyIiwiYXBwSWQiOiJ4aHMtcGMtd2ViIiwic2lnblZlcnNpb24iOiIxIiwicGF5bG9hZCI6ImI3ODU1NmVkYTliOGFjMmRjOGVkYjAxY2E0ZjJhMTQ1NmI4Yzk2NzQwZmY0MjhhNjY4YWQ1Yzk4OTg2YzRjNGEyOGQ0YzE4MWIxYjQ3NzZmNzNhNDkwNDMwZGMyMWVhMzc1Mzg4ODQyOThmM2U0MmM5YTlhM2IyNjU5OWZmZjdlZGM1ZjczNDE2ZmZmYzBlYzcxMTRkODM1YTE2MGQ2MmViNjU4NTMxNjkyZGRkYWExZDNkZjIyNjZlMmFmZWQyZGMzYTM0MGEwZWU0ZTkwMmExNGU2ZmE4YmY4YWEzYzliZGNlYjM1YTkyZGMwODdlYjdlOTk3YWVlMjI2NDhkODVlNDMzZmEzZDA4YjJjYzhmNDJlMDlmM2Y0ZjBlMmJmNzQzZjE2ZGZmNzAyNjdjYmMzNzE2MTkxNjY0Y2RkMGYzZWJiMTgyY2UyZTg5MjdiMDJjYTgzYWFiZWI3ZTI2M2FjYTY5NmY4NTJmYzc2OWFkNWUzNGIxNjdhMjUwNmQxNTJjZjhkZDY5MzMwNzhjNDE0ZTM3ZmNhZWY1OTQyODA1In0=', + 'x-s-common': + '2UQAPsHCPUIjqArjwjHjNsQhPsHCH0rjNsQhPaHCH0c1PahIHjIj2eHjwjQ+GnPW/MPjNsQhPUHCHdYiqUMIGUM78nHjNsQh+sHCH0c1+0H1PUHVHdWMH0ijP/D9w/ZhwBQfP0Q6ynziJ9QSq0HUyo+j+AziP7b6Gg8I4n+D4fMUGfHAPeZIPeqlP0ch+sHVHdW9H0il+Ac9P/WlweZhP/HENsQh+UHCHSY8pMRS2LkCGp4D4pLAndpQyfRk/Sz8yLleadkYp9zMpDYV4Mk/a/8QJf4EanS7ypSGcd4/pMbk/9St+BbH/gz0zFMF8eQnyLSk49S0Pfl1GflyJB+1/dmjP0zk/9SQ2rSk49S0zFGMGDqEybkea/8QJLDA/FzpPLETpfT8pBlk/F4ByDMTLfkOzM83nnkm2bDUz/myyDki/pzzPLETa/z82fVU/dkz4MkTn/m+yfYi/fk8+bSgL/b82fVF/MzdPSSCLfkwzFpE/F4zPbSCz/z+pFShnnkzPFECnfMw2DEi/Dz34FEr/g4yzFME/p4nyrMCGAb+2fqF/Fzz2LRLyBM+PSLI/nM++pSLJBY+PDSE/fkp+LRgnfMyyfzVnD4+PpkxG7kwzrLUnfMyJpSCcfl82f+h/pzayFRr//b8prLU/L4zPDMTpfSwySLF/Sz+2rExy7SyzMQ3np4b2bkr/fTyyDSE/fkyJrMTzfMypMbEnD4+2SSL//m+zFp7nS4pPbkLy74+JLph/D4pPSkTz/z8JpDFnp4b2SSCJBSyzFEVnnk+PpSLy7SyzFM7/FzDJbSx8BlOpBVAnp4nJrMxa/QwzBY3/FznJrEr/gkyJLpCnDzm+bSxafk82fYT/DztJrMrJBM+PSDInfksJrMTafMw2SbCnfkbPSkonfMw2DbE/fkDySST/gkw2DLU/pz32rExn/m8PSQ3/L482SkgafS+pB4En/Qp2pkL8Ap+yfzk/LztySSL87k8pF8knS4QPMkLa/Q+PD8xnpz8+LETn/zwprkTngk0PDRgzfTwpMpC/D4Q2rEx8BY+ySp7/fMz2rELafkyyfY3nDz8+LMC/g4w2fYx/DzbPbkL//+yJLEinS48PLRLLgSOzrrlanhIOaHVHdWhH0ija/PhqDYD87+xJ7mdag8Sq9zn494QcUT6aLpPJLQy+nLApd4G/B4BprShLA+jqg4bqD8S8gYDPBp3Jf+m2DMBnnEl4BYQyrkSL9z32obl49zQ4DbApFQ0yo4c4ozdJ/c9aMpC2rSiPoPI/rTAydb7JdD7zbkQ4fRA2BQcydSy4LbQyrTSzBr7q98ppbztqgzat7b7cgmDqrEQc9YT/Sqha7kn4M+Qc94Sy7pFao4l4FzQzL8laLL6qMzQnfSQ2oQ+ag8d8nzl4MH3+7mc2Skwq9z8P9pfqgzmanTw8/+n494lqgzIqopF2rTC87Plp7mSaL+npFSiL/Z6LozzaM87cLDAn0Q6JnzSygb78DSecnpLpdzUaLL3tFSbJnE08fzSyf4CngQ6J7+fqg4OnS468nzPzrzsJ94AySkIcDSha7+DpdzYanT98n8l4MQj/LlQz9GFcDDA+9pL4gz/NM+N8/r7/pmQyBQAaLpbt741+BSQPMSlwBlb8FS3/oY6qg43aL+yp0QDP9pxan4APgp7LDS989LIPo8SPsRMLrSk87PAL9Mr2gp74LSka9pL80mA2BF68/bn4ezPqFkSngb7yrS9zL40PBRS8op7zgm1N7+/qg4dagYzqDS9y9T6pd4o2S87t9bd+bbcpURS8BEd8pzn49RQznRAyDQmq7YPqd8Qz/mAPrIAqA8fz9zQyrEAP7p74DSbJp4F4g4I/7b7cFDAafpLpdzBanVAq9Sl4ApQye+Aydp7+LEl4946pd4MaL+CaLS9LLRzq9DAGDH98pzl4F8QypboaLLM8nzM4r4ynfTFcSLMqMqILLzQyF4PadbFa9bl47pQ40+S+S8F2bbIa9LAaLbSPLl/qDSbad+3cDRSPb87Lf+c49bQcFkApMm7pLSk89p38gbPanVAqAb087+n4g4IanYS8p+n4Bky+FzAanDh4rDA+fL92DkAy9iMq9iI89LI4g46anY3aLSbqnb0Lo40agY0LFDAPBpLp9MQ2nL68pSgO/FjNsQhwaHCP/HhP/LUwerIPjIj2erIH0iUP0LEKc==', + 'x-t': '1746181808129', + 'x-xray-traceid': 'cb4845eff6cf7d70df0fe575e3d8af06', + cookie: + 'acw_tc=0a0b121417461803133571274e75c1c431e8abf9d81133812d3ca340bf8fe2; abRequestId=e1b9d999-8838-528a-9933-5f3ac9134d8c; webBuild=4.62.3; xsecappid=xhs-pc-web; a1=1969088bf22oidhober22hsb74h3qoavpucdvmrbb30000712484; webId=bffbeec4c301c7b3dc284ee35dd742fb; websectiga=8886be45f388a1ee7bf611a69f3e174cae48f1ea02c0f8ec3256031b8be9c7ee; sec_poison_id=d6fbc71a-7538-4ebe-acd6-5e5b79bc78eb; gid=yjKj8YYdSSUqyjKj8YYDi76FJJl3fxlDdFJJSDDxMDW4xfq8qAl0hh888WyJ4Y48ySjjfKfd; web_session=040069b2e9c511ca302098d5213a4b8556ed1d; unread={%22ub%22:%2268077ca2000000001b03bff6%22%2C%22ue%22:%22680e491b000000000b015506%22%2C%22uc%22:30}; loadts=1746181806203', + Referer: 'https://www.xiaohongshu.com/', + 'Referrer-Policy': 'strict-origin-when-cross-origin', + }, + body: null, + method: 'GET', +}); +res.json().then((data) => { + console.log('data', data); +}); diff --git a/packages/xhs/src/test/query/add-comment.ts b/packages/xhs/src/test/query/add-comment.ts new file mode 100644 index 0000000..1ce889f --- /dev/null +++ b/packages/xhs/src/test/query/add-comment.ts @@ -0,0 +1,14 @@ +import { xhsServices, program } from '../common.ts'; + +program + .command('add-comment') + .description('add comment') + .action(async () => { + const client = xhsServices.getClient(); + const res = await client.postComment({ + note_id: '68136dab0000000007034c46', + content: 'test comment 233', + comment_id: '68136dcf000000000401a8c9', + }); + console.log(res); + }); diff --git a/packages/xhs/src/test/query/get-components.ts b/packages/xhs/src/test/query/get-components.ts index 7e45d2b..a8e00e7 100644 --- a/packages/xhs/src/test/query/get-components.ts +++ b/packages/xhs/src/test/query/get-components.ts @@ -1,14 +1,14 @@ -import { client } from '../common.ts'; -import { program } from 'commander'; +import { xhsServices, program } from '../common.ts'; +import utils from 'node:util'; program .command('get-commonents') .description('get commonents') .action(async () => { - const res = await client.getNoteComments('6810d722000000002100f139', '', { + const client = xhsServices.getClient(); + const res = await client.getNoteComments('68136dab0000000007034c46', '', { // - xsec_token: 'LBEqTFigLzp41AdwQ-E3hbQScnvrx2flLgHElHpQ8zHWc=', - top_comment_id: '6810e7d80000000012020c7a' + xsec_token: 'LByEmonX8WfJ9ebpAowVbOZX9Xh8T0Qkjil5KRFqDD6LM=', }); - console.log(res); + console.log(utils.inspect(res, { depth: null, colors: true })); }); diff --git a/packages/xhs/src/test/query/get-connections.ts b/packages/xhs/src/test/query/get-connections.ts index aecd49c..9953af4 100644 --- a/packages/xhs/src/test/query/get-connections.ts +++ b/packages/xhs/src/test/query/get-connections.ts @@ -2,8 +2,10 @@ import { xhsServices, program } from '../common.ts'; import util from 'node:util'; const getConnections = async () => { const client = xhsServices.getClient(); - const res = await client.getFollowNotifications(10, ''); - console.log(util.inspect(res, { depth: null, colors: true })); + const res = await client.getFollowNotifications(2, ''); + if (res.code === 0) { + console.log(util.inspect(res, { depth: null, colors: true })); + } }; program diff --git a/packages/xhs/src/test/query/get-note.ts b/packages/xhs/src/test/query/get-note.ts index dc249b0..56f2834 100644 --- a/packages/xhs/src/test/query/get-note.ts +++ b/packages/xhs/src/test/query/get-note.ts @@ -1,5 +1,5 @@ -import { client } from '../common.ts'; -import { program } from 'commander'; +import { xhsServices, program } from '../common.ts'; + // client.getNoteComments() @@ -7,13 +7,15 @@ import { program } from 'commander'; // console.log(res); // }); const getNoteById = async () => { + const client = xhsServices.getClient(); client.getNoteById('67dcc34e000000000602a8eb', 'ABuYS8Xb1o08DlRmMLIabdqnW0OKnLR9nMpDGq5bVRdvk').then((res) => { console.log(res); }); }; const getNote = async () => { - const id = '6810d722000000002100f139'; - const x = 'LBEqTFigLzp41AdwQ-E3hbQScnvrx2flLgHElHpQ8zHWc='; + const id = '68136dab0000000007034c46'; + const x = 'LByEmonX8WfJ9ebpAowVbOZX9Xh8T0Qkjil5KRFqDD6LM='; + const client = xhsServices.getClient(); client.getNoteByIdFromHtml(id, x).then((res) => { console.log(res); }); diff --git a/packages/xhs/src/test/query/get-sign.ts b/packages/xhs/src/test/query/get-sign.ts index 14dfd7a..1d77077 100644 --- a/packages/xhs/src/test/query/get-sign.ts +++ b/packages/xhs/src/test/query/get-sign.ts @@ -1,9 +1,11 @@ -import { client, program } from '../common.ts'; +import { xhsServices, program } from '../common.ts'; const getSign = async () => { - const uri = '/api/sns/web/v1/you/mentions'; + const uri = '/api/sns/web/v1/you/mentions?num=20&cursor='; const data = null; + // _webmsxyw('/api/sns/web/v1/you/mentions?num=20&cursor=', null); const config = { headers: {} }; + const client = xhsServices.getClient(); const res = await client.sign(uri, data, config); console.log('getSign', res); }; diff --git a/packages/xhs/src/test/query/get-userinfo.ts b/packages/xhs/src/test/query/get-userinfo.ts index f214bd3..8dfa7f4 100644 --- a/packages/xhs/src/test/query/get-userinfo.ts +++ b/packages/xhs/src/test/query/get-userinfo.ts @@ -1,14 +1,16 @@ -import { client, program } from '../common.ts'; +import { xhsServices, program } from '../common.ts'; program .command('get-userinfo') .description('获取用户信息') .action(async () => { + const client = xhsServices.getClient(); const res = await client.getSelfInfoV2(); console.log(res); }); const getUserById = async (userId: string) => { + const client = xhsServices.getClient(); const res = await client.getUserInfoFromHtml(userId); console.log(res); }; diff --git a/packages/xhs/src/test/query/mention.ts b/packages/xhs/src/test/query/mention.ts index 5c5a59b..d10cae6 100644 --- a/packages/xhs/src/test/query/mention.ts +++ b/packages/xhs/src/test/query/mention.ts @@ -1,10 +1,12 @@ -import { client, program } from '../common.ts'; +import { xhsServices, program } from '../common.ts'; import util from 'node:util'; const getMentions = async () => { try { - const res = await client.getMention(); - if (res.code === 0) { - console.log('getMentionNotifications', util.inspect(res, { depth: 10 })); + const client = xhsServices.getClient(); + const res = await client.getMention(1); + if (res.code) { + const data = res.data || {}; + console.log('getMentionNotifications', util.inspect(data, { depth: 10 })); } } catch (e) { console.error('error'); @@ -19,6 +21,7 @@ const getTestMentionNote = async () => { const title = '在笔记中@了你'; const type = 'mention/item'; const track_type = '2'; + const client = xhsServices.getClient(); const note = await client.getNoteByIdFromHtml(id, xsec_token); console.log('note', note); }; diff --git a/packages/xhs/src/test/query/unread.ts b/packages/xhs/src/test/query/unread.ts index be94ab6..da8f117 100644 --- a/packages/xhs/src/test/query/unread.ts +++ b/packages/xhs/src/test/query/unread.ts @@ -1,6 +1,7 @@ -import { client, program } from '../common.ts'; +import { xhsServices, program } from '../common.ts'; const getUnread = () => { + const client = xhsServices.getClient(); client.getUnread().then((res) => { console.log(res); }); diff --git a/packages/xhs/test2.db b/packages/xhs/test2.db new file mode 100644 index 0000000..024c4a0 Binary files /dev/null and b/packages/xhs/test2.db differ diff --git a/packages/xhs/tsconfig.json b/packages/xhs/tsconfig.json index 1bdfd4e..bae175b 100644 --- a/packages/xhs/tsconfig.json +++ b/packages/xhs/tsconfig.json @@ -2,6 +2,14 @@ "extends": "@kevisual/types/json/backend.json", "compilerOptions": { "baseUrl": "./", + "lib": [ + "ESNext" + ], + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "types": [ + "node_modules/@types" + ], "paths": { "@/*": [ "src/*" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4d645e..6d8d689 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,7 +86,7 @@ importers: version: 6.0.1 sequelize: specifier: ^6.37.7 - version: 6.37.7(pg@8.15.6) + version: 6.37.7(pg@8.15.6)(sqlite3@5.1.7) tape: specifier: ^5.9.0 version: 5.9.0 @@ -108,6 +108,16 @@ importers: version: 5.51.1 packages/xhs: + dependencies: + nanoid: + specifier: ^5.1.5 + version: 5.1.5 + sequelize: + specifier: ^6.37.7 + version: 6.37.7(pg@8.15.6)(sqlite3@5.1.7) + sqlite3: + specifier: ^5.1.7 + version: 5.1.7 devDependencies: '@kevisual/xhs-core': specifier: workspace:* @@ -172,6 +182,9 @@ packages: resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} engines: {node: '>=18'} + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -258,6 +271,14 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@npmcli/fs@1.1.1': + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + + '@npmcli/move-file@1.1.2': + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -364,6 +385,10 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + '@types/bun@1.2.11': resolution: {integrity: sha512-ZLbbI91EmmGwlWTRWuV6J19IUiUC5YQ3TCEuSHI3usIP75kuoA8/0PVF+LTrbEnVc8JIhpElWOxv1ocI1fJBbw==} @@ -400,14 +425,29 @@ packages: '@types/validator@13.12.2': resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -428,6 +468,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -460,6 +508,9 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64id@2.0.0: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} @@ -468,6 +519,12 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -478,12 +535,19 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bullmq@5.51.1: resolution: {integrity: sha512-JEZokH5Sb6p66HRjbfQjPNYuSilDRcB8UREmJzOBqTTaJFza8I92vsBF3J/zmtzd7KVv3dxhZyH9CYSLOJALRA==} bun-types@1.2.11: resolution: {integrity: sha512-dbkp5Lo8HDrXkLrONm6bk+yiiYQSntvFUzQp0v3pzTAsXk6FtgVMjdQ+lzFNVAmQFUkPQZ3WMZqH5tTo+Dp/IA==} + cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -504,6 +568,17 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -519,6 +594,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -535,6 +614,9 @@ packages: engines: {node: '>=18'} hasBin: true + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -607,10 +689,18 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -626,6 +716,9 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + denque@2.1.0: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} engines: {node: '>=0.10'} @@ -661,6 +754,12 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + engine.io-parser@5.2.3: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} @@ -673,6 +772,13 @@ packages: resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + es-abstract@1.23.9: resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} @@ -707,6 +813,13 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -736,6 +849,13 @@ packages: resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} engines: {node: '>=14.0.0'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -754,6 +874,11 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -774,6 +899,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -795,6 +923,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -826,6 +957,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -834,21 +968,49 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + inflection@1.13.4: resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} engines: {'0': node >= 0.4.0} @@ -860,6 +1022,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inquire@0.4.8: resolution: {integrity: sha512-up9ueqKwPnuitvEqyOxBU1ggima7YsUywI00qEnYVnor9IissXbltZ86xi4VXKkci0/qWAtfMP/nu4oR4fUaEQ==} engines: {node: '>=0.8.22'} @@ -872,6 +1037,10 @@ packages: resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==} engines: {node: '>=12.22.0'} + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -932,6 +1101,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -996,6 +1168,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdom@26.1.0: resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} @@ -1024,6 +1199,10 @@ packages: resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} engines: {node: 20 || >=22} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + luxon@3.6.1: resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} engines: {node: '>=12'} @@ -1031,6 +1210,10 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -1043,6 +1226,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + minimatch@10.0.1: resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} engines: {node: 20 || >=22} @@ -1053,10 +1240,50 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + mock-property@1.1.0: resolution: {integrity: sha512-1/JjbLoGwv87xVsutkX0XJc0M0W4kb40cZl/K41xtTViBOD9JuFPKfyMNTrLJ/ivYAd0aPqu/vduamXO0emTFQ==} engines: {node: '>= 0.4'} @@ -1082,13 +1309,23 @@ packages: engines: {node: ^18 || >=20} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + engines: {node: '>=10'} + node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -1097,15 +1334,30 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true + node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + nodemon@3.1.10: resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} engines: {node: '>=10'} hasBin: true + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} @@ -1136,6 +1388,10 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -1164,9 +1420,6 @@ packages: pg-cloudflare@1.2.5: resolution: {integrity: sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==} - pg-connection-string@2.7.0: - resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} - pg-connection-string@2.8.5: resolution: {integrity: sha512-Ni8FuZ8yAF+sWZzojvtLE2b03cqjO5jNULcHFfM9ZZ0/JXrgom5pBREbtnAw7oxsxJqHw9Nz/XWORUEL3/IFow==} @@ -1225,16 +1478,44 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -1266,6 +1547,15 @@ packages: retry-as-promised@7.1.1: resolution: {integrity: sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@6.0.1: resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} engines: {node: 20 || >=22} @@ -1293,6 +1583,9 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -1354,6 +1647,9 @@ packages: tedious: optional: true + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -1394,14 +1690,27 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -1413,10 +1722,28 @@ packages: resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} engines: {node: '>=10.2.0'} + socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + sqlite3@5.1.7: + resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + + ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -1444,6 +1771,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1452,6 +1782,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -1475,6 +1809,17 @@ packages: resolution: {integrity: sha512-czbGgxSVwRlbB3Ly/aqQrNwrDAzKHDW/kVXegp4hSFmR2c8qqm3hCgZbUy1+3QAQFGhPDG7J56UsV1uNilBFCA==} hasBin: true + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} @@ -1508,6 +1853,9 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -1539,6 +1887,15 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + + unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -1596,6 +1953,9 @@ packages: engines: {node: '>= 8'} hasBin: true + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wkx@0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} @@ -1649,6 +2009,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -1700,6 +2063,9 @@ snapshots: '@csstools/css-tokenizer@3.0.3': {} + '@gar/promisify@1.1.3': + optional: true + '@ioredis/commands@1.2.0': {} '@isaacs/cliui@8.0.2': @@ -1725,7 +2091,7 @@ snapshots: ioredis: 5.6.1 nanoid: 5.1.5 pg: 8.15.6 - sequelize: 6.37.7(pg@8.15.6) + sequelize: 6.37.7(pg@8.15.6)(sqlite3@5.1.7) socket.io: 4.8.1 zod: 3.24.2 transitivePeerDependencies: @@ -1785,6 +2151,18 @@ snapshots: '@noble/hashes@1.8.0': {} + '@npmcli/fs@1.1.1': + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.7.1 + optional: true + + '@npmcli/move-file@1.1.2': + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + optional: true + '@paralleldrive/cuid2@2.2.2': dependencies: '@noble/hashes': 1.8.0 @@ -1851,6 +2229,9 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@tootallnate/once@1.1.2': + optional: true + '@types/bun@1.2.11': dependencies: bun-types: 1.2.11 @@ -1889,13 +2270,34 @@ snapshots: '@types/validator@13.12.2': {} + abbrev@1.1.1: + optional: true + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + agent-base@6.0.2: + dependencies: + debug: 4.4.0(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + optional: true + agent-base@7.1.3: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + optional: true + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + optional: true + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -1911,6 +2313,15 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + aproba@2.0.0: + optional: true + + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + optional: true + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.3 @@ -1954,10 +2365,22 @@ snapshots: balanced-match@1.0.2: {} + base64-js@1.5.1: {} + base64id@2.0.0: {} binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -1971,6 +2394,11 @@ snapshots: dependencies: fill-range: 7.1.1 + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bullmq@5.51.1: dependencies: cron-parser: 4.9.0 @@ -1987,6 +2415,30 @@ snapshots: dependencies: '@types/node': 22.15.3 + cacache@15.3.0: + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.2.1 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + optional: true + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -2021,6 +2473,13 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chownr@1.1.4: {} + + chownr@2.0.0: {} + + clean-stack@2.2.0: + optional: true + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -2035,6 +2494,9 @@ snapshots: color-name@1.1.4: {} + color-support@1.1.3: + optional: true + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -2053,6 +2515,9 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + console-control-strings@1.1.0: + optional: true + cookie@0.7.2: {} cookie@1.0.2: {} @@ -2120,6 +2585,10 @@ snapshots: decimal.js@10.5.0: {} + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.2 @@ -2141,6 +2610,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.18 + deep-extend@0.6.0: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -2157,10 +2628,12 @@ snapshots: delayed-stream@1.0.0: {} + delegates@1.0.0: + optional: true + denque@2.1.0: {} - detect-libc@2.0.4: - optional: true + detect-libc@2.0.4: {} dezalgo@1.0.4: dependencies: @@ -2187,6 +2660,15 @@ snapshots: emoji-regex@9.2.2: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + engine.io-parser@5.2.3: {} engine.io@6.6.4: @@ -2207,6 +2689,12 @@ snapshots: entities@6.0.0: {} + env-paths@2.2.1: + optional: true + + err-code@2.0.3: + optional: true + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 @@ -2298,6 +2786,10 @@ snapshots: eventemitter3@5.0.1: {} + expand-template@2.0.3: {} + + file-uri-to-path@1.0.0: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -2326,6 +2818,12 @@ snapshots: dezalgo: 1.0.4 once: 1.4.0 + fs-constants@1.0.0: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -2344,6 +2842,18 @@ snapshots: functions-have-names@1.2.3: {} + gauge@4.0.4: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + optional: true + get-caller-file@2.0.5: {} get-intrinsic@1.2.7: @@ -2372,6 +2882,8 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.7 + github-from-package@0.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -2401,6 +2913,9 @@ snapshots: gopd@1.2.0: {} + graceful-fs@4.2.11: + optional: true + has-bigints@1.1.0: {} has-dynamic-import@2.1.1: @@ -2427,6 +2942,9 @@ snapshots: dependencies: has-symbols: 1.1.0 + has-unicode@2.0.1: + optional: true + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -2435,6 +2953,18 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 + http-cache-semantics@4.1.1: + optional: true + + http-proxy-agent@4.0.1: + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.4.0(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + optional: true + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -2442,6 +2972,14 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + optional: true + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 @@ -2449,12 +2987,28 @@ snapshots: transitivePeerDependencies: - supports-color + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + optional: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 + ieee754@1.2.1: {} + ignore-by-default@1.0.1: {} + imurmurhash@0.1.4: + optional: true + + indent-string@4.0.0: + optional: true + + infer-owner@1.0.4: + optional: true + inflection@1.13.4: {} inflight@1.0.6: @@ -2464,6 +3018,8 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + inquire@0.4.8: {} internal-slot@1.1.0: @@ -2486,6 +3042,12 @@ snapshots: transitivePeerDependencies: - supports-color + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + optional: true + is-arguments@1.2.0: dependencies: call-bound: 1.0.3 @@ -2554,6 +3116,9 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-lambda@1.0.1: + optional: true + is-map@2.0.3: {} is-number-object@1.1.1: @@ -2615,6 +3180,9 @@ snapshots: js-tokens@4.0.0: optional: true + jsbn@1.1.0: + optional: true + jsdom@26.1.0: dependencies: cssstyle: 4.3.1 @@ -2654,12 +3222,40 @@ snapshots: lru-cache@11.0.2: {} + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + optional: true + luxon@3.6.1: {} magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + make-fetch-happen@9.1.0: + dependencies: + agentkeepalive: 4.6.0 + cacache: 15.3.0 + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + math-intrinsics@1.1.0: {} mime-db@1.52.0: {} @@ -2668,6 +3264,8 @@ snapshots: dependencies: mime-db: 1.52.0 + mimic-response@3.1.0: {} + minimatch@10.0.1: dependencies: brace-expansion: 2.0.1 @@ -2678,8 +3276,52 @@ snapshots: minimist@1.2.8: {} + minipass-collect@1.0.2: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-fetch@1.4.1: + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + optional: true + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + optional: true + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp-classic@0.5.3: {} + + mkdirp@1.0.4: {} + mock-property@1.1.0: dependencies: define-data-property: 1.1.4 @@ -2716,10 +3358,18 @@ snapshots: nanoid@5.1.5: {} + napi-build-utils@2.0.0: {} + negotiator@0.6.3: {} + node-abi@3.75.0: + dependencies: + semver: 7.7.1 + node-abort-controller@3.1.1: {} + node-addon-api@7.1.1: {} + node-forge@1.3.1: {} node-gyp-build-optional-packages@5.2.2: @@ -2727,6 +3377,23 @@ snapshots: detect-libc: 2.0.4 optional: true + node-gyp@8.4.1: + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.7.1 + tar: 6.2.1 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + nodemon@3.1.10: dependencies: chokidar: 3.6.0 @@ -2740,8 +3407,21 @@ snapshots: touch: 3.1.1 undefsafe: 2.0.5 + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + optional: true + normalize-path@3.0.0: {} + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + optional: true + nwsapi@2.2.20: {} object-assign@4.1.1: {} @@ -2774,6 +3454,11 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + optional: true + package-json-from-dist@1.0.1: {} parse5@7.3.0: @@ -2796,8 +3481,6 @@ snapshots: pg-cloudflare@1.2.5: optional: true - pg-connection-string@2.7.0: {} - pg-connection-string@2.8.5: {} pg-int8@1.0.1: {} @@ -2847,12 +3530,54 @@ snapshots: dependencies: xtend: 4.0.2 + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.4 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.75.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + + promise-inflight@1.0.1: + optional: true + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + optional: true + proxy-from-env@1.1.0: {} pstree.remy@1.1.8: {} + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode@2.3.1: {} + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -2893,6 +3618,14 @@ snapshots: retry-as-promised@7.1.1: {} + retry@0.12.0: + optional: true + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + optional: true + rimraf@6.0.1: dependencies: glob: 11.0.1 @@ -2946,6 +3679,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -2972,7 +3707,7 @@ snapshots: sequelize-pool@7.1.0: {} - sequelize@6.37.7(pg@8.15.6): + sequelize@6.37.7(pg@8.15.6)(sqlite3@5.1.7): dependencies: '@types/debug': 4.1.12 '@types/validator': 13.12.2 @@ -2982,7 +3717,7 @@ snapshots: lodash: 4.17.21 moment: 2.30.1 moment-timezone: 0.5.47 - pg-connection-string: 2.7.0 + pg-connection-string: 2.8.5 retry-as-promised: 7.1.1 semver: 7.7.1 sequelize-pool: 7.1.0 @@ -2992,9 +3727,13 @@ snapshots: wkx: 0.5.0 optionalDependencies: pg: 8.15.6 + sqlite3: 5.1.7 transitivePeerDependencies: - supports-color + set-blocking@2.0.0: + optional: true + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -3053,12 +3792,26 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: + optional: true + signal-exit@4.1.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-update-notifier@2.0.0: dependencies: semver: 7.7.1 + smart-buffer@4.2.0: + optional: true + socket.io-adapter@2.5.5: dependencies: debug: 4.3.7 @@ -3089,8 +3842,43 @@ snapshots: - supports-color - utf-8-validate + socks-proxy-agent@6.2.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0(supports-color@5.5.0) + socks: 2.8.4 + transitivePeerDependencies: + - supports-color + optional: true + + socks@2.8.4: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + optional: true + split2@4.2.0: {} + sprintf-js@1.1.3: + optional: true + + sqlite3@5.1.7: + dependencies: + bindings: 1.5.0 + node-addon-api: 7.1.1 + prebuild-install: 7.1.3 + tar: 6.2.1 + optionalDependencies: + node-gyp: 8.4.1 + transitivePeerDependencies: + - bluebird + - supports-color + + ssri@8.0.1: + dependencies: + minipass: 3.3.6 + optional: true + standard-as-callback@2.1.0: {} stop-iteration-iterator@1.1.0: @@ -3133,6 +3921,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3141,6 +3933,8 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-json-comments@2.0.1: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -3182,6 +3976,30 @@ snapshots: resolve: 2.0.0-next.5 string.prototype.trim: 1.2.10 + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + tldts-core@6.1.86: {} tldts@6.1.86: @@ -3208,6 +4026,10 @@ snapshots: tslib@2.8.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.3 @@ -3254,6 +4076,18 @@ snapshots: undici-types@6.21.0: {} + unique-filename@1.1.1: + dependencies: + unique-slug: 2.0.2 + optional: true + + unique-slug@2.0.2: + dependencies: + imurmurhash: 0.1.4 + optional: true + + util-deprecate@1.0.2: {} + uuid@8.3.2: {} uuid@9.0.1: {} @@ -3323,6 +4157,11 @@ snapshots: dependencies: isexe: 2.0.0 + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + optional: true + wkx@0.5.0: dependencies: '@types/node': 22.15.3 @@ -3353,6 +4192,8 @@ snapshots: y18n@5.0.8: {} + yallist@4.0.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4a7ba6e..7d7a191 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,6 @@ packages: - packages/* - - submodules/* \ No newline at end of file + - submodules/* +onlyBuiltDependencies: + - better-sqlite3 + - sqlite3