From 07ddbb46090eeb5dbfb683b16e895597cb764712 Mon Sep 17 00:00:00 2001 From: Ajay Ghanwat Date: Sun, 12 Jul 2026 17:30:03 +0530 Subject: [PATCH] chore: update docs to WRNexusJS 0.2.15 --- app/pages/architecture.wrn | 2 +- app/pages/getting-started.wrn | 2 +- app/pages/index.wrn | 4 +- app/pages/language.wrn | 2 +- app/pages/packages.wrn | 4 +- app/pages/packages/ai.wrn | 6 +- app/pages/packages/authz.wrn | 6 +- app/pages/packages/cli.wrn | 6 +- app/pages/packages/compiler.wrn | 6 +- app/pages/packages/core.wrn | 6 +- app/pages/packages/csr.wrn | 6 +- app/pages/packages/db.wrn | 6 +- app/pages/packages/dev-server.wrn | 10 ++- app/pages/packages/encryption.wrn | 6 +- app/pages/packages/i18n.wrn | 6 +- app/pages/packages/jwt.wrn | 6 +- app/pages/packages/mobile.wrn | 6 +- app/pages/packages/native.wrn | 6 +- app/pages/packages/oauth.wrn | 6 +- app/pages/packages/pubsub.wrn | 6 +- app/pages/packages/queue.wrn | 6 +- app/pages/packages/reactive.wrn | 6 +- app/pages/packages/router.wrn | 6 +- app/pages/packages/ssr.wrn | 6 +- app/pages/packages/styles.wrn | 6 +- app/pages/packages/test.wrn | 6 +- app/pages/packages/tracking.wrn | 6 +- app/pages/packages/ui.wrn | 6 +- app/pages/packages/uploader.wrn | 6 +- app/pages/packages/validation.wrn | 6 +- bun.lock | 100 +++++++++++++++--------------- package.json | 52 ++++++++-------- 32 files changed, 162 insertions(+), 158 deletions(-) diff --git a/app/pages/architecture.wrn b/app/pages/architecture.wrn index 8ff56ea6..8881868c 100644 --- a/app/pages/architecture.wrn +++ b/app/pages/architecture.wrn @@ -12,7 +12,7 @@ page Architecture {
Concepts

Architecture

WRNexusJS separates server work, generated markup, and browser behavior so applications stay understandable and efficient.

Request path

Request → Router → Middleware → Page/API → SSR document → Browser runtime

Compiler

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.

Runtime

The server owns routing, data, secrets, sessions, validation, uploads, and rendering. The browser owns reactive scopes, navigation, forms, realtime clients, and native capability dispatch.

Package boundaries

Each package is independently installable. Start with the CLI and core, then add database, security, realtime, native, UI, and operational packages as required.

- + } } diff --git a/app/pages/getting-started.wrn b/app/pages/getting-started.wrn index 06d31369..77cd3dab 100644 --- a/app/pages/getting-started.wrn +++ b/app/pages/getting-started.wrn @@ -25,7 +25,7 @@ bun run dev

2. Add a page

page Dashboard {
 }

3. Verify and build

wrnexus doctor
 wrnexus test
 wrnexus build

Where things live

- + } } diff --git a/app/pages/index.wrn b/app/pages/index.wrn index 32947d53..c73f8b55 100644 --- a/app/pages/index.wrn +++ b/app/pages/index.wrn @@ -11,7 +11,7 @@ page Home { -
WRNexusJS 0.2.14

Build from the server.
Ship only what matters.

An SSR-first, Bun-native framework with reactive .wrn components, typed data, realtime rooms, mobile capabilities, and production security built in.

app/pages/counter.wrn
page Counter {
+      
WRNexusJS 0.2.15

Build from the server.
Ship only what matters.

An SSR-first, Bun-native framework with reactive .wrn components, typed data, realtime rooms, mobile capabilities, and production security built in.

app/pages/counter.wrn
page Counter {
   state count = 0
   view {
     <button @click="count++">
@@ -19,7 +19,7 @@ page Home {
     </button>
   }
 }

SSR by default

Useful HTML reaches the browser immediately. Interactive pages hydrate only the runtime they use.

Secure foundations

CSP, Trusted Types, CSRF, sessions, validation, authorization, encryption, and safe rendering are integrated.

Web to native

Share markup through Capacitor or compile portable pages into Expo and React Native routes.

-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/language.wrn b/app/pages/language.wrn index ecbfe7c5..b1d9a0d8 100644 --- a/app/pages/language.wrn +++ b/app/pages/language.wrn @@ -84,7 +84,7 @@ view { <p data-native-only="browser">Browser instructions</p> <button data-native-requires="haptics">Haptic action</button>

Other framework attributes

AttributePurpose
data-errorField validation error destination.
data-successSuccessful form message.
data-redirectNavigation after form success.
data-room-*Realtime status, templates, sending, and reset behavior.
data-uploaderConfig-driven upload widget.
data-wire-theme-*Theme selection and toggling.
data-wire-lang*Language selection.
data-native-*Cross-platform capability and visibility behavior.
- + } } diff --git a/app/pages/packages.wrn b/app/pages/packages.wrn index f984d4a4..7a7d3c06 100644 --- a/app/pages/packages.wrn +++ b/app/pages/packages.wrn @@ -13,7 +13,7 @@ page Packages { -
25 focused packages

Package reference

Everything in the framework, organized by responsibility and documented from the published 0.2.14 APIs.

Showing {category} packages

+
25 focused packages

Package reference

Everything in the framework, organized by responsibility and documented from the published 0.2.15 APIs.

Showing {category} packages

AI

@wrnexus/ai

Server-side Anthropic client with generation and streaming.

Open documentation →
@@ -88,7 +88,7 @@ page Packages { Security

@wrnexus/validation

Typed schemas, coercion, validation, and browser descriptors.

Open documentation →
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/ai.wrn b/app/pages/packages/ai.wrn index 5d421bc0..dae9205d 100644 --- a/app/pages/packages/ai.wrn +++ b/app/pages/packages/ai.wrn @@ -12,8 +12,8 @@ page wrnexusai {
- -
AI

@wrnexus/ai

Server-side Anthropic client with generation and streaming.

bun add @wrnexus/ai@0.2.14
A tiny, zero-dependency Claude (Anthropic) client for WRNexusJS apps — generate and stream text with Claude from any server-side code.
+ +
AI

@wrnexus/ai

Server-side Anthropic client with generation and streaming.

bun add @wrnexus/ai@0.2.15
A tiny, zero-dependency Claude (Anthropic) client for WRNexusJS apps — generate and stream text with Claude from any server-side code.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/ai is a thin, dependency-free wrapper over the Anthropic Messages API, built on fetch (Bun-native, no SDK). Use it in API routes, jobs, or middleware to call Claude. It defaults to the most capable model, claude-opus-4-8, reads your key from ANTHROPIC_API_KEY, and supports both one-shot generation and streaming.

@@ -175,7 +175,7 @@ const reply = await ai.generate( );
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/authz.wrn b/app/pages/packages/authz.wrn index 21adff66..68e7529e 100644 --- a/app/pages/packages/authz.wrn +++ b/app/pages/packages/authz.wrn @@ -12,8 +12,8 @@ page wrnexusauthz {
- -
Security

@wrnexus/authz

Role, permission, policy, and authorization guards.

bun add @wrnexus/authz@0.2.14
Composable authorization for WRNexusJS — role-based (RBAC), policy-based (PBAC), and attribute-based (ABAC) access control that reduces to a boolean check plus an authorize() guard.
+ +
Security

@wrnexus/authz

Role, permission, policy, and authorization guards.

bun add @wrnexus/authz@0.2.15
Composable authorization for WRNexusJS — role-based (RBAC), policy-based (PBAC), and attribute-based (ABAC) access control that reduces to a boolean check plus an authorize() guard.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/authz is a small, server-side authorization toolkit. It gives you three interchangeable models — RBAC (roles → permissions), PBAC (policy predicates), and ABAC (attribute matchers) — that all collapse to a boolean | Promise<boolean> decision. Wrap any decision in a Middleware guard (authorize, requireRole, requirePermission) to protect WRNexusJS routes. Reach for it whenever a route or action needs to be gated on who the user is, what roles they hold, or attributes of the user and the resource. It plugs into @wrnexus/core by reading ctx.user as the authorization subject.

@@ -226,7 +226,7 @@ app.put( );
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/cli.wrn b/app/pages/packages/cli.wrn index 8f03f776..b38eeef8 100644 --- a/app/pages/packages/cli.wrn +++ b/app/pages/packages/cli.wrn @@ -12,8 +12,8 @@ page wrnexuscli {
- -
Tooling

@wrnexus/cli

Create, develop, build, generate, test, and maintain WRNexusJS apps.

bun add @wrnexus/cli@0.2.14
The wrnexus command-line tool that scaffolds, runs, builds, tests, and manages WRNexusJS apps.
+ +
Tooling

@wrnexus/cli

Create, develop, build, generate, test, and maintain WRNexusJS apps.

bun add @wrnexus/cli@0.2.15
The wrnexus command-line tool that scaffolds, runs, builds, tests, and manages WRNexusJS apps.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/cli provides the wrnexus executable — the single entry point for developing a WRNexusJS app. It runs the HMR dev server, produces a self-contained production build, scaffolds apps/pages/components, drives database migrations, regenerates typed routes and queries, runs tests, and manages configuration profiles. It also scaffolds multi-app monorepos and serves them behind a domain-routing gateway. This is a CLI/build-time package (it shells out to the Bun binary for the dev child and tests) and it also exports the workspace config types via a subpath.

@@ -115,7 +115,7 @@ export default config; # Build and start together: npm run production
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/compiler.wrn b/app/pages/packages/compiler.wrn index 64936069..275ec11b 100644 --- a/app/pages/packages/compiler.wrn +++ b/app/pages/packages/compiler.wrn @@ -12,8 +12,8 @@ page wrnexuscompiler {
- -
Core

@wrnexus/compiler

Parser and code generators for the .wrn language.

bun add @wrnexus/compiler@0.2.14
Compiler for the .wrn language — tokenizes, parses, and lowers .wrn page and component files to TypeScript.
+ +
Core

@wrnexus/compiler

Parser and code generators for the .wrn language.

bun add @wrnexus/compiler@0.2.15
Compiler for the .wrn language — tokenizes, parses, and lowers .wrn page and component files to TypeScript.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/compiler turns .wrn source into TypeScript that targets the framework's runtime primitives. A .wrn file declares either a page (a route) or a component (a reusable, prop-driven fragment) with blocks for state, view (plain HTML), seo, style, functions, api, ssr/client data bindings, and realtime websocket handlers. The pipeline is source → Lexer → parse() → PageAst → generate() → TypeScript. It is a build/server-side library — the WRNexusJS dev loader calls it to compile .wrn files on the fly, surfacing ParseError as a readable error page.

@@ -355,7 +355,7 @@ page Home { // returning an HTML string, wrapped in a data-scope for the reactive runtime.
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/core.wrn b/app/pages/packages/core.wrn index a9c95512..71b96017 100644 --- a/app/pages/packages/core.wrn +++ b/app/pages/packages/core.wrn @@ -12,8 +12,8 @@ page wrnexuscore {
- -
Core

@wrnexus/core

Contexts, middleware, security, sessions, caching, JSX, and realtime.

bun add @wrnexus/core@0.2.14
The framework core: the request Context, middleware contract, and the security, session, caching, streaming, realtime, and JSX primitives every other WRNexusJS package builds on.
+ +
Core

@wrnexus/core

Contexts, middleware, security, sessions, caching, JSX, and realtime.

bun add @wrnexus/core@0.2.15
The framework core: the request Context, middleware contract, and the security, session, caching, streaming, realtime, and JSX primitives every other WRNexusJS package builds on.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/core is the shared foundation of WRNexusJS. It defines the Context object that flows through every middleware, page, and API route, plus the Middleware/Next contract they implement. On top of that it ships the building blocks a real app needs: cookie-backed sessions, password auth, CSRF protection, rate limiting, request logging, HTTP + in-memory caching, file uploads, streaming/SSE responses, WebSocket "rooms", security headers/CORS, and a server-side JSX runtime that renders to HTML strings. Everything here is server-side and Bun-native (it uses Bun.password, Bun.write, the web-standard Request/Response, and crypto). You depend on it directly and transitively through the rest of the framework.

@@ -962,7 +962,7 @@ if (await verifyPassword(form.password, user.passwordHash)) { const current = getUser<{ id: string }>(ctx); // or null
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/csr.wrn b/app/pages/packages/csr.wrn index 2347e2a6..d0f5f588 100644 --- a/app/pages/packages/csr.wrn +++ b/app/pages/packages/csr.wrn @@ -12,8 +12,8 @@ page wrnexuscsr {
- -
Frontend

@wrnexus/csr

Reactive, navigation, and realtime browser runtimes.

bun add @wrnexus/csr@0.2.14
The browser-side client runtime for WRNexusJS — generic, self-contained JS that hydrates server-rendered pages with reactivity, client-side navigation, and realtime rooms.
+ +
Frontend

@wrnexus/csr

Reactive, navigation, and realtime browser runtimes.

bun add @wrnexus/csr@0.2.15
The browser-side client runtime for WRNexusJS — generic, self-contained JS that hydrates server-rendered pages with reactivity, client-side navigation, and realtime rooms.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/csr holds the three client runtimes that WRNexusJS serves to the browser. Components are authored as .wrn files and rendered on the server; this package provides the single, generic runtime that hydrates that HTML in the browser — there are no per-component browser bundles. Each runtime is exported as a plain-JS string (no build step, no imports) intended to be served verbatim from a well-known URL:

@@ -228,7 +228,7 @@ Bun.serve({ });
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/db.wrn b/app/pages/packages/db.wrn index 0ea5d6d7..8913177c 100644 --- a/app/pages/packages/db.wrn +++ b/app/pages/packages/db.wrn @@ -12,8 +12,8 @@ page wrnexusdb {
- -
Data

@wrnexus/db

Database adapters, typed queries, models, migrations, and sessions.

bun add @wrnexus/db@0.2.14
The database layer for WRNexusJS: TS models as the single source of truth for DDL, validation, and result typing, plus a driver-based Db client, migrations, and a sqlc-style query generator.
+ +
Data

@wrnexus/db

Database adapters, typed queries, models, migrations, and sessions.

bun add @wrnexus/db@0.2.15
The database layer for WRNexusJS: TS models as the single source of truth for DDL, validation, and result typing, plus a driver-based Db client, migrations, and a sqlc-style query generator.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/db is the server-side data layer. You describe tables as TypeScript models (the v column builder + table()); those models drive migrations, coerce raw DB rows into typed objects, and feed the query generator. A thin Driver interface is implemented by adapters for SQLite (bun:sqlite), Postgres/MySQL (Bun.SQL), and MongoDB. The Db client adds ergonomics — model-mapped all/one, transactions, createTable, pagination, and batched relation loading. A process-wide registry (getDb/setDb) exposes configured connections to pages and API routes. Reach for it whenever a WRNexusJS app needs persistence.

@@ -315,7 +315,7 @@ const users = table("users", { const events = await getDb("analytics").all("SELECT * FROM hits");
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/dev-server.wrn b/app/pages/packages/dev-server.wrn index dc465afd..a5d3fa2b 100644 --- a/app/pages/packages/dev-server.wrn +++ b/app/pages/packages/dev-server.wrn @@ -12,8 +12,8 @@ page wrnexusdevserver {
- -
Runtime

@wrnexus/dev-server

Development and production servers, HMR, assets, and gateways.

bun add @wrnexus/dev-server@0.2.14
The WRNexusJS HTTP + WebSocket server runtime — request dispatch, SSR document assembly, live-reload (HMR), and the portable production handler.
+ +
Runtime

@wrnexus/dev-server

Development and production servers, HMR, assets, and gateways.

bun add @wrnexus/dev-server@0.2.15
The WRNexusJS HTTP + WebSocket server runtime — request dispatch, SSR document assembly, live-reload (HMR), and the portable production handler.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

This package is the server runtime that powers a WRNexusJS app in both development and production. A single request runtime (createHandlers) owns HTTP/WebSocket dispatch and SSR document assembly; it knows nothing about _how_ modules and assets are produced, so the dev and prod entry points wire in different backends: dev uses dynamic module loading plus on-the-fly bundling and injects a live-reload client; prod uses a static, pre-built manifest with cache-immutable assets. The package also ships a multi-app gateway (route several apps by Host header behind one port) and a portable node:http adapter for WinterCG hosts. It is entirely server-side and Bun-native (Bun.serve, Bun.file, Bun.gzipSync).

@@ -314,6 +314,8 @@ interface RuntimeDeps { hasUi?: boolean; /** Production build combined theme + UI stylesheet. */ hasFrameworkStyles?: boolean; + /** App stylesheet already contains theme + UI CSS and is the only CSS request needed. */ + stylesIncludeFramework?: boolean; /** Resolved theme config: enables `/__wrnexus/theme.css` + `<html data-theme>`. */ theme?: ResolvedTheme; /** Resolved i18n bundle: enables `ctx.t`, `<html lang>`, and `{t:key}` markers. */ @@ -480,6 +482,8 @@ interface ProdOptions { stylesPath?: string; /** Small production stylesheet inlined into the document head. */ inlineStyles?: string; + /** `stylesPath` contains theme + UI + app CSS in cascade order. */ + stylesIncludeFramework?: boolean; /** Absolute path to the pre-built reactive runtime. */ reactivePath?: string; /** Absolute path to the pre-built theme stylesheet (`theme.css`). */ @@ -725,7 +729,7 @@ interface ProdOptions { }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/encryption.wrn b/app/pages/packages/encryption.wrn index 76f4c8dc..2a70f2fc 100644 --- a/app/pages/packages/encryption.wrn +++ b/app/pages/packages/encryption.wrn @@ -12,8 +12,8 @@ page wrnexusencryption {
- -
Security

@wrnexus/encryption

Hashing, HMAC, authenticated encryption, and key derivation.

bun add @wrnexus/encryption@0.2.14
Dependency-free crypto helpers for WRNexusJS: authenticated symmetric encryption (AES-256-GCM), hashing, and HMAC signing.
+ +
Security

@wrnexus/encryption

Hashing, HMAC, authenticated encryption, and key derivation.

bun add @wrnexus/encryption@0.2.15
Dependency-free crypto helpers for WRNexusJS: authenticated symmetric encryption (AES-256-GCM), hashing, and HMAC signing.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

This package provides small, focused cryptographic primitives for server-side use: encrypting secrets/tokens/database fields at rest with AES-256-GCM, deriving keys from passwords via PBKDF2, computing SHA-256 digests, and signing/verifying payloads with HMAC-SHA256. It is built entirely on the standard Web Crypto API (crypto.subtle) plus btoa/atob and TextEncoder/TextDecoder — no third-party dependencies. Reach for it whenever you need to protect sensitive values or verify webhook signatures. All functions are async (Web Crypto is promise-based).

@@ -107,7 +107,7 @@ const ok = await hmacVerify(rawBody, webhookSecret, incomingSignatureHeader); if (!ok) throw new Error("Invalid webhook signature");
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/i18n.wrn b/app/pages/packages/i18n.wrn index b8592a04..5bf4c969 100644 --- a/app/pages/packages/i18n.wrn +++ b/app/pages/packages/i18n.wrn @@ -12,8 +12,8 @@ page wrnexusi18n {
- -
Frontend

@wrnexus/i18n

Translation loading, locale resolution, and Intl formatting.

bun add @wrnexus/i18n@0.2.14
Per-request translations plus locale-aware number, date, and currency formatting for WRNexusJS apps.
+ +
Frontend

@wrnexus/i18n

Translation loading, locale resolution, and Intl formatting.

bun add @wrnexus/i18n@0.2.15
Per-request translations plus locale-aware number, date, and currency formatting for WRNexusJS apps.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/i18n loads locale files from app/locales/<lang>.json, resolves the active language for each request (cookie → Accept-Language → default), and builds a t(key, params) translator used both in server code and in .wrn views. It also ships Intl-based formatting helpers and a tiny client runtime that wires up a language switcher. Translation lookup, language resolution, and HTML marker rewriting run server-side; only the small I18N_RUNTIME snippet runs in the browser.

@@ -209,7 +209,7 @@ const finalHtml = translateHtml(renderedHtml, t);
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/jwt.wrn b/app/pages/packages/jwt.wrn index a9ffb625..da9adda2 100644 --- a/app/pages/packages/jwt.wrn +++ b/app/pages/packages/jwt.wrn @@ -12,8 +12,8 @@ page wrnexusjwt {
- -
Security

@wrnexus/jwt

HS256 JWT signing, verification, and bearer authentication.

bun add @wrnexus/jwt@0.2.14
Dependency-free JSON Web Tokens (HS256) via Web Crypto, plus a bearer-token auth middleware for WRNexusJS.
+ +
Security

@wrnexus/jwt

HS256 JWT signing, verification, and bearer authentication.

bun add @wrnexus/jwt@0.2.15
Dependency-free JSON Web Tokens (HS256) via Web Crypto, plus a bearer-token auth middleware for WRNexusJS.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/jwt signs and verifies stateless JSON Web Tokens using the HS256 (HMAC-SHA-256) algorithm. It has no runtime dependencies — signing and verification are implemented directly on the standard Web Crypto API (crypto.subtle), which Bun provides natively. It runs server-side and pairs with the session-based auth in @wrnexus/core, giving you a stateless option for API and mobile clients. Reach for it when you need bearer-token auth rather than cookie sessions.

@@ -145,7 +145,7 @@ export { type JwtAuthOptions, type JwtClaims, JwtError, type SignOptions, j ): Promise<T>;

Example 4

function jwtAuth(options: JwtAuthOptions): Middleware;
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/mobile.wrn b/app/pages/packages/mobile.wrn index 5e11aa07..2675268d 100644 --- a/app/pages/packages/mobile.wrn +++ b/app/pages/packages/mobile.wrn @@ -12,8 +12,8 @@ page wrnexusmobile {
- -
Native

@wrnexus/mobile

SSR-safe compatibility access to Capacitor plugins.

bun add @wrnexus/mobile@0.2.14

SSR-safe access to Capacitor plugins from WRNexusJS browser code.

+ +
Native

@wrnexus/mobile

SSR-safe compatibility access to Capacitor plugins.

bun add @wrnexus/mobile@0.2.15

SSR-safe access to Capacitor plugins from WRNexusJS browser code.

wrnexus mobile add @capacitor/camera
import { Camera } from "@capacitor/camera";
 import { mobile } from "@wrnexus/mobile";
@@ -70,7 +70,7 @@ if (mobile.isNative()) {
 }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/native.wrn b/app/pages/packages/native.wrn index a025b741..0dd7164d 100644 --- a/app/pages/packages/native.wrn +++ b/app/pages/packages/native.wrn @@ -12,8 +12,8 @@ page wrnexusnative {
- -
Native

@wrnexus/native

Cross-platform browser and Capacitor capability registry.

bun add @wrnexus/native@0.2.14

Cross-platform capabilities for browsers, Capacitor WebViews, and compiled native apps.

+ +
Native

@wrnexus/native

Cross-platform browser and Capacitor capability registry.

bun add @wrnexus/native@0.2.15

Cross-platform capabilities for browsers, Capacitor WebViews, and compiled native apps.

import { native } from "@wrnexus/native";
 
 if (native.supports("share")) await native.run("share", { title: "WRNexusJS", url: location.href });
@@ -49,7 +49,7 @@ export { NativeCapability, NativePlatform, NativeRunOptions, NativeTarget, if (native.supports("share")) await native.run("share", { title: "WRNexusJS", url: location.href });
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/oauth.wrn b/app/pages/packages/oauth.wrn index 1860d2df..8efd60c6 100644 --- a/app/pages/packages/oauth.wrn +++ b/app/pages/packages/oauth.wrn @@ -12,8 +12,8 @@ page wrnexusoauth {
- -
Security

@wrnexus/oauth

OAuth 2.0, PKCE, provider presets, and profile mapping.

bun add @wrnexus/oauth@0.2.14
Dependency-free OAuth 2.0 sign-in for any provider, with PKCE and presets for Google, GitHub, and Discord.
+ +
Security

@wrnexus/oauth

OAuth 2.0, PKCE, provider presets, and profile mapping.

bun add @wrnexus/oauth@0.2.15
Dependency-free OAuth 2.0 sign-in for any provider, with PKCE and presets for Google, GitHub, and Discord.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/oauth implements the OAuth 2.0 Authorization Code flow (with PKCE) for server-side sign-in. It ships ready-made provider presets and a defineProvider helper for custom providers, then gives you two flow functions — startAuth (build the redirect) and completeAuth (exchange the code and fetch the user's profile). It has no runtime dependencies: it uses the platform fetch and WebCrypto only. Pairs naturally with @wrnexus/core's logIn to establish a session once you have a normalized profile.

@@ -263,7 +263,7 @@ interface StartAuthResult { }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/pubsub.wrn b/app/pages/packages/pubsub.wrn index ff6ff500..ced59958 100644 --- a/app/pages/packages/pubsub.wrn +++ b/app/pages/packages/pubsub.wrn @@ -12,8 +12,8 @@ page wrnexuspubsub {
- -
Realtime

@wrnexus/pubsub

In-process and Redis-backed publish/subscribe.

bun add @wrnexus/pubsub@0.2.14
Topic-based publish/subscribe with a pluggable driver — in-process by default, Redis for cross-process messaging.
+ +
Realtime

@wrnexus/pubsub

In-process and Redis-backed publish/subscribe.

bun add @wrnexus/pubsub@0.2.15
Topic-based publish/subscribe with a pluggable driver — in-process by default, Redis for cross-process messaging.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/pubsub is a small server-side pub/sub bus. You publish messages to a topic and subscribe with topic patterns; handlers fire for matching topics. The default driver keeps everything in-process, and you can swap in the Redis driver (@wrnexus/pubsub/redis) to fan messages out across processes or hosts. It also backs @wrnexus/core's realtime bridge for horizontal scaling.

@@ -131,7 +131,7 @@ type Handler<T = unknown> = (message: T, topic: string) => void | Promi }

Example 4

function redisDriver(url?: string): PubSubDriver & { close(): void };
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/queue.wrn b/app/pages/packages/queue.wrn index 57b34fd4..a35b9c91 100644 --- a/app/pages/packages/queue.wrn +++ b/app/pages/packages/queue.wrn @@ -12,8 +12,8 @@ page wrnexusqueue {
- -
Data

@wrnexus/queue

Background jobs with delay, concurrency, retry, and repetition.

bun add @wrnexus/queue@0.2.14
A background job queue with delays, retries + exponential backoff, recurring jobs, and concurrent workers.
+ +
Data

@wrnexus/queue

Background jobs with delay, concurrency, retry, and repetition.

bun add @wrnexus/queue@0.2.15
A background job queue with delays, retries + exponential backoff, recurring jobs, and concurrent workers.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/queue is a server-side in-process job queue. You register named workers, enqueue jobs (optionally delayed or recurring), and let the queue poll and run them on a timer — with per-job retry limits and doubling backoff between attempts. The default store lives in memory; the design allows a pluggable driver to back it with Redis/SQL for durability across restarts. Reach for it when you need to defer work (emails, webhooks, cleanup) off the request path without a heavyweight external broker. Tests can drive it deterministically via drain().

@@ -171,7 +171,7 @@ export { type AddOptions, type Job, type JobHandler, type Queue, type Queue }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/reactive.wrn b/app/pages/packages/reactive.wrn index 0efd836e..7cb8a2aa 100644 --- a/app/pages/packages/reactive.wrn +++ b/app/pages/packages/reactive.wrn @@ -12,8 +12,8 @@ page wrnexusreactive {
- -
Frontend

@wrnexus/reactive

Small type-safe reactive signal primitives.

bun add @wrnexus/reactive@0.2.14
Tiny, type-safe reactive primitives (signals) with zero dependencies.
+ +
Frontend

@wrnexus/reactive

Small type-safe reactive signal primitives.

bun add @wrnexus/reactive@0.2.15
Tiny, type-safe reactive primitives (signals) with zero dependencies.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/reactive is the seed of WRNexusJS's reactivity layer: a minimal signal primitive that holds a value, notifies subscribers when it changes, and hands back an unsubscribe function. It is deliberately small and framework-agnostic — it powers nothing on its own, but is shaped so client islands (and later the .wrn compiler's state blocks) can build reactive bindings on top of it. Reach for it when you need observable state without pulling in a full reactivity library.

@@ -133,7 +133,7 @@ const user: Signal<{ name: string } | null> = signal(null); user.set({ name: "Ada" });
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/router.wrn b/app/pages/packages/router.wrn index 3a903624..80cdf6de 100644 --- a/app/pages/packages/router.wrn +++ b/app/pages/packages/router.wrn @@ -12,8 +12,8 @@ page wrnexusrouter {
- -
Core

@wrnexus/router

Filesystem discovery, route matching, and typed route generation.

bun add @wrnexus/router@0.2.14
File-based router that maps an app/ directory onto route tables and matches request paths against them.
+ +
Core

@wrnexus/router

Filesystem discovery, route matching, and typed route generation.

bun add @wrnexus/router@0.2.15
File-based router that maps an app/ directory onto route tables and matches request paths against them.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/router scans an application's app/ directory once at startup and builds route tables for pages, API endpoints, realtime channels, middleware, server-rendered .wrn components, layouts, and validation schemas. It also compiles URL patterns (/users/[id]) into RegExps and matches request paths against them. Request input is never turned into a file path, which makes the router immune to path traversal. This is a server-side package used by the WRNexusJS runtime to resolve incoming requests, plus a codegen helper for compile-time typed links.

@@ -260,7 +260,7 @@ interface ComponentRef { }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/ssr.wrn b/app/pages/packages/ssr.wrn index 2af317fa..4d55fec3 100644 --- a/app/pages/packages/ssr.wrn +++ b/app/pages/packages/ssr.wrn @@ -12,8 +12,8 @@ page wrnexusssr {
- -
Runtime

@wrnexus/ssr

Secure HTML document rendering and SEO metadata.

bun add @wrnexus/ssr@0.2.14
Server-side rendering: wraps a page's HTML body in a complete HTML document with a metadata-driven <head>.
+ +
Runtime

@wrnexus/ssr

Secure HTML document rendering and SEO metadata.

bun add @wrnexus/ssr@0.2.15
Server-side rendering: wraps a page's HTML body in a complete HTML document with a metadata-driven <head>.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

Pages in WRNexusJS return an HTML string for the body. @wrnexus/ssr takes that body and produces a full HTML document — building the <head> from page metadata and global SEO defaults, resolving canonical/Open Graph/Twitter tags, and injecting module preloads and <script type="module"> tags. It is deliberately server-only: nothing in this package touches the DOM or ships to the browser, keeping server code genuinely server-only. Reach for it on the server when turning a rendered page body into a response document.

@@ -165,7 +165,7 @@ return new Response(html, { });
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/styles.wrn b/app/pages/packages/styles.wrn index 321eea50..34fbd224 100644 --- a/app/pages/packages/styles.wrn +++ b/app/pages/packages/styles.wrn @@ -12,8 +12,8 @@ page wrnexusstyles {
- -
Frontend

@wrnexus/styles

CSS pipeline, themes, fonts, profiles, and application config.

bun add @wrnexus/styles@0.2.14
Global CSS bundling, the --wire-* design-token theme system, and the wrnexus.config.ts app-config loader for WRNexusJS apps.
+ +
Frontend

@wrnexus/styles

CSS pipeline, themes, fonts, profiles, and application config.

bun add @wrnexus/styles@0.2.15
Global CSS bundling, the --wire-* design-token theme system, and the wrnexus.config.ts app-config loader for WRNexusJS apps.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

This package owns three server-side concerns that shape every page a WRNexusJS app renders:

@@ -562,7 +562,7 @@ export default { } satisfies AppConfig;
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/test.wrn b/app/pages/packages/test.wrn index bc64b144..91a693f2 100644 --- a/app/pages/packages/test.wrn +++ b/app/pages/packages/test.wrn @@ -12,8 +12,8 @@ page wrnexustest {
- -
Tooling

@wrnexus/test

WRNexusJS-aware component, route, and browser testing utilities.

bun add @wrnexus/test@0.2.14
Testing utilities for WRNexusJS apps — component rendering, reactive-DOM mounting, route handler calls, and a full in-process app harness, plus a one-import re-export of bun:test.
+ +
Tooling

@wrnexus/test

WRNexusJS-aware component, route, and browser testing utilities.

bun add @wrnexus/test@0.2.15
Testing utilities for WRNexusJS apps — component rendering, reactive-DOM mounting, route handler calls, and a full in-process app harness, plus a one-import re-export of bun:test.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/test is the server-side test toolkit you reach for when writing tests for a WRNexusJS app. It runs under bun test (invoked via wrnexus test) and gives you a single import surface: the bun:test primitives (test, expect, mock, …) re-exported alongside WRNexusJS-aware helpers that compile .wrn components, hydrate server HTML in a DOM, invoke API route handlers, and boot the real app on an ephemeral port for integration tests.

@@ -170,7 +170,7 @@ export { type Harness, type HarnessOptions, callRoute, createHarness, mount ): Promise<Response>;
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/tracking.wrn b/app/pages/packages/tracking.wrn index 391fc72a..9b2cc7f4 100644 --- a/app/pages/packages/tracking.wrn +++ b/app/pages/packages/tracking.wrn @@ -12,8 +12,8 @@ page wrnexustracking {
- -
Runtime

@wrnexus/tracking

Error/event capture, middleware, filtering, and sinks.

bun add @wrnexus/tracking@0.2.14
Error tracking for WRNexusJS apps: capture exceptions manually or via middleware and fan them out to pluggable sinks.
+ +
Runtime

@wrnexus/tracking

Error/event capture, middleware, filtering, and sinks.

bun add @wrnexus/tracking@0.2.15
Error tracking for WRNexusJS apps: capture exceptions manually or via middleware and fan them out to pluggable sinks.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/tracking is a small, server-side error-capture layer. You create a tracker with one or more sinks, then feed it errors — either manually with tracker.capture(err, context) or automatically by mounting tracker.middleware() in your request pipeline. A consoleSink is included; forwarding to Sentry, Datadog, or any other backend is just a matter of writing a tiny sink. Reach for it when you want a single, sink-agnostic place to route application errors. Sinks run best-effort — a throwing sink never breaks the request.

@@ -151,7 +151,7 @@ try { }
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/ui.wrn b/app/pages/packages/ui.wrn index 35ce0969..c2308acf 100644 --- a/app/pages/packages/ui.wrn +++ b/app/pages/packages/ui.wrn @@ -12,8 +12,8 @@ page wrnexusui {
- -
Frontend

@wrnexus/ui

Themeable server-rendered UI components and CSS.

bun add @wrnexus/ui@0.2.14
First-party Wire UI component library — a set of themeable .wrn components plus a single tokenized stylesheet.
+ +
Frontend

@wrnexus/ui

Themeable server-rendered UI components and CSS.

bun add @wrnexus/ui@0.2.15
First-party Wire UI component library — a set of themeable .wrn components plus a single tokenized stylesheet.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

@wrnexus/ui ships a library of server-rendered .wrn components (layout, form controls, and feedback UI) together with one themeable stylesheet, ui.css. The components are auto-discovered by the framework router — you don't import them in code. Once the package's component directory is on the router's scan path, you mount any component in a page with data-component="<name>". Every visual is driven by var(--wire-*) theme tokens, so components restyle instantly when the theme changes. The tiny JS surface (src/index.ts) exists only so the toolchain (CLI build + dev server) can locate the component directory and stylesheet.

@@ -111,7 +111,7 @@ const router = buildRouter(appDir, { componentDirs: [uiComponentsDir()]  </div>
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/uploader.wrn b/app/pages/packages/uploader.wrn index 3b74ee72..35737306 100644 --- a/app/pages/packages/uploader.wrn +++ b/app/pages/packages/uploader.wrn @@ -12,8 +12,8 @@ page wrnexusuploader {
- -
Data

@wrnexus/uploader

Validated local/S3 uploads and secure file serving.

bun add @wrnexus/uploader@0.2.14

Config-driven file uploads + serving for WRNexusJS. Declare named storage stores (local disk or any S3-compatible backend) in wrnexus.config.ts, upload with one function call, drop a drag-and-drop widget on a page, and serve files back — public or private. Zero external dependencies (S3 is signed with a built-in AWS SigV4 implementation, like the rest of the framework).

+ +
Data

@wrnexus/uploader

Validated local/S3 uploads and secure file serving.

bun add @wrnexus/uploader@0.2.15

Config-driven file uploads + serving for WRNexusJS. Declare named storage stores (local disk or any S3-compatible backend) in wrnexus.config.ts, upload with one function call, drop a drag-and-drop widget on a page, and serve files back — public or private. Zero external dependencies (S3 is signed with a built-in AWS SigV4 implementation, like the rest of the framework).

Configure

// wrnexus.config.ts
 import type { AppConfig } from "@wrnexus/styles";
@@ -413,7 +413,7 @@ await getStore("docs").driver.delete(files[0].key);
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+
WRNexusJS 0.2.15 · SSR-first · Bun-native · Documentation generated from published package APIs.
} } diff --git a/app/pages/packages/validation.wrn b/app/pages/packages/validation.wrn index c33dd223..e757f8f2 100644 --- a/app/pages/packages/validation.wrn +++ b/app/pages/packages/validation.wrn @@ -12,8 +12,8 @@ page wrnexusvalidation {
- -
Security

@wrnexus/validation

Typed schemas, coercion, validation, and browser descriptors.

bun add @wrnexus/validation@0.2.14
One fluent schema, validated on the server (API bodies, env vars) and mirrored to an eval-free browser validator for forms.
+ +
Security

@wrnexus/validation

Typed schemas, coercion, validation, and browser descriptors.

bun add @wrnexus/validation@0.2.15
One fluent schema, validated on the server (API bodies, env vars) and mirrored to an eval-free browser validator for forms.

Part of the WRNexusJS framework — an SSR-first, Bun-native full-stack web framework.

Overview

Define a schema once with the fluent v builder, then reuse it in three places: .parse() runs server-side and returns coerced values plus per-field errors; .describe() emits a plain-JSON SchemaDescriptor that the browser runtime interprets (no eval, no bundled validator); and helpers like parseBody and parseEnv wire schemas straight into API routes and startup config. The server rule logic (applyRule/checkField) and the client runtime (VALIDATE_RUNTIME) mirror each other exactly, so a form validates identically in both places. Schemas are conventionally kept in app/schemas/.

@@ -310,7 +310,7 @@ schema.describe(): SchemaDescriptor
-
WRNexusJS 0.2.14 · SSR-first · Bun-native · Documentation generated from published package APIs.
+ } } diff --git a/bun.lock b/bun.lock index a363c099..b6660f89 100644 --- a/bun.lock +++ b/bun.lock @@ -5,37 +5,37 @@ "": { "name": "wrnexusjs", "dependencies": { - "@wrnexus/ai": "^0.2.14", - "@wrnexus/authz": "^0.2.14", - "@wrnexus/compiler": "^0.2.14", - "@wrnexus/core": "^0.2.14", - "@wrnexus/csr": "^0.2.14", - "@wrnexus/db": "^0.2.14", - "@wrnexus/dev-server": "^0.2.14", - "@wrnexus/encryption": "^0.2.14", - "@wrnexus/i18n": "^0.2.14", - "@wrnexus/jwt": "^0.2.14", - "@wrnexus/mobile": "^0.2.14", - "@wrnexus/native": "^0.2.14", - "@wrnexus/oauth": "^0.2.14", - "@wrnexus/pubsub": "^0.2.14", - "@wrnexus/queue": "^0.2.14", - "@wrnexus/reactive": "^0.2.14", - "@wrnexus/router": "^0.2.14", - "@wrnexus/ssr": "^0.2.14", - "@wrnexus/styles": "^0.2.14", - "@wrnexus/test": "^0.2.14", - "@wrnexus/tracking": "^0.2.14", - "@wrnexus/ui": "^0.2.14", - "@wrnexus/uploader": "^0.2.14", - "@wrnexus/validation": "^0.2.14", + "@wrnexus/ai": "^0.2.15", + "@wrnexus/authz": "^0.2.15", + "@wrnexus/compiler": "^0.2.15", + "@wrnexus/core": "^0.2.15", + "@wrnexus/csr": "^0.2.15", + "@wrnexus/db": "^0.2.15", + "@wrnexus/dev-server": "^0.2.15", + "@wrnexus/encryption": "^0.2.15", + "@wrnexus/i18n": "^0.2.15", + "@wrnexus/jwt": "^0.2.15", + "@wrnexus/mobile": "^0.2.15", + "@wrnexus/native": "^0.2.15", + "@wrnexus/oauth": "^0.2.15", + "@wrnexus/pubsub": "^0.2.15", + "@wrnexus/queue": "^0.2.15", + "@wrnexus/reactive": "^0.2.15", + "@wrnexus/router": "^0.2.15", + "@wrnexus/ssr": "^0.2.15", + "@wrnexus/styles": "^0.2.15", + "@wrnexus/test": "^0.2.15", + "@wrnexus/tracking": "^0.2.15", + "@wrnexus/ui": "^0.2.15", + "@wrnexus/uploader": "^0.2.15", + "@wrnexus/validation": "^0.2.15", }, "devDependencies": { "@eslint/js": "^9.0.0", "@tailwindcss/cli": "^4.0.0", "@types/bun": "latest", "@types/node": "^26.1.1", - "@wrnexus/cli": "^0.2.14", + "@wrnexus/cli": "^0.2.15", "eslint": "^9.0.0", "prettier": "latest", "tailwindcss": "^4.0.0", @@ -169,55 +169,55 @@ "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.63.0", "", { "dependencies": { "@typescript-eslint/types": "8.63.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw=="], - "@wrnexus/ai": ["@wrnexus/ai@0.2.14", "", {}, "sha512-ArYxJeVT1pZcqr0PVdlIc2Uw5ANnH0NxFmZ+vG890asHrEzTEhtO8ydtKTXF03Kd5afTfd3yiLkNl6S12CwTTQ=="], + "@wrnexus/ai": ["@wrnexus/ai@0.2.15", "", {}, "sha512-XLcrSPMAMRDMhxGjDtbOEKK77eAxhkIgpNLbDuWewM6MJgclL4hTsQNZOSVwOCoO7ooD043oh74BruAwVUtmUQ=="], - "@wrnexus/authz": ["@wrnexus/authz@0.2.14", "", {}, "sha512-XFOmdaquDVZNg1IHfl3UP0511YykeRwHmklZQkr+9II7qwsWnpALkMrs8YMHfPInynBJzAwJ+DOsLBC5EfncyQ=="], + "@wrnexus/authz": ["@wrnexus/authz@0.2.15", "", {}, "sha512-z7QkODGerwaK2txFsHs4zWV07FHOoJms+WuhKOo9cfCTaYEKHbUAMDX4YvasmymH9Xo4J+XABsg3f3+1blgWBQ=="], - "@wrnexus/cli": ["@wrnexus/cli@0.2.14", "", { "dependencies": { "@wrnexus/compiler": "^0.2.14", "@wrnexus/core": "^0.2.14", "@wrnexus/csr": "^0.2.14", "@wrnexus/db": "^0.2.14", "@wrnexus/dev-server": "^0.2.14", "@wrnexus/i18n": "^0.2.14", "@wrnexus/router": "^0.2.14", "@wrnexus/styles": "^0.2.14", "@wrnexus/ui": "^0.2.14", "@wrnexus/validation": "^0.2.14" }, "bin": { "wrnexus": "dist/index.js" } }, "sha512-8oWT9m9w83/vImhMQh//KKXP4FWev56uBI/Q6jwpbt7s0APig0mIoLtp4Tx3nK1JF0mDjc3J/tOzTrTr2FGslA=="], + "@wrnexus/cli": ["@wrnexus/cli@0.2.15", "", { "dependencies": { "@wrnexus/compiler": "^0.2.15", "@wrnexus/core": "^0.2.15", "@wrnexus/csr": "^0.2.15", "@wrnexus/db": "^0.2.15", "@wrnexus/dev-server": "^0.2.15", "@wrnexus/i18n": "^0.2.15", "@wrnexus/router": "^0.2.15", "@wrnexus/styles": "^0.2.15", "@wrnexus/ui": "^0.2.15", "@wrnexus/validation": "^0.2.15" }, "bin": { "wrnexus": "dist/index.js" } }, "sha512-K4Vd7MKNPl1c4hKyqcvOUNF+dmS3Jm0CTo764rlX20AGfuvbvsGloBSkHPELOC5cdQiJIHeNYYdwUcEZXxt/2Q=="], - "@wrnexus/compiler": ["@wrnexus/compiler@0.2.14", "", {}, "sha512-5OkeQYqCgtQbsgb99Jgq230yWjL9WU+jpOPmHXO83EFVrN5tb4EFzlag7s8dL0kFeDxBseVY40YFMWl3fVjhjQ=="], + "@wrnexus/compiler": ["@wrnexus/compiler@0.2.15", "", {}, "sha512-xFS757A2EDQ5kXKd/SSniME8UVksynl/eu3+o6caXGekmBqJ8V0faCq4cR0nSmIdgyXyjHJXIBFfR+ziVbz0jQ=="], - "@wrnexus/core": ["@wrnexus/core@0.2.14", "", {}, "sha512-j6b/upI8iLnHSp62rFBQETXAkVb1XHM4TE5B8yTcfVg2AaIx4kYlc1CAEUvvkAuc/4s3aVywWuPQf2h9I2SjRw=="], + "@wrnexus/core": ["@wrnexus/core@0.2.15", "", {}, "sha512-AmPwH9T/gX9yhUUvDAXlbgnlFoaQCQ1k/Yx/VJAY8roTc4DBh/gnz9GDNnwMwl9SlyDNkdnRgbONPpSOgy0iqQ=="], - "@wrnexus/csr": ["@wrnexus/csr@0.2.14", "", { "dependencies": { "@wrnexus/core": "^0.2.14" } }, "sha512-AfFEBLqH/W4aWK9nsdipmAWdGmD71pmj+7RVd88CFqM8KYq1MFxxwkcgoFCBlhP+b8HJlxGCCdfVfQnSI2piNA=="], + "@wrnexus/csr": ["@wrnexus/csr@0.2.15", "", { "dependencies": { "@wrnexus/core": "^0.2.15" } }, "sha512-K12rz1VmG8UJfJJjo1B/FS7dPVeR0foEEi1u2dCu87+Znf1b124SA9M6gjG/tc73gATB0aMP8kx6evNKIvOehA=="], - "@wrnexus/db": ["@wrnexus/db@0.2.14", "", {}, "sha512-Rqd4S8NOcjmC0fv+GYkwKiLYdAtXRQSMxVZ+PKERsrpT/KcTA2lkLN/NPMshKUt+HiFaRMy1jJqJSAWFTM8grw=="], + "@wrnexus/db": ["@wrnexus/db@0.2.15", "", {}, "sha512-tw/Zjv+27npp1zZhRmLOfG+EXzo4P8K/GAYDLycns2yhyTohA+HB/+ztWz4rcQlb0bTndztNlOBEd9BNvvbYTg=="], - "@wrnexus/dev-server": ["@wrnexus/dev-server@0.2.14", "", { "dependencies": { "@wrnexus/compiler": "^0.2.14", "@wrnexus/core": "^0.2.14", "@wrnexus/csr": "^0.2.14", "@wrnexus/db": "^0.2.14", "@wrnexus/i18n": "^0.2.14", "@wrnexus/pubsub": "^0.2.14", "@wrnexus/router": "^0.2.14", "@wrnexus/ssr": "^0.2.14", "@wrnexus/styles": "^0.2.14", "@wrnexus/ui": "^0.2.14", "@wrnexus/uploader": "^0.2.14", "@wrnexus/validation": "^0.2.14" } }, "sha512-HKylu48sbrPF3gxmNdkPUSwe9LzyfOLqvZjGPPnDnF9aoXUnMih+XidGaJLIKyTKN6VGyPw7CowAU941nZlLbA=="], + "@wrnexus/dev-server": ["@wrnexus/dev-server@0.2.15", "", { "dependencies": { "@wrnexus/compiler": "^0.2.15", "@wrnexus/core": "^0.2.15", "@wrnexus/csr": "^0.2.15", "@wrnexus/db": "^0.2.15", "@wrnexus/i18n": "^0.2.15", "@wrnexus/pubsub": "^0.2.15", "@wrnexus/router": "^0.2.15", "@wrnexus/ssr": "^0.2.15", "@wrnexus/styles": "^0.2.15", "@wrnexus/ui": "^0.2.15", "@wrnexus/uploader": "^0.2.15", "@wrnexus/validation": "^0.2.15" } }, "sha512-ZQvOtoNK/yPWZa/Lg64MGMM3RvqMg8+vIoVb33YyIYaWBMkwShqX7QPxxOwytsOLwvlA+W6ZC33oEGFi+fN00g=="], - "@wrnexus/encryption": ["@wrnexus/encryption@0.2.14", "", {}, "sha512-aio0O6xZGCypiKSW30UK1uPXSRg9CKBwEoGNdvof8qjl23it7T6iOBskPRXMZoVVtJS4MaYgROFngpkhIFmX+g=="], + "@wrnexus/encryption": ["@wrnexus/encryption@0.2.15", "", {}, "sha512-RB71OzYNGDdHPP/yq07p83t9lb0+G3Lg1ETihse4yyGLQUsK9VmR9tIqHGZ0t5DB7kfr3Tvb5QR/JqNg0ZokTQ=="], - "@wrnexus/i18n": ["@wrnexus/i18n@0.2.14", "", { "dependencies": { "@wrnexus/core": "^0.2.14" } }, "sha512-Rzy3NQRxcKKzPmo+3puLQcJJ/R+80kp32uVGJ3O3cqo3hGdF8L1ox9cc4lYT/II84+d3yQ5QCyfKOGHFEabcXA=="], + "@wrnexus/i18n": ["@wrnexus/i18n@0.2.15", "", { "dependencies": { "@wrnexus/core": "^0.2.15" } }, "sha512-qUKXLVRnCa1HcIJuZlP+pzRPly++86c8mA7sb4GqqF53DzmiS0mxhywcKkrWVMD0J9/zPtPtqHzjI/+KQK9Ceg=="], - "@wrnexus/jwt": ["@wrnexus/jwt@0.2.14", "", {}, "sha512-zE/7LnncvOxjPnBIPO+eJnWiPZAqwyYU68upJua/PQtyH1fdo3I3625ZQwdWDCwhJtyg+UJyEkZFToUaVS5YeQ=="], + "@wrnexus/jwt": ["@wrnexus/jwt@0.2.15", "", {}, "sha512-kSO2OYV7KUSHT7F9k2PHhfriq0ndVCxYLzwykVkB6twCydrmMMJNtBKzmoBHz8iR50AGQUAZBx+/Z89Rt7F6Mg=="], - "@wrnexus/mobile": ["@wrnexus/mobile@0.2.14", "", { "dependencies": { "@wrnexus/native": "^0.2.14" } }, "sha512-qEkPzOzBLMG1v/LTZubmkriye8428mWPSfaPCq0XFP6uV8XXvs1ag4vmU3V8KvXSDkHraQ8ppeOGm+nTFAYVhg=="], + "@wrnexus/mobile": ["@wrnexus/mobile@0.2.15", "", { "dependencies": { "@wrnexus/native": "^0.2.15" } }, "sha512-fESUY4hu+6DkYh/lj7W7edpT49c1j14AhK7k1+wDHTx0MhrVQkDbCA9Vt3lU2+ctWaEmXQHkIW0YdN4P5Mx5IQ=="], - "@wrnexus/native": ["@wrnexus/native@0.2.14", "", {}, "sha512-8Tc2GHprmIXnTHIj7EqcKFhzb7GcNbFosYSByrzYsHbD9kn9qhtscOri1kCfm+HA2/+t1auBFbLiEUicAL61aw=="], + "@wrnexus/native": ["@wrnexus/native@0.2.15", "", {}, "sha512-6ev7mBGLwmo1/CPoqZkLRk3UKjUfukL49+c/fwD2/T991CmpW0MMVOVZmnC/RKHmmFIewQX1G4NIrgIjkRSa/g=="], - "@wrnexus/oauth": ["@wrnexus/oauth@0.2.14", "", {}, "sha512-ZrR+Jwj1uoieklF0CFfqMRUvYp8MN0arlh0r3FdWDRoafJUnhDWj/3NfzmA4OU56xFYPFbiWAWWldMgLEsc6Gw=="], + "@wrnexus/oauth": ["@wrnexus/oauth@0.2.15", "", {}, "sha512-0EC91McfgjRPuhhtE/8r0Lc+/3nsR8n20uiukfInqLcxFyKqMnL6wNfCJ+WuhNW6E+OOUqrM10u6W6h3yi5skg=="], - "@wrnexus/pubsub": ["@wrnexus/pubsub@0.2.14", "", {}, "sha512-o6Tmw2O7jBIrFzCRmmN6j9triJFqE2Q7gmBYAIQ6JitqMYcz7FjDRzgjeNHU+seJir1OO0du8AzB+MX0uCgCbw=="], + "@wrnexus/pubsub": ["@wrnexus/pubsub@0.2.15", "", {}, "sha512-STabEFZlu+YBaA+7+ffLy98xeCXvVAHmAY8OuKgeqOk5QgVwTzDx7ZBcg0umn0oKPn1r2q8pzey5YQt7C4unhA=="], - "@wrnexus/queue": ["@wrnexus/queue@0.2.14", "", {}, "sha512-q9XbUANIpMEZDTiLy1/j2bWkillFRwkQ4ZzMFit3JqSoCSqXH9EuF8Ol+LNwQhVQmJs4isCKzp+oLQMnvDtQ3Q=="], + "@wrnexus/queue": ["@wrnexus/queue@0.2.15", "", {}, "sha512-um0pTcCWGhAIRJXXY8sFMkf+NCfJCP34Qhw8J8PC8bvsAxJWOSvKDhQBSGfbD6vhAc06nWwmAfF6SEhMLAu1yA=="], - "@wrnexus/reactive": ["@wrnexus/reactive@0.2.14", "", {}, "sha512-v+GYTrUEmokrBNQjUllKUPbpRtRuPsRLXI8FRu2ecQ0i+achpdo1/oR3X51mqkkDsZMh84iNTbDWmAELk7bdyg=="], + "@wrnexus/reactive": ["@wrnexus/reactive@0.2.15", "", {}, "sha512-ZsMCP25PTQx4e6MI2cdsDBNSuE+HKEqxxX5gJxYax6c0fsnFUtzhxMm1+5BloMyQgJa0r5VKL6gO9brU0T2i/g=="], - "@wrnexus/router": ["@wrnexus/router@0.2.14", "", { "dependencies": { "@wrnexus/compiler": "^0.2.14", "@wrnexus/core": "^0.2.14" } }, "sha512-MKRNQArv8lKuTPKo/9+LIVigjDfM3se9zjhhRB8725CyhKxED/DY7ORA37i0htz+VbUozKt9ZZGbx4HM7Bx2SA=="], + "@wrnexus/router": ["@wrnexus/router@0.2.15", "", { "dependencies": { "@wrnexus/compiler": "^0.2.15", "@wrnexus/core": "^0.2.15" } }, "sha512-LrcR6H9eHEzMWeE8LADeYBxzQ5HtL5IPa9E9Wr4Exk2XXw7jGbzmug56ts2GaYNwBF4AfNAOxc+qtaJyhKn1Sw=="], - "@wrnexus/ssr": ["@wrnexus/ssr@0.2.14", "", { "dependencies": { "@wrnexus/core": "^0.2.14" } }, "sha512-G8BGpCqNLSjtdgQh5JeFPNSqtXPYnCMZAd/zLH/jCIR8uiimJ2UEnM8fQbfNLsivtoeK4QLzUnEOm/+1sjBkaw=="], + "@wrnexus/ssr": ["@wrnexus/ssr@0.2.15", "", { "dependencies": { "@wrnexus/core": "^0.2.15" } }, "sha512-ob74ncbYFaYs4yEn4i15Qysjd6bjxo/NbkXVA9WFeZkj0UEGH3pyaZD0AX0oSBogJq84Dp29x7B3lfTZRapQ5Q=="], - "@wrnexus/styles": ["@wrnexus/styles@0.2.14", "", { "dependencies": { "@wrnexus/uploader": "^0.2.14" } }, "sha512-bhRlSAaRxhRQIHHWYgQEVqNI9z3INzlobCvUfYI2dsmLdnzeJiXM+8GZ09auJYhmaht3/F+wNrfUcoswN+ldfA=="], + "@wrnexus/styles": ["@wrnexus/styles@0.2.15", "", { "dependencies": { "@wrnexus/uploader": "^0.2.15" } }, "sha512-hoZsVL/14elWac5ak6xzgS8uYR8fb28sbuFjGuzxhCCo4VM0BmkTBUPNenIjOgMun5rsoRh/TCNzI7Qz05VEJw=="], - "@wrnexus/test": ["@wrnexus/test@0.2.14", "", {}, "sha512-iiLz8ps6djkKZcSqI2VjFtZv8i2dV3T/LmLh8AVUTtDxvae3PVlDVQ5n0qdqQEMWSVKOK+azhKWTpEwjIimNIg=="], + "@wrnexus/test": ["@wrnexus/test@0.2.15", "", {}, "sha512-B3p07RbmOuujl+jqZ8cmC46Q+nWUJW4xmF+i9hcECJYMtG/Wq/GwANzXsCX+/FRbXVvYaQ6b1Tq07sEW8OEwfg=="], - "@wrnexus/tracking": ["@wrnexus/tracking@0.2.14", "", {}, "sha512-+rPCXS3ZKa+zEYwihfoWGNOkq1/4SbRRN8pxNyQ59o8JrH4/DSETbatUfNLyIRiEbnw/6LHdHyHibr4TqTqtUA=="], + "@wrnexus/tracking": ["@wrnexus/tracking@0.2.15", "", {}, "sha512-stW1B+CmDPswdRbM6wDQfHRzN+ofkfFlvg7z5ThVOUpQKF8MawTnWpALo/1RmQd6KHaUe8HNX6/zBvcaCYWA+w=="], - "@wrnexus/ui": ["@wrnexus/ui@0.2.14", "", { "dependencies": { "@wrnexus/core": "^0.2.14" } }, "sha512-iAlhsPo08Isf+yDLmO+fHasSt7zxF7RTByKyf2AHq015ZMnF7fVtUrYlUqt0Tz5QQt4peFoVhmqKsmGkwMLVmA=="], + "@wrnexus/ui": ["@wrnexus/ui@0.2.15", "", { "dependencies": { "@wrnexus/core": "^0.2.15" } }, "sha512-gSi5xFg8KnM9HMOBoEqeF4OI9Wr6xqTLmk7R0jXQXlKCcgHsxDZ3fZHkVnDp7PrmE4nh3pjGtyAg1lwOcOLFxQ=="], - "@wrnexus/uploader": ["@wrnexus/uploader@0.2.14", "", { "dependencies": { "@wrnexus/core": "^0.2.14" } }, "sha512-RfUfUUsIflPHTX4TmGLkpoIK0YIixcLNJPuFrJQ6Nzu0xF7q1u6sBtsoxymAl6FoWfq3mP6kZ2Uq5nnVn9ON1Q=="], + "@wrnexus/uploader": ["@wrnexus/uploader@0.2.15", "", { "dependencies": { "@wrnexus/core": "^0.2.15" } }, "sha512-BUUPWs5tZsgtQT+DiNvkKwmtuLm4abOfPizikt6Xvh3+zmPWOTOLrOnsT4sqzPLXFTr06alamdNHAMWMvJxY+g=="], - "@wrnexus/validation": ["@wrnexus/validation@0.2.14", "", {}, "sha512-X9wb8HG8eCWQL+NbOI4XVXkTGPqYA/t60RBeETrGyeBi6obeTeKoGwCvyCivuTk8tMyQtFwt/lbP9L3l2NJ2YA=="], + "@wrnexus/validation": ["@wrnexus/validation@0.2.15", "", {}, "sha512-+T+9YgQbxzBOFUoa8aWMNTd+BWw9+HMXdCmtAi0AOeUMgonFI6dPfFvHf1u4/IspOS4lw3qdmrm4C5KiTsciWw=="], "acorn": ["acorn@8.17.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg=="], diff --git a/package.json b/package.json index 9d71865c..920d27f2 100644 --- a/package.json +++ b/package.json @@ -17,37 +17,37 @@ "production": "bun run build && bun run start" }, "dependencies": { - "@wrnexus/ai": "^0.2.14", - "@wrnexus/authz": "^0.2.14", - "@wrnexus/compiler": "^0.2.14", - "@wrnexus/core": "^0.2.14", - "@wrnexus/csr": "^0.2.14", - "@wrnexus/db": "^0.2.14", - "@wrnexus/dev-server": "^0.2.14", - "@wrnexus/encryption": "^0.2.14", - "@wrnexus/i18n": "^0.2.14", - "@wrnexus/jwt": "^0.2.14", - "@wrnexus/mobile": "^0.2.14", - "@wrnexus/native": "^0.2.14", - "@wrnexus/oauth": "^0.2.14", - "@wrnexus/pubsub": "^0.2.14", - "@wrnexus/queue": "^0.2.14", - "@wrnexus/reactive": "^0.2.14", - "@wrnexus/router": "^0.2.14", - "@wrnexus/ssr": "^0.2.14", - "@wrnexus/styles": "^0.2.14", - "@wrnexus/test": "^0.2.14", - "@wrnexus/tracking": "^0.2.14", - "@wrnexus/ui": "^0.2.14", - "@wrnexus/uploader": "^0.2.14", - "@wrnexus/validation": "^0.2.14" + "@wrnexus/ai": "^0.2.15", + "@wrnexus/authz": "^0.2.15", + "@wrnexus/compiler": "^0.2.15", + "@wrnexus/core": "^0.2.15", + "@wrnexus/csr": "^0.2.15", + "@wrnexus/db": "^0.2.15", + "@wrnexus/dev-server": "^0.2.15", + "@wrnexus/encryption": "^0.2.15", + "@wrnexus/i18n": "^0.2.15", + "@wrnexus/jwt": "^0.2.15", + "@wrnexus/mobile": "^0.2.15", + "@wrnexus/native": "^0.2.15", + "@wrnexus/oauth": "^0.2.15", + "@wrnexus/pubsub": "^0.2.15", + "@wrnexus/queue": "^0.2.15", + "@wrnexus/reactive": "^0.2.15", + "@wrnexus/router": "^0.2.15", + "@wrnexus/ssr": "^0.2.15", + "@wrnexus/styles": "^0.2.15", + "@wrnexus/test": "^0.2.15", + "@wrnexus/tracking": "^0.2.15", + "@wrnexus/ui": "^0.2.15", + "@wrnexus/uploader": "^0.2.15", + "@wrnexus/validation": "^0.2.15" }, "devDependencies": { "@eslint/js": "^9.0.0", "@tailwindcss/cli": "^4.0.0", "@types/bun": "latest", "@types/node": "^26.1.1", - "@wrnexus/cli": "^0.2.14", + "@wrnexus/cli": "^0.2.15", "eslint": "^9.0.0", "prettier": "latest", "tailwindcss": "^4.0.0", @@ -55,6 +55,6 @@ "typescript-eslint": "latest" }, "wrnexus": { - "version": "0.2.14" + "version": "0.2.15" } }