@lark-apaas/client-toolkit-lite 1.1.15-alpha.9 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -281,19 +281,18 @@ function getLegacyParentOrigin() {
281
281
  return "https://miaoda.feishu-boe.cn";
282
282
  }
283
283
  __name(getLegacyParentOrigin, "getLegacyParentOrigin");
284
- var MIAODA_PARENT_ORIGIN_RE = /^https:\/\/(miaoda|force)\.feishu(-pre|-boe|-staging)?\.cn$/;
285
284
  function resolveParentOrigin() {
286
- const paramOrigin = getParentOriginFromParams();
287
- if (paramOrigin) return paramOrigin;
288
285
  try {
289
286
  if (document.referrer) {
290
287
  const referrerOrigin = new URL(document.referrer).origin;
291
- if (MIAODA_PARENT_ORIGIN_RE.test(referrerOrigin) || referrerOrigin.startsWith("http://localhost") || referrerOrigin.startsWith("http://127.0.0.1")) {
288
+ if (referrerOrigin.startsWith("http://localhost") || referrerOrigin.startsWith("http://127.0.0.1")) {
292
289
  return referrerOrigin;
293
290
  }
294
291
  }
295
292
  } catch {
296
293
  }
294
+ const paramOrigin = getParentOriginFromParams();
295
+ if (paramOrigin) return paramOrigin;
297
296
  return process.env?.FORCE_FRAMEWORK_DOMAIN_MAIN ?? getLegacyParentOrigin();
298
297
  }
299
298
  __name(resolveParentOrigin, "resolveParentOrigin");
@@ -301,10 +300,7 @@ function submitPostMessage(message, targetOrigin) {
301
300
  try {
302
301
  const parentOrigin = resolveParentOrigin();
303
302
  const origin = targetOrigin ?? parentOrigin;
304
- if (!origin) {
305
- console.error("postMessage skipped: cannot resolve parent origin");
306
- return;
307
- }
303
+ if (!origin) return;
308
304
  window.parent.postMessage(message, origin);
309
305
  } catch (e) {
310
306
  console.error("postMessage error", e);
@@ -1186,6 +1182,29 @@ function getAppId() {
1186
1182
  }
1187
1183
  __name(getAppId, "getAppId");
1188
1184
 
1185
+ // src/utils/getEnv.ts
1186
+ function getEnv() {
1187
+ switch (globalThis.ENVIRONMENT) {
1188
+ case "staging":
1189
+ return "BOE";
1190
+ case "gray":
1191
+ return "PRE";
1192
+ case "online":
1193
+ return "ONLINE";
1194
+ default:
1195
+ break;
1196
+ }
1197
+ const { origin } = window.location;
1198
+ if (origin.includes("feishuapp.cn") || origin.includes("miaoda.feishuapp.net") || origin.includes("aiforce.cloud") || origin.includes("aiforce.run")) {
1199
+ return "ONLINE";
1200
+ } else if (origin.includes("fsapp.kundou.cn") || origin.includes("miaoda-pre.feishuapp.net") || origin.includes("aiforce-pre.bytedance.net") || origin.includes("aiforce-pre-preview.bytedance.net") || origin.includes("aiforce-pre.cloud") || origin.includes("aiforce-pre.run")) {
1201
+ return "PRE";
1202
+ } else {
1203
+ return "BOE";
1204
+ }
1205
+ }
1206
+ __name(getEnv, "getEnv");
1207
+
1189
1208
  // src/utils/getInitialInfo.ts
1190
1209
  async function getAppPublished() {
1191
1210
  try {
@@ -1516,6 +1535,10 @@ var messages = {
1516
1535
  zh: "\u4E86\u89E3\u66F4\u591A",
1517
1536
  en: "Learn more"
1518
1537
  },
1538
+ "safety.report": {
1539
+ zh: "\u6295\u8BC9\u4E0E\u4E3E\u62A5",
1540
+ en: "Report"
1541
+ },
1519
1542
  "safety.cover.pc": {
1520
1543
  zh: "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/logo/miaodacover.png",
1521
1544
  en: "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/logo/miaodacover-weben.png"
@@ -1617,7 +1640,26 @@ var getCoverUrl = /* @__PURE__ */ __name(() => t("safety.cover.pc"), "getCoverUr
1617
1640
  var getCoverMobileUrl = /* @__PURE__ */ __name(() => t("safety.cover.mobile"), "getCoverMobileUrl");
1618
1641
  var ICON_COMPANY_URL = "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/icon/icon_company_outlined.svg";
1619
1642
  var ICON_AI_URL = "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/icon/icon_efficiency-ai_outlined.svg";
1643
+ var ICON_FEEDBACK_URL = "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/miaoda-ui/icon_feedback_outlined.png";
1620
1644
  var LANDING_URL = "https://miaoda.feishu.cn/landing";
1645
+ var REPORT_DOMAIN = {
1646
+ BOE: "tns.feishu-boe.cn",
1647
+ PRE: "tns.feishu-pre.cn",
1648
+ ONLINE: "tns.feishu.cn"
1649
+ };
1650
+ var openReport = /* @__PURE__ */ __name(() => {
1651
+ const appId = getAppId();
1652
+ if (!appId) return;
1653
+ const params = JSON.stringify({
1654
+ scene: "miaoda_app_report",
1655
+ entity_id: appId,
1656
+ entity_type: "miaoda_app",
1657
+ extra: ""
1658
+ });
1659
+ const domain = REPORT_DOMAIN[getEnv()] ?? REPORT_DOMAIN.ONLINE;
1660
+ const url = `https://${domain}/cust/lark_report/?type=common&params=${encodeURIComponent(params)}&lang=zh-CN`;
1661
+ window.open(url, "_blank", "noopener,noreferrer");
1662
+ }, "openReport");
1621
1663
  var badgeBase = {
1622
1664
  ...resetBase,
1623
1665
  position: "fixed",
@@ -1962,7 +2004,24 @@ var Safety = /* @__PURE__ */ __name(() => {
1962
2004
  style: infoIconMobile
1963
2005
  }), /* @__PURE__ */ import_react5.default.createElement("p", {
1964
2006
  style: sheetInfoText
1965
- }, t("safety.ai.disclaimer")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2007
+ }, t("safety.ai.disclaimer"))), /* @__PURE__ */ import_react5.default.createElement("div", {
2008
+ style: {
2009
+ ...infoRow,
2010
+ cursor: "pointer"
2011
+ },
2012
+ "data-custom-element": "safety-report",
2013
+ onClick: openReport
2014
+ }, /* @__PURE__ */ import_react5.default.createElement("img", {
2015
+ src: ICON_FEEDBACK_URL,
2016
+ style: infoIconMobile
2017
+ }), /* @__PURE__ */ import_react5.default.createElement("p", {
2018
+ style: {
2019
+ ...sheetInfoText,
2020
+ cursor: "pointer",
2021
+ textDecoration: "underline",
2022
+ textUnderlineOffset: "2px"
2023
+ }
2024
+ }, t("safety.report")))), /* @__PURE__ */ import_react5.default.createElement("div", {
1966
2025
  style: mobileBtnRow
1967
2026
  }, /* @__PURE__ */ import_react5.default.createElement("div", {
1968
2027
  style: mobileBtnOutline,
@@ -2044,7 +2103,24 @@ var Safety = /* @__PURE__ */ __name(() => {
2044
2103
  style: infoIcon
2045
2104
  }), /* @__PURE__ */ import_react5.default.createElement("p", {
2046
2105
  style: infoText
2047
- }, t("safety.ai.disclaimer")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2106
+ }, t("safety.ai.disclaimer"))), /* @__PURE__ */ import_react5.default.createElement("div", {
2107
+ style: {
2108
+ ...infoRow,
2109
+ cursor: "pointer"
2110
+ },
2111
+ "data-custom-element": "safety-report",
2112
+ onClick: openReport
2113
+ }, /* @__PURE__ */ import_react5.default.createElement("img", {
2114
+ src: ICON_FEEDBACK_URL,
2115
+ style: infoIcon
2116
+ }), /* @__PURE__ */ import_react5.default.createElement("p", {
2117
+ style: {
2118
+ ...infoText,
2119
+ cursor: "pointer",
2120
+ textDecoration: "underline",
2121
+ textUnderlineOffset: "2px"
2122
+ }
2123
+ }, t("safety.report")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2048
2124
  style: btnRow
2049
2125
  }, /* @__PURE__ */ import_react5.default.createElement(HoverButton, {
2050
2126
  style: btnBase,
@@ -2074,7 +2150,7 @@ var DOUBAO_PILL_MOBILE_PNG = `${CDN}/Frame%202147223991%20(3).png`;
2074
2150
 
2075
2151
  // src/components/AppContainer/Watermark.tsx
2076
2152
  var DOUBAO_SOURCE = "5";
2077
- var REPORT_ENABLED = false;
2153
+ var REPORT_ENABLED = true;
2078
2154
  var BRAND_TEXT = "\u8C46\u5305 AI \u751F\u6210";
2079
2155
  var POWERED_BY_TEXT = "\u7531\u98DE\u4E66\u5999\u642D\u63D0\u4F9B\u652F\u6301";
2080
2156
  var FONT_FAMILY2 = "'PingFang SC', -apple-system, BlinkMacSystemFont, sans-serif";
@@ -2151,7 +2227,7 @@ var Avatar = /* @__PURE__ */ __name(({ size }) => /* @__PURE__ */ import_react6.
2151
2227
  display: "block"
2152
2228
  }
2153
2229
  }), "Avatar");
2154
- var Pill = /* @__PURE__ */ __name(({ variant, onClose }) => {
2230
+ var Pill = /* @__PURE__ */ __name(({ variant, onClose, showClose = false }) => {
2155
2231
  const isDesktop = variant === "desktop";
2156
2232
  return /* @__PURE__ */ import_react6.default.createElement("div", {
2157
2233
  style: {
@@ -2176,7 +2252,7 @@ var Pill = /* @__PURE__ */ __name(({ variant, onClose }) => {
2176
2252
  color: "rgba(255,255,255,0.85)",
2177
2253
  whiteSpace: "nowrap"
2178
2254
  }
2179
- }, BRAND_TEXT), isDesktop && onClose && /* @__PURE__ */ import_react6.default.createElement("span", {
2255
+ }, BRAND_TEXT), isDesktop && onClose && showClose && /* @__PURE__ */ import_react6.default.createElement("span", {
2180
2256
  role: "button",
2181
2257
  "aria-label": "\u5173\u95ED",
2182
2258
  onClick: /* @__PURE__ */ __name((e) => {
@@ -2383,7 +2459,8 @@ var Watermark = /* @__PURE__ */ __name(() => {
2383
2459
  minWidth: 144
2384
2460
  }), /* @__PURE__ */ import_react6.default.createElement(Pill, {
2385
2461
  variant: "desktop",
2386
- onClose: /* @__PURE__ */ __name(() => setClosed(true), "onClose")
2462
+ onClose: /* @__PURE__ */ __name(() => setClosed(true), "onClose"),
2463
+ showClose: open
2387
2464
  }));
2388
2465
  }, "Watermark");
2389
2466
  var Watermark_default = Watermark;
@@ -2522,29 +2599,6 @@ var isIOS = /* @__PURE__ */ __name(() => {
2522
2599
  return false;
2523
2600
  }, "isIOS");
2524
2601
 
2525
- // src/utils/getEnv.ts
2526
- function getEnv() {
2527
- switch (globalThis.ENVIRONMENT) {
2528
- case "staging":
2529
- return "BOE";
2530
- case "gray":
2531
- return "PRE";
2532
- case "online":
2533
- return "ONLINE";
2534
- default:
2535
- break;
2536
- }
2537
- const { origin } = window.location;
2538
- if (origin.includes("feishuapp.cn") || origin.includes("miaoda.feishuapp.net") || origin.includes("aiforce.cloud") || origin.includes("aiforce.run")) {
2539
- return "ONLINE";
2540
- } else if (origin.includes("fsapp.kundou.cn") || origin.includes("miaoda-pre.feishuapp.net") || origin.includes("aiforce-pre.bytedance.net") || origin.includes("aiforce-pre-preview.bytedance.net") || origin.includes("aiforce-pre.cloud") || origin.includes("aiforce-pre.run")) {
2541
- return "PRE";
2542
- } else {
2543
- return "BOE";
2544
- }
2545
- }
2546
- __name(getEnv, "getEnv");
2547
-
2548
2602
  // src/components/AppContainer/utils/getLarkUser.ts
2549
2603
  async function getLarkUserInfo() {
2550
2604
  const appId = getAppId();
@@ -2910,22 +2964,22 @@ function isExternalLink(to) {
2910
2964
  return to.startsWith("http://") || to.startsWith("https://") || to.startsWith("//");
2911
2965
  }
2912
2966
  __name(isExternalLink, "isExternalLink");
2913
- var MIAODA_PARENT_ORIGIN_RE2 = /^https:\/\/(miaoda|force)\.feishu(-pre|-boe|-staging)?\.cn$/;
2914
- function isIframeUnderMiaoda() {
2967
+ function isIframeUnderMainHost() {
2915
2968
  if (typeof window === "undefined") return false;
2916
2969
  if (window.parent === window) return false;
2970
+ if (getParentOriginFromParams()) return true;
2971
+ const envOrigin = process.env.FORCE_FRAMEWORK_DOMAIN_MAIN;
2972
+ if (!envOrigin || !document.referrer) return false;
2917
2973
  try {
2918
- if (!document.referrer) return false;
2919
- const refOrigin = new URL(document.referrer).origin;
2920
- return MIAODA_PARENT_ORIGIN_RE2.test(refOrigin);
2974
+ return new URL(document.referrer).origin === envOrigin;
2921
2975
  } catch {
2922
2976
  return false;
2923
2977
  }
2924
2978
  }
2925
- __name(isIframeUnderMiaoda, "isIframeUnderMiaoda");
2979
+ __name(isIframeUnderMainHost, "isIframeUnderMainHost");
2926
2980
  var UniversalLink = /* @__PURE__ */ import_react15.default.forwardRef(/* @__PURE__ */ __name(function UniversalLink2({ to, onClick, ...props }, ref) {
2927
2981
  const isExternal = isExternalLink(to);
2928
- const preview = (isPreview() || isIframeUnderMiaoda()) && isExternal;
2982
+ const preview = (isPreview() || isIframeUnderMainHost()) && isExternal;
2929
2983
  if (preview) {
2930
2984
  const handlePreviewClick = /* @__PURE__ */ __name((e) => {
2931
2985
  e.preventDefault();