From 30a36e45686db503fded68e4da5d4c465a06f978 Mon Sep 17 00:00:00 2001 From: cashmere Date: Mon, 27 Jul 2026 01:21:20 +0200 Subject: feat: single-file project import/export (.ocp) fflate zip container: project.json (serialized project incl. schema version) + media files with a manifest. Export gathers all project media (missing blobs warn, never abort) after save-flush; import validates everything before any write, migrates older archives through the storage migration registry, remaps media ids, and creates a new project with rollback on failure. Entry points: projects page import/export, editor header menu, export-project-archive action. 29 tests incl. full round-trip. --- apps/web/package.json | 1 + 1 file changed, 1 insertion(+) (limited to 'apps/web/package.json') diff --git a/apps/web/package.json b/apps/web/package.json index 90cd9fb5..816dfe01 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -45,6 +45,7 @@ "embla-carousel-react": "^8.5.1", "eventemitter3": "^5.0.1", "feed": "^5.1.0", + "fflate": "^0.8.3", "input-otp": "^1.4.1", "lucide-react": "^0.562.0", "mediabunny": "^1.29.1", -- cgit v1.3.1