ClintchizandClaude Opus 5 17aa3b98eb feat(islands): wire islands end to end
The island pieces existed but nothing connected .wrn compilation to island
emission. Now:

- codegen emits a data-wrn-island placeholder for component tags bound to
  .tsx imports, keeping .wrn components on the normal mount path
- the dev pipeline and static build resolve island imports, thread the
  names into codegen, and build the bundles
- collectScripts adds /__wrnexus/islands.js only when island markup is
  present, so island-free pages still ship nothing
- island routes classify as static-interactive via hasIslands

Three bugs found by driving a real page in the browser:

1. The mount runtime was never built anywhere, so the bootstrap 404'd and
   no island mounted.
2. Building the runtime separately from the islands gave each its own copy
   of React: "Cannot read properties of null (reading 'useState')". The
   runtime is now an entrypoint of the same build so React stays in one
   shared chunk. The existing single-React test only compared bundles
   within one build and could not see across build boundaries.
3. Island props arrived as attribute strings, so start={3} was "3" and
   incrementing produced "31" then "311". Props now follow JSX semantics:
   {…} parses as JSON, quoted values stay strings, and a runtime
   expression is a WRN-ISLAND-PROPS build error rather than a silent
   wrong value.

island-codegen.ts no longer imports @wrnexus/core. Compiler modules are
bundled into the Node-only VS Code extension, which contains no other
packages, so a runtime import of core broke the editor compiler; the two
helpers are implemented locally and the core dependency is dropped again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 16:16:03 +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-11 13:40:03 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +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%