/** * 错误码 → 文档链接 映射 * * 用途:报错时自动关联到对应的错误码指引文档,让用户能直接跳转查看。 * 在 CloudBaseError 构造与 errorHandler 汇聚处统一调用 resolveErrorDoc(code, source), * 避免在每个命令里散落手写 docs 链接(容易覆盖不全、口径不一致)。 * * ## 来源分流(source) * * 消费方收到四类来源的 code,必须按来源选择不同的文档: * * | source | 含义 | 文档 | * |---|---|---| * | `cloud-api` | 控制面云 API 原始 code(876/34823) | 腾讯云《云开发 CloudBase 错误码》 | * | `runtime` | 数据面错误码(`tcberror.go`,源自 `error-code/basic`) | 单码页 `error-code/{CODE}` | * | `manager-node` | SDK 本地校验/构建自定义 code | 部署模块页(未登记时软降级) | * | `cli` / `toolbox` | CLI / toolbox 本地语义码 | 待登记 | * * **为什么必须分流**:CLI 本地码与数据面码大量重名(`INVALID_PARAM` / `INVALID_OPERATION` / * `RESOURCE_NOT_FOUND` / `CHECK_LOGIN_FAILED` / `FUNCTION_NOT_FOUND` 共 5 个), * 单靠 code 无法判断该指向哪张文档。这是 AIP-193 `(reason, domain)` 二元组的落地 * (见《错误码治理方案》§4.3)。同时也解释了为何不能把 `INVALID_` / `AUTH_` * 这类宽泛前缀加进「无 source」的宽松匹配路径。 * * ## 数据面码表来源 * * `RUNTIME_ERROR_CODES` 逐条摘录自 `cloudbase-docs/docs/error-code/basic.md`, * 与服务端事实源 `tcblinker/internal/tcberror/tcberror.go` 对齐。 * 建议在 CI 中加入与 `basic.md` 的 diff 校验(见治理方案 §6.4),防止再次漂移。 */ import type { ErrorSource } from './error'; /** 控制面云 API 错误码文档(腾讯云云开发 CloudBase 错误码) */ export declare const CONTROL_PLANE_ERROR_DOC = "https://cloud.tencent.com/document/product/876/34823"; /** 数据面错误码总览页(分类索引) */ export declare const RUNTIME_ERROR_DOC = "https://docs.cloudbase.net/error-code/basic"; /** 数据面单码页 URL 前缀:最终形如 `${BASE}/${CODE}` */ export declare const RUNTIME_ERROR_CODE_DOC_BASE = "https://docs.cloudbase.net/error-code"; /** * 数据面(运行时)错误码全量清单。 * * 来源:`cloudbase-docs/docs/error-code/basic.md`(131 个), * 与服务端事实源 `tcblinker/internal/tcberror/tcberror.go` 对齐。 * 每个码在文档站都有独立页面:`https://docs.cloudbase.net/error-code/{CODE}`。 * * ⚠️ 仅在 `source === 'runtime'` 时使用本表。因为其中 `INVALID_*`(21 个)、 * `AUTH_*` 等与 CLI 本地语义码重名,无 source 时不可参与匹配。 */ export declare const RUNTIME_ERROR_CODES: Set; /** * 根据错误码解析对应的文档链接。 * * @param code 错误码(可能是语义 code、云 API code,或带 '.' 的子错误码) * @param source 错误来源层(见 ErrorSource)。传入时按来源精确分流; * 不传时保持历史宽松匹配(控制面精确 + 6 个模块前缀),向后兼容。 * @returns 文档链接;无法归类时返回空串(由调用方决定是否兜底) */ export declare function resolveErrorDoc(code?: string | number, source?: ErrorSource | ''): string;