/** * glob_path — 核心基础层模块。 * * 职责边界: * - 负责:轻量 glob 路径匹配(支持多段 `*`,每段不跨目录)与产物路径存在性判定 * - 不负责:完整 glob 引擎(`**` / `?` / `[]` 不支持),那些场景应引入专用库 * * 被谁调用:原型说明多端路径(`docs/analyze/{端}/pages/{页}-原型说明.md`)等带通配符的产物路径检查 * 调用谁:node:fs、node:path * * 数据流:glob 模式 → 字符串匹配 / 文件系统遍历 → 命中结果 * 持久化:无持久化(纯计算 / 只读文件系统) * * 设计说明:原型说明等多端产物的 glob 模式可含多段 `*`(每段不跨目录,如 docs/analyze/{端}/pages/{页}-原型说明.md), * 不需要完整 glob 引擎。本模块采用自研的递归遍历思路, * 零第三方依赖、保持 engines.node >=18 兼容。 */ /** * 检测路径是否含通配符。 * 自研 matchGlob 只完整支持 `*`(单段);含 `?` / `[` 时本函数仍返回 true, * 但调用方应回退字面处理(见 globToRegExpSource 返回 null 的分支)。 */ export declare function containsGlob(p: string): boolean; /** * 容错读取文件:读不到(目录/无权限/不存在)返回 "" 而非抛错。 * executor 容错用——产物路径偶发为目录/无权限,readFileSync 抛 EISDIR/EACCES 会崩 * 整个 executor;读不到按空内容处理(后续空集防御 fail-closed,不假通过)。 */ export declare function readSafe(filePath: string): string; /** * 纯字符串 glob 匹配(不碰文件系统)。 * 把 pattern 当 glob:`*` 匹配单段(不含 `/`);含 `?` / `[` 时按字面全等比较(保守不误判)。 * 用于已知具体路径对模式判定(如 matchTemplateContract 拿用户 file_path 对 applicable_output_paths)。 */ export declare function matchGlob(filePath: string, pattern: string): boolean; /** * 判定产物路径是否存在(查文件系统·布尔)。 * - pattern 无通配符:直接 existsSync(字面,完全向后兼容) * - pattern 含 `*`:限定到 glob 前缀子树遍历 + matchGlob,任一命中即 true * - pattern 含 `?` / `[`:保守按字面 existsSync(不误判) */ export declare function artifactPathExists(rootDir: string, pattern: string): boolean; /** * 解析产物路径到所有命中的真实相对路径(查文件系统·返回数组)。 * 用于多端产物聚合(如交叉校验需汇总各端 PROTO-* ID,不能只读首个)。 * - pattern 无通配符:存在则返回 [pattern],否则 [] * - pattern 含 `*`:限定子树遍历,返回所有 matchGlob 命中的相对路径(相对 rootDir,正斜杠) * - pattern 含 `?` / `[`:保守按字面 */ export declare function resolveArtifactsByGlob(rootDir: string, pattern: string): string[];