mirror of
https://github.com/penpot/penpot.git
synced 2026-08-05 20:38:38 +00:00
Importing a .penpot file left every svg-raw subtree broken: the parent's :shapes vector came back holding plain strings instead of uuids, so the child ids no longer resolved against the page objects map. The next persisted change touching that page then failed referential integrity validation with :child-not-found, surfaced to the client as an HTTP 400 :referential-integrity error, which in practice bricks the file. An svg-raw shape can be a container: importing an SVG builds a tree of svg-raw shapes, and cfh/group-like-shape? explicitly treats an svg-raw with children as group-like. But schema:svg-raw-attrs was an empty map. Frame, group and bool all declare :shapes as a vector of uuid; svg-raw did not, so the JSON decoder used by binfile had no type information for those ids and left them as strings. Declare :shapes on schema:svg-raw-attrs, optional because a leaf svg-raw shape has no children, so the child ids decode back to uuids. Closes #10496. Signed-off-by: Filip Sajdak <filip.sajdak@siili.com> Co-authored-by: Andrey Antukh <niwi@niwi.nz>