@lark-project/cli
Version:
飞书项目插件开发工具
36 lines (35 loc) • 2.21 kB
TypeScript
import { PointDiffEntry } from "../local-config";
import { Violation } from "../../../utils/validate-runtime-urls";
import { AppVersionInfo } from "../../../api/tools/version";
/**
* ②配置覆盖段:把点位级 diff 分成 新增/修改/删除 三桶。
* - 修改桶逐项附字段级 local→remote 明细;MODIFIED 经 canonicalJson 比对,已折叠
* 空值/缺失差异(往返默认值补齐 / 空串兜底),残留伪差仅 0/false vs 缺失,故附备注
* 提示看字段明细自行甄别。
* - 删除桶附闸口提示:推送(update --source-type=local)会硬拦删除,需 --allow-delete。
*/
export declare function formatConfigOverwriteSection(diffs: PointDiffEntry[]): string;
/**
* 从版本列表里挑出「线上生效版本号」= `status === OnShelf` 那条的 `app_version`。
* 对齐前端 `openappStore.getDiffInfo`(按 OnShelf 选版本),不是 `list[0]`(最新一条,
* 可能是草稿/审核中)。用作:①基本信息「当前线上版本」②③权限变更的对比基线。
*
* 取不到(从未上架)→ 返回 ''。空基线传给 version/diff 时后端按草稿全量算(add=全部、
* remove 空),这对「从未发布」的插件语义正确(全是新增、无可移除)。
*/
export declare function pickOnlineVersion(list?: AppVersionInfo[]): string;
/**
* validateRuntimeUrls 用 Object.entries 遍历点位桶,桶是数组时拿到的 key 是数组**下标**
* (path 形如 `intercept[0].url`)。这里用本地配置把下标映射回点位真实 key + name,
* 让确认块显示 `intercept[intercept_mr_check]「MR 合并检查」` 而非 `intercept[0]`。
*/
export declare function resolvePointLabel(path: string, localConfig: Record<string, any>): {
label: string;
name?: string;
};
/**
* ④运行时 URL 健康段:列出 placeholder 级违规(占位/编造 URL)。
* 仅 placeholder——invalid(缺失/空/非 http(s))在 set/update 就 exit 1 拦死、到不了发布。
*/
export declare function formatUrlHealthSection(placeholders: Violation[], localConfig: Record<string, any>): string;
export declare function checkDiffService(): Promise<void>;