import type { Project } from "@pien-studio/types"; import { cleanupOrphanAssets, deleteProject, duplicateProject, getProjectById, loadProjects, releaseProjectObjectUrls, upsertProject, } from "@pien-studio/storage"; export type ProjectRepository = { listProjects: () => Promise; getProject: (projectId: string) => Promise; upsertProject: (project: Project) => Promise; deleteProject: (projectId: string) => Promise; duplicateProject: (projectId: string) => Promise; cleanupAssets: () => Promise; releaseObjectUrls: ( project: Project, keepAssetIds?: Iterable, ) => void; }; export const localProjectRepository: ProjectRepository = { listProjects: loadProjects, getProject: getProjectById, upsertProject, deleteProject, duplicateProject, cleanupAssets: cleanupOrphanAssets, releaseObjectUrls: releaseProjectObjectUrls, };