UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

48 lines (47 loc) 3.14 kB
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>;