Codeboard.

Project storage API

Open a store with ProjectStore.open(path) and always call close() in finally. For ordinary editing, prefer StoryboardProject.open and save. See projects and revisions for partial reads, conflict handling, and named checkpoints.

Parameter declarations below are extracted from the current source. A value after = is the default; ? marks an optional input. Named data shapes are listed in API types.

ProjectStore

open

static open(path: string): ProjectStore;

create

static create(path: string): ProjectStore;

close

close(): void;

[Symbol.dispose]

[Symbol.dispose](): void;

readHeader

readHeader(): Header;

version

get version(): number;

listPanels

listPanels(): PanelInfo[];

findObjects

findObjects(query: {
    panelId?: string;
    name?: string;
    kind?: string;
    limit?: number;
    offset?: number;
} = {}): Record<string, SQLOutputValue>[];

readPanel

readPanel(id: string, options: {
    revision?: string;
} = {}): Panel;

panelDocument

/** Render context contains one decoded panel, plus timeline and small project metadata. */
panelDocument(id: string, options: {
    revision?: string;
} = {}): StoryboardDocument;

readDocument

readDocument(): StoryboardDocument;

readAsset

readAsset(id: string, options: {
    expectedVersion?: number;
    revision?: string;
} = {}): Buffer;

extractAssets

/** Explicit extraction for file-based audio encoders; never writes outside destination. */
extractAssets(directory: string): void;

save

save(document: StoryboardDocument, options: {
    expectedVersion?: number;
    overwrite?: boolean;
    assetRoot?: string;
    readAsset?: (id: string) => Buffer | undefined;
} = {}): number;

updatePanel

/** Targeted artwork revision. Topology and timeline edits use the full authoring session. */
updatePanel(panel: Panel, options: {
    expectedVersion: number;
    actor?: string;
}): void;

inspect

inspect(): {
    format: string;
    formatVersion: number;
    version: number;
    panels: number;
    payloads: Record<string, SQLOutputValue>[];
};

frameDocument

/** Decode only the current panel and, during a transition, its incoming panel. */
frameDocument(frame: number, options: {
    revision?: string;
} = {}): StoryboardDocument;

saveRevision

/** A named root of references, not a second copy of the project's media. */
saveRevision(name: string, options: {
    expectedVersion: number;
}): void;

listRevisions

listRevisions(options: {
    limit?: number;
    offset?: number;
} = {}): { name: string; version: number; createdAt: string; panels: number; }[];

readRevision

readRevision(name: string): StoryboardDocument;

restoreRevision

restoreRevision(name: string, options: {
    expectedVersion: number;
    actor?: string;
}): void;

deleteRevision

deleteRevision(name: string): void;

compact

/** Optional maintenance, never part of a small edit. No artwork precision is changed. */
compact(): void;

verify

verify(): void;

On this page