Files
WRNexusJS/CHANGELOG.md
T
ClintchizandClaude Opus 5 e9db4ca24d test(core): cover defineEndpoint's no-second-argument request-parsing path
Every existing test in endpoint-schema.test.ts passed rawInput
explicitly, so the branch added to endpoint.ts's fix (GET/HEAD query
parsing, JSON body parsing, malformed/absent body fallback) was
exercised by nothing but a manual curl. Add coverage that calls the
endpoint with only a context, matching the real router's calling
convention:

- GET with query parameters populates input from ctx.url.searchParams.
- POST with a JSON body populates input from the parsed body.
- POST with a malformed or absent body does not throw; the schema's
  own validation decides the outcome (asserted on the real response).
- An explicit rawInput argument still wins and the request is never
  read (the body is drained first, so a second .json() call would
  reject if the endpoint tried to read it again) -- the regression
  guard for the branch intentionally left untouched.

Confirmed the GET and POST-body tests fail against the pre-fix
endpoint.ts (input resolves as undefined/null instead of the sent
value); the malformed/absent-body test does not distinguish pre- and
post-fix, because in that specific edge case both normalize to an
effectively empty input -- noted in the report rather than forced.

Added a CHANGELOG entry documenting the behavior change for
downstream apps: a request that previously passed vacuous validation
on a defineEndpoint route can now legitimately fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 20:16:32 +05:30

4.5 KiB

Changelog

Unreleased

  • Fixed defineEndpoint (@wrnexus/core) so routes invoked through the real HTTP router (which calls handlers as handler(ctx), with no second argument) actually receive their request input: it now parses query parameters for GET/HEAD and the JSON body otherwise when no input is passed explicitly. Previously such endpoints silently validated undefined, so an input schema with only optional fields passed vacuously regardless of what was sent. Behavior change for downstream apps: a request that previously passed vacuous validation on a defineEndpoint route can now legitimately fail (400 VALIDATION_ERROR) if it does not actually satisfy the schema. Explicitly passing a second argument (e.g. from a unit test or an internal caller) is unaffected and still takes priority over reading the request.

0.8.8

  • Added the framework request context to .wrn language-server type environments.
  • Kept workspace type declarations inside runnable apps during updates.
  • Regenerated lint-safe application declarations before update verification.

All notable framework changes are recorded here. Every release must also include an idempotent entry in the CLI migration registry.

0.8.3 - 2026-08-03

  • Bundled hydrated browser modules so package aliases and filesystem imports do not leak into browser-native modules.
  • Fixed SSR computed values, Async branch aliases, typed object props in loops, reactive route state, loader invalidation, realtime identity isolation, and client-function hydration.
  • Fixed template-literal parsing in the reactive fallback evaluator and removed the unsupported default unload Permissions Policy directive.
  • Made official package components compatible with strict explicit imports and added regression coverage for the TeamSpace application failures.
  • Fixed Bun 1.3.14 and TypeScript 5.9 release-gate compatibility in client bundling, alias resolution, and Happy DOM event tests.
  • Fixed ESLint compatibility in Node release scripts by declaring Node globals and using explicit regex space quantifiers.
  • Fixed package component import validation after workspace installation by excluding generated and dependency directories such as nested node_modules from first-party source scans.
  • Made the VS Code embedded compiler freshness check deterministic across TypeScript patch versions, Windows/Linux line endings, and workspace environments by verifying normalized source and generator fingerprints while retaining exact-output checks for the same TypeScript version.
  • Fixed the VS Code language-server bundle so it executes under Node instead of exiting after defining an uninvoked Bun CommonJS wrapper, and added request-level crash containment.
  • Scoped HTML diagnostics to view blocks, ignored TypeScript generic syntax and WRN expressions, and preserved JavaScript-looking documentation inside <pre><code> examples.
  • Fixed formatter corruption of preformatted examples, balanced compact sibling markup, long bare tags, and repeated format-on-save indentation drift.
  • Fixed component prop intelligence for dynamic boolean/union expressions, boolean string literals, literal-union runtime types, and reserved prop names such as class.
  • Prevented bundled editor type checking from publishing TypeScript standard-library path failures or unmapped synthetic virtual-document diagnostics.
  • Fixed language-server virtual TypeScript inference for untyped dynamic handler parameters and indexed output dispatch, while retaining strict diagnostics for explicitly typed parameters.
  • Made bundled editor type checking resolve TypeScript standard libraries from the active workspace, and added a regression test that proves semantic diagnostics are actually running.
  • Fixed final release-gate lint failures by removing the obsolete editor stripComments helper and importing Node Buffer explicitly in the language-server bundle generator.
  • Reviewed the UI visual-contract change caused only by corrected AuthForm.wrn indentation and regenerated the 0.8 baseline after confirming no rendered component behavior changed.

0.8.0 - 2026-08-02

  • Added package-owned helper and component kits across all 39 framework packages.
  • Added standalone realtime and package-aware auth, i18n, image, uploader, validation, JWT, encryption, database, and CAPTCHA improvements.
  • Added whole-application WRN syntax, import, and formatting modernization to the CLI update.
  • Added Windows/Linux CI, read-only package audits, governance documents, and security gates.