Skip to content

v3.17.1

Choose a tag to compare

@58bits 58bits released this 09 Jul 02:29

Bug Fixes

  • @byline/core — upload fields nested inside group, array, or blocks structures are now fully supported. getUploadFields() and hasUploadField() previously inspected only the top level of a collection's field set, so an image/file field placed inside a group or a repeating array/block was invisible to the transport and cleanup paths. Both helpers now recurse through group / array / blocks (including every block variant). Because field names act as the upload transport's selector, leaf names must be unique among a collection's upload-capable fields — resolvers match by name and take the first hit in declaration order.

  • @byline/coredeleteDocument now walks the full schema/data tree when collecting storage paths, so files uploaded through nested upload fields (the original plus every persisted variant) are correctly removed from the storage provider on document delete. Previously only top-level upload fields were cleaned up, leaving orphaned files behind.

  • @byline/host-tanstack-start — the admin upload server fn resolves the target upload field from the recursive candidate set, so uploads into nested fields (e.g. files[0].filesGroup.publicationFile) work through the standard transport. The ambiguity rule now counts nested fields too: a collection with more than one upload-capable field at any depth requires an explicit field selector. Per-field storage routing (field.upload.storage falling through to site-wide ServerConfig.storage) is preserved for nested fields.

  • @byline/admin — the form upload executor reduces nested field paths to their leaf name to match the server-side resolver, so the document editor's upload widgets work when nested in repeating structures.

All other @byline/* packages bumped to 3.17.1 in lockstep with no behavioural changes this cycle.