GeoLeaf Core API - v3.19.0
    Preparing search index...

    Interface CacheProfileResult

    What GeoLeaf.Storage.CacheManager.cacheProfile() resolves with.

    ⚠️ It does not reject on a failed download: error carries the motive, and failedUrls what could not be fetched. Every member is optional — a refusal before any request (error) carries nothing else.

    The offline engine and the GeoLeaf.Storage façade both read THIS declaration: there is no second copy of it to keep in step.

    interface CacheProfileResult {
        cached?: string[];
        urls?: string[];
        failedUrls?: string[];
        failedDownloads?: string[];
        totalSize?: number;
        duration?: number;
        error?: string;
        profileId?: string;
        pulledLayers?: CacheProfilePulledLayer[];
        preparation?: TilePreparationTrace;
        cancelled?: boolean;
    }
    Index
    cached?: string[]
    urls?: string[]
    failedUrls?: string[]
    failedDownloads?: string[]
    totalSize?: number
    duration?: number
    error?: string
    profileId?: string
    pulledLayers?: CacheProfilePulledLayer[]

    One entry per layer whose entities were pulled.

    ⚠️ Absent, not empty, when nothing declared a source. A caller can then tell "this profile pulls no entities" from "the pull was attempted and wrote nothing", which is the same distinction the sync report exists for one level down.

    preparation?: TilePreparationTrace

    What the preparation asked for, and what it left out — kept in the manifest.

    cancelled?: boolean

    True when « Stop » was pressed during this download. What was stored before the stop stays; a pull under way ended at its page and removed nothing.