@lark-project/cli
Version:
飞书项目插件开发工具
48 lines (47 loc) • 3.14 kB
TypeScript
import { PointDiffEntry } from "../local-config";
import { Violation } from "../../../utils/validate-runtime-urls";
import { AppVersionInfo } from "../../../api/tools/version";
/** 删除授权提示:调用方(checkDiffService)按本次删除集 + pluginId 算好后传进来。 */
export interface DeletionAuthHint {
/** 本次删除集的**真** nonce —— 与 `update --source-type=local` 那头算出来的同一个(确定性),可直接用。 */
nonce: string;
/** 自包含 grant token(`LPMDEL1.…`)——沙箱场景跨文件系统授权用。 */
token: string;
/** 是否已授权(standing allow 或已有一次性 grant)——已授权则不再催授权命令、只告知。 */
authorized: boolean;
/** 项目根绝对路径——打进 `lpm --cwd <cwd> allow-delete <nonce>`,让用户在任意目录都落到同一项目 .lpm/。 */
cwd: string;
}
/**
* ②配置覆盖段:把点位级 diff 分成三桶,按 删除 → 修改 → 新增 输出(删除不可逆、优先级最高,先看到)。
* - 修改桶逐项附字段级 local→remote 明细;MODIFIED 经 canonicalJson 比对,已折叠
* 空值/缺失差异(往返默认值补齐 / 空串兜底),残留伪差仅 0/false vs 缺失,故附备注
* 提示看字段明细自行甄别。
* - 有删除时,段末附「删除授权」块:打印**真** nonce + token(由 `auth` 传入),
* 让用户/agent 直接拿来用,而非一条没法跑的 `lpm allow-delete <nonce>` 占位。
*/
export declare function formatConfigOverwriteSection(diffs: PointDiffEntry[], auth?: DeletionAuthHint): 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>;