@lark-apaas/client-toolkit-lite 1.1.7-alpha.28 → 1.1.7-alpha.29

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
@@ -56,6 +56,7 @@ __export(index_exports, {
56
56
  getEnvPath: () => getEnvPath,
57
57
  getWsPath: () => getWsPath,
58
58
  initAxiosConfig: () => initAxiosConfig,
59
+ initObservable: () => initObservable,
59
60
  isIOS: () => isIOS,
60
61
  isIpad: () => isIpad,
61
62
  isMobile: () => isMobile,
@@ -66,6 +67,7 @@ __export(index_exports, {
66
67
  resolveAppUrl: () => resolveAppUrl,
67
68
  safeStringify: () => safeStringify,
68
69
  scopedStorage: () => scopedStorage,
70
+ trace: () => trace,
69
71
  useAppInfo: () => useAppInfo,
70
72
  useCurrentUserProfile: () => useCurrentUserProfile,
71
73
  useIsMobile: () => useIsMobile,
@@ -150,9 +152,43 @@ function initAxiosConfig(axiosInstance2) {
150
152
  }
151
153
  __name(initAxiosConfig, "initAxiosConfig");
152
154
 
153
- // src/logger/logger.ts
155
+ // src/runtime/observable.ts
154
156
  var import_observable_web = require("@lark-apaas/observable-web");
155
157
 
158
+ // src/utils/apiPath.ts
159
+ function isNewPathEnabled() {
160
+ const basePath = process.env.CLIENT_BASE_PATH || "/";
161
+ return /^\/app\/[^/]/.test(basePath);
162
+ }
163
+ __name(isNewPathEnabled, "isNewPathEnabled");
164
+
165
+ // src/runtime/observable.ts
166
+ var initObservable = /* @__PURE__ */ __name(() => {
167
+ try {
168
+ const appId = window.appId;
169
+ import_observable_web.observable.start({
170
+ serviceName: "app",
171
+ env: process.env.NODE_ENV === "development" ? import_observable_web.AppEnv.Dev : import_observable_web.AppEnv.Prod,
172
+ collectorUrl: isNewPathEnabled() ? {
173
+ log: `/app/${appId}/__runtime__/api/v1/observability/logs/collect`,
174
+ trace: `/app/${appId}/__runtime__/api/v1/observability/traces/collect`,
175
+ metric: `/app/${appId}/__runtime__/api/v1/observability/metrics/collect`,
176
+ time: `/app/${appId}/__runtime__/api/v1/observability/current_server_timestamp`
177
+ } : {
178
+ log: `/spark/app/${appId}/runtime/api/v1/observability/logs/collect`,
179
+ trace: `/spark/app/${appId}/runtime/api/v1/observability/traces/collect`,
180
+ metric: `/spark/app/${appId}/runtime/api/v1/observability/metrics/collect`,
181
+ time: `/spark/api/v1/observability/app/${appId}/current_server_timestamp`
182
+ }
183
+ });
184
+ } catch (error) {
185
+ console.error("Failed to start WebObservableSdk:", error);
186
+ }
187
+ }, "initObservable");
188
+
189
+ // src/logger/logger.ts
190
+ var import_observable_web2 = require("@lark-apaas/observable-web");
191
+
156
192
  // src/logger/intercept-global-error.ts
157
193
  var import_internal_slardar = require("@lark-apaas/internal-slardar");
158
194
 
@@ -971,7 +1007,7 @@ var logger = {
971
1007
  console.log(...getFormattedPrefix("info"), message, ...args);
972
1008
  }
973
1009
  if (shouldReportToObservable) {
974
- import_observable_web.observable.log("INFO", processLogParams([
1010
+ import_observable_web2.observable.log("INFO", processLogParams([
975
1011
  message,
976
1012
  ...args
977
1013
  ]).join(" "));
@@ -982,7 +1018,7 @@ var logger = {
982
1018
  console.log(...getFormattedPrefix("warn"), message, ...args);
983
1019
  }
984
1020
  if (shouldReportToObservable) {
985
- import_observable_web.observable.log("WARN", processLogParams([
1021
+ import_observable_web2.observable.log("WARN", processLogParams([
986
1022
  message,
987
1023
  ...args
988
1024
  ]).join(" "));
@@ -993,7 +1029,7 @@ var logger = {
993
1029
  console.error(...getFormattedPrefix("error"), message, ...args);
994
1030
  }
995
1031
  if (shouldReportToObservable) {
996
- import_observable_web.observable.log("ERROR", processLogParams([
1032
+ import_observable_web2.observable.log("ERROR", processLogParams([
997
1033
  message,
998
1034
  ...args
999
1035
  ]).join(" "));
@@ -1004,7 +1040,7 @@ var logger = {
1004
1040
  console.log(...getFormattedPrefix("success"), message, ...args);
1005
1041
  }
1006
1042
  if (shouldReportToObservable) {
1007
- import_observable_web.observable.log("INFO", processLogParams([
1043
+ import_observable_web2.observable.log("INFO", processLogParams([
1008
1044
  message,
1009
1045
  ...args
1010
1046
  ]).join(" "));
@@ -1015,7 +1051,7 @@ var logger = {
1015
1051
  console.log(...getFormattedPrefix(level), ...args);
1016
1052
  }
1017
1053
  if (shouldReportToObservable && level !== "debug") {
1018
- import_observable_web.observable.log(mapLogLevel(level), processLogParams(args).join(" "));
1054
+ import_observable_web2.observable.log(mapLogLevel(level), processLogParams(args).join(" "));
1019
1055
  }
1020
1056
  }
1021
1057
  };
@@ -1124,6 +1160,7 @@ __name(initIframeBridge, "initIframeBridge");
1124
1160
  if (!window.__FULLSTACK_RUNTIME_INITIALIZED__) {
1125
1161
  window.__FULLSTACK_RUNTIME_INITIALIZED__ = true;
1126
1162
  initAxiosConfig();
1163
+ initObservable();
1127
1164
  if (process.env.NODE_ENV !== "production") {
1128
1165
  initIframeBridge();
1129
1166
  }
@@ -1141,16 +1178,6 @@ function getAppId() {
1141
1178
  }
1142
1179
  __name(getAppId, "getAppId");
1143
1180
 
1144
- // src/utils/apiPath.ts
1145
- function isNewPathEnabled() {
1146
- const basePath = process.env.CLIENT_BASE_PATH || "/";
1147
- return /^\/app\/[^/]/.test(basePath);
1148
- }
1149
- __name(isNewPathEnabled, "isNewPathEnabled");
1150
-
1151
- // src/hooks/useAppInfo.tsx
1152
- var import_react = require("react");
1153
-
1154
1181
  // src/utils/getInitialInfo.ts
1155
1182
  async function getAppPublished() {
1156
1183
  try {
@@ -1201,6 +1228,47 @@ function getInitialInfo(refresh = false) {
1201
1228
  }
1202
1229
  __name(getInitialInfo, "getInitialInfo");
1203
1230
 
1231
+ // src/utils/getTenantInfo.ts
1232
+ async function fetchTenantInfo() {
1233
+ try {
1234
+ const appId = getAppId();
1235
+ const path = isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/studio/tenant_info` : `/spark/b/${appId}/tenant_info`;
1236
+ const response = await fetch(`${window.location.origin}${path}`, {
1237
+ method: "GET",
1238
+ headers: {
1239
+ "X-Suda-Csrf-Token": getCsrfToken() ?? ""
1240
+ },
1241
+ credentials: "include"
1242
+ });
1243
+ const res = await response.json();
1244
+ return res?.data;
1245
+ } catch {
1246
+ return void 0;
1247
+ }
1248
+ }
1249
+ __name(fetchTenantInfo, "fetchTenantInfo");
1250
+ var tenantInfo;
1251
+ var pendingPromise2 = null;
1252
+ function getTenantInfo() {
1253
+ if (tenantInfo) {
1254
+ return Promise.resolve(tenantInfo);
1255
+ }
1256
+ if (pendingPromise2) {
1257
+ return pendingPromise2;
1258
+ }
1259
+ pendingPromise2 = fetchTenantInfo().then((info) => {
1260
+ tenantInfo = info;
1261
+ return tenantInfo;
1262
+ }).finally(() => {
1263
+ pendingPromise2 = null;
1264
+ });
1265
+ return pendingPromise2;
1266
+ }
1267
+ __name(getTenantInfo, "getTenantInfo");
1268
+
1269
+ // src/hooks/useAppInfo.tsx
1270
+ var import_react = require("react");
1271
+
1204
1272
  // src/integrations/getAppInfo.ts
1205
1273
  async function getAppInfo(refresh = false) {
1206
1274
  let appInfo = typeof window !== "undefined" ? window._appInfo : void 0;
@@ -1337,23 +1405,23 @@ var createDataLoomClient = /* @__PURE__ */ __name((url, pat) => {
1337
1405
  });
1338
1406
  }, "createDataLoomClient");
1339
1407
  var dataloom = null;
1340
- var pendingPromise2 = null;
1408
+ var pendingPromise3 = null;
1341
1409
  function getDataloom() {
1342
1410
  if (dataloom) {
1343
1411
  return Promise.resolve(dataloom);
1344
1412
  }
1345
- if (pendingPromise2) {
1346
- return pendingPromise2;
1413
+ if (pendingPromise3) {
1414
+ return pendingPromise3;
1347
1415
  }
1348
- pendingPromise2 = getInitialInfo().then((info) => {
1416
+ pendingPromise3 = getInitialInfo().then((info) => {
1349
1417
  const DATALOOM_CLIENT_URL = info?.app_runtime_extra?.url;
1350
1418
  const DATALOOM_PAT = info?.app_runtime_extra?.token;
1351
1419
  dataloom = createDataLoomClient(DATALOOM_CLIENT_URL, DATALOOM_PAT);
1352
1420
  return dataloom;
1353
1421
  }).finally(() => {
1354
- pendingPromise2 = null;
1422
+ pendingPromise3 = null;
1355
1423
  });
1356
- return pendingPromise2;
1424
+ return pendingPromise3;
1357
1425
  }
1358
1426
  __name(getDataloom, "getDataloom");
1359
1427
 
@@ -1857,24 +1925,14 @@ var Safety = /* @__PURE__ */ __name(() => {
1857
1925
  const [badgeLoaded, setBadgeLoaded] = (0, import_react5.useState)(false);
1858
1926
  const timeoutRef = (0, import_react5.useRef)(null);
1859
1927
  (0, import_react5.useEffect)(() => {
1860
- const appId = getAppId();
1861
- const csrfToken = getCsrfToken() ?? "";
1862
- const csrfHeaders = {
1863
- "X-Suda-Csrf-Token": csrfToken
1864
- };
1865
- const tenantInfoUrl = isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/studio/tenant_info` : `/spark/b/${appId}/tenant_info`;
1866
- fetch(tenantInfoUrl, {
1867
- headers: csrfHeaders
1868
- }).then((res) => res.json()).then((data) => {
1869
- setUserinfo(data?.data?.tenant_info);
1870
- setIsInternetVisible(data?.data?.is_internet_visible);
1928
+ if (process.env.NODE_ENV !== "production") return;
1929
+ getTenantInfo().then((data) => {
1930
+ setUserinfo(data?.tenant_info ?? null);
1931
+ setIsInternetVisible(!!data?.is_internet_visible);
1871
1932
  }).catch(() => {
1872
1933
  });
1873
- const getPublishedUrl = isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/studio/get_published` : `/spark/b/${appId}/get_published`;
1874
- fetch(getPublishedUrl, {
1875
- headers: csrfHeaders
1876
- }).then((res) => res.json()).then((data) => {
1877
- const badge = data?.data?.app_info?.show_badge;
1934
+ getInitialInfo().then((info) => {
1935
+ const badge = info?.app_info?.show_badge;
1878
1936
  setShowBadge(badge !== false);
1879
1937
  }).catch(() => {
1880
1938
  setShowBadge(true);
@@ -1894,7 +1952,6 @@ var Safety = /* @__PURE__ */ __name(() => {
1894
1952
  isMobile2
1895
1953
  ]);
1896
1954
  if (process.env.NODE_ENV !== "production") return null;
1897
- if (String(process.env.MIAODA_APP_TYPE) === "7") return null;
1898
1955
  if (!badgeLoaded) return null;
1899
1956
  if (!showBadge) return null;
1900
1957
  if (!visible) return null;
@@ -2286,31 +2343,6 @@ var reportTeaEvent = /* @__PURE__ */ __name(async ({ trackKey, trackParams = {}
2286
2343
  }
2287
2344
  }, "reportTeaEvent");
2288
2345
 
2289
- // src/components/AppContainer/utils/observable.ts
2290
- var import_observable_web2 = require("@lark-apaas/observable-web");
2291
- var initObservable = /* @__PURE__ */ __name(() => {
2292
- try {
2293
- const appId = window.appId;
2294
- import_observable_web2.observable.start({
2295
- serviceName: "app",
2296
- env: process.env.NODE_ENV === "development" ? import_observable_web2.AppEnv.Dev : import_observable_web2.AppEnv.Prod,
2297
- collectorUrl: isNewPathEnabled() ? {
2298
- log: `/app/${appId}/__runtime__/api/v1/observability/logs/collect`,
2299
- trace: `/app/${appId}/__runtime__/api/v1/observability/traces/collect`,
2300
- metric: `/app/${appId}/__runtime__/api/v1/observability/metrics/collect`,
2301
- time: `/app/${appId}/__runtime__/api/v1/observability/current_server_timestamp`
2302
- } : {
2303
- log: `/spark/app/${appId}/runtime/api/v1/observability/logs/collect`,
2304
- trace: `/spark/app/${appId}/runtime/api/v1/observability/traces/collect`,
2305
- metric: `/spark/app/${appId}/runtime/api/v1/observability/metrics/collect`,
2306
- time: `/spark/api/v1/observability/app/${appId}/current_server_timestamp`
2307
- }
2308
- });
2309
- } catch (error) {
2310
- console.error("Failed to start WebObservableSdk:", error);
2311
- }
2312
- }, "initObservable");
2313
-
2314
2346
  // src/types/tea.ts
2315
2347
  var TrackKey = /* @__PURE__ */ (function(TrackKey2) {
2316
2348
  TrackKey2["VIEW"] = "aily_agent_artifact_page_view";
@@ -2320,9 +2352,6 @@ var TrackKey = /* @__PURE__ */ (function(TrackKey2) {
2320
2352
  // src/components/AppContainer/index.tsx
2321
2353
  var AppContainer = /* @__PURE__ */ __name(({ children }) => {
2322
2354
  useAppInfo();
2323
- (0, import_react9.useEffect)(() => {
2324
- initObservable();
2325
- }, []);
2326
2355
  (0, import_react9.useEffect)(() => {
2327
2356
  if (process.env.NODE_ENV === "production") {
2328
2357
  reportTeaEvent({
@@ -2335,7 +2364,7 @@ var AppContainer = /* @__PURE__ */ __name(({ children }) => {
2335
2364
  });
2336
2365
  }
2337
2366
  }, []);
2338
- return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(safety_default, null), process.env.NODE_ENV !== "production" && /* @__PURE__ */ import_react9.default.createElement(import_miaoda_inspector.MiaodaInspector, null), process.env.NODE_ENV !== "production" && /* @__PURE__ */ import_react9.default.createElement(IframeBridge, null), /* @__PURE__ */ import_react9.default.createElement(QueryProvider_default, null, children));
2367
+ return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, String(process.env.MIAODA_APP_TYPE) !== "7" && /* @__PURE__ */ import_react9.default.createElement(safety_default, null), process.env.NODE_ENV !== "production" && /* @__PURE__ */ import_react9.default.createElement(import_miaoda_inspector.MiaodaInspector, null), process.env.NODE_ENV !== "production" && /* @__PURE__ */ import_react9.default.createElement(IframeBridge, null), /* @__PURE__ */ import_react9.default.createElement(QueryProvider_default, null, children));
2339
2368
  }, "AppContainer");
2340
2369
  var AppContainer_default = AppContainer;
2341
2370
 
@@ -2904,6 +2933,8 @@ __name(showToast2, "showToast");
2904
2933
 
2905
2934
  // src/integrations/capabilityClient.ts
2906
2935
  var _appId = getAppId();
2936
+ var _archType = process.env.MIAODA_APP_ARCH_TYPE;
2937
+ var _isFrontendOnly = _archType === "2" || _archType === "3" || _archType === "4";
2907
2938
  var capabilityClient = (0, import_client_capability.createClient)({
2908
2939
  baseURL: normalizeBasePath(process.env.CLIENT_BASE_PATH ?? "/"),
2909
2940
  acquireUploadUrl: `/app/${_appId}/__runtime__/api/v1/studio/plugins/tmp_files/acquire_upload_url`,
@@ -2917,13 +2948,19 @@ var capabilityClient = (0, import_client_capability.createClient)({
2917
2948
  onRateLimitError: /* @__PURE__ */ __name(() => {
2918
2949
  showToast2(t("index.rateLimitError"));
2919
2950
  }, "onRateLimitError"),
2920
- central: {
2921
- enabled: true,
2922
- // window.appId 由妙搭沙箱 / 线上环境注入;非妙搭场景下 capability 调用本身不可用
2923
- appId: _appId ?? ""
2924
- }
2951
+ ..._isFrontendOnly ? {
2952
+ central: {
2953
+ enabled: true,
2954
+ // window.appId 由妙搭沙箱 / 线上环境注入;非妙搭场景下 capability 调用本身不可用
2955
+ appId: _appId ?? ""
2956
+ }
2957
+ } : {}
2925
2958
  });
2926
2959
 
2960
+ // src/trace/index.ts
2961
+ var import_observable_web3 = require("@lark-apaas/observable-web");
2962
+ var trace = /* @__PURE__ */ __name((...args) => import_observable_web3.observable.trace(...args), "trace");
2963
+
2927
2964
  // src/constants/img-resources/avatar.ts
2928
2965
  var avatar_exports = {};
2929
2966
  __export(avatar_exports, {
@@ -3107,6 +3144,7 @@ var abstractArt3dRenderingCoverImg6 = "https://lf3-static.bytednsdoc.com/obj/ede
3107
3144
  getEnvPath,
3108
3145
  getWsPath,
3109
3146
  initAxiosConfig,
3147
+ initObservable,
3110
3148
  isIOS,
3111
3149
  isIpad,
3112
3150
  isMobile,
@@ -3117,6 +3155,7 @@ var abstractArt3dRenderingCoverImg6 = "https://lf3-static.bytednsdoc.com/obj/ede
3117
3155
  resolveAppUrl,
3118
3156
  safeStringify,
3119
3157
  scopedStorage,
3158
+ trace,
3120
3159
  useAppInfo,
3121
3160
  useCurrentUserProfile,
3122
3161
  useIsMobile,