adminui/inertia-routes
AdminUI Inertia Routes shares your Laravel named routes with Inertia.js so you can call route() directly inside Vue or React components. A lightweight middleware and Blade directive keep frontend URLs in sync with backend routes, avoiding hardcoded links and broken navigation.
Scope note (read first): The release notes describe client-side form-helper behavior (useForm, visitOptions, resetOnSuccess, autoHydrate) — this is the JavaScript companion package for Inertia.js, which pairs with the Laravel-side Inertia adapter rather than being a Composer/PHP package itself. The assessment below treats it as a Laravel-stack dependency shipped through npm/Vite. If the intent was to evaluate a PHP package, the artifact under review does not match the notes and scope should be confirmed before any decision.
Architecture fit: v4.5.6 is a pure patch release against an already-adopted client helper. It introduces no new public API, no deprecations, and no interface changes — it hardens existing behavior in useForm submits. Architecturally this is a low-coupling, drop-in update: it changes how form state, callbacks, and per-call options are managed in the browser and does not touch Laravel routing, controllers, middleware, validation, or serialization. Fit with our stack is neutral-to-positive; the value is entirely in defect removal.
Integration feasibility: High. No migration required, no config changes, no server-side coordination, no database or queue implications. The work is an npm version bump plus a Vite asset rebuild and cache-bust. Realistic effort: hours, not days, plus regression testing on forms that use resetOnSuccess or pass options objects on individual submits.
Technical risk: Low overall, with two items worth naming.
onSuccess now composes with (runs after) visitOptions.onSuccess instead of replacing it. Any code that relied on the old replace-semantics — deliberately or accidentally suppressing the composable-level handler — will now execute both. This is the single most likely source of unexpected production behavior in the release.onSuccess callbacks are now awaited and receive page, and they run before resetOnSuccess clears the form. Handlers that were previously async and unawaited will now hold the reset until they resolve. A slow handler delays the reset UX; a rejecting handler may surface differently.The rest is risk reduction, and some of it is security-adjacent: per-call headers no longer leak into later submits (prior versions could carry a caller's per-request headers — including auth-ish headers — into an unrelated subsequent form post). Caller-supplied options objects are no longer mutated, removing a shared-state footgun. The items / items_count prefix-collision fix removes a silent data-corruption path for array field defaults. The resetOnSuccess snapshot fixes (no shared nested references, no stacked onSuccess wrappers, fallback to form defaults) eliminate repeated-callback and cross-submit state bleed.
Key questions:
onSuccess overriding the composable-level handler? Those need review before upgrade.submit/post? Those benefit most and should be explicitly regression-tested.Stack fit: Standard Laravel + Inertia front end. The update lands in package.json and flows through the existing Vite build into versioned assets. No Composer change, so no PHP dependency resolution, no lockfile conflict with Laravel/Symfony constraints, and no server deploy ordering constraint.
Migration path: Direct version bump to 4.5.6 on the current major (no cross-major jump implied by the notes). No codemods, no API rewrites, no config migration. Recommended path: bump in a branch → rebuild assets → run the form regression suite → spot-check in staging → ship. If the project pins exact versions, update the pin and lockfile together.
Compatibility: Patch-level, semver-compatible on its face. Two checks: (a) our adapter package and the core package should be on aligned versions, since these helpers are adapter-specific; (b) our build toolchain must support the unchanged peer requirements — the only dependency change noted is dev deps, so production install footprint is unaffected. Node/bundler versions are not implicated.
Sequencing:
resetOnSuccess, shared options objects, and prefixed array fields (items/items_count-style names) (day 0–1).onSuccess handlers (day 1–2).Maintenance: Net reduction. Several fixes remove patterns that generate recurring, hard-to-reproduce bug reports — repeated callbacks, stale reset snapshots, wrong array default types, options leaking between submits. Expect fewer "form resets twice" and "form cleared the wrong field" tickets after adoption. Ongoing maintenance burden is unchanged: same release cadence, same dependency surface, no new configuration.
Support: Low support load, but support needs one piece of context: the composed-onSuccess behavior change. Document it in the internal changelog note so front-line support can recognize it if a team reports a handler "running twice." No new error messages or log signatures are introduced for support to learn.
Scaling: Neutral. All changes are per-form-instance and client-side; no impact on request volume, payload size, or server capacity. If anything, removing stacked onSuccess wrappers slightly reduces per-submit closure churn on form-heavy screens — negligible but directionally positive. No implications for horizontal scale, caching, or CDN behavior beyond the standard asset hash change.
Failure modes: The realistic failure surface is narrow:
onSuccess that never resolves now delays form reset indefinitely → form appears "stuck" post-submit. Mitigate by auditing async handlers for missing await/timeout discipline.Ramp-up: Minimal. Any Laravel/Inertia developer can consume this without training. The only knowledge transfer needed is a short note to the team on the two behavioral deltas (composed onSuccess, awaited callbacks and their ordering relative to resetOnSuccess), ideally appended to the front-end conventions doc. Budget half a day of a front-end engineer's time for inventory, upgrade, and regression verification.
How can I help you explore Laravel packages today?