Vaadin Flow 25.1.13
Changes since 25.1.12
Fixes
-
Include
/usr/binas location for linux tools (#25026) (CP: 25.1)
Commit · Pull requestWhen installing nodejs through the package manager it lands in
/usr/bin -
Respect custom npm registry in seeded package-lock.json (#24921) (CP: 25.1)
Commit · Pull requestWhen seeding a project's
package-lock.jsonfrom the dev-bundle template, Flow copied it verbatim, keeping the hardcodedregistry.npmjs.orgURLs in everyresolvedfield. With a custom npm registry configured, this leaves a committed lock (withcleanFrontendFiles=false) that still points atregistry.npmjs.org, and packages can end up being downloaded from npmjs instead of the configured registry — for example when only a scoped@scope:registryis set, or when npm's registry-host rewriting is turned off. This breaks private/air-gapped setups and any tooling that consumes the lock without npm's rewriting. Strip theresolvedfields from the seeded npmpackage-lock.jsonwhen a custom registry is configured, so npm re-resolves the download URLs against that registry. Theintegrityhashes are kept so npm still verifies the downloaded tarballs against the versions Vaadin tested. Default setups keep the verbatim fast-path copy. Whether a custom registry is configured is now determined by npm itself (npm config ls --json) rather than by scanning.npmrcfiles, so it also covers registries set through environment variables, the global npmrc, or the command line, as well as scoped registries. -
Prevent NPE in ElementEffect detach listener on re-attach (#25005) (CP: 25.1)
Commit · Pull request · IssueElementEffect registered a new detach listener on every attach, stored it in the single detachRegistration field, and relied on each detach listener removing itself. When an element is re-attached without a detach event firing in between - StateNode.removeFromTree(false), as used by UIInternals.moveToNewUI for
@PreserveOnRefresh- a second detach listener was registered while the first was still present. The next real detach ran both: the first nulled detachRegistration, the second dereferenced null and threw a NullPointerException. Register the detach listener through a helper that removes any previous registration before adding a new one, and null-guard the removal inside the listener so at most one detach listener is ever active.