@lark-project/cli
Version:
飞书项目插件开发工具
40 lines (39 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVersionDiff = void 0;
const request_1 = require("../request");
const get_tool_auth_headers_1 = require("../get-tool-auth-headers");
/**
* 版本权限变更 diff(发布前确认用)。
*
* Backend: app_center dev-token Tool API
* GET /goapi/v5/app/development/tool/version/diff
* (APIAppDevelopmentToolListPermDiff → 复用开发者后台 /v1/version/diff 的
* service.GetPermDiff + authSvc.GetPermList,developer token 鉴权)
*
* Wire shape 对齐 meego_idl `app_center/api/api_app_development.thrift`
* 的 APIAppDevelopmentListPermDiffRequest / Response(list<DiffInfo>)。
*
* 语义(核对后端 app_center service.GetPermDiff + handler APIListPermDiff):
* handler 调 `GetPermDiff(appKey, version=app_version, targetVersion="")`——
* - `version`(= 本接口的 `app_version` 入参)是**对比基线**;
* - `targetVersion` 写死 "",GetPermDiff 内部在「最新版本是草稿且 ≠ 基线」时把它**解析成该草稿**(要发布的那份)。
* 于是 `add` = 草稿相对基线新增的权限、`remove` = 草稿移除的权限。
*
* ⚠️ **`app_version` 省略(="")会触发后端退化分支**:`add` = 草稿声明的全部权限、
* `remove` 恒空。要拿"相对线上版本的真实增量",**调用方必须传线上生效版本号**
* (version 列表里 status===OnShelf 那条)——纯调用方职责,后端无需改。
*/
const DIFF_PATH = '/goapi/v5/app/development/tool/version/diff';
async function getVersionDiff({ siteDomain, appKey, appVersion, }) {
const params = { app_key: appKey };
if (appVersion) {
params.app_version = appVersion;
}
return (0, request_1.request)(`${siteDomain}${DIFF_PATH}`, {
method: 'GET',
params,
headers: await (0, get_tool_auth_headers_1.getToolAuthHeaders)(siteDomain),
});
}
exports.getVersionDiff = getVersionDiff;