Back to Black Site Map Editor
SOURCE / PINNED RELEASE

Made of little things.

Black Site Map Editor

Release
32a57733b7e9…
Author-recorded commit
3f54890f542f…
License
LICENSE
Author’s source reference
nostr://npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr/wss%3A%2F%2Fgit.shakespeare.diy%2F/black-site-map-editor

Archive hash verified: 7a4b1abbac7db5b0…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/examples/backend-context.d.ts
/** Authoring types for soy-handler-v1. Type-only: no runtime imports in a handler. */
export type Principal = `nostr:${string}` | `guest:${string}`;
export type BackendAccess = {
    visibility: 'public' | 'members';
    building: 'members' | 'everyone';
    guestsMayBuild: boolean;
    members: Record<`nostr:${string}`, 'builder' | 'viewer'>;
};
export type BackendContext = Readonly<{
    /** Ephemeral transport public key. Not a durable account. */
    actor: string;
    /** Verified raw hex public key, or null for a guest. */
    account: string | null;
    /** Compare principal === owner, not account === owner. */
    principal: Principal;
    owner: Principal;
    instance: string;
    release: string;
    operation: string;
    requestId: string;
    /** Unix seconds supplied by the provider. */
    now: number;
    state: Readonly<{
        get<T = unknown>(collection: string, key: string): Promise<T | null>;
        set(collection: string, key: string, value: unknown): Promise<null>;
        remove(collection: string, key: string): Promise<null>;
        access(): Promise<BackendAccess>;
        setAccess(value: BackendAccess): Promise<null>;
        setMember(principal: `nostr:${string}`, role: 'builder' | 'viewer' | null): Promise<null>;
    }>;
}>;