ClintchizandClaude Opus 5 c7ab605e85
Quality / quality (ubuntu-latest) (push) Failing after 12m21s
Quality / quality (windows-latest) (push) Canceled after 0s
feat(ui): migrate the page and section components, add the layout tour
Section, SectionHeader and PublicPageShell move onto wire-* classes with
local style blocks, variants as data attributes. SectionHeader loses 38
utility lines, and Section stops spending one line per variant and colour
pairing: tinted and solid now select on two attributes. PageHeader was already
on the convention and only needed the audit.

examples/basic-app/app/pages/layout.wrn composes the whole set into one page.

Building it surfaced a library-wide bug. Ten custom properties were referenced
by components and defined by nothing: --wire-color-focus, --wire-color-surface-soft,
--wire-color-on-danger, --wire-color-surface-subtle and the input-* family,
plus hover and contrast for every semantic colour except primary and
secondary. An undefined custom property does not warn, it resolves to nothing,
so focus rings drew with no colour and every soft surface rendered
transparent -- 27 components referenced surface-soft alone. They are derived
in the theme now, and a test checks every token a component references against
the rendered theme CSS rather than the source, since most are generated.

The semantic spread also had to move ahead of the primary and secondary
entries so the palette keeps winning for those two.

Known and unresolved: LayoutSplitter emits its sizeChange output and the
component does fire it, but a parent binding on the tag is not invoked. The
tour page therefore points at the handle aria-valuenow rather than wiring a
handler that would never update. Outputs work elsewhere, so this is narrower
than an outputs-are-broken problem and needs its own investigation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 15:50:33 +05:30
2026-08-01 01:09:58 +05:30
2026-08-01 01:09:58 +05:30
2026-07-12 15:55:18 +05:30
2026-08-02 23:18:51 +05:30
2026-07-12 15:55:18 +05:30
2026-08-07 15:08:05 +05:30
2026-08-04 12:19:09 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-07-12 15:55:18 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-01 01:09:58 +05:30
2026-08-07 15:08:05 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30

WRNexusJS

WRNexusJS is a compiler-driven, SSR-first, Bun-native full-stack framework for building secure, fast, maintainable applications with .wrn pages, layouts, components, stores, server functions, client functions, typed outputs, APIs, validation, authentication, realtime rooms, and production tooling.

Current framework version: 0.8.0

Core principles

  • Secure by default with CSP, CSRF, safe serialization, URL policies, request limits, SSRF protection, secret scanning, and release gates.
  • Performance-first SSR with zero framework JavaScript for static pages and selective hydration for interactive pages.
  • One compiler-understood .wrn model for markup, props, state, outputs, and runtime-specific functions.
  • Backward-compatible package upgrades with migrations, generated references, validation scripts, and private publishing controls.
  • Package kits that give developers public helpers, package tests, documentation, and complete UI blocks where a package has a developer-facing interface.

Quick start

bun install
bun run validate:0.8
bun run check
bun run dev

Create or upgrade a project:

bunx @wrnexus/cli@0.8.0 create my-app
bunx @wrnexus/cli@0.8.0 update --version=0.8.0 --report

Package kits in 0.8

All 39 framework packages expose a documented helper/API surface and package tests. UI-facing packages additionally own complete .wrn blocks composed from @wrnexus/ui:

  • @wrnexus/auth — complete account, sign-in, sign-up, MFA, passkey, recovery, device, provider, and security blocks.
  • @wrnexus/captcha — challenge, field, status, extraction, verification, response, and context helpers.
  • @wrnexus/i18n — recursive locale loading, fallback chains, request resolution, SSR/browser translations, language controls, and formatters.
  • @wrnexus/image — responsive picture plans, secure loaders, placeholders, preload hints, audits, and image blocks.
  • @wrnexus/realtime — typed messages, room connections, presence, typing, metadata, composer, status, and message blocks.
  • @wrnexus/uploader — upload attributes, result validation, formatting, dropzone, and status blocks.
  • @wrnexus/validation — parse/throw helpers, consistent error responses, summaries, and field errors.
  • @wrnexus/ui — the complete shared design-system component catalog.

Infrastructure packages remain helper/API-only so database, encryption, security, compiler, server, and build packages do not pull browser UI into production server code.

Security note for encrypted HTTP bodies

@wrnexus/encryption supports authenticated application-layer request and response envelopes with method, path, request-ID, timestamp, expiry, key-rotation, body-size, and replay binding.

This feature does not replace HTTPS. It is appropriate for service-to-service calls, native/mobile clients, controlled agents, or selected fields with server-managed keys. It cannot hide data from an end user when a browser receives the decryption key.

Validation commands

bun run audit:packages
bun run test:package-kits
bun run validate:0.8
bun run security:framework
bun run sbom
bun run benchmark:framework
bun run validate:staging
bun run check
S
Description
No description provided
Readme MIT
45 MiB
Languages
JavaScript 71.7%
TypeScript 28.2%