Apostrophe 4.10.0: Small Fixes, Big Impact

changelog-4.10.0

Howdy from Apostrophe Central!

This release cycle was brief, thanks to the upcoming holidays in the United States, but it's packed with impactful refinements and useful improvements to enhance your ApostropheCMS experience. Read on for the details.

Widget rendering options for the REST API

Headless CMS users rejoice! You now have more options for accessing the rendered HTML of areas in REST API responses. Choose between query parameters for fetching the HTML of entire areas or individual widgets. Bonus: the rich text widget now provides full URLs (rather than just internal IDs) for links and inline images during RESTful rendering.

Tweaks to the Apostrophe build

Our beta Vite build tool is shaping up to make ApostropheCMS development faster and more efficient. We’ve added more options to streamline workflows, especially around hot module replacement. Stay tuned in the coming weeks for guidance on taking full advantage of these features. Our stable release is planned for December 18. In the meantime, explore how to migrate your project to ESM and unlock new possibilities and share your experiences in Discord.

Import-Export extension improvements

The Import-Export extension just got better! You can now choose to import all documents as drafts—even if they were published in the original site. This provides more control and flexibility when moving content between projects.

We’ve got one more release planned before the year ends, so stay tuned. In the meantime, remember: a simple npm update keeps your project up-to-date with all the latest and greatest from ApostropheCMS!

CHANGELOG for Apostrophe 4.10.0


Adds

  • It's possible now to target the HMR build when registering via template.append and template.prepend. Use when: 'hmr:public' or when: 'hmr:apos' that will be evaluated against the current asset options.hmr configuration.
  • Adds asset module option options.modulePreloadPolyfill (default true) to allow disabling the polyfill preload for e.g. external front-ends. 
  • Adds bundleMarkup to the data sent to the external front-end, containing all markup for injecting Apostrophe UI in the front-end.
  • Warns users when two page types have the same field name, but a different field type. This may cause errors or other problems when an editor switches page types.
  • The piece and page GET REST APIs now support ?render-areas=inline. When this parameter is used, an HTML rendering of each widget is added to that specific widget in each area's `items` array as a new `_rendered` property. The existing ?render-areas=1 parameter is still supported to render the entire area as a single `_rendered` property. Note that this older option also causes `items` to be omitted from the response.

Changes

* Removes postcss plugin and webpack loader used for breakpoint preview mode. Uses instead the new `postcss-viewport-to-container-toggle` plugin in the webpack config.
* Implement `vue-color` directly in Apostrophe rather than as a dependency
* Switch color handling library from `tinycolor2` to `@ctrl/tinycolor`
* Removes error messages in server console for hidden fields. These messages should not have been printed out in the server console in the first place.
* Removes invalid error messages on select fields appearing while opening an existing valid document.

Fixes

* Extra bundle detection when using external build module works properly now.
* Widget players are now properly invoked when they arrive later in the page load process.
* Fix permission grid tooltip display.
* Fixes a bug that crashes external frontend applications.
* Fixes a false positive warning for module not in use for project level submodules (e.g. `widges/module.js`) and dot-folders (e.g. `.DS_Store`).
* Bumped `express-bearer-token` dependency to address a low-severity `npm audit` warning regarding noncompliant cookie names and values. Apostrophe
did not actually use any noncompliant cookie names or values, so there was no vulnerability in Apostrophe.
* Rich text "Styles" toolbar now has visually focused state.
* The renderPermalinks and `renderImages methods of the `@apostrophecms/rich-text` module now correctly resolve the final URLs of page links and inline images in rich text widgets, even when the user has editing privileges. Formerly this was mistakenly prevented by logic intended to preserve the editing experience. The editing experience never actually relied on the
rendered output.
* Search bar will perform the search even if the bar is empty allowing to reset a search.
* Fixes Color picker being hidden in an inline array schema field, also fixes rgba inputs going off the modal.