feat: build private preview framework portal
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
page Pagenotfound {
|
||||
seo {
|
||||
title = "Page not found"
|
||||
description = "Find the requested WRNexusJS documentation through search or the documentation index."
|
||||
canonical = "https://wrnexusjs.dev/404"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Error</span><span aria-hidden="true">/</span><span aria-current="page">Page not found</span></nav><article class="documentation prose standalone"><span class="eyebrow">404</span><h1>Page not found</h1><p>The address may be outdated or misspelled. No private or duplicate route is exposed here.</p><div class="actions"><a class="primary" href="/search">Search documentation</a><a href="/getting-started">Getting started</a><a href="/packages">Package reference</a></div></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Access {
|
||||
seo {
|
||||
title = "Access"
|
||||
description = "Request access to the WRNexusJS private developer preview."
|
||||
canonical = "https://wrnexusjs.dev/access"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Status</span><span aria-hidden="true">/</span><span aria-current="page">Access</span></nav><article class="documentation prose standalone"><span class="status status-beta"><span aria-hidden="true">●</span> Private Developer Preview</span><h1>Request preview access</h1><p>WRNexusJS 0.2.15 packages are not available from the public npm registry. Installation requires approval and private registry credentials supplied by WorkRoot. Never paste registry tokens into source control, issue reports, or support messages.</p><h2>Request process</h2><ol><li>Contact WorkRoot through the public contact path at <a href="https://workroot.in/">workroot.in</a>.</li><li>Describe the application, team, expected deployment, and Bun environment.</li><li>After approval, follow the registry instructions supplied privately.</li><li>Use the canonical scaffold command below only after authentication.</li></ol><pre><code>bunx @wrnexus/cli@0.2.15 create my-app</code></pre><p>Access approval, response time, licensing terms, and support level remain owner-controlled. This site does not collect access requests directly.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,16 @@
|
||||
page Architecture {
|
||||
seo {
|
||||
title = "Architecture"
|
||||
description = "Understand the WRNexusJS SSR, compiler, runtime, and package architecture."
|
||||
description = "WRNexusJS request lifecycle, compiler, runtime, security, data, realtime, workspace, deployment, and mobile architecture."
|
||||
canonical = "https://wrnexusjs.dev/architecture"
|
||||
}
|
||||
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar">
|
||||
<a class="brand" href="/"><span>W</span> WRNexusJS</a>
|
||||
<nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav>
|
||||
<button data-wire-theme-toggle class="theme-button" aria-label="Toggle theme">Theme</button>
|
||||
</header>
|
||||
<main class="page"><article class="documentation prose standalone"><span class="eyebrow">Concepts</span><h1>Architecture</h1><p>WRNexusJS separates server work, generated markup, and browser behavior so applications stay understandable and efficient.</p><h2>Request path</h2><pre><code>Request → Router → Middleware → Page/API → SSR document → Browser runtime</code></pre><h2>Compiler</h2><p>The compiler parses .wrn files and lowers state, events, interpolation, loops, conditionals, data bindings, components, and styles into server modules and small declarative browser directives.</p><h2>Runtime</h2><p>The server owns routing, data, secrets, sessions, validation, uploads, and rendering. The browser owns reactive scopes, navigation, forms, realtime clients, and native capability dispatch.</p><h2>Package boundaries</h2><p>Each package is independently installable. Start with the CLI and core, then add database, security, realtime, native, UI, and operational packages as required.</p><div class="actions"><a class="primary" href="/packages/core">Read core API</a><a href="/packages/compiler">Read compiler API</a></div></article></main>
|
||||
<footer>WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.</footer>
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Documentation</span><span aria-hidden="true">/</span><span aria-current="page">Architecture</span></nav><article class="documentation prose standalone"><span class="status status-beta">Framework architecture · 0.2.15</span><h1>Architecture</h1><p>WRNexusJS is Bun-native and SSR-first. File discovery maps pages and API handlers; middleware enriches or short-circuits a request; the compiler turns <code>.wrn</code> declarations into server render functions and small feature runtimes.</p><h2>Request and build lifecycle</h2><ol class="lifecycle"><li><strong>Discover</strong><span>Pages, APIs, middleware, components, layouts, schemas, rooms</span></li><li><strong>Compile</strong><span>Parse .wrn, validate grammar, generate server code</span></li><li><strong>Request</strong><span>Limits, security, locale, session, middleware</span></li><li><strong>Match</strong><span>Static and dynamic file route</span></li><li><strong>Render</strong><span>SSR data, escaped interpolation, components, metadata</span></li><li><strong>Enhance</strong><span>Only required reactive/directive runtimes</span></li></ol><h2>Package boundaries</h2><p><code>core</code> owns contexts, middleware, sessions and rooms; <code>router</code> discovers routes; <code>compiler</code> parses <code>.wrn</code>; <code>ssr</code> renders documents; <code>csr</code> supplies browser runtimes; <code>dev-server</code> and <code>cli</code> orchestrate development and builds.</p><h2>Security and data flow</h2><p>Validation happens at trust boundaries. Session authentication establishes identity; authorization makes resource decisions. CSP, Trusted Types, CSRF, upload checks, WebSocket origins, request limits, and output escaping are layered controls—not substitutes for application policy.</p><h2>Realtime and scale</h2><p>Rooms are process-local unless connected through pub/sub. Redis-backed pub/sub distributes events. Queue durability depends on the selected driver and must be evaluated explicitly.</p><h2>Workspaces and gateways</h2><p>The gateway can dispatch multiple applications while preserving route, component, asset, config, and session boundaries. Validate host routing and isolation before production.</p><h2>Build and deployment</h2><p><code>wrnexus build .</code> produces <code>dist/server.js</code> and hashed/static assets. Run the server with Bun, apply migrations before traffic, terminate TLS at a trusted edge, and forward only expected proxy headers.</p><h2>Mobile</h2><p>Mobile compatibility bridges SSR-safe Capacitor capabilities; native route generation is experimental and is not general web portability. Test each target platform.</p><h2>Generated files and limits</h2><p><code>app/routes.gen.ts</code>, <code>.wrnexus/</code>, and <code>dist/</code> are generated. The runtime is Bun-only. Preview packages are private. Historical compatibility and long-term support policy are not yet published.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Benchmarks {
|
||||
seo {
|
||||
title = "Benchmarks"
|
||||
description = "Reproducible WRNexusJS performance evidence and methodology status."
|
||||
canonical = "https://wrnexusjs.dev/benchmarks"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Project</span><span aria-hidden="true">/</span><span aria-current="page">Benchmarks</span></nav><article class="documentation prose standalone"><h1>Benchmarks</h1><span class="status status-planned">No publishable benchmark dataset yet</span><p>No comparative speed claims are published. A valid baseline must record scripts, commit, Bun/framework versions, hardware, OS, warmup, samples, workload, raw results, median, percentiles, memory, HTML size, browser JavaScript size, and run date.</p><p>The roadmap starts with WRNexusJS-only measurements before any maintained equivalent-workload comparison.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Changelog {
|
||||
seo {
|
||||
title = "Changelog"
|
||||
description = "WRNexusJS documentation release history and migration notes."
|
||||
canonical = "https://wrnexusjs.dev/changelog"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Project</span><span aria-hidden="true">/</span><span aria-current="page">Changelog</span></nav><article class="documentation prose standalone"><h1>Changelog</h1><h2>0.2.15 <small>2026-07-12</small></h2><p>Documentation application aligned to all 25 installed packages, with generated README and TypeScript declaration references. This portal release establishes truthful private-preview access messaging and expanded framework navigation.</p><h3>Migration notes</h3><p>Keep all <code>@wrnexus/*</code> packages on the same release and run the installed CLI update workflow. No older framework release history is present in this repository.</p><h2>Versioning and support</h2><p>The packages use semantic-looking versions, but a formal compatibility and old-release support policy has not been approved. Preview consumers should treat minor releases as potentially requiring migration review.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Examples {
|
||||
seo {
|
||||
title = "Examples"
|
||||
description = "WRNexusJS examples and their verification status."
|
||||
canonical = "https://wrnexusjs.dev/examples"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Learn</span><span aria-hidden="true">/</span><span aria-current="page">Examples</span></nav><article class="documentation prose standalone"><h1>Examples</h1><p>Examples are tied to installed 0.2.15 package documentation. The focused snippets in guides are source-verified; standalone runnable projects and CI compilation are tracked as remaining work.</p><div class="coverage-list"><article><h2>Minimal .wrn page</h2><span class="status status-beta">Documented</span></article><article><h2>Database CRUD</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Authentication and protected route</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Permissions</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Forms and validation</h2><span class="status status-beta">Documented</span></article><article><h2>Realtime dashboard</h2><span class="status status-planned">Planned fixture</span></article><article><h2>File upload</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Background queue</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Redis pub/sub</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Workspace gateway</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Deployment</h2><span class="status status-planned">Planned fixture</span></article><article><h2>Experimental mobile mode</h2><span class="status status-planned">Planned fixture</span></article></div></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,45 @@
|
||||
page Gettingstarted {
|
||||
seo {
|
||||
title = "Getting started"
|
||||
description = "Getting started with WRNexusJS"
|
||||
description = "Build and run a first WRNexusJS application after receiving private preview access."
|
||||
canonical = "https://wrnexusjs.dev/getting-started"
|
||||
}
|
||||
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar">
|
||||
<a class="brand" href="/"><span>W</span> WRNexusJS</a>
|
||||
<nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav>
|
||||
<button data-wire-theme-toggle class="theme-button" aria-label="Toggle theme">Theme</button>
|
||||
</header>
|
||||
<main class="page"><article class="documentation prose standalone"><span class="eyebrow">Guide</span><h1>Getting started</h1><p>Create a production-ready WRNexusJS application with Bun.</p><h2>1. Create the project</h2><pre><code>bunx @wrnexus/cli create my-app
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Documentation</span><span aria-hidden="true">/</span><span aria-current="page">Getting started</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · v0.2.15</span><h1>Build a contact inbox</h1><p>This path creates a server-rendered page, validated API route, middleware, and realtime next step. It requires approved registry access and Bun 1.3.x; this site was verified with Bun 1.3.14.</p><h2 id="create">1. Create the project</h2><pre><code>bunx @wrnexus/cli@0.2.15 create my-app
|
||||
cd my-app
|
||||
bun install
|
||||
bun run dev</code></pre><h2>2. Add a page</h2><pre><code>page Dashboard {
|
||||
state count = 0
|
||||
view {
|
||||
<main>
|
||||
<h1>Dashboard</h1>
|
||||
<button @click="count++">{count}</button>
|
||||
bun run dev</code></pre><h2 id="structure">2. Know the structure</h2><pre><code>app/pages/ # file-based .wrn routes
|
||||
app/components/ # reusable .wrn components
|
||||
app/api/ # TypeScript request handlers
|
||||
app/middleware/ # ordered request middleware
|
||||
app/schemas/ # shared validation
|
||||
app/realtime/ # realtime rooms
|
||||
wrnexus.config.ts</code></pre><h2 id="page">3. Add a page</h2><pre><code>page Contacts {
|
||||
view {
|
||||
<main><h1>Contact inbox</h1>
|
||||
<form data-schema="contact" action="/api/contacts" method="post">
|
||||
<input name="email" type="email" /><span data-error="email"></span>
|
||||
<textarea name="message"></textarea><span data-error="message"></span>
|
||||
<button type="submit">Send</button>
|
||||
</form>
|
||||
</main>
|
||||
}
|
||||
}</code></pre><h2>3. Verify and build</h2><pre><code>wrnexus doctor
|
||||
wrnexus test
|
||||
wrnexus build</code></pre><h2>Where things live</h2><ul><li><code>app/pages</code> contains routes.</li><li><code>app/components</code> contains reusable .wrn components.</li><li><code>app/api</code> contains server API handlers.</li><li><code>app/layouts</code> contains shared shells.</li><li><code>app/middleware</code> contains request middleware.</li><li><code>wrnexus.config.ts</code> configures security, styles, data, mobile, and deployment.</li></ul></article></main>
|
||||
<footer>WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.</footer>
|
||||
}
|
||||
}</code></pre><h2 id="api">4. Validate an API route</h2><pre><code>import schema from "../schemas/contact";
|
||||
import { parseBody } from "@wrnexus/validation";
|
||||
export const POST = async (ctx) => {
|
||||
const result = await parseBody(schema, ctx.req);
|
||||
return result.ok ? Response.json({ ok: true }, { status: 201 }) : result.response;
|
||||
};</code></pre><h2 id="server-data">5. Load server data</h2><p>Use an <code>ssr</code> API binding and a server <code>{#each}</code> block. See <a href="/guides/server-data">Server data</a> for the complete verified pattern.</p><h2 id="middleware">6. Add middleware</h2><pre><code>export default async function logger(ctx, next) {
|
||||
console.log(ctx.req.method, ctx.url.pathname);
|
||||
return next();
|
||||
}</code></pre><h2 id="test-build">7. Test and ship</h2><pre><code>bun run test
|
||||
bun run build
|
||||
bun dist/server.js</code></pre><p>Next: <a href="/guides/deployment">deployment</a>, <a href="/guides/database">database</a>, <a href="/guides/authentication">authentication</a>, and <a href="/guides/workspaces-and-gateway">workspaces</a>.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page APIroutes {
|
||||
seo {
|
||||
title = "API routes"
|
||||
description = "Build typed Bun-native HTTP handlers."
|
||||
canonical = "https://wrnexusjs.dev/guides/api-routes"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">API routes</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>API routes</h1><p>Export GET, POST, PUT, PATCH, or DELETE from app/api files. Validate request bodies, enforce authentication and authorization, cap request sizes, and return Web Responses.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Authentication {
|
||||
seo {
|
||||
title = "Authentication"
|
||||
description = "Session and identity boundaries."
|
||||
canonical = "https://wrnexusjs.dev/guides/authentication"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Authentication</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Authentication</h1><p>Configure session authentication, log users in through supported auth helpers, and read identity from context. Cookie flags, rotation, expiry, and secret storage remain deployment responsibilities.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Authorization {
|
||||
seo {
|
||||
title = "Authorization"
|
||||
description = "Roles, permissions, policies, and resource checks."
|
||||
canonical = "https://wrnexusjs.dev/guides/authorization"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Authorization</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Authorization</h1><p>Authentication identifies; authorization decides. Enforce permissions in server routes and policies, including object ownership. UI hiding is never an authorization boundary.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Configurationandprofiles {
|
||||
seo {
|
||||
title = "Configuration and profiles"
|
||||
description = "Use typed config and environment-specific profiles."
|
||||
canonical = "https://wrnexusjs.dev/guides/configuration-and-profiles"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Configuration and profiles</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Configuration and profiles</h1><p>wrnexus.config.ts owns styles, SEO, security, data, mobile, fonts, and profiles. Keep secrets in validated environment variables and review merged production configuration.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Database {
|
||||
seo {
|
||||
title = "Database"
|
||||
description = "Drivers, models, typed SQL, migrations, and deployment."
|
||||
canonical = "https://wrnexusjs.dev/guides/database"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Database</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Database</h1><p>Configure SQLite or the installed supported driver, keep queries in named SQL blocks, generate typed functions, and apply migrations before traffic. Back up data and test rollback independently.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Deployment {
|
||||
seo {
|
||||
title = "Deployment"
|
||||
description = "Build and run WRNexusJS with Bun."
|
||||
canonical = "https://wrnexusjs.dev/guides/deployment"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Deployment</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Deployment</h1><p>Run bun run build, apply migrations, and start dist/server.js with Bun. Configure TLS, proxy trust, environment validation, health checks, graceful restarts, logs, backups, and restrictive security headers.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Formsandvalidation {
|
||||
seo {
|
||||
title = "Forms and validation"
|
||||
description = "Share validation between forms and API routes."
|
||||
canonical = "https://wrnexusjs.dev/guides/forms-and-validation"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Forms and validation</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Forms and validation</h1><p>Define a v.object schema, use data-schema on the form, show field errors with data-error, and always call parseBody on the server. refine is server-only.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Internationalizationandthemes {
|
||||
seo {
|
||||
title = "Internationalization and themes"
|
||||
description = "Load translations and token-based themes."
|
||||
canonical = "https://wrnexusjs.dev/guides/i18n-and-themes"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Internationalization and themes</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Internationalization and themes</h1><p>Store locale JSON under app/locales and use translation directives. Themes resolve CSS tokens; ensure contrast, system preference behavior, persistence, and non-color cues.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Middleware {
|
||||
seo {
|
||||
title = "Middleware"
|
||||
description = "Order and short-circuit request middleware."
|
||||
canonical = "https://wrnexusjs.dev/guides/middleware"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Middleware</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Middleware</h1><p>Middleware receives context and next. Return next() to continue or return a Response to stop. Put request limits and trust-boundary controls before business logic.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Mobile {
|
||||
seo {
|
||||
title = "Mobile"
|
||||
description = "Understand experimental webview and native modes."
|
||||
canonical = "https://wrnexusjs.dev/guides/mobile"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Mobile</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Mobile</h1><p>Mobile capabilities are experimental in this preview. Test Capacitor permissions and lifecycle on each platform; do not assume every .wrn or browser API converts to native.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Observability {
|
||||
seo {
|
||||
title = "Observability"
|
||||
description = "Capture errors and events without leaking private data."
|
||||
canonical = "https://wrnexusjs.dev/guides/observability"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Observability</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Observability</h1><p>Use tracking middleware and sinks with redaction, sampling, stable request identifiers, alert ownership, and retention limits. Never capture registry tokens or session secrets.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Pagesandcomponents {
|
||||
seo {
|
||||
title = "Pages and components"
|
||||
description = "Compose .wrn pages, layouts, props, state, and slots."
|
||||
canonical = "https://wrnexusjs.dev/guides/pages-and-components"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Pages and components</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Pages and components</h1><p>Pages are routable, components are reusable, and layouts provide shared slots. Mount a component with data-component and keep browser state scoped and minimal.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Projectstructure {
|
||||
seo {
|
||||
title = "Project structure"
|
||||
description = "How source, public, generated, and build files are organized."
|
||||
canonical = "https://wrnexusjs.dev/guides/project-structure"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Project structure</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Project structure</h1><p>Pages, components, layouts, APIs, middleware, schemas, database files, locales, realtime rooms, and styles live under app. Never edit app/routes.gen.ts, .wrnexus, or dist by hand.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Pubsub {
|
||||
seo {
|
||||
title = "Pub/sub"
|
||||
description = "Scale events with in-process or Redis-backed pub/sub."
|
||||
canonical = "https://wrnexusjs.dev/guides/pubsub"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Pub/sub</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Pub/sub</h1><p>The in-process driver cannot cross processes. Use Redis where instances must share events, define channel ownership, and design for reconnects and duplicate delivery.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Queues {
|
||||
seo {
|
||||
title = "Queues"
|
||||
description = "Run delayed, retried, and repeated jobs."
|
||||
canonical = "https://wrnexusjs.dev/guides/queues"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Queues</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Queues</h1><p>Queue behavior is preview-level. Treat in-process work as non-durable, make handlers idempotent, cap retries, record failures, and choose a production persistence strategy.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Realtime {
|
||||
seo {
|
||||
title = "Realtime"
|
||||
description = "Define rooms and secure WebSocket traffic."
|
||||
canonical = "https://wrnexusjs.dev/guides/realtime"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Realtime</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Realtime</h1><p>defineRoom handles connection and messages. Validate message shapes, authorize subscriptions, restrict origins, bound payloads, and use pub/sub to scale across processes.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Routing {
|
||||
seo {
|
||||
title = "Routing"
|
||||
description = "File-based page and API routing."
|
||||
canonical = "https://wrnexusjs.dev/guides/routing"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Routing</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Routing</h1><p>A page filename defines its URL; index maps to the directory root and bracket segments are dynamic parameters. API files under app/api expose HTTP method functions and receive a Context.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Applicationsecurity {
|
||||
seo {
|
||||
title = "Application security"
|
||||
description = "Configure layered WRNexusJS security controls."
|
||||
canonical = "https://wrnexusjs.dev/guides/security"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Application security</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Application security</h1><p>Use CSP, CSRF, Trusted Types, session hardening, validation, origin checks, upload restrictions, encryption, request limits, and explicit CORS. See the security policy for reporting.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Serverdata {
|
||||
seo {
|
||||
title = "Server data"
|
||||
description = "Render API-backed data with SSR bindings."
|
||||
canonical = "https://wrnexusjs.dev/guides/server-data"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Server data</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Server data</h1><p>Use an ssr API binding, return the desired response field, and render it with a server #each block. Values are escaped. Avoid fetching private data through a route that lacks authorization.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Testing {
|
||||
seo {
|
||||
title = "Testing"
|
||||
description = "Test compiled components, routes, and browser behavior."
|
||||
canonical = "https://wrnexusjs.dev/guides/testing"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Testing</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Testing</h1><p>Use Bun tests and @wrnexus/test helpers. Cover server HTML, API status and validation, authorization failures, reactive behavior, and a production startup smoke test.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Troubleshooting {
|
||||
seo {
|
||||
title = "Troubleshooting"
|
||||
description = "Diagnose compiler, routing, build, and runtime failures."
|
||||
canonical = "https://wrnexusjs.dev/guides/troubleshooting"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Troubleshooting</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Troubleshooting</h1><p>Confirm Bun and package versions, regenerate docs/routes through supported commands, read the first compiler diagnostic, check file naming, validate config, and reproduce under a production build.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Upgrading {
|
||||
seo {
|
||||
title = "Upgrading"
|
||||
description = "Upgrade aligned WRNexusJS packages safely."
|
||||
canonical = "https://wrnexusjs.dev/guides/upgrading"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Upgrading</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Upgrading</h1><p>Back up and commit first, then use wrnexus update --latest as documented by the installed CLI. Review migrations and keep every @wrnexus package aligned. Current release: 0.2.15.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Uploads {
|
||||
seo {
|
||||
title = "Uploads"
|
||||
description = "Validated local and S3-compatible file handling."
|
||||
canonical = "https://wrnexusjs.dev/guides/uploads"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Uploads</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Uploads</h1><p>Configure named stores, accepted MIME/extensions, and maxBytes. Random keys avoid path traversal. Private files require an authenticated serving route; v1 buffers each file in memory.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Workspacesandgateway {
|
||||
seo {
|
||||
title = "Workspaces and gateway"
|
||||
description = "Host isolated applications behind a gateway."
|
||||
canonical = "https://wrnexusjs.dev/guides/workspaces-and-gateway"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Guides</span><span aria-hidden="true">/</span><span aria-current="page">Workspaces and gateway</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview guide · 0.2.15</span><h1>Workspaces and gateway</h1><p>The workspace gateway dispatches apps by configured boundaries. Test host matching, asset namespaces, cookies, sessions, errors, and cross-app authorization before deployment.</p><h2>Release scope</h2><p>This guide describes installed 0.2.15 capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
+23
-16
@@ -1,25 +1,32 @@
|
||||
page Home {
|
||||
seo {
|
||||
title = "Home"
|
||||
description = "WRNexusJS documentation: build secure, server-rendered, reactive applications with Bun."
|
||||
description = "WRNexusJS is a Bun-native, SSR-first full-stack framework using the .wrn component language."
|
||||
canonical = "https://wrnexusjs.dev/"
|
||||
}
|
||||
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar">
|
||||
<a class="brand" href="/"><span>W</span> WRNexusJS</a>
|
||||
<nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav>
|
||||
<button data-wire-theme-toggle class="theme-button" aria-label="Toggle theme">Theme</button>
|
||||
</header>
|
||||
<main class="page"><section class="hero"><span class="eyebrow">WRNexusJS 0.2.15</span><h1>Build from the server.<br><em>Ship only what matters.</em></h1><p>An SSR-first, Bun-native framework with reactive .wrn components, typed data, realtime rooms, mobile capabilities, and production security built in.</p><div class="actions"><a class="primary" href="/getting-started">Start building</a><a href="/packages">Explore 25 packages</a></div><div class="code-window"><span>app/pages/counter.wrn</span><pre><code>page Counter {
|
||||
state count = 0
|
||||
view {
|
||||
<button @click="count++">
|
||||
Count {count}
|
||||
</button>
|
||||
}
|
||||
}</code></pre></div></section><section class="feature-grid"><article><h2>SSR by default</h2><p>Useful HTML reaches the browser immediately. Interactive pages hydrate only the runtime they use.</p></article><article><h2>Secure foundations</h2><p>CSP, Trusted Types, CSRF, sessions, validation, authorization, encryption, and safe rendering are integrated.</p></article><article><h2>Web to native</h2><p>Share markup through Capacitor or compile portable pages into Expo and React Native routes.</p></article></section></main>
|
||||
<footer>WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.</footer>
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Framework</span><span aria-hidden="true">/</span><span aria-current="page">Home</span></nav><section class="hero portal-hero"><span class="status status-beta"><span aria-hidden="true">●</span> Private Developer Preview</span><p class="eyebrow">WRNexusJS v0.2.15</p><h1>Build from the server.<br><em>Ship only what matters.</em></h1><p>WRNexusJS is an SSR-first, Bun-native full-stack framework. Build typed pages, APIs, validated forms, realtime rooms, secure sessions, workspaces, and optional mobile experiences with the <code>.wrn</code> component language.</p><div class="actions"><a class="primary" href="/access">Request preview access</a><a href="/getting-started">Read the preview docs</a></div><p class="access-note">Packages require approved private-registry access. No public installation command is currently available.</p></section>
|
||||
<section><h2>Why WRNexusJS</h2><div class="feature-grid"><article><h3>Server-first rendering</h3><p>Useful HTML is rendered first; reactive scopes hydrate only where declared.</p></article><article><h3><code>.wrn</code> components</h3><p>Pages, layouts, props, state, events, server loops, and directives live in a focused language.</p></article><article><h3>Bun-native runtime</h3><p>The runtime is Bun. Node compatibility is not claimed.</p></article><article><h3>Typed data and validation</h3><p>Database queries and shared validation connect server routes to forms.</p></article><article><h3>Integrated security</h3><p>CSP, CSRF, sessions, authorization, encryption, and safe output are framework primitives.</p></article><article><h3>Realtime and workspaces</h3><p>Rooms, Redis pub/sub, and multi-app gateways support live and isolated applications.</p></article></div></section>
|
||||
<section><h2>A small full-stack flow</h2><pre><code>// app/schemas/contact.ts
|
||||
import { v } from "@wrnexus/validation";
|
||||
export default v.object({ email: v.string().email(), message: v.string().min(10) });
|
||||
|
||||
// app/api/contacts.ts
|
||||
import schema from "../schemas/contact";
|
||||
import { parseBody } from "@wrnexus/validation";
|
||||
export const POST = async (ctx) => {
|
||||
const result = await parseBody(schema, ctx.req);
|
||||
return result.ok ? Response.json({ ok: true }, { status: 201 }) : result.response;
|
||||
};</code></pre></section>
|
||||
<section><h2>Request lifecycle</h2><ol class="lifecycle"><li><strong>Request</strong><span>Security headers and request limits</span></li><li><strong>Middleware</strong><span>Authentication, policy, and context</span></li><li><strong>File route</strong><span>Page or API handler</span></li><li><strong>Compiler + SSR</strong><span>Safe HTML and scoped runtime</span></li><li><strong>Response</strong><span>HTML, JSON, stream, or realtime upgrade</span></li></ol></section>
|
||||
<section><h2>Production proof</h2><div class="feature-grid"><article><h3><a href="https://workroot.in/">WorkRoot</a></h3><p>Public creator/company site and approved WRNexusJS production showcase.</p></article><article><h3><a href="https://wrnexusjs.dev/">wrnexusjs.dev</a></h3><p>This documentation application runs WRNexusJS 0.2.15.</p></article></div><p><a href="/showcase">View deployment notes and showcase status →</a></p></section>
|
||||
<section><h2>Capability status</h2><div class="table-wrap"><table><thead><tr><th>Capability</th><th>Status</th><th>Details</th></tr></thead><tbody><tr><td>SSR, routing, compiler, APIs</td><td>Preview</td><td>Installed in 0.2.15; public support policy pending.</td></tr><tr><td>Mobile/native</td><td>Experimental</td><td>Capacitor compatibility and native generation have platform limitations.</td></tr><tr><td>Durable queues</td><td>Experimental</td><td>Production durability requires an appropriate driver strategy.</td></tr></tbody></table></div></section>
|
||||
<section><h2>Continue exploring</h2><div class="actions"><a href="/packages">Explore 25 packages</a><a href="/changelog">Release notes</a><a href="/roadmap">Roadmap</a><a href="/support">Support and access</a></div></section></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
+13
-82
@@ -1,90 +1,21 @@
|
||||
page Languageanddirectives {
|
||||
page Thewrnlanguage {
|
||||
seo {
|
||||
title = "Language and directives"
|
||||
description = "Complete WRNexusJS language reference for events, directives, loops, conditionals, data, components, forms, realtime, and native behavior."
|
||||
title = "The .wrn language"
|
||||
description = "Reference for WRNexusJS .wrn pages, components, layouts, props, state, directives, forms, security, and errors."
|
||||
canonical = "https://wrnexusjs.dev/language"
|
||||
}
|
||||
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar">
|
||||
<a class="brand" href="/"><span>W</span> WRNexusJS</a>
|
||||
<nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav>
|
||||
<button data-wire-theme-toggle class="theme-button" aria-label="Toggle theme">Theme</button>
|
||||
</header>
|
||||
<main class="page"><article class="documentation prose standalone language-reference"><span class="eyebrow">Complete reference</span><h1>Language and directives</h1><p>This page documents the .wrn language and declarative browser features that span multiple packages.</p>
|
||||
<h2 id="file-anatomy">File anatomy</h2><p>A file declares a <code>page</code> or <code>component</code> and can contain metadata, props, state, data, view, style, server functions, APIs, and realtime handlers.</p><pre><code>page Dashboard {
|
||||
layout = "default"
|
||||
seo { title = "Dashboard" }
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Documentation</span><span aria-hidden="true">/</span><span aria-current="page">The .wrn language</span></nav><article class="documentation prose standalone"><span class="status status-beta">Language reference · 0.2.15</span><h1>The <code>.wrn</code> language</h1><nav class="local-toc" aria-label="On this page"><a href="#anatomy">Anatomy</a><a href="#state">Props and state</a><a href="#server">Server control flow</a><a href="#directives">Directives</a><a href="#security">Security</a><a href="#errors">Errors</a></nav><h2 id="anatomy">File anatomy</h2><pre><code>page Account {
|
||||
layout = "public"
|
||||
seo { title = "Account" description = "Manage your account." }
|
||||
state count = 0
|
||||
view { <button @click="count++">{count}</button> }
|
||||
style { button { padding: 12px; } }
|
||||
}</code></pre>
|
||||
<h2 id="state">State and interpolation</h2><p>State is scoped to the nearest generated <code>data-scope</code>. Text expressions update reactively after hydration.</p><pre><code>state count = 0
|
||||
state user = { name: "Ada" }
|
||||
|
||||
view {
|
||||
<p>Count: {count}</p>
|
||||
<p>{user.name}</p>
|
||||
}</code></pre>
|
||||
<h2 id="events">Events</h2><p>Any DOM event can use <code>@event="statement"</code>. The compiler emits <code>data-on-event</code>. The expression receives <code>event</code> and can mutate state.</p><div class="table-wrap"><table><thead><tr><th>Syntax</th><th>Purpose</th></tr></thead><tbody><tr><td><code>@click</code></td><td>Pointer or keyboard activation.</td></tr><tr><td><code>@input</code></td><td>Read live field values.</td></tr><tr><td><code>@change</code></td><td>React to committed field changes.</td></tr><tr><td><code>@submit</code></td><td>Handle form submission behavior.</td></tr><tr><td><code>@browser-click</code></td><td>Run only in a browser target.</td></tr><tr><td><code>@mobile-click</code></td><td>Run only in a native/mobile target.</td></tr></tbody></table></div><pre><code><input @input="name = event.target.value">
|
||||
<button @click="count++">Add</button>
|
||||
<form @submit="submitted = true">...</form></code></pre>
|
||||
<h2 id="directives">Reactive data attributes</h2><div class="table-wrap"><table><thead><tr><th>Directive</th><th>Behavior</th></tr></thead><tbody><tr><td><code>data-scope</code></td><td>Declares reactive state for a subtree.</td></tr><tr><td><code>data-text</code></td><td>Synchronizes textContent with an expression.</td></tr><tr><td><code>data-show</code></td><td>Shows or hides an element by truthiness.</td></tr><tr><td><code>data-for</code></td><td>Repeats an element for a client-side list.</td></tr><tr><td><code>data-on-<event></code></td><td>Compiled form of an event binding.</td></tr><tr><td><code>data-component</code></td><td>Mounts a server-rendered component.</td></tr><tr><td><code>data-slot</code></td><td>Fills a named component or layout slot.</td></tr><tr><td><code>data-wrnexus-csr</code></td><td>Connects generated client data fetching.</td></tr></tbody></table></div>
|
||||
<h2 id="conditionals">Conditional rendering</h2><h3>Server conditionals</h3><p>Server blocks render only the selected branch into the response.</p><pre><code>{#if user.isAdmin}
|
||||
<a href="/admin">Admin</a>
|
||||
{:else if user}
|
||||
<p>Welcome {user.name}</p>
|
||||
{:else}
|
||||
<a href="/login">Sign in</a>
|
||||
{/if}</code></pre><h3>Client visibility</h3><pre><code><section data-show="open">Visible while open is true</section></code></pre>
|
||||
<h2 id="loops">Loops and lists</h2><h3>Server each block</h3><pre><code>{#each users as user, i}
|
||||
<p>{i + 1}. {user.name}</p>
|
||||
{:empty}
|
||||
<p>No users</p>
|
||||
{/each}</code></pre><h3>Reactive client loop</h3><pre><code><li data-for="item, i in items">
|
||||
<span data-text="item.name"></span>
|
||||
<button data-on-click="items = items.filter(x => x !== item)">Remove</button>
|
||||
</li></code></pre>
|
||||
<h2 id="components">Components, props, and slots</h2><pre><code>component Card {
|
||||
props { title = "Card" }
|
||||
view {
|
||||
<article><h2>{title}</h2><slot></slot></article>
|
||||
}
|
||||
}
|
||||
|
||||
<div data-component="card" title="Profile">
|
||||
<p>Card content</p>
|
||||
</div></code></pre>
|
||||
<h2 id="data">Server and client data</h2><p>Use named data bindings for SSR data or client hydration. Secrets and database work stay on the server.</p><pre><code>data users {
|
||||
ssr GET "/api/users"
|
||||
}
|
||||
|
||||
view {
|
||||
{#each users as user}<p>{user.name}</p>{/each}
|
||||
}</code></pre>
|
||||
<h2 id="forms">Forms and validation</h2><p>Schema-backed forms validate in the browser and on the server with the same descriptor.</p><pre><code><form data-schema="login" method="post" action="/api/login" data-redirect="/dashboard">
|
||||
<input name="email" type="email">
|
||||
<span data-error="email"></span>
|
||||
<button>Sign in</button>
|
||||
<p data-success="Signed in" hidden></p>
|
||||
</form></code></pre>
|
||||
<h2 id="i18n">Internationalization and themes</h2><pre><code><h1>{t:home.title}</h1>
|
||||
<button data-wire-lang-set="fr">Français</button>
|
||||
<button data-wire-theme-toggle>Toggle theme</button>
|
||||
<button data-wire-theme-set="dark">Dark</button></code></pre>
|
||||
<h2 id="realtime">Realtime rooms</h2><pre><code><div data-room="chat" data-room-user="Ada">
|
||||
<span data-room-status></span>
|
||||
<div data-room-log></div>
|
||||
<template data-room-item="message"><p>%user%: %text%</p></template>
|
||||
<form data-room-send><input name="text" data-room-reset></form>
|
||||
</div></code></pre>
|
||||
<h2 id="native">Browser and native directives</h2><pre><code><button data-native-browser="share" data-native-mobile="share"
|
||||
data-native-options='{"title":"WRNexusJS"}'>Share</button>
|
||||
<nav data-native-only="mobile">Mobile navigation</nav>
|
||||
<p data-native-only="browser">Browser instructions</p>
|
||||
<button data-native-requires="haptics">Haptic action</button></code></pre>
|
||||
<h2 id="other">Other framework attributes</h2><div class="table-wrap"><table><thead><tr><th>Attribute</th><th>Purpose</th></tr></thead><tbody><tr><td><code>data-error</code></td><td>Field validation error destination.</td></tr><tr><td><code>data-success</code></td><td>Successful form message.</td></tr><tr><td><code>data-redirect</code></td><td>Navigation after form success.</td></tr><tr><td><code>data-room-*</code></td><td>Realtime status, templates, sending, and reset behavior.</td></tr><tr><td><code>data-uploader</code></td><td>Config-driven upload widget.</td></tr><tr><td><code>data-wire-theme-*</code></td><td>Theme selection and toggling.</td></tr><tr><td><code>data-wire-lang*</code></td><td>Language selection.</td></tr><tr><td><code>data-native-*</code></td><td>Cross-platform capability and visibility behavior.</td></tr></tbody></table></div></article></main>
|
||||
<footer>WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.</footer>
|
||||
view { <button @click="count++">Count {count}</button> }
|
||||
}</code></pre><h2 id="state">Pages, components, layouts, props, and state</h2><p>Pages are routes. Components declare default-valued props and may hold state. Layouts provide shared slots. Mount components with <code>data-component</code>; fill default or named slots with <code>data-slot</code>.</p><h2 id="server">Interpolation, conditionals, and loops</h2><p>Interpolation is HTML-escaped. Use server <code>{#if}</code> and <code>{#each}</code> for SSR data. Use <code>data-show</code> for reactive client visibility.</p><h2 id="directives">Events and directives</h2><p><code>@click</code> and other events execute in the reactive scope. Data attributes opt into forms, i18n, themes, realtime, uploader, browser, and mobile behavior. Consult the exact package page because availability varies.</p><h2 id="forms">Forms, i18n, themes, and realtime</h2><p><code>form[data-schema]</code> connects descriptors to client and server validation. Translation keys use <code>{t:key}</code>. Theme toggles use <code>data-wire-theme-toggle</code>. Realtime pages opt into a named room.</p><h2 id="security">Escaping and security</h2><p>Text interpolation is escaped by default. Do not construct trusted HTML from user input. Server-only refinements must be repeated at the authoritative mutation boundary.</p><h2 id="errors">Common compiler errors</h2><ul><li>Use balanced braces; a literal brace must be escaped.</li><li>Declare UI in <code>view</code>, not JSX or hooks.</li><li>Use a valid page, component, or layout declaration matching the file role.</li><li>Keep server loops tied to available SSR bindings.</li><li>Check <a href="/guides/troubleshooting">troubleshooting</a> and <a href="/packages/compiler">compiler API</a> for this release.</li></ul></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page License {
|
||||
seo {
|
||||
title = "License"
|
||||
description = "Current WRNexusJS licensing status and private-preview terms boundary."
|
||||
canonical = "https://wrnexusjs.dev/license"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Trust</span><span aria-hidden="true">/</span><span aria-current="page">License</span></nav><article class="documentation prose standalone"><h1>License</h1><span class="status status-planned">Owner decision required</span><p>This documentation repository contains no public license file, and the packages are unavailable from the public npm registry. No open-source license or redistribution right should be inferred.</p><p>Approved preview users must follow the private/commercial terms supplied by WorkRoot. Contact <a href="https://workroot.in/">WorkRoot</a> before copying, redistributing, or using WRNexusJS in production.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Release0215 {
|
||||
seo {
|
||||
title = "Release 0.2.15"
|
||||
description = "WRNexusJS 0.2.15 release notes."
|
||||
canonical = "https://wrnexusjs.dev/releases/0.2.15"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Releases</span><span aria-hidden="true">/</span><span aria-current="page">Release 0.2.15</span></nav><article class="documentation prose standalone"><h1>WRNexusJS 0.2.15</h1><p>Released 2026-07-12 in this documentation repository. Twenty-five installed packages are aligned to this version. See the <a href="/changelog">changelog</a>, <a href="/guides/upgrading">upgrade guide</a>, and package references.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Roadmap {
|
||||
seo {
|
||||
title = "Roadmap"
|
||||
description = "Current WRNexusJS documentation and framework priorities without promised dates."
|
||||
canonical = "https://wrnexusjs.dev/roadmap"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Project</span><span aria-hidden="true">/</span><span aria-current="page">Roadmap</span></nav><article class="documentation prose standalone"><h1>Roadmap</h1><p>Roadmap items are direction, not delivery commitments. Dates require explicit owner approval.</p><h2>Now</h2><ul><li>Private preview onboarding and accurate package references</li><li>Runnable documentation fixtures and link/accessibility checks</li><li>License, support, and disclosure owner decisions</li></ul><h2>Next</h2><ul><li>Durable queue driver guidance</li><li>Expanded database/auth/realtime examples</li><li>Versioned release notes and migration fixtures</li></ul><h2>Later / exploration</h2><ul><li>Historical documentation selector</li><li>Maintained reproducible benchmarks</li><li>Broader mobile/native coverage</li></ul></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Search {
|
||||
seo {
|
||||
title = "Search"
|
||||
description = "Search the local WRNexusJS documentation index without third-party tracking."
|
||||
canonical = "https://wrnexusjs.dev/search"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Discovery</span><span aria-hidden="true">/</span><span aria-current="page">Search</span></nav><article class="documentation prose standalone"><h1>Search documentation</h1><p>This build-time index is local and sends no query to a third party. Use your browser’s find command to filter this compact index.</p><h2>Core documentation</h2><p><a href="/getting-started">Get started</a> · <a href="/tutorial">Tutorial</a> · <a href="/architecture">Architecture</a> · <a href="/language">.wrn language</a> · <a href="/packages">Packages</a> · <a href="/examples">Examples</a> · <a href="/roadmap">Roadmap</a> · <a href="/changelog">Changelog</a> · <a href="/security">Security</a> · <a href="/support">Support</a> · <a href="/search">Search</a></p><h2>Guides</h2><p><a href="/guides/project-structure">Project structure</a> · <a href="/guides/routing">Routing</a> · <a href="/guides/pages-and-components">Pages and components</a> · <a href="/guides/server-data">Server data</a> · <a href="/guides/api-routes">API routes</a> · <a href="/guides/middleware">Middleware</a> · <a href="/guides/forms-and-validation">Forms and validation</a> · <a href="/guides/authentication">Authentication</a> · <a href="/guides/authorization">Authorization</a> · <a href="/guides/security">Application security</a> · <a href="/guides/database">Database</a> · <a href="/guides/uploads">Uploads</a> · <a href="/guides/realtime">Realtime</a> · <a href="/guides/pubsub">Pub/sub</a> · <a href="/guides/queues">Queues</a> · <a href="/guides/testing">Testing</a> · <a href="/guides/workspaces-and-gateway">Workspaces and gateway</a> · <a href="/guides/deployment">Deployment</a> · <a href="/guides/configuration-and-profiles">Configuration and profiles</a> · <a href="/guides/i18n-and-themes">Internationalization and themes</a> · <a href="/guides/mobile">Mobile</a> · <a href="/guides/observability">Observability</a> · <a href="/guides/upgrading">Upgrading</a> · <a href="/guides/troubleshooting">Troubleshooting</a></p><h2>Package APIs</h2><p><a href="/packages/ai">@wrnexus/ai</a> · <a href="/packages/authz">@wrnexus/authz</a> · <a href="/packages/compiler">@wrnexus/compiler</a> · <a href="/packages/core">@wrnexus/core</a> · <a href="/packages/csr">@wrnexus/csr</a> · <a href="/packages/db">@wrnexus/db</a> · <a href="/packages/dev-server">@wrnexus/dev-server</a> · <a href="/packages/encryption">@wrnexus/encryption</a> · <a href="/packages/i18n">@wrnexus/i18n</a> · <a href="/packages/jwt">@wrnexus/jwt</a> · <a href="/packages/mobile">@wrnexus/mobile</a> · <a href="/packages/native">@wrnexus/native</a> · <a href="/packages/oauth">@wrnexus/oauth</a> · <a href="/packages/pubsub">@wrnexus/pubsub</a> · <a href="/packages/queue">@wrnexus/queue</a> · <a href="/packages/reactive">@wrnexus/reactive</a> · <a href="/packages/router">@wrnexus/router</a> · <a href="/packages/ssr">@wrnexus/ssr</a> · <a href="/packages/styles">@wrnexus/styles</a> · <a href="/packages/test">@wrnexus/test</a> · <a href="/packages/tracking">@wrnexus/tracking</a> · <a href="/packages/ui">@wrnexus/ui</a> · <a href="/packages/uploader">@wrnexus/uploader</a> · <a href="/packages/validation">@wrnexus/validation</a> · <a href="/packages/cli">@wrnexus/cli</a></p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Security {
|
||||
seo {
|
||||
title = "Security"
|
||||
description = "WRNexusJS security defaults, limits, supported release status, and reporting process."
|
||||
canonical = "https://wrnexusjs.dev/security"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Trust</span><span aria-hidden="true">/</span><span aria-current="page">Security</span></nav><article class="documentation prose standalone"><h1>Security</h1><p>WRNexusJS provides primitives for CSP, CSRF, Trusted Types, sessions, validation, authorization, encryption, upload restrictions, request limits, and WebSocket-origin checks. Applications remain responsible for correct configuration, business authorization, secrets, dependencies, data protection, and operations.</p><h2>Supported releases</h2><p>Only the current private-preview release 0.2.15 is documented here. A formal old-release support window is not yet published.</p><h2>Report a vulnerability</h2><p>Use WorkRoot’s approved private contact path at <a href="https://workroot.in/">workroot.in</a>. Do not publish exploit details or secrets. Include affected version, impact, reproduction, and a safe contact method. Response targets, encryption key, bounty, audit, and certification are not currently claimed.</p><h2>Deployment controls</h2><p>Use restrictive CSP and permissions policies, HSTS only on HTTPS production origins, MIME sniffing protection, restrictive referrers, explicit CORS, secure cookies, CSRF validation, request limits, and origin checks. See <a href="/guides/security">application security</a>.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Showcase {
|
||||
seo {
|
||||
title = "Showcase"
|
||||
description = "Approved public WRNexusJS deployments."
|
||||
canonical = "https://wrnexusjs.dev/showcase"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Project</span><span aria-hidden="true">/</span><span aria-current="page">Showcase</span></nav><article class="documentation prose standalone"><h1>Showcase</h1><p>Only confirmed public properties are listed; no customer or traffic claims are made.</p><div class="feature-grid"><article><h2><a href="https://workroot.in/">WorkRoot</a></h2><p>Creator/company site demonstrating a public WRNexusJS deployment. Exact deployed version and infrastructure notes await owner confirmation.</p></article><article><h2><a href="https://wrnexusjs.dev/">WRNexusJS docs</a></h2><p>This documentation portal, built and verified against WRNexusJS 0.2.15 on Bun.</p></article></div><p>Screenshots are intentionally deferred until approved assets and alt text are available.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
page Support {
|
||||
seo {
|
||||
title = "Support"
|
||||
description = "Actual WRNexusJS private preview support and contact routes."
|
||||
canonical = "https://wrnexusjs.dev/support"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Trust</span><span aria-hidden="true">/</span><span aria-current="page">Support</span></nav><article class="documentation prose standalone"><h1>Support</h1><p>WRNexusJS has no public Discord, public issue tracker, or guaranteed community support channel listed by this repository. Preview access and support begin through <a href="https://workroot.in/">WorkRoot’s public contact path</a>.</p><p>Include WRNexusJS version, Bun version, OS, a minimal reproduction, expected and actual behavior, and sanitized logs. Never include registry tokens, credentials, session cookies, or private data.</p><p>Support scope, service levels, and commercial terms require owner confirmation.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
page Tutorial {
|
||||
seo {
|
||||
title = "Tutorial"
|
||||
description = "Build a secure task application with WRNexusJS preview APIs."
|
||||
canonical = "https://wrnexusjs.dev/tutorial"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav><a class="preview-pill" href="/access">Private preview · v0.2.15</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav><a href="/getting-started">Get started</a><a href="/tutorial">Tutorial</a><a href="/architecture">Architecture</a><a href="/language">.wrn language</a><a href="/packages">Packages</a><a href="/examples">Examples</a><a href="/roadmap">Roadmap</a><a href="/changelog">Changelog</a><a href="/security">Security</a><a href="/support">Support</a><a href="/search">Search</a></nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>Documentation</span><span aria-hidden="true">/</span><span aria-current="page">Tutorial</span></nav><article class="documentation prose standalone"><span class="status status-beta">Preview · runnable-project extraction pending</span><h1>Secure task board</h1><p>This tutorial connects the installed 0.2.15 APIs into one design. Snippets are limited to declarations and README patterns verified in the installed packages; a CI-compiled standalone fixture remains on the roadmap.</p><h2>Application shape</h2><p>A <code>.wrn</code> page renders tasks from an SSR API binding. A shared validation schema protects mutations. Session middleware identifies users, authorization policies gate updates, and a realtime room broadcasts changes.</p><h2>Schema and create route</h2><pre><code>import { v, parseBody } from "@wrnexus/validation";
|
||||
const task = v.object({ title: v.string().trim().min(3).max(120) });
|
||||
export const POST = async (ctx) => {
|
||||
const parsed = await parseBody(task, ctx.req);
|
||||
if (!parsed.ok) return parsed.response;
|
||||
return Response.json({ ok: true, task: parsed.value }, { status: 201 });
|
||||
};</code></pre><h2>Server-rendered list</h2><pre><code>page Tasks {
|
||||
ssr { api tasks GET /api/tasks { return tasks } }
|
||||
view {
|
||||
<main><h1>Tasks</h1><ul>
|
||||
{#each tasks as task}<li>{task.title}</li>{:empty}<li>No tasks yet.</li>{/each}
|
||||
</ul></main>
|
||||
}
|
||||
}</code></pre><h2>Production checklist</h2><ul><li>Choose SQLite for local development or configure the supported PostgreSQL driver.</li><li>Run migrations before accepting traffic.</li><li>Enable session authentication and enforce authorization on every mutation.</li><li>Validate upload types and sizes; keep private objects behind authenticated routes.</li><li>Use Redis pub/sub when realtime rooms span processes.</li><li>Treat the default queue as non-durable until a production driver is selected.</li></ul><p>Follow the focused <a href="/guides/database">database</a>, <a href="/guides/authentication">authentication</a>, <a href="/guides/authorization">authorization</a>, <a href="/guides/realtime">realtime</a>, and <a href="/guides/uploads">upload</a> guides.</p></article></main>
|
||||
<footer><p><strong>WRNexusJS 0.2.15</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
"format": "prettier . --write",
|
||||
"format:check": "prettier . --check",
|
||||
"check": "bun run lint && bun run test && bun run format:check",
|
||||
"docs:generate": "bun run scripts/generate-docs.ts",
|
||||
"docs:generate": "bun run scripts/generate-docs.ts && bun run scripts/generate-portal.ts",
|
||||
"start": "bun dist/server.js",
|
||||
"production": "bun run build && bun run start"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,439 @@
|
||||
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
||||
import { join, resolve } from "node:path";
|
||||
|
||||
const root = resolve(import.meta.dir, "..");
|
||||
const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
||||
const version = pkg.wrnexus.version as string;
|
||||
const pages = join(root, "app", "pages");
|
||||
const docs = join(root, "docs");
|
||||
const pub = join(root, "public");
|
||||
mkdirSync(docs, { recursive: true });
|
||||
|
||||
const esc = (s: string) => s.replaceAll("{", "{").replaceAll("}", "}");
|
||||
const code = (s: string) =>
|
||||
`<pre><code>${esc(s).replaceAll("<", "<").replaceAll(">", ">")}</code></pre>`;
|
||||
|
||||
const navigation = [
|
||||
["/getting-started", "Get started"],
|
||||
["/tutorial", "Tutorial"],
|
||||
["/architecture", "Architecture"],
|
||||
["/language", ".wrn language"],
|
||||
["/packages", "Packages"],
|
||||
["/examples", "Examples"],
|
||||
["/roadmap", "Roadmap"],
|
||||
["/changelog", "Changelog"],
|
||||
["/security", "Security"],
|
||||
["/support", "Support"],
|
||||
["/search", "Search"],
|
||||
] as const;
|
||||
|
||||
function shell(title: string, description: string, body: string, section = "Documentation") {
|
||||
const nav = navigation.map(([href, label]) => `<a href="${href}">${label}</a>`).join("");
|
||||
return `page ${title.replace(/[^A-Za-z0-9]/g, "") || "Guide"} {
|
||||
seo {
|
||||
title = "${title.replaceAll('"', "'")}"
|
||||
description = "${description.replaceAll('"', "'")}"
|
||||
canonical = "https://wrnexusjs.dev${routeFor(title)}"
|
||||
}
|
||||
view {
|
||||
<a class="skip-link" href="#main">Skip to content</a>
|
||||
<div class="docs-shell">
|
||||
<header class="topbar"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary">${nav}</nav><a class="preview-pill" href="/access">Private preview · v${version}</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">Theme</button></header>
|
||||
<div class="mobile-doc-nav"><details><summary>Browse documentation</summary><nav>${nav}</nav></details></div>
|
||||
<main id="main" class="portal-main"><nav class="breadcrumbs" aria-label="Breadcrumb"><a href="/">Home</a><span aria-hidden="true">/</span><span>${section}</span><span aria-hidden="true">/</span><span aria-current="page">${title}</span></nav>${body}</main>
|
||||
<footer><p><strong>WRNexusJS ${version}</strong> · Private Developer Preview · Bun-native</p><nav aria-label="Footer"><a href="/access">Request access</a><a href="/license">License</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p>WRNexusJS is created by <a href="https://workroot.in/">WorkRoot</a>. WRNexus is a separate SaaS product.</p></footer>
|
||||
</div>
|
||||
}
|
||||
}`;
|
||||
}
|
||||
|
||||
const slugs: Record<string, string> = {
|
||||
Home: "",
|
||||
Packages: "/packages",
|
||||
"Getting started": "/getting-started",
|
||||
Tutorial: "/tutorial",
|
||||
Architecture: "/architecture",
|
||||
"The .wrn language": "/language",
|
||||
};
|
||||
function routeFor(title: string) {
|
||||
return (
|
||||
slugs[title] ??
|
||||
`/${title
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9]+/g, "-")
|
||||
.replace(/^-|-$/g, "")}`
|
||||
);
|
||||
}
|
||||
function page(route: string, title: string, description: string, body: string, section?: string) {
|
||||
const path = route === "/" ? join(pages, "index.wrn") : join(pages, `${route.slice(1)}.wrn`);
|
||||
mkdirSync(resolve(path, ".."), { recursive: true });
|
||||
slugs[title] = route;
|
||||
writeFileSync(path, shell(title, description, body, section));
|
||||
}
|
||||
|
||||
const status = `<span class="status status-beta"><span aria-hidden="true">●</span> Private Developer Preview</span>`;
|
||||
page(
|
||||
"/",
|
||||
"Home",
|
||||
"WRNexusJS is a Bun-native, SSR-first full-stack framework using the .wrn component language.",
|
||||
`<section class="hero portal-hero">${status}<p class="eyebrow">WRNexusJS v${version}</p><h1>Build from the server.<br><em>Ship only what matters.</em></h1><p>WRNexusJS is an SSR-first, Bun-native full-stack framework. Build typed pages, APIs, validated forms, realtime rooms, secure sessions, workspaces, and optional mobile experiences with the <code>.wrn</code> component language.</p><div class="actions"><a class="primary" href="/access">Request preview access</a><a href="/getting-started">Read the preview docs</a></div><p class="access-note">Packages require approved private-registry access. No public installation command is currently available.</p></section>
|
||||
<section><h2>Why WRNexusJS</h2><div class="feature-grid"><article><h3>Server-first rendering</h3><p>Useful HTML is rendered first; reactive scopes hydrate only where declared.</p></article><article><h3><code>.wrn</code> components</h3><p>Pages, layouts, props, state, events, server loops, and directives live in a focused language.</p></article><article><h3>Bun-native runtime</h3><p>The runtime is Bun. Node compatibility is not claimed.</p></article><article><h3>Typed data and validation</h3><p>Database queries and shared validation connect server routes to forms.</p></article><article><h3>Integrated security</h3><p>CSP, CSRF, sessions, authorization, encryption, and safe output are framework primitives.</p></article><article><h3>Realtime and workspaces</h3><p>Rooms, Redis pub/sub, and multi-app gateways support live and isolated applications.</p></article></div></section>
|
||||
<section><h2>A small full-stack flow</h2>${code(`// app/schemas/contact.ts\nimport { v } from "@wrnexus/validation";\nexport default v.object({ email: v.string().email(), message: v.string().min(10) });\n\n// app/api/contacts.ts\nimport schema from "../schemas/contact";\nimport { parseBody } from "@wrnexus/validation";\nexport const POST = async (ctx) => {\n const result = await parseBody(schema, ctx.req);\n return result.ok ? Response.json({ ok: true }, { status: 201 }) : result.response;\n};`)}</section>
|
||||
<section><h2>Request lifecycle</h2><ol class="lifecycle"><li><strong>Request</strong><span>Security headers and request limits</span></li><li><strong>Middleware</strong><span>Authentication, policy, and context</span></li><li><strong>File route</strong><span>Page or API handler</span></li><li><strong>Compiler + SSR</strong><span>Safe HTML and scoped runtime</span></li><li><strong>Response</strong><span>HTML, JSON, stream, or realtime upgrade</span></li></ol></section>
|
||||
<section><h2>Production proof</h2><div class="feature-grid"><article><h3><a href="https://workroot.in/">WorkRoot</a></h3><p>Public creator/company site and approved WRNexusJS production showcase.</p></article><article><h3><a href="https://wrnexusjs.dev/">wrnexusjs.dev</a></h3><p>This documentation application runs WRNexusJS ${version}.</p></article></div><p><a href="/showcase">View deployment notes and showcase status →</a></p></section>
|
||||
<section><h2>Capability status</h2><div class="table-wrap"><table><thead><tr><th>Capability</th><th>Status</th><th>Details</th></tr></thead><tbody><tr><td>SSR, routing, compiler, APIs</td><td>Preview</td><td>Installed in ${version}; public support policy pending.</td></tr><tr><td>Mobile/native</td><td>Experimental</td><td>Capacitor compatibility and native generation have platform limitations.</td></tr><tr><td>Durable queues</td><td>Experimental</td><td>Production durability requires an appropriate driver strategy.</td></tr></tbody></table></div></section>
|
||||
<section><h2>Continue exploring</h2><div class="actions"><a href="/packages">Explore 25 packages</a><a href="/changelog">Release notes</a><a href="/roadmap">Roadmap</a><a href="/support">Support and access</a></div></section>`,
|
||||
"Framework",
|
||||
);
|
||||
|
||||
page(
|
||||
"/access",
|
||||
"Access",
|
||||
"Request access to the WRNexusJS private developer preview.",
|
||||
`<article class="documentation prose standalone">${status}<h1>Request preview access</h1><p>WRNexusJS ${version} packages are not available from the public npm registry. Installation requires approval and private registry credentials supplied by WorkRoot. Never paste registry tokens into source control, issue reports, or support messages.</p><h2>Request process</h2><ol><li>Contact WorkRoot through the public contact path at <a href="https://workroot.in/">workroot.in</a>.</li><li>Describe the application, team, expected deployment, and Bun environment.</li><li>After approval, follow the registry instructions supplied privately.</li><li>Use the canonical scaffold command below only after authentication.</li></ol>${code(`bunx @wrnexus/cli@${version} create my-app`)}<p>Access approval, response time, licensing terms, and support level remain owner-controlled. This site does not collect access requests directly.</p></article>`,
|
||||
"Status",
|
||||
);
|
||||
|
||||
page(
|
||||
"/getting-started",
|
||||
"Getting started",
|
||||
"Build and run a first WRNexusJS application after receiving private preview access.",
|
||||
`<article class="documentation prose standalone"><span class="status status-beta">Preview guide · v${version}</span><h1>Build a contact inbox</h1><p>This path creates a server-rendered page, validated API route, middleware, and realtime next step. It requires approved registry access and Bun 1.3.x; this site was verified with Bun 1.3.14.</p><h2 id="create">1. Create the project</h2>${code(`bunx @wrnexus/cli@${version} create my-app\ncd my-app\nbun install\nbun run dev`)}<h2 id="structure">2. Know the structure</h2>${code(`app/pages/ # file-based .wrn routes\napp/components/ # reusable .wrn components\napp/api/ # TypeScript request handlers\napp/middleware/ # ordered request middleware\napp/schemas/ # shared validation\napp/realtime/ # realtime rooms\nwrnexus.config.ts`)}<h2 id="page">3. Add a page</h2>${code(`page Contacts {\n view {\n <main><h1>Contact inbox</h1>\n <form data-schema="contact" action="/api/contacts" method="post">\n <input name="email" type="email" /><span data-error="email"></span>\n <textarea name="message"></textarea><span data-error="message"></span>\n <button type="submit">Send</button>\n </form>\n </main>\n }\n}`)}<h2 id="api">4. Validate an API route</h2>${code(`import schema from "../schemas/contact";\nimport { parseBody } from "@wrnexus/validation";\nexport const POST = async (ctx) => {\n const result = await parseBody(schema, ctx.req);\n return result.ok ? Response.json({ ok: true }, { status: 201 }) : result.response;\n};`)}<h2 id="server-data">5. Load server data</h2><p>Use an <code>ssr</code> API binding and a server <code>{#each}</code> block. See <a href="/guides/server-data">Server data</a> for the complete verified pattern.</p><h2 id="middleware">6. Add middleware</h2>${code(`export default async function logger(ctx, next) {\n console.log(ctx.req.method, ctx.url.pathname);\n return next();\n}`)}<h2 id="test-build">7. Test and ship</h2>${code(`bun run test\nbun run build\nbun dist/server.js`)}<p>Next: <a href="/guides/deployment">deployment</a>, <a href="/guides/database">database</a>, <a href="/guides/authentication">authentication</a>, and <a href="/guides/workspaces-and-gateway">workspaces</a>.</p></article>`,
|
||||
);
|
||||
|
||||
page(
|
||||
"/tutorial",
|
||||
"Tutorial",
|
||||
"Build a secure task application with WRNexusJS preview APIs.",
|
||||
`<article class="documentation prose standalone"><span class="status status-beta">Preview · runnable-project extraction pending</span><h1>Secure task board</h1><p>This tutorial connects the installed ${version} APIs into one design. Snippets are limited to declarations and README patterns verified in the installed packages; a CI-compiled standalone fixture remains on the roadmap.</p><h2>Application shape</h2><p>A <code>.wrn</code> page renders tasks from an SSR API binding. A shared validation schema protects mutations. Session middleware identifies users, authorization policies gate updates, and a realtime room broadcasts changes.</p><h2>Schema and create route</h2>${code(`import { v, parseBody } from "@wrnexus/validation";\nconst task = v.object({ title: v.string().trim().min(3).max(120) });\nexport const POST = async (ctx) => {\n const parsed = await parseBody(task, ctx.req);\n if (!parsed.ok) return parsed.response;\n return Response.json({ ok: true, task: parsed.value }, { status: 201 });\n};`)}<h2>Server-rendered list</h2>${code(`page Tasks {\n ssr { api tasks GET /api/tasks { return tasks } }\n view {\n <main><h1>Tasks</h1><ul>\n {#each tasks as task}<li>{task.title}</li>{:empty}<li>No tasks yet.</li>{/each}\n </ul></main>\n }\n}`)}<h2>Production checklist</h2><ul><li>Choose SQLite for local development or configure the supported PostgreSQL driver.</li><li>Run migrations before accepting traffic.</li><li>Enable session authentication and enforce authorization on every mutation.</li><li>Validate upload types and sizes; keep private objects behind authenticated routes.</li><li>Use Redis pub/sub when realtime rooms span processes.</li><li>Treat the default queue as non-durable until a production driver is selected.</li></ul><p>Follow the focused <a href="/guides/database">database</a>, <a href="/guides/authentication">authentication</a>, <a href="/guides/authorization">authorization</a>, <a href="/guides/realtime">realtime</a>, and <a href="/guides/uploads">upload</a> guides.</p></article>`,
|
||||
);
|
||||
|
||||
page(
|
||||
"/architecture",
|
||||
"Architecture",
|
||||
"WRNexusJS request lifecycle, compiler, runtime, security, data, realtime, workspace, deployment, and mobile architecture.",
|
||||
`<article class="documentation prose standalone"><span class="status status-beta">Framework architecture · ${version}</span><h1>Architecture</h1><p>WRNexusJS is Bun-native and SSR-first. File discovery maps pages and API handlers; middleware enriches or short-circuits a request; the compiler turns <code>.wrn</code> declarations into server render functions and small feature runtimes.</p><h2>Request and build lifecycle</h2><ol class="lifecycle"><li><strong>Discover</strong><span>Pages, APIs, middleware, components, layouts, schemas, rooms</span></li><li><strong>Compile</strong><span>Parse .wrn, validate grammar, generate server code</span></li><li><strong>Request</strong><span>Limits, security, locale, session, middleware</span></li><li><strong>Match</strong><span>Static and dynamic file route</span></li><li><strong>Render</strong><span>SSR data, escaped interpolation, components, metadata</span></li><li><strong>Enhance</strong><span>Only required reactive/directive runtimes</span></li></ol><h2>Package boundaries</h2><p><code>core</code> owns contexts, middleware, sessions and rooms; <code>router</code> discovers routes; <code>compiler</code> parses <code>.wrn</code>; <code>ssr</code> renders documents; <code>csr</code> supplies browser runtimes; <code>dev-server</code> and <code>cli</code> orchestrate development and builds.</p><h2>Security and data flow</h2><p>Validation happens at trust boundaries. Session authentication establishes identity; authorization makes resource decisions. CSP, Trusted Types, CSRF, upload checks, WebSocket origins, request limits, and output escaping are layered controls—not substitutes for application policy.</p><h2>Realtime and scale</h2><p>Rooms are process-local unless connected through pub/sub. Redis-backed pub/sub distributes events. Queue durability depends on the selected driver and must be evaluated explicitly.</p><h2>Workspaces and gateways</h2><p>The gateway can dispatch multiple applications while preserving route, component, asset, config, and session boundaries. Validate host routing and isolation before production.</p><h2>Build and deployment</h2><p><code>wrnexus build .</code> produces <code>dist/server.js</code> and hashed/static assets. Run the server with Bun, apply migrations before traffic, terminate TLS at a trusted edge, and forward only expected proxy headers.</p><h2>Mobile</h2><p>Mobile compatibility bridges SSR-safe Capacitor capabilities; native route generation is experimental and is not general web portability. Test each target platform.</p><h2>Generated files and limits</h2><p><code>app/routes.gen.ts</code>, <code>.wrnexus/</code>, and <code>dist/</code> are generated. The runtime is Bun-only. Preview packages are private. Historical compatibility and long-term support policy are not yet published.</p></article>`,
|
||||
);
|
||||
|
||||
page(
|
||||
"/language",
|
||||
"The .wrn language",
|
||||
"Reference for WRNexusJS .wrn pages, components, layouts, props, state, directives, forms, security, and errors.",
|
||||
`<article class="documentation prose standalone"><span class="status status-beta">Language reference · ${version}</span><h1>The <code>.wrn</code> language</h1><nav class="local-toc" aria-label="On this page"><a href="#anatomy">Anatomy</a><a href="#state">Props and state</a><a href="#server">Server control flow</a><a href="#directives">Directives</a><a href="#security">Security</a><a href="#errors">Errors</a></nav><h2 id="anatomy">File anatomy</h2>${code(`page Account {\n layout = "public"\n seo { title = "Account" description = "Manage your account." }\n state count = 0\n view { <button @click="count++">Count {count}</button> }\n}`)}<h2 id="state">Pages, components, layouts, props, and state</h2><p>Pages are routes. Components declare default-valued props and may hold state. Layouts provide shared slots. Mount components with <code>data-component</code>; fill default or named slots with <code>data-slot</code>.</p><h2 id="server">Interpolation, conditionals, and loops</h2><p>Interpolation is HTML-escaped. Use server <code>{#if}</code> and <code>{#each}</code> for SSR data. Use <code>data-show</code> for reactive client visibility.</p><h2 id="directives">Events and directives</h2><p><code>@click</code> and other events execute in the reactive scope. Data attributes opt into forms, i18n, themes, realtime, uploader, browser, and mobile behavior. Consult the exact package page because availability varies.</p><h2 id="forms">Forms, i18n, themes, and realtime</h2><p><code>form[data-schema]</code> connects descriptors to client and server validation. Translation keys use <code>{t:key}</code>. Theme toggles use <code>data-wire-theme-toggle</code>. Realtime pages opt into a named room.</p><h2 id="security">Escaping and security</h2><p>Text interpolation is escaped by default. Do not construct trusted HTML from user input. Server-only refinements must be repeated at the authoritative mutation boundary.</p><h2 id="errors">Common compiler errors</h2><ul><li>Use balanced braces; a literal brace must be escaped.</li><li>Declare UI in <code>view</code>, not JSX or hooks.</li><li>Use a valid page, component, or layout declaration matching the file role.</li><li>Keep server loops tied to available SSR bindings.</li><li>Check <a href="/guides/troubleshooting">troubleshooting</a> and <a href="/packages/compiler">compiler API</a> for this release.</li></ul></article>`,
|
||||
);
|
||||
|
||||
const guides: Record<string, [string, string, string]> = {
|
||||
"project-structure": [
|
||||
"Project structure",
|
||||
"How source, public, generated, and build files are organized.",
|
||||
"Pages, components, layouts, APIs, middleware, schemas, database files, locales, realtime rooms, and styles live under app. Never edit app/routes.gen.ts, .wrnexus, or dist by hand.",
|
||||
],
|
||||
routing: [
|
||||
"Routing",
|
||||
"File-based page and API routing.",
|
||||
"A page filename defines its URL; index maps to the directory root and bracket segments are dynamic parameters. API files under app/api expose HTTP method functions and receive a Context.",
|
||||
],
|
||||
"pages-and-components": [
|
||||
"Pages and components",
|
||||
"Compose .wrn pages, layouts, props, state, and slots.",
|
||||
"Pages are routable, components are reusable, and layouts provide shared slots. Mount a component with data-component and keep browser state scoped and minimal.",
|
||||
],
|
||||
"server-data": [
|
||||
"Server data",
|
||||
"Render API-backed data with SSR bindings.",
|
||||
"Use an ssr API binding, return the desired response field, and render it with a server #each block. Values are escaped. Avoid fetching private data through a route that lacks authorization.",
|
||||
],
|
||||
"api-routes": [
|
||||
"API routes",
|
||||
"Build typed Bun-native HTTP handlers.",
|
||||
"Export GET, POST, PUT, PATCH, or DELETE from app/api files. Validate request bodies, enforce authentication and authorization, cap request sizes, and return Web Responses.",
|
||||
],
|
||||
middleware: [
|
||||
"Middleware",
|
||||
"Order and short-circuit request middleware.",
|
||||
"Middleware receives context and next. Return next() to continue or return a Response to stop. Put request limits and trust-boundary controls before business logic.",
|
||||
],
|
||||
"forms-and-validation": [
|
||||
"Forms and validation",
|
||||
"Share validation between forms and API routes.",
|
||||
"Define a v.object schema, use data-schema on the form, show field errors with data-error, and always call parseBody on the server. refine is server-only.",
|
||||
],
|
||||
authentication: [
|
||||
"Authentication",
|
||||
"Session and identity boundaries.",
|
||||
"Configure session authentication, log users in through supported auth helpers, and read identity from context. Cookie flags, rotation, expiry, and secret storage remain deployment responsibilities.",
|
||||
],
|
||||
authorization: [
|
||||
"Authorization",
|
||||
"Roles, permissions, policies, and resource checks.",
|
||||
"Authentication identifies; authorization decides. Enforce permissions in server routes and policies, including object ownership. UI hiding is never an authorization boundary.",
|
||||
],
|
||||
security: [
|
||||
"Application security",
|
||||
"Configure layered WRNexusJS security controls.",
|
||||
"Use CSP, CSRF, Trusted Types, session hardening, validation, origin checks, upload restrictions, encryption, request limits, and explicit CORS. See the security policy for reporting.",
|
||||
],
|
||||
database: [
|
||||
"Database",
|
||||
"Drivers, models, typed SQL, migrations, and deployment.",
|
||||
"Configure SQLite or the installed supported driver, keep queries in named SQL blocks, generate typed functions, and apply migrations before traffic. Back up data and test rollback independently.",
|
||||
],
|
||||
uploads: [
|
||||
"Uploads",
|
||||
"Validated local and S3-compatible file handling.",
|
||||
"Configure named stores, accepted MIME/extensions, and maxBytes. Random keys avoid path traversal. Private files require an authenticated serving route; v1 buffers each file in memory.",
|
||||
],
|
||||
realtime: [
|
||||
"Realtime",
|
||||
"Define rooms and secure WebSocket traffic.",
|
||||
"defineRoom handles connection and messages. Validate message shapes, authorize subscriptions, restrict origins, bound payloads, and use pub/sub to scale across processes.",
|
||||
],
|
||||
pubsub: [
|
||||
"Pub/sub",
|
||||
"Scale events with in-process or Redis-backed pub/sub.",
|
||||
"The in-process driver cannot cross processes. Use Redis where instances must share events, define channel ownership, and design for reconnects and duplicate delivery.",
|
||||
],
|
||||
queues: [
|
||||
"Queues",
|
||||
"Run delayed, retried, and repeated jobs.",
|
||||
"Queue behavior is preview-level. Treat in-process work as non-durable, make handlers idempotent, cap retries, record failures, and choose a production persistence strategy.",
|
||||
],
|
||||
testing: [
|
||||
"Testing",
|
||||
"Test compiled components, routes, and browser behavior.",
|
||||
"Use Bun tests and @wrnexus/test helpers. Cover server HTML, API status and validation, authorization failures, reactive behavior, and a production startup smoke test.",
|
||||
],
|
||||
"workspaces-and-gateway": [
|
||||
"Workspaces and gateway",
|
||||
"Host isolated applications behind a gateway.",
|
||||
"The workspace gateway dispatches apps by configured boundaries. Test host matching, asset namespaces, cookies, sessions, errors, and cross-app authorization before deployment.",
|
||||
],
|
||||
deployment: [
|
||||
"Deployment",
|
||||
"Build and run WRNexusJS with Bun.",
|
||||
"Run bun run build, apply migrations, and start dist/server.js with Bun. Configure TLS, proxy trust, environment validation, health checks, graceful restarts, logs, backups, and restrictive security headers.",
|
||||
],
|
||||
"configuration-and-profiles": [
|
||||
"Configuration and profiles",
|
||||
"Use typed config and environment-specific profiles.",
|
||||
"wrnexus.config.ts owns styles, SEO, security, data, mobile, fonts, and profiles. Keep secrets in validated environment variables and review merged production configuration.",
|
||||
],
|
||||
"i18n-and-themes": [
|
||||
"Internationalization and themes",
|
||||
"Load translations and token-based themes.",
|
||||
"Store locale JSON under app/locales and use translation directives. Themes resolve CSS tokens; ensure contrast, system preference behavior, persistence, and non-color cues.",
|
||||
],
|
||||
mobile: [
|
||||
"Mobile",
|
||||
"Understand experimental webview and native modes.",
|
||||
"Mobile capabilities are experimental in this preview. Test Capacitor permissions and lifecycle on each platform; do not assume every .wrn or browser API converts to native.",
|
||||
],
|
||||
observability: [
|
||||
"Observability",
|
||||
"Capture errors and events without leaking private data.",
|
||||
"Use tracking middleware and sinks with redaction, sampling, stable request identifiers, alert ownership, and retention limits. Never capture registry tokens or session secrets.",
|
||||
],
|
||||
upgrading: [
|
||||
"Upgrading",
|
||||
"Upgrade aligned WRNexusJS packages safely.",
|
||||
`Back up and commit first, then use wrnexus update --latest as documented by the installed CLI. Review migrations and keep every @wrnexus package aligned. Current release: ${version}.`,
|
||||
],
|
||||
troubleshooting: [
|
||||
"Troubleshooting",
|
||||
"Diagnose compiler, routing, build, and runtime failures.",
|
||||
"Confirm Bun and package versions, regenerate docs/routes through supported commands, read the first compiler diagnostic, check file naming, validate config, and reproduce under a production build.",
|
||||
],
|
||||
};
|
||||
for (const [slug, [title, desc, text]] of Object.entries(guides))
|
||||
page(
|
||||
`/guides/${slug}`,
|
||||
title,
|
||||
desc,
|
||||
`<article class="documentation prose standalone"><span class="status status-beta">Preview guide · ${version}</span><h1>${title}</h1><p>${text}</p><h2>Release scope</h2><p>This guide describes installed ${version} capabilities. Follow linked package declarations for exact signatures; undocumented behavior is not guaranteed.</p><p><a href="/packages">Browse package APIs</a> · <a href="/guides/troubleshooting">Troubleshooting</a> · <a href="/support">Support</a></p></article>`,
|
||||
"Guides",
|
||||
);
|
||||
|
||||
const examples = [
|
||||
"Minimal .wrn page",
|
||||
"Database CRUD",
|
||||
"Authentication and protected route",
|
||||
"Permissions",
|
||||
"Forms and validation",
|
||||
"Realtime dashboard",
|
||||
"File upload",
|
||||
"Background queue",
|
||||
"Redis pub/sub",
|
||||
"Workspace gateway",
|
||||
"Deployment",
|
||||
"Experimental mobile mode",
|
||||
];
|
||||
page(
|
||||
"/examples",
|
||||
"Examples",
|
||||
"WRNexusJS examples and their verification status.",
|
||||
`<article class="documentation prose standalone"><h1>Examples</h1><p>Examples are tied to installed ${version} package documentation. The focused snippets in guides are source-verified; standalone runnable projects and CI compilation are tracked as remaining work.</p><div class="coverage-list">${examples.map((x, i) => `<article><h2>${x}</h2><span class="status ${i === 0 || i === 4 ? "status-beta" : "status-planned"}">${i === 0 || i === 4 ? "Documented" : "Planned fixture"}</span></article>`).join("")}</div></article>`,
|
||||
"Learn",
|
||||
);
|
||||
page(
|
||||
"/showcase",
|
||||
"Showcase",
|
||||
"Approved public WRNexusJS deployments.",
|
||||
`<article class="documentation prose standalone"><h1>Showcase</h1><p>Only confirmed public properties are listed; no customer or traffic claims are made.</p><div class="feature-grid"><article><h2><a href="https://workroot.in/">WorkRoot</a></h2><p>Creator/company site demonstrating a public WRNexusJS deployment. Exact deployed version and infrastructure notes await owner confirmation.</p></article><article><h2><a href="https://wrnexusjs.dev/">WRNexusJS docs</a></h2><p>This documentation portal, built and verified against WRNexusJS ${version} on Bun.</p></article></div><p>Screenshots are intentionally deferred until approved assets and alt text are available.</p></article>`,
|
||||
"Project",
|
||||
);
|
||||
page(
|
||||
"/benchmarks",
|
||||
"Benchmarks",
|
||||
"Reproducible WRNexusJS performance evidence and methodology status.",
|
||||
`<article class="documentation prose standalone"><h1>Benchmarks</h1><span class="status status-planned">No publishable benchmark dataset yet</span><p>No comparative speed claims are published. A valid baseline must record scripts, commit, Bun/framework versions, hardware, OS, warmup, samples, workload, raw results, median, percentiles, memory, HTML size, browser JavaScript size, and run date.</p><p>The roadmap starts with WRNexusJS-only measurements before any maintained equivalent-workload comparison.</p></article>`,
|
||||
"Project",
|
||||
);
|
||||
page(
|
||||
"/roadmap",
|
||||
"Roadmap",
|
||||
"Current WRNexusJS documentation and framework priorities without promised dates.",
|
||||
`<article class="documentation prose standalone"><h1>Roadmap</h1><p>Roadmap items are direction, not delivery commitments. Dates require explicit owner approval.</p><h2>Now</h2><ul><li>Private preview onboarding and accurate package references</li><li>Runnable documentation fixtures and link/accessibility checks</li><li>License, support, and disclosure owner decisions</li></ul><h2>Next</h2><ul><li>Durable queue driver guidance</li><li>Expanded database/auth/realtime examples</li><li>Versioned release notes and migration fixtures</li></ul><h2>Later / exploration</h2><ul><li>Historical documentation selector</li><li>Maintained reproducible benchmarks</li><li>Broader mobile/native coverage</li></ul></article>`,
|
||||
"Project",
|
||||
);
|
||||
page(
|
||||
"/changelog",
|
||||
"Changelog",
|
||||
"WRNexusJS documentation release history and migration notes.",
|
||||
`<article class="documentation prose standalone"><h1>Changelog</h1><h2>${version} <small>2026-07-12</small></h2><p>Documentation application aligned to all 25 installed packages, with generated README and TypeScript declaration references. This portal release establishes truthful private-preview access messaging and expanded framework navigation.</p><h3>Migration notes</h3><p>Keep all <code>@wrnexus/*</code> packages on the same release and run the installed CLI update workflow. No older framework release history is present in this repository.</p><h2>Versioning and support</h2><p>The packages use semantic-looking versions, but a formal compatibility and old-release support policy has not been approved. Preview consumers should treat minor releases as potentially requiring migration review.</p></article>`,
|
||||
"Project",
|
||||
);
|
||||
page(
|
||||
`/releases/${version}`,
|
||||
`Release ${version}`,
|
||||
`WRNexusJS ${version} release notes.`,
|
||||
`<article class="documentation prose standalone"><h1>WRNexusJS ${version}</h1><p>Released 2026-07-12 in this documentation repository. Twenty-five installed packages are aligned to this version. See the <a href="/changelog">changelog</a>, <a href="/guides/upgrading">upgrade guide</a>, and package references.</p></article>`,
|
||||
"Releases",
|
||||
);
|
||||
page(
|
||||
"/security",
|
||||
"Security",
|
||||
"WRNexusJS security defaults, limits, supported release status, and reporting process.",
|
||||
`<article class="documentation prose standalone"><h1>Security</h1><p>WRNexusJS provides primitives for CSP, CSRF, Trusted Types, sessions, validation, authorization, encryption, upload restrictions, request limits, and WebSocket-origin checks. Applications remain responsible for correct configuration, business authorization, secrets, dependencies, data protection, and operations.</p><h2>Supported releases</h2><p>Only the current private-preview release ${version} is documented here. A formal old-release support window is not yet published.</p><h2>Report a vulnerability</h2><p>Use WorkRoot’s approved private contact path at <a href="https://workroot.in/">workroot.in</a>. Do not publish exploit details or secrets. Include affected version, impact, reproduction, and a safe contact method. Response targets, encryption key, bounty, audit, and certification are not currently claimed.</p><h2>Deployment controls</h2><p>Use restrictive CSP and permissions policies, HSTS only on HTTPS production origins, MIME sniffing protection, restrictive referrers, explicit CORS, secure cookies, CSRF validation, request limits, and origin checks. See <a href="/guides/security">application security</a>.</p></article>`,
|
||||
"Trust",
|
||||
);
|
||||
page(
|
||||
"/support",
|
||||
"Support",
|
||||
"Actual WRNexusJS private preview support and contact routes.",
|
||||
`<article class="documentation prose standalone"><h1>Support</h1><p>WRNexusJS has no public Discord, public issue tracker, or guaranteed community support channel listed by this repository. Preview access and support begin through <a href="https://workroot.in/">WorkRoot’s public contact path</a>.</p><p>Include WRNexusJS version, Bun version, OS, a minimal reproduction, expected and actual behavior, and sanitized logs. Never include registry tokens, credentials, session cookies, or private data.</p><p>Support scope, service levels, and commercial terms require owner confirmation.</p></article>`,
|
||||
"Trust",
|
||||
);
|
||||
page(
|
||||
"/license",
|
||||
"License",
|
||||
"Current WRNexusJS licensing status and private-preview terms boundary.",
|
||||
`<article class="documentation prose standalone"><h1>License</h1><span class="status status-planned">Owner decision required</span><p>This documentation repository contains no public license file, and the packages are unavailable from the public npm registry. No open-source license or redistribution right should be inferred.</p><p>Approved preview users must follow the private/commercial terms supplied by WorkRoot. Contact <a href="https://workroot.in/">WorkRoot</a> before copying, redistributing, or using WRNexusJS in production.</p></article>`,
|
||||
"Trust",
|
||||
);
|
||||
|
||||
page(
|
||||
"/search",
|
||||
"Search",
|
||||
"Search the local WRNexusJS documentation index without third-party tracking.",
|
||||
`<article class="documentation prose standalone"><h1>Search documentation</h1><p>This build-time index is local and sends no query to a third party. Use your browser’s find command to filter this compact index.</p><h2>Core documentation</h2><p>${navigation.map(([href, label]) => `<a href="${href}">${label}</a>`).join(" · ")}</p><h2>Guides</h2><p>${Object.entries(
|
||||
guides,
|
||||
)
|
||||
.map(([slug, [title]]) => `<a href="/guides/${slug}">${title}</a>`)
|
||||
.join(" · ")}</p><h2>Package APIs</h2><p>${Object.keys(pkg.dependencies)
|
||||
.concat(Object.keys(pkg.devDependencies))
|
||||
.filter((name) => name.startsWith("@wrnexus/"))
|
||||
.map((name) => `<a href="/packages/${name.split("/")[1]}">${name}</a>`)
|
||||
.join(" · ")}</p></article>`,
|
||||
"Discovery",
|
||||
);
|
||||
|
||||
page(
|
||||
"/404",
|
||||
"Page not found",
|
||||
"Find the requested WRNexusJS documentation through search or the documentation index.",
|
||||
`<article class="documentation prose standalone"><span class="eyebrow">404</span><h1>Page not found</h1><p>The address may be outdated or misspelled. No private or duplicate route is exposed here.</p><div class="actions"><a class="primary" href="/search">Search documentation</a><a href="/getting-started">Getting started</a><a href="/packages">Package reference</a></div></article>`,
|
||||
"Error",
|
||||
);
|
||||
|
||||
const routes = [
|
||||
"/",
|
||||
"/access",
|
||||
"/getting-started",
|
||||
"/tutorial",
|
||||
"/architecture",
|
||||
"/language",
|
||||
"/packages",
|
||||
...Object.keys(guides).map((x) => `/guides/${x}`),
|
||||
"/examples",
|
||||
"/showcase",
|
||||
"/benchmarks",
|
||||
"/roadmap",
|
||||
"/changelog",
|
||||
`/releases/${version}`,
|
||||
"/security",
|
||||
"/support",
|
||||
"/license",
|
||||
"/search",
|
||||
"/404",
|
||||
].filter(Boolean);
|
||||
const packageNames = Object.keys(pkg.dependencies)
|
||||
.concat(Object.keys(pkg.devDependencies))
|
||||
.filter((x) => x.startsWith("@wrnexus/"))
|
||||
.map((x) => x.split("/")[1])
|
||||
.sort();
|
||||
const urls = [...new Set([...routes, ...packageNames.map((x) => `/packages/${x}`)])];
|
||||
writeFileSync(
|
||||
join(pub, "robots.txt"),
|
||||
`User-agent: *\nAllow: /\nSitemap: https://wrnexusjs.dev/sitemap.xml\n`,
|
||||
);
|
||||
writeFileSync(
|
||||
join(pub, "sitemap.xml"),
|
||||
`<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">${urls.map((x) => `<url><loc>https://wrnexusjs.dev${x}</loc></url>`).join("")}</urlset>\n`,
|
||||
);
|
||||
writeFileSync(
|
||||
join(pub, "docs-index.json"),
|
||||
JSON.stringify(
|
||||
{
|
||||
version,
|
||||
status: "private-developer-preview",
|
||||
generatedAt: "2026-07-12",
|
||||
documents: urls.map((url) => ({
|
||||
url,
|
||||
title: url === "/" ? "WRNexusJS" : url.split("/").pop()!.replaceAll("-", " "),
|
||||
section: url.startsWith("/guides")
|
||||
? "guide"
|
||||
: url.startsWith("/packages")
|
||||
? "package"
|
||||
: "portal",
|
||||
version,
|
||||
stability: url.includes("mobile") || url.includes("queues") ? "experimental" : "preview",
|
||||
})),
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
writeFileSync(
|
||||
join(pub, "llms-full.txt"),
|
||||
`# WRNexusJS ${version} comprehensive documentation index\n\nStatus: Private Developer Preview. Runtime: Bun. UI language: .wrn.\nThis is the documentation application, not the framework monorepo.\n\n${urls.map((x) => `- https://wrnexusjs.dev${x}`).join("\n")}\n\nFor exact APIs, use installed package README files followed by exported declarations.\n`,
|
||||
);
|
||||
|
||||
const auditDocs: Record<string, string> = {
|
||||
"site-audit.md": `# WRNexusJS site audit\n\nDate: 2026-07-12. Baseline: Bun 1.3.14, framework ${version}.\n\n## Baseline results\n\n- bun install: pass (169 installs / 209 packages, unchanged).\n- docs generation: pass (25 package pages and 5 prior site pages).\n- tests: 6 pass. Check: pass. Production build: pass, 30 routes.\n- Access test with an empty npm config: @wrnexus/cli and @wrnexus/core returned npm E404.\n- Repository: private WorkRoot Git remote; no public LICENSE, SECURITY, or CHANGELOG file found.\n\n## Findings\n\nThe prior generator duplicated package H1s, descriptions, install blocks, and dumped full declarations. It also rewrote hand-authored core pages, used four desktop-only nav links, hid navigation on mobile, branded inconsistently, and presented an unusable public create command. Metadata lacked explicit canonicals and route coverage. No sitemap, robots file, docs index, release/access route, security/support/license policy, showcase evidence notes, benchmarks methodology page, or 404 source existed.\n\n## Audit limitations\n\nBrowser tooling, Lighthouse, axe, screenshots, and an authenticated clean scaffold were unavailable. Scores are therefore not fabricated; post-deploy measurements remain required under docs/audits/.\n`,
|
||||
"documentation-information-architecture.md": `# Documentation information architecture\n\nGlobal navigation groups Learn, Reference, Guides, Project, and Trust. Canonical discovery begins at the homepage, then /getting-started and /tutorial. Exact APIs live under /packages. Conceptual tasks live under /guides. Status and trust live at /roadmap, /changelog, /security, /support, /license, and /access. Machine discovery uses robots.txt, sitemap.xml, llms.txt, llms-full.txt, and docs-index.json.\n`,
|
||||
"release-access-status.md": `# Release and access status\n\n## Decision: Mode B — Private Developer Preview\n\nActive version: ${version}, derived from package.json#wrnexus.version. All 25 installed @wrnexus packages resolve to ${version}. On 2026-07-12, npm view using a clean empty user config returned E404 for @wrnexus/cli@${version} and @wrnexus/core@${version}. The repository remote is a private WorkRoot Git service and no public license file exists.\n\nExternal users cannot execute an installation without approved private registry credentials. The truthful CTA is Request preview access. After approval, the canonical command is bunx @wrnexus/cli@${version} create my-app. Tokens must never appear in documentation or source.\n`,
|
||||
"documentation-coverage-matrix.md": `# Documentation coverage matrix\n\n| Area | Package reference | Concept guide | Runnable fixture | Tests | Stability | Limitation |\n|---|---|---|---|---|---|---|\n${packageNames.map((x) => `| @wrnexus/${x} | /packages/${x} | ${["validation", "authz", "db", "uploader", "pubsub", "queue", "mobile"].includes(x) ? `/guides/${x === "authz" ? "authorization" : x === "validation" ? "forms-and-validation" : x === "uploader" ? "uploads" : x === "queue" ? "queues" : x}` : "Architecture/package guide"} | Planned | Generator coverage | ${["mobile", "native", "queue"].includes(x) ? "Experimental" : "Preview"} | No standalone CI fixture |`).join("\n")}\n`,
|
||||
"seo-metadata-matrix.md": `# SEO metadata matrix\n\nEvery canonical portal page defines a unique descriptive title, description, and absolute canonical. Package metadata is generated from installed package metadata. Sitemap and robots cover portal, guides, release, and package routes. Structured-data support is not exposed by the installed .wrn SEO grammar and remains a framework/generator gap. Preview routes remain indexable because the documentation is public; private package/source locations are not linked.\n`,
|
||||
"redirect-map.md": `# Redirect map\n\nNo legacy redirects are currently required: existing /, /getting-started, /architecture, /language, /packages, and /packages/:name remain canonical. If versioned archives are introduced, current unversioned docs should canonicalize to the active release and archived URLs must remain immutable.\n`,
|
||||
"release-checklist.md": `# Release checklist\n\n- [ ] Confirm all @wrnexus versions align with package.json#wrnexus.version.\n- [ ] Run bun install, docs:generate twice, test, check, build, and production smoke.\n- [ ] Verify clean-registry access status and CTA.\n- [ ] Crawl routes, links, anchors, canonical metadata, sitemap, robots, and AI files.\n- [ ] Run mobile/desktop accessibility and Lighthouse audits.\n- [ ] Confirm license, disclosure contact, support policy, changelog, and showcase approvals.\n- [ ] Verify no tokens, private paths, fake community links, or unsupported claims.\n`,
|
||||
"post-deploy-checklist.md": `# Post-deploy checklist\n\n1. Fetch representative HTML, robots.txt, sitemap.xml, llms.txt, llms-full.txt, and docs-index.json.\n2. Run Lighthouse mobile under controlled conditions; target performance/accessibility/SEO/best-practices >=95 with no critical accessibility issue.\n3. Run keyboard, screen reader, zoom, reduced-motion, link, anchor, and responsive overflow checks.\n4. Submit sitemap in Google Search Console and Bing Webmaster Tools after domain ownership is verified.\n5. Inspect canonical selection, rich-result eligibility, crawl errors, CSP reports, server logs, and 404s.\n6. Save dated reports under docs/audits/.\n`,
|
||||
};
|
||||
for (const [name, body] of Object.entries(auditDocs)) writeFileSync(join(docs, name), body);
|
||||
mkdirSync(join(docs, "audits"), { recursive: true });
|
||||
writeFileSync(
|
||||
join(docs, "audits", "2026-07-12-baseline.md"),
|
||||
`# Baseline audit\n\nAutomated Bun install/docs/test/check/build passed before implementation. Lighthouse, browser accessibility, and screenshots were unavailable; no scores are claimed.\n`,
|
||||
);
|
||||
console.log(
|
||||
`Generated portal pages, ${urls.length} discovery URLs, and audit deliverables for WRNexusJS ${version}.`,
|
||||
);
|
||||
Reference in New Issue
Block a user