/** * Provider Cache * * 缓存 Pod 供应商的 .well-known/solid 响应 * 同一供应商的用户共享缓存,减少重复请求 */ /** * .well-known/solid 响应内容 */ export interface WellKnownResponse { /** 公开 TypeIndex 位置 */ typeIndex?: string; /** 私有 TypeIndex 位置 */ privateTypeIndex?: string; /** SAI Registry Set 位置 */ registrySet?: string; /** OIDC Issuer */ oidcIssuer?: string; /** 原始响应(保留未来扩展字段) */ raw?: Record; } export declare class ProviderCache { private cache; private ttl; private fetchFn; constructor(options?: { ttl?: number; fetch?: typeof fetch; }); /** * 获取 Pod 的 .well-known 信息 * 优先使用缓存 */ getWellKnown(podUrl: string): Promise; /** * 发现指定类型的数据位置 * SAI 优先,TypeIndex 兜底 */ discover(podUrl: string, type: string, discoverFromSAI: (registrySet: string, type: string) => Promise, discoverFromTypeIndex: (typeIndex: string, type: string) => Promise): Promise; /** * 设置 TTL */ setTTL(ms: number): void; /** * 清除缓存 */ clear(): void; /** * 清除指定供应商的缓存 */ clearProvider(provider: string): void; /** * 从 Pod URL 提取供应商标识 * https://bob.solidcommunity.net/ → solidcommunity.net * https://alice.inrupt.net/ → inrupt.net */ private extractProvider; /** * 请求 .well-known/solid */ private fetchWellKnown; /** * 解析 Turtle 格式的 .well-known/solid */ private parseTurtle; /** * 从行中提取 URL */ private extractUrl; /** * 解析 JSON-LD 格式 */ private parseJsonLd; /** * 从 JSON-LD 值中提取 URL */ private extractJsonLdValue; /** * 解析 URL(处理相对路径) */ private resolveUrl; /** * 从完整 URL 提取相对路径 */ private extractPaths; /** * 将完整 URL 转换为相对路径 */ private toRelativePath; /** * 将缓存的相对路径应用到指定 Pod */ private applyToPod; /** * 将相对路径转换为完整 URL */ private toAbsoluteUrl; } //# sourceMappingURL=provider-cache.d.ts.map