/** * ProvisionPodCreator * * 等位替换 CSS 的 BasePodCreator。 * * 检查 settings 里有没有 provisionCode: * - 有 → 解码签名 provision code,核验锁外预创建的 Local Pod 回执,并写入 Account 绑定 * - 没有 → 委托给原始 BasePodCreator(标准本地创建) */ import { BasePodCreator, type PodCreatorInput, type PodCreatorOutput, type BasePodCreatorArgs, type ResourceStore } from '@solid/community-server'; export interface ProvisionPodCreatorArgs extends BasePodCreatorArgs { /** 与 ProvisionHandler 使用相同的 baseUrl 派生签名密钥 */ provisionBaseUrl?: string; /** Current SP node id; used to recognize this SP even when URLs differ by localhost/managed domain. */ nodeId?: string; /** Kept in the component signature for config compatibility; Pod storage facts live in CSS account data. */ identityDbUrl?: string; /** * Server-internal resource store. Used only to reconcile native same-server Pod profiles. * Managed Local profiles are created on the Local SP before the Cloud Account lock is entered. */ resourceStore?: ResourceStore; edgeNodeRepository?: ProvisionReceiptNodeRepository; } interface ProvisionReceiptNodeRepository { getSpNode(nodeId: string): Promise<{ serviceTokenHash: string; } | undefined>; } export declare class ProvisionPodCreator extends BasePodCreator { private readonly provisionLogger; private readonly codec; private readonly oidcIssuer?; private readonly currentNodeId?; private readonly resourceStore?; private readonly edgeNodeRepository?; constructor(args: ProvisionPodCreatorArgs); handle(input: PodCreatorInput): Promise; private targetsCurrentStorageProvider; private resolveRemoteReceiptSecret; private handleStandardPodCreate; private prepareWebIdLink; private findExistingWebIdLink; /** * Reconcile the solid:storage binding in a WebID profile card hosted on this server. * CSS remains the sole owner of the native Pod resources and their authorization; Xpod only * adds or updates this product-specific relation after CSS has finished creating the Pod. * Standard CSS creation keeps this best-effort. Managed Local-Pod profiles are * created and signed by the Local SP before the Cloud Account resource lock. */ private syncProfileStorageBinding; private writeProfileStorageBinding; } export {};