Releases: afx-team/evjs
Releases · afx-team/evjs
v0.1.4
Runtime
- Added
createApp({ router })passthrough for TanStack Router native options, includingdisableGlobalCatchBoundary. - Re-exported more TanStack Router components, hooks, history helpers, search middleware utilities, URL rewrite helpers, route mask utilities, and router event types from
@evjs/client.
Refactoring
- Moved the server function endpoint config to
server.functions.endpointto match the resolved server function config shape.
Documentation
- Updated the Quick Start dependency examples to the
0.1.4release line. - Expanded client routing docs for runtime router options, router events, search middlewares, loader cache options, and route masks.
v0.1.3
Improvements
- Moved
merge()into@evjs/evas a general type-safe config helper for evjs framework config and utoopack config. - Kept
@evjs/bundler-utoopackexportingmerge()so plugin authoring stays concise while sharing the generic implementation.
Documentation
- Updated quick-start dependency examples to
0.1.3. - Removed stale generated-folder notes from the project structure docs.
v0.1.2
0.1.2 — 2026-05-09
✨ Highlights
- Type-safe utoopack config merging — Added the
merge()helper to@evjs/bundler-utoopackso plugins can apply typed nested utoopack config patches without manualcfg.module ??= {}style boilerplate. - Cleaner plugin authoring examples — Simplified utoopack hook examples to use
bundlerConfig: utoopack((cfg) => ...)directly instead of manually forwarding(config, ctx). - Project structure guide refresh — Reworked the project structure docs around minimal apps, full-stack layouts, server functions, route handlers, custom server entries, MPA builds, and generated folders.
📝 Documentation
- Plugin lifecycle clarity — Clarified plugin hook execution order and the difference between generic
bundlerConfighooks and typed bundler helpers. - User package version guidance — Moved
@evjs/*lockstep version guidance into the user-facing Quick Start docs and updated examples for the0.1.2release line. - Roadmap and stale docs cleanup — Marked completed MPA and server context work, refreshed stale framework guides, and kept English and Simplified Chinese docs aligned.
v0.1.1
0.1.1 — 2026-05-09
✨ Highlights
- Build orchestration in
@evjs/ev— Moved dev/build orchestration out of the CLI package so@evjs/clistays a thin command wrapper around the framework runtime. - Manifest output refinements — Refactored server manifest asset metadata and wired server function endpoint configuration through build-time defines.
- Dev server readiness improvements — Tightened dev server startup coordination, API process recovery behavior, and server bundle callback recovery so watch-mode failures are easier to recover from.
🐛 Bug Fixes
- tRPC example forwarding — Updated the tRPC example server function bridge to call arbitrary procedures with the original path, operation type, and input instead of hard-coding one procedure.
- CI install stability — Kept CI on
npm installso platform-specific optional dependencies do not corrupt lockfile state across macOS and Linux installs.
🧪 Testing
- Broader E2E coverage — Improved end-to-end assertions across API routes, basic routing, complex routing, MPA, scaffolding, SQLite, Tailwind, and tRPC examples.
- Bundler config coverage — Added utoopack adapter coverage for default configuration behavior and manifest generation edge cases.
v0.1.0
✨ Highlights
- Initial public milestone — Promoted evjs to
0.1.0as the first tagged milestone intended for GitHub-driven releases and npm publication. - Full-stack React framework core — Ships TanStack Router based client routing, Hono-powered server routes and server functions, plugin hooks, and the
utoopackbundler integration as the supported framework baseline. - Scaffolding and examples — Includes
create-apptemplates plus runnable examples for API routes, complex routing, MPA, custom websocket transport, Tailwind, tRPC, SQLite, and plugin authoring.
⚠️ Important Notes
- Asset prefix removal — The top-level
assetPrefixconfig and related runtime injection were removed in0.0.32; production asset URLs are now emitted as root-relative paths. - Server entry export shape — Server entries now export an object like
export default { fetch: app.fetch };instead of exportingfetchdirectly.
v0.0.33
🐛 Bug Fixes
- Default utoopack plugin context —
ev buildandev devnow inject the active default bundler into plugin setup context before collecting hooks, sobundlerConfighelpers likeutoopack()work even when users rely on the implicit default bundler instead of explicitly settingbundler: utoopackAdapter.
v0.0.32
⚠️ Breaking Changes
- Removed
assetPrefix— Deleted the top-levelassetPrefixconfig, removedwindow.assetPrefixruntime injection, and droppedassetPrefixfrom emitted client manifests. Client asset URLs now build as root-relative paths. - Standardized Server Entry Exports — The server entry point now exports an object
{ fetch }instead of a barefetchfunction.createApp().fetchshould now be exported asexport default { fetch: app.fetch };.
♻️ Refactoring
- Server Runtimes Integration — The
nodeandfetchruntimes are now integrated internally into@evjs/server/runtimes, eliminating external loading discrepancies in E2E testing scenarios. - Simplified HTML and bundler asset paths —
generateHtml()and the utoopack adapter no longer thread a CDN/public-path prefix through HTML generation, manifest emission, or bundler runtime setup.
🐛 Bug Fixes
- Template Metadata — Fixed template metadata for the
create-appscaffolding CLI to ensure correct package naming and metadata on new projects.
📝 Documentation
- Removed stale CDN-prefix guidance — Updated config and deployment docs to stop advertising
assetPrefix, and documented that custom asset-base behavior now requires a proxy layer or custom bundler/HTML extension.
v0.0.30
[0.0.30] — 2026-05-06
✨ Features
- Basic routing example expansion — Expanded
examples/basicwith static (/about), dynamic (/users/$userId), and search-param (/search?tab=) routes to demonstrate more routing patterns in one example. - Custom router history support — Added optional
historysupport tocreateApp()and re-exported hash and memory history helpers from@evjs/client, allowing examples and apps to switch between browser, hash, and memory routing.
🐛 Bug Fixes
- Default dev server entry fallback — Projects without an explicit
server.entrynow get a generated default server entry, restoring server function support in dev for minimal examples likeexamples/basic. - Browser-history deep-link fallback in dev — Utoopack dev serving now falls back to the SPA shell for route URLs like
/aboutand/users/1, preventing405responses on direct navigation.
🧹 Code Quality
- Monorepo lint and type cleanup — Resolved repository lint issues and tightened plugin hook test typing so push-time validation passes cleanly.
v0.0.29
✨ Features
- Cookie API Enhancements — Split
cookies()intogetCookie,setCookie, anddeleteCookiefor better clarity. Added support for signed cookies viagetSignedCookie,setSignedCookie,generateCookie, andgenerateSignedCookie, aligning signatures with Hono. - Server Options Refactoring — Redesigned
CreateAppOptionsand optimizedRouteHandlerto streamline server creation. - Core Architecture — Core architecture and stability improvements.
📝 Documentation & Examples
- Server Context Examples — Demonstrated server context hooks in the
basic-server-fnsexample. - Runtime Identifiers Cleanup — Updated stale
__fn_callandregisterServerFnreferences across all documentation and comments to accurately reflect thecreateServerReferenceandregisterServerReferenceimplementations. - README Updates — Added the official Hono URL to the root README.
v0.0.28
✨ Features
- Server Context API — Refactored server context API to align with Hono's
context-storage, providing global hooks likerequest(),headers(),cookies(), andwaitUntil(). - Performance — Optimized
waitUntilexecution to prevent unnecessary closure creation.