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

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
@@ -282,6 +282,8 @@ function getLegacyParentOrigin() {
282
282
  }
283
283
  __name(getLegacyParentOrigin, "getLegacyParentOrigin");
284
284
  function resolveParentOrigin() {
285
+ const paramOrigin = getParentOriginFromParams();
286
+ if (paramOrigin) return paramOrigin;
285
287
  try {
286
288
  if (document.referrer) {
287
289
  const referrerOrigin = new URL(document.referrer).origin;
@@ -291,8 +293,6 @@ function resolveParentOrigin() {
291
293
  }
292
294
  } catch {
293
295
  }
294
- const paramOrigin = getParentOriginFromParams();
295
- if (paramOrigin) return paramOrigin;
296
296
  return process.env?.FORCE_FRAMEWORK_DOMAIN_MAIN ?? getLegacyParentOrigin();
297
297
  }
298
298
  __name(resolveParentOrigin, "resolveParentOrigin");
@@ -300,7 +300,10 @@ function submitPostMessage(message, targetOrigin) {
300
300
  try {
301
301
  const parentOrigin = resolveParentOrigin();
302
302
  const origin = targetOrigin ?? parentOrigin;
303
- if (!origin) return;
303
+ if (!origin) {
304
+ console.error("postMessage skipped: cannot resolve parent origin");
305
+ return;
306
+ }
304
307
  window.parent.postMessage(message, origin);
305
308
  } catch (e) {
306
309
  console.error("postMessage error", e);
@@ -1182,29 +1185,6 @@ function getAppId() {
1182
1185
  }
1183
1186
  __name(getAppId, "getAppId");
1184
1187
 
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
-
1208
1188
  // src/utils/getInitialInfo.ts
1209
1189
  async function getAppPublished() {
1210
1190
  try {
@@ -1535,10 +1515,6 @@ var messages = {
1535
1515
  zh: "\u4E86\u89E3\u66F4\u591A",
1536
1516
  en: "Learn more"
1537
1517
  },
1538
- "safety.report": {
1539
- zh: "\u6295\u8BC9\u4E0E\u4E3E\u62A5",
1540
- en: "Report"
1541
- },
1542
1518
  "safety.cover.pc": {
1543
1519
  zh: "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/logo/miaodacover.png",
1544
1520
  en: "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/logo/miaodacover-weben.png"
@@ -1640,23 +1616,7 @@ var getCoverUrl = /* @__PURE__ */ __name(() => t("safety.cover.pc"), "getCoverUr
1640
1616
  var getCoverMobileUrl = /* @__PURE__ */ __name(() => t("safety.cover.mobile"), "getCoverMobileUrl");
1641
1617
  var ICON_COMPANY_URL = "https://lf3-static.bytednsdoc.com/obj/eden-cn/LMfspH/ljhwZthlaukjlkulzlp/icon/icon_company_outlined.svg";
1642
1618
  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";
1644
1619
  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 params = JSON.stringify({
1652
- scene: "miaoda_app_report",
1653
- entity_id: getAppId() ?? "",
1654
- entity_type: "miaoda_app",
1655
- extra: ""
1656
- });
1657
- const url = `https://${REPORT_DOMAIN[getEnv()]}/cust/lark_report/?type=common&params=${encodeURIComponent(params)}&lang=zh-CN`;
1658
- window.open(url, "_blank", "noopener,noreferrer");
1659
- }, "openReport");
1660
1620
  var badgeBase = {
1661
1621
  ...resetBase,
1662
1622
  position: "fixed",
@@ -2001,24 +1961,7 @@ var Safety = /* @__PURE__ */ __name(() => {
2001
1961
  style: infoIconMobile
2002
1962
  }), /* @__PURE__ */ import_react5.default.createElement("p", {
2003
1963
  style: sheetInfoText
2004
- }, t("safety.ai.disclaimer"))), /* @__PURE__ */ import_react5.default.createElement("div", {
2005
- style: {
2006
- ...infoRow,
2007
- cursor: "pointer"
2008
- },
2009
- "data-custom-element": "safety-report",
2010
- onClick: openReport
2011
- }, /* @__PURE__ */ import_react5.default.createElement("img", {
2012
- src: ICON_FEEDBACK_URL,
2013
- style: infoIconMobile
2014
- }), /* @__PURE__ */ import_react5.default.createElement("p", {
2015
- style: {
2016
- ...sheetInfoText,
2017
- cursor: "pointer",
2018
- textDecoration: "underline",
2019
- textUnderlineOffset: "2px"
2020
- }
2021
- }, t("safety.report")))), /* @__PURE__ */ import_react5.default.createElement("div", {
1964
+ }, t("safety.ai.disclaimer")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2022
1965
  style: mobileBtnRow
2023
1966
  }, /* @__PURE__ */ import_react5.default.createElement("div", {
2024
1967
  style: mobileBtnOutline,
@@ -2100,24 +2043,7 @@ var Safety = /* @__PURE__ */ __name(() => {
2100
2043
  style: infoIcon
2101
2044
  }), /* @__PURE__ */ import_react5.default.createElement("p", {
2102
2045
  style: infoText
2103
- }, t("safety.ai.disclaimer"))), /* @__PURE__ */ import_react5.default.createElement("div", {
2104
- style: {
2105
- ...infoRow,
2106
- cursor: "pointer"
2107
- },
2108
- "data-custom-element": "safety-report",
2109
- onClick: openReport
2110
- }, /* @__PURE__ */ import_react5.default.createElement("img", {
2111
- src: ICON_FEEDBACK_URL,
2112
- style: infoIcon
2113
- }), /* @__PURE__ */ import_react5.default.createElement("p", {
2114
- style: {
2115
- ...infoText,
2116
- cursor: "pointer",
2117
- textDecoration: "underline",
2118
- textUnderlineOffset: "2px"
2119
- }
2120
- }, t("safety.report")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2046
+ }, t("safety.ai.disclaimer")))), /* @__PURE__ */ import_react5.default.createElement("div", {
2121
2047
  style: btnRow
2122
2048
  }, /* @__PURE__ */ import_react5.default.createElement(HoverButton, {
2123
2049
  style: btnBase,
@@ -2147,7 +2073,7 @@ var DOUBAO_PILL_MOBILE_PNG = `${CDN}/Frame%202147223991%20(3).png`;
2147
2073
 
2148
2074
  // src/components/AppContainer/Watermark.tsx
2149
2075
  var DOUBAO_SOURCE = "5";
2150
- var REPORT_ENABLED = true;
2076
+ var REPORT_ENABLED = false;
2151
2077
  var BRAND_TEXT = "\u8C46\u5305 AI \u751F\u6210";
2152
2078
  var POWERED_BY_TEXT = "\u7531\u98DE\u4E66\u5999\u642D\u63D0\u4F9B\u652F\u6301";
2153
2079
  var FONT_FAMILY2 = "'PingFang SC', -apple-system, BlinkMacSystemFont, sans-serif";
@@ -2224,7 +2150,7 @@ var Avatar = /* @__PURE__ */ __name(({ size }) => /* @__PURE__ */ import_react6.
2224
2150
  display: "block"
2225
2151
  }
2226
2152
  }), "Avatar");
2227
- var Pill = /* @__PURE__ */ __name(({ variant, onClose, showClose = false }) => {
2153
+ var Pill = /* @__PURE__ */ __name(({ variant, onClose }) => {
2228
2154
  const isDesktop = variant === "desktop";
2229
2155
  return /* @__PURE__ */ import_react6.default.createElement("div", {
2230
2156
  style: {
@@ -2249,7 +2175,7 @@ var Pill = /* @__PURE__ */ __name(({ variant, onClose, showClose = false }) => {
2249
2175
  color: "rgba(255,255,255,0.85)",
2250
2176
  whiteSpace: "nowrap"
2251
2177
  }
2252
- }, BRAND_TEXT), isDesktop && onClose && showClose && /* @__PURE__ */ import_react6.default.createElement("span", {
2178
+ }, BRAND_TEXT), isDesktop && onClose && /* @__PURE__ */ import_react6.default.createElement("span", {
2253
2179
  role: "button",
2254
2180
  "aria-label": "\u5173\u95ED",
2255
2181
  onClick: /* @__PURE__ */ __name((e) => {
@@ -2456,8 +2382,7 @@ var Watermark = /* @__PURE__ */ __name(() => {
2456
2382
  minWidth: 144
2457
2383
  }), /* @__PURE__ */ import_react6.default.createElement(Pill, {
2458
2384
  variant: "desktop",
2459
- onClose: /* @__PURE__ */ __name(() => setClosed(true), "onClose"),
2460
- showClose: open
2385
+ onClose: /* @__PURE__ */ __name(() => setClosed(true), "onClose")
2461
2386
  }));
2462
2387
  }, "Watermark");
2463
2388
  var Watermark_default = Watermark;
@@ -2596,6 +2521,29 @@ var isIOS = /* @__PURE__ */ __name(() => {
2596
2521
  return false;
2597
2522
  }, "isIOS");
2598
2523
 
2524
+ // src/utils/getEnv.ts
2525
+ function getEnv() {
2526
+ switch (globalThis.ENVIRONMENT) {
2527
+ case "staging":
2528
+ return "BOE";
2529
+ case "gray":
2530
+ return "PRE";
2531
+ case "online":
2532
+ return "ONLINE";
2533
+ default:
2534
+ break;
2535
+ }
2536
+ const { origin } = window.location;
2537
+ if (origin.includes("feishuapp.cn") || origin.includes("miaoda.feishuapp.net") || origin.includes("aiforce.cloud") || origin.includes("aiforce.run")) {
2538
+ return "ONLINE";
2539
+ } 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")) {
2540
+ return "PRE";
2541
+ } else {
2542
+ return "BOE";
2543
+ }
2544
+ }
2545
+ __name(getEnv, "getEnv");
2546
+
2599
2547
  // src/components/AppContainer/utils/getLarkUser.ts
2600
2548
  async function getLarkUserInfo() {
2601
2549
  const appId = getAppId();
@@ -2961,19 +2909,57 @@ function isExternalLink(to) {
2961
2909
  return to.startsWith("http://") || to.startsWith("https://") || to.startsWith("//");
2962
2910
  }
2963
2911
  __name(isExternalLink, "isExternalLink");
2964
- var UniversalLink = /* @__PURE__ */ import_react15.default.forwardRef(/* @__PURE__ */ __name(function UniversalLink2({ to, ...props }, ref) {
2912
+ function isIframeUnderMainHost() {
2913
+ if (typeof window === "undefined") return false;
2914
+ if (window.parent === window) return false;
2915
+ if (getParentOriginFromParams()) return true;
2916
+ const envOrigin = process.env.FORCE_FRAMEWORK_DOMAIN_MAIN;
2917
+ if (!envOrigin || !document.referrer) return false;
2918
+ try {
2919
+ return new URL(document.referrer).origin === envOrigin;
2920
+ } catch {
2921
+ return false;
2922
+ }
2923
+ }
2924
+ __name(isIframeUnderMainHost, "isIframeUnderMainHost");
2925
+ var UniversalLink = /* @__PURE__ */ import_react15.default.forwardRef(/* @__PURE__ */ __name(function UniversalLink2({ to, onClick, ...props }, ref) {
2926
+ const isExternal = isExternalLink(to);
2927
+ const preview = (isPreview() || isIframeUnderMainHost()) && isExternal;
2928
+ if (preview) {
2929
+ const handlePreviewClick = /* @__PURE__ */ __name((e) => {
2930
+ e.preventDefault();
2931
+ onClick?.(e);
2932
+ submitPostMessage({
2933
+ type: "OpenIframeLink",
2934
+ data: {
2935
+ href: to,
2936
+ external: true
2937
+ }
2938
+ });
2939
+ }, "handlePreviewClick");
2940
+ return /* @__PURE__ */ import_react15.default.createElement("a", {
2941
+ href: to,
2942
+ ref,
2943
+ ...props,
2944
+ onClick: handlePreviewClick,
2945
+ target: props.target ?? "_blank",
2946
+ rel: props.rel ?? "noopener noreferrer"
2947
+ });
2948
+ }
2965
2949
  if (isInternalRoute(to)) {
2966
2950
  return /* @__PURE__ */ import_react15.default.createElement(import_react_router_dom4.Link, {
2967
2951
  to,
2968
2952
  ref,
2969
- ...props
2953
+ ...props,
2954
+ onClick
2970
2955
  });
2971
2956
  }
2972
2957
  return /* @__PURE__ */ import_react15.default.createElement("a", {
2973
2958
  href: to,
2974
2959
  ref,
2975
2960
  ...props,
2976
- ...isExternalLink(to) && {
2961
+ onClick,
2962
+ ...isExternal && {
2977
2963
  target: props.target ?? "_blank",
2978
2964
  rel: props.rel ?? "noopener noreferrer"
2979
2965
  }