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;