Major Changes
-
2524aa4: Release WyW-in-JS v2.
The v2 release moves the published packages to an ESM-only, Oxc-backed transform and evaluation pipeline and requires Node.js >= 22.0.0.
Breaking changes and migration notes from v1:
- CommonJS package entrypoints were removed. Migrate configs and tooling to ESM (
import()/.mjs). - The transform path now uses Oxc for parsing, analysis, pre-evaluation rewrites, shaking, collection, and code generation.
@wyw-in-js/babel-presetremains available as a deprecated compatibility wrapper around the Oxc pipeline. - Build-time evaluation now runs through the async ESM evaluator (
vm.SourceTextModule+ runner RPC). - The default value resolver is
eval.strategy: "hybrid": WyW tries static-first resolution for provable values and falls back to evaluator execution for values that still need runtime module evaluation. Useeval.strategy: "execute"for evaluator-only compatibility, oreval.strategy: "static"to reject evaluator fallback. - The previous top-level
evaluateoption is replaced byeval.strategy. - Eval IPC and config handling are stricter: unsupported
__wywPreval,eval.globals, and inline non-serializable preset/plugin options now fail with explicit migration errors instead of being silently coerced. require()inside eval follows the configuredeval.requirefallback behavior (warn-and-run,error, oroff).- CSS rule emission order can differ from v1 for equivalent extracted rule sets because the static-first/Oxc pipeline can process preserved imports and rules in a different order. Projects that rely on cascade ties between generated rules should make precedence explicit in selector specificity, composition, or source structure.
Migration guide: https://wyw-in-js.dev/migration/v2
- CommonJS package entrypoints were removed. Migrate configs and tooling to ESM (
Minor Changes
-
2524aa4: Add a supported processor diagnostics API that lets library-owned processors emit structured non-fatal warnings through WyW.
This adds:
BaseProcessor.addDiagnostic()and typed diagnostics helpers in@wyw-in-js/processor-utils- normalized
diagnosticsoutput from@wyw-in-js/transform - diagnostics reporting in
@wyw-in-js/viteand@wyw-in-js/cli
Existing hard failures and metadata sidecar behavior stay intact.
-
2524aa4: Add an optional processor static evaluation contract. Processors can now describe statically known values as serializable values, class names, selector chains, runtime callbacks, opaque components, or unresolved values with reasons.
The transform static evaluator now consumes this contract before falling back to legacy eval-time replacement metadata, so processors can provide their own static semantics without relying on transform-specific metadata shapes.
Patch Changes
- Updated dependencies
- @wyw-in-js/shared@2.0.0