---
package: "@webjsdev/cli"
version: 0.10.6
date: 2026-06-03T09:19:53.074Z
commit_count: 3
---
## Features

- **generate typed route props and a route union for navigate()** ([#293](https://github.com/webjsdev/webjs/pull/293)) [`c18cc625`](https://github.com/webjsdev/webjs/commit/c18cc625)
  * feat: generate typed route props and a route union for navigate()
  
  A page/layout/route-handler default export receives { params, searchParams, url }, but webjs gave it no type, so searchParams was untyped everywhere and a [slug] route's params had to be hand-annotated with nothing tying the key to the folder name. Renaming [slug] to [id] silently broke every params.slug reference, and navigate('/blgo/123') type-checked fine only to 404 at runtime.
- **type the package.json webjs.* config block** ([#295](https://github.com/webjsdev/webjs/pull/295)) [`19dde265`](https://github.com/webjsdev/webjs/commit/19dde265)
  * feat: type the package.json webjs.* config block
  
  webjs reads a webjs.* object from package.json (elide, headers, redirects, csp, trailingSlash, and the body-limit / timeout knobs), but there was no type, schema, or validation, so a typo'd key was silently dropped and the feature it toggled stayed at default with no diagnostic. The config equivalent of an untyped API that fails open.

## Fixes

- **surface a missing webjs-frame instead of a silent full-page swap** ([#294](https://github.com/webjsdev/webjs/pull/294)) [`fdbfc999`](https://github.com/webjsdev/webjs/commit/fdbfc999)
  * fix: surface a missing webjs-frame instead of a silent full-page swap
  
  A frame-scoped navigation whose response omits the requested <webjs-frame id> silently blew away the whole page. In applySwap the frame branch was gated on (target && source); when the response lacked a matching frame (source null) or the target frame was gone (target null), control fell through to the layout-marker swap and then the full-body replaceChildren, wholesale-replacing the document with no warning and no event. An auth redirect returning a login page without the frame thus destroyed the page.
