@lark-project/cli
Version:
飞书项目插件开发工具
22 lines (21 loc) • 1.46 kB
TypeScript
/**
* 把各类 webhook 点位的 `token` 两端 preserve 地补进本地配置(就地修改)。
*
* token 是服务端属主的 webhook 密钥,但**本地配置会被插件自建后端消费**(读它做验签),所以它必须
* 落在 point.config.local.json 里。取值规则(绝不拿随机数覆盖已存在的合法 token):
* 本地有 → 留本地(允许用户主动轮换)
* 本地空 + 远端有(线上存量典型形态)→ 复用远端那份
* 两端皆空(真·新端点)→ generate() 生成一次;**不传 generate**(diff 预演场景)则原样不动、不生成
*
* 覆盖全部 token 槽位(见 TOKEN_SLOTS):aiNode/aiField/aiOperation 顶层 token(无 url 守卫、无条件填)、
* intercept/listen_event/control 顶层 token、control 的 table_url 嵌套、customField 的 table_data
* 嵌套——后几类**仅在对应 url 有值时**才填(对齐正向 `input.url ? token||uuid : token`)。
*
* 按「点位 key + 槽位」结构匹配远端(本地/远端同构)。返回各槽位标识(如 `control[c].table_url`)的归类:
* filledFromRemote —— 从远端补来(存量同步);generated —— 新生成(首次)。
*/
export interface FillTokensResult {
filledFromRemote: string[];
generated: string[];
}
export declare function fillWebhookTokens(localConfig: any, remoteConfig: any, generate?: () => string): FillTokensResult;