v0.1.0-next.22
v0.1.0-next.22
Released: 2026-05-31
Bundler, config-eval, and markdown parity fixes for Astro/Vite → zfb migrations (the zzmod styleguide-v2 migration surfaced all of these), plus a follow-up fix so the new transforms compose with tsconfig path aliases in a single build.
Features
- feat(bundler): implement Vite
import.meta.globeager transform —import.meta.glob('…', { eager: true })with a string-literal pattern is expanded Rust-side during shadow materialisation; unsupported forms (non-eager / dynamic pattern /import()mode) error with a clear message (#665) (9fe4dfa) - feat(bundler): add
bundle.excludeglob knob — skip materialise + glob-expansion for matched files so a single un-bundlable file undercomponents/**cannot fail the whole build (#664) (08168ba) - feat(markdown): add
hardBreaksoption (remark-breaks parity) — converts every soft line break to<br>; defaultfalse(#662) (401c5b6)
Bug Fixes
- fix(config-eval): install web polyfills (
URL,URLSearchParams,TextEncoder/TextDecoder) into the config-eval V8 isolate so everyzfb.config.tsloads — previously failed withReferenceError: URL is not defined(#663) (0258c48) - fix(bundler): follow tsconfig
extendschains and resolve non-.baseUrlwhen readingcompilerOptions.paths(#666) (9970155) - fix(bundler): make in-shadow transforms (
import.meta.glob, CSS-modules) compose with tsconfig paths + a realnode_modulesin a single build — via copy-not-symlink source materialisation (when--preserve-symlinksis omitted) plus a dual-target alias rebase (shadow-first, real-fallback). The--preserve-symlinksgate is unchanged, so workspace path-alias resolution is preserved (#675) (7e34145) - fix(bundler): emit a clean shadow target for the whole-root
@/* → ./*alias (no double-slash) (#675) (4706ea7)
Other Changes
- test(migration): end-to-end confirm that all five fixes compose in one build (#673) (8ba6ead)
- test(migration): make the
bundle.excludeleg load-bearing in the combined confirm test (#675) (8e93a58)
Notes
The composition fix (#675) covers relative imports and @/-style aliases that resolve into mirrored source dirs (including the common whole-root @/* → ./*). One documented residual: alias targets that are out-of-root (.), gitignored, or top-level files still resolve (via the real-fallback) but their in-shadow transforms are not applied — unchanged from prior behaviour, never a build failure.