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

    Interface GeoLeafAPINamespace

    Shape of globalThis.GeoLeaf as expected by api/ files.

    Intentionally permissive ([key: string]: unknown) — the full namespace is assembled progressively at boot and only the keys used by this cluster are declared explicitly.

    It had none from the day the type that extended it became standalone (to be publishable): nothing confronted this shape with the object it describes, and the contract had gone from constraint to prose. The witness is __tests__/guards/api-namespace-contract.witness.test.ts — member-wise assignability (import type only, zero bytes in any bundle), enforced by the test type-check gate: a drifting member reddens as TS2322, proven by mutation on _APIController.init(). Member-wise rather than whole-shape on purpose: this contract is a narrow view, and global.d.ts types _APIController as unknown — a whole-shape witness would be red in both directions by construction.

    ⚠️ An @example cannot serve as that witness here, and this was MEASURED rather than assumed. The example type-checker classifies assignability errors as non-defect diagnostics, so an example asserting a FALSE type relation compiles green — tried, and deliberately broken to check. That refutation is why the witness lives in a type-checked test file instead. The extending type stays standalone: the witness imports types, it never re-couples them.

    interface GeoLeafAPINamespace {
        _APIController?: { init(): boolean } | null;
        API?: IGeoLeafAPIConstructors;
        CONSTANTS?: Record<string, unknown>;
        [key: string]: unknown;
    }

    Indexable

    • [key: string]: unknown
    Index
    _APIController?: { init(): boolean } | null
    CONSTANTS?: Record<string, unknown>