feat(wrn): support native structured prop expressions

This commit is contained in:
2026-07-29 16:46:18 +05:30
parent 6afe32f63f
commit 8fc6f15402
68 changed files with 210 additions and 118 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ai",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "Zero-dependency Claude (Anthropic) client for WrNexus apps.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/authz",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/authz — part of the WrNexus framework.",
"license": "MIT",
+13 -13
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/cli",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/cli — part of the WrNexus framework.",
"license": "MIT",
@@ -28,18 +28,18 @@
"wrnexus": "./dist/index.js"
},
"dependencies": {
"@wrnexus/core": "^0.5.0",
"@wrnexus/router": "^0.5.0",
"@wrnexus/csr": "^0.5.0",
"@wrnexus/compiler": "^0.5.0",
"@wrnexus/styles": "^0.5.0",
"@wrnexus/dev-server": "^0.5.0",
"@wrnexus/ui": "^0.5.0",
"@wrnexus/validation": "^0.5.0",
"@wrnexus/i18n": "^0.5.0",
"@wrnexus/db": "^0.5.0",
"@wrnexus/plugin": "^0.5.0",
"@wrnexus/syntax": "^0.5.0"
"@wrnexus/core": "^0.5.1",
"@wrnexus/router": "^0.5.1",
"@wrnexus/csr": "^0.5.1",
"@wrnexus/compiler": "^0.5.1",
"@wrnexus/styles": "^0.5.1",
"@wrnexus/dev-server": "^0.5.1",
"@wrnexus/ui": "^0.5.1",
"@wrnexus/validation": "^0.5.1",
"@wrnexus/i18n": "^0.5.1",
"@wrnexus/db": "^0.5.1",
"@wrnexus/plugin": "^0.5.1",
"@wrnexus/syntax": "^0.5.1"
},
"files": [
"dist"
+2 -2
View File
@@ -164,8 +164,8 @@ A file opens with `page <Name>` or `component <Name>` followed by a `{ ... }` bo
- `types { <TypeScript declarations> }` — reusable interfaces and aliases for the current file.
- `props { name: Type = <default> ... }` — typed component props. Omit `= <default>` to make a prop required. Legacy inferred props remain supported.
- `@event name = function` inside `props` — declares a public component event. Emit it from component behavior with `name(detail)` or `$emit("name", detail)`, and consume it with `<Component @name="handler(event)" />`.
- `state <ident>: Type = <expr>` — typed reactive state seeded from a raw JS expression. The annotation is optional for backward compatibility.
- `view { <html> }` — plain HTML with `{expr}` interpolation in text and attributes, hyphenated attributes, boolean attributes, `@event="..."` client bindings, and `<!-- comments -->`. Attribute expressions that reference `state` keep an SSR value and update reactively in the browser.
- `state <ident>: Type = <expr>` — typed reactive state seeded from a raw JS expression, including native array and object literals. The annotation is optional for backward compatibility.
- `view { <html> }` — plain HTML with `{expr}` interpolation in text and attributes, JSX-style component props such as `items={items}`, `items={[...]}`, and `options={{...}}`, hyphenated attributes, boolean attributes, `@event="..."` client bindings, and `<!-- comments -->`. Structured component props are serialized safely for SSR; expressions that reference `state` retain their initial value and update reactively in the browser.
- `seo { key = "value" ... }` — metadata merged into the generated `meta`.
- `style { <raw css> }` — inlined page/component stylesheet (repeatable).
- `functions { <TypeScript> }` — helpers with typed parameters and return values. Types remain in server output and are safely erased from browser behavior code.
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/compiler",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/compiler — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/syntax": "^0.5.0"
"@wrnexus/syntax": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/core",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/core — part of the WrNexus framework.",
"license": "MIT",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/csr",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/csr — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/db",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/db — part of the WrNexus framework.",
"license": "MIT",
+15 -15
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/dev-server",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/dev-server — part of the WrNexus framework.",
"license": "MIT",
@@ -25,20 +25,20 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0",
"@wrnexus/dev-toolbar": "^0.5.0",
"@wrnexus/router": "^0.5.0",
"@wrnexus/ssr": "^0.5.0",
"@wrnexus/csr": "^0.5.0",
"@wrnexus/compiler": "^0.5.0",
"@wrnexus/styles": "^0.5.0",
"@wrnexus/ui": "^0.5.0",
"@wrnexus/validation": "^0.5.0",
"@wrnexus/i18n": "^0.5.0",
"@wrnexus/db": "^0.5.0",
"@wrnexus/pubsub": "^0.5.0",
"@wrnexus/uploader": "^0.5.0",
"@wrnexus/plugin": "^0.5.0"
"@wrnexus/core": "^0.5.1",
"@wrnexus/dev-toolbar": "^0.5.1",
"@wrnexus/router": "^0.5.1",
"@wrnexus/ssr": "^0.5.1",
"@wrnexus/csr": "^0.5.1",
"@wrnexus/compiler": "^0.5.1",
"@wrnexus/styles": "^0.5.1",
"@wrnexus/ui": "^0.5.1",
"@wrnexus/validation": "^0.5.1",
"@wrnexus/i18n": "^0.5.1",
"@wrnexus/db": "^0.5.1",
"@wrnexus/pubsub": "^0.5.1",
"@wrnexus/uploader": "^0.5.1",
"@wrnexus/plugin": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/dev-toolbar",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/dev-toolbar — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/encryption",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/encryption — part of the WrNexus framework.",
"license": "MIT",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/helpers",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "Safe convenience helpers for WrNexus request contexts and common application flows.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/i18n",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/i18n — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/jwt",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/jwt — part of the WrNexus framework.",
"license": "MIT",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/mobile",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/mobile — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/native": "^0.5.0"
"@wrnexus/native": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/native",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/native — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/oauth",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/oauth — part of the WrNexus framework.",
"license": "MIT",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/plugin",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/plugin — part of the WrNexus framework.",
"license": "MIT",
@@ -33,7 +33,7 @@
}
},
"dependencies": {
"@wrnexus/syntax": "^0.5.0"
"@wrnexus/syntax": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/pubsub",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/pubsub — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/queue",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/queue — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/reactive",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/reactive — part of the WrNexus framework.",
"license": "MIT",
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/router",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/router — part of the WrNexus framework.",
"license": "MIT",
@@ -21,8 +21,8 @@
}
},
"dependencies": {
"@wrnexus/compiler": "^0.5.0",
"@wrnexus/core": "^0.5.0"
"@wrnexus/compiler": "^0.5.1",
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ssr",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/ssr — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/styles",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/styles — part of the WrNexus framework.",
"license": "MIT",
@@ -21,9 +21,9 @@
}
},
"dependencies": {
"@wrnexus/uploader": "^0.5.0",
"@wrnexus/core": "^0.5.0",
"@wrnexus/plugin": "^0.5.0"
"@wrnexus/uploader": "^0.5.1",
"@wrnexus/core": "^0.5.1",
"@wrnexus/plugin": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/syntax",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/syntax — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/test",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/test — part of the WrNexus framework.",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/tracking",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/tracking — part of the WrNexus framework.",
"license": "MIT",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/ui",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/ui — part of the WrNexus framework.",
"license": "MIT",
@@ -26,7 +26,7 @@
"./ui.css": "./ui.css"
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/uploader",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/uploader — part of the WrNexus framework.",
"license": "MIT",
@@ -21,7 +21,7 @@
}
},
"dependencies": {
"@wrnexus/core": "^0.5.0"
"@wrnexus/core": "^0.5.1"
},
"files": [
"dist"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@wrnexus/validation",
"version": "0.5.0",
"version": "0.5.1",
"type": "module",
"description": "@wrnexus/validation — part of the WrNexus framework.",
"license": "MIT",