uniweb 0.66.0 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uniweb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.0",
|
|
4
4
|
"description": "Create structured Vite + React sites with content/code separation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
"js-yaml": "^4.1.0",
|
|
42
42
|
"prompts": "^2.4.2",
|
|
43
43
|
"tar": "^7.0.0",
|
|
44
|
-
"@uniweb/kit": "^0.19.4",
|
|
45
|
-
"@uniweb/runtime": "^0.27.4",
|
|
46
44
|
"@uniweb/content-writer": "^0.3.4",
|
|
47
|
-
"@uniweb/schemas": "^0.5.0",
|
|
48
45
|
"@uniweb/core": "^0.29.8",
|
|
46
|
+
"@uniweb/kit": "^0.19.4",
|
|
47
|
+
"@uniweb/schemas": "^0.6.0",
|
|
48
|
+
"@uniweb/runtime": "^0.27.4",
|
|
49
49
|
"@uniweb/semantic-parser": "^1.4.1"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
+
"@uniweb/build": "^0.61.0",
|
|
52
53
|
"@uniweb/content-reader": "^1.2.5",
|
|
53
|
-
"@uniweb/semantic-parser": "^1.4.1"
|
|
54
|
-
"@uniweb/build": "^0.60.0"
|
|
54
|
+
"@uniweb/semantic-parser": "^1.4.1"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@uniweb/build": {
|
package/partials/agents.md
CHANGED
|
@@ -1870,7 +1870,7 @@ fetch:
|
|
|
1870
1870
|
|
|
1871
1871
|
**Component-side fetching.** When a component genuinely needs to fetch on its own (a search box, "load more", a lazy popover), use the kit hooks — `useFetched`, `useCacheEntry`, `useWholeRecord`. They share the framework's cache and dispatcher with declarative fetches; same-key requests dedupe automatically.
|
|
1872
1872
|
|
|
1873
|
-
**Validate before shipping.** `uniweb validate` checks file-based data against your declared schemas — missing required fields, type/enum/format mismatches, nested fields. A violation fails it (`--lax` only reports); it checks every record file in `records/`, and `push` / `publish` refuse the same findings before sending anything. Distinct from `uniweb doctor` (project structure): `validate` checks your *data* against the schemas you *declared*. External queries (`url:`)
|
|
1873
|
+
**Validate before shipping.** `uniweb validate` checks file-based data against your declared schemas — missing required fields, type/enum/format mismatches, nested fields. A violation fails it (`--lax` only reports); it checks every record file in `records/`, and `push` / `publish` refuse the same findings before sending anything. Distinct from `uniweb doctor` (project structure): `validate` checks your *data* against the schemas you *declared*. External queries (`url:`) are reported as deferred — their data isn't in the project; the value of a `ref`/`options` field is not checked against the entity it names.
|
|
1874
1874
|
|
|
1875
1875
|
### Fetching from other sources (`fetcher:`)
|
|
1876
1876
|
|
|
@@ -2609,7 +2609,7 @@ Foundations have their own free path too: `uniweb add ci --target foundation` pu
|
|
|
2609
2609
|
|
|
2610
2610
|
Either side can publish. Nothing about this changes how you build: the same foundation and the same site run under `uniweb dev`, `uniweb export`, or a CI deploy with no account at all.
|
|
2611
2611
|
|
|
2612
|
-
**Publishing vs registering.** Foundations on Uniweb Cloud live in the catalog as `@org/name@version` — `name` from the foundation's `main.js`. When a foundation powers a single site, **don't run `uniweb register` yourself** — `uniweb publish` from the site directory releases the local foundation to the catalog (when its code changed) and goes live in one step. A registered version is immutable, so when the foundation's code changed under a version already registered, `push` and `publish` release the change under the next version and write it into the foundation's `package.json` — commit that file (`--no-release` sends the content without the code). They stop when the registry holds a version newer than yours, released from another copy: pull that change first, or pass `--bump` to release yours above it. Register deliberately only when the foundation is a product meant for multiple sites; consuming sites then pin `foundation: '@org/name@1.2.3'`. **The catalog is private and access-segregated, not a public package registry** — people see only the foundations licensed to sites they own or edit. The *site* carries the license, and it rides along with site ownership when a developer hands a site to a client. Don't describe publishing as making a foundation publicly discoverable. Schemas can also be registered on their own from a schemas-only package (`@uniweb/schemas`, any `@org/schemas`, or a bare folder of `schemas/*.{yml,json,js}`) — that's how `@std` schemas are published. Auth via `uniweb login` (`uniweb login --backend <url> --token <bearer>` without a terminal) or `UNIWEB_TOKEN`; preview with `--dry-run`.
|
|
2612
|
+
**Publishing vs registering.** Foundations on Uniweb Cloud live in the catalog as `@org/name@version` — `name` from the foundation's `main.js`. When a foundation powers a single site, **don't run `uniweb register` yourself** — `uniweb publish` from the site directory releases the local foundation to the catalog (when its code changed) and goes live in one step. A registered version is immutable, so when the foundation's code changed under a version already registered, `push` and `publish` release the change under the next version and write it into the foundation's `package.json` — commit that file (`--no-release` sends the content without the code). The version it picks is always the next patch: for a change that is not backwards compatible, set a higher minor or major version in the foundation's `package.json` yourself before you push. They stop when the registry holds a version newer than yours, released from another copy: pull that change first, or pass `--bump` to release yours above it. Register deliberately only when the foundation is a product meant for multiple sites; consuming sites then pin `foundation: '@org/name@1.2.3'`. **The catalog is private and access-segregated, not a public package registry** — people see only the foundations licensed to sites they own or edit. The *site* carries the license, and it rides along with site ownership when a developer hands a site to a client. Don't describe publishing as making a foundation publicly discoverable. Schemas can also be registered on their own from a schemas-only package (`@uniweb/schemas`, any `@org/schemas`, or a bare folder of `schemas/*.{yml,json,js}`) — that's how `@std` schemas are published. Auth via `uniweb login` (`uniweb login --backend <url> --token <bearer>` without a terminal) or `UNIWEB_TOKEN`; preview with `--dry-run`.
|
|
2613
2613
|
|
|
2614
2614
|
### Staying current
|
|
2615
2615
|
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
* above the registered one, written into the package's `package.json` first. ⛔ This
|
|
21
21
|
* reverses the version-bump release gate of 2026-06-23, whose reasoning — a deliberate,
|
|
22
22
|
* npm-style release — fits a foundation other sites use as a product; those sites pin
|
|
23
|
-
* a catalog ref and never reach this code.
|
|
24
|
-
*
|
|
25
|
-
*
|
|
23
|
+
* a catalog ref and never reach this code. Its author's demo site, which names it by
|
|
24
|
+
* path, does — and gets the same default, by ruling [Diego, 2026-09-24]. The release is
|
|
25
|
+
* always the next patch, so a change that is not backwards compatible needs a higher
|
|
26
|
+
* version set in `package.json` by hand.
|
|
26
27
|
*
|
|
27
28
|
* ⛔ **A NEWER registered version still stops it.** It was released from another copy
|
|
28
29
|
* of the project, whose code this one may not have, and releasing above it would make
|
package/src/commands/validate.js
CHANGED
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
* ⭐ A violation fails it (exit 1); `--lax` reports without failing. It warned by
|
|
13
13
|
* default until 2026-09-24, with `--strict` to fail — a gate that passes is one
|
|
14
14
|
* nobody reads, and `push` / `publish` now refuse the same findings. The live render
|
|
15
|
-
* path stays tolerant.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* path stays tolerant. Remote (`url:`) inputs are not in the project, so they're
|
|
16
|
+
* reported as deferred, never silently skipped. The value of an entity reference is
|
|
17
|
+
* not checked against the entity it names. ⛔ This said references were "reported as
|
|
18
|
+
* deferred" until 2026-09-24; no check ever reported them.
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
21
|
import { existsSync, readFileSync } from 'node:fs'
|
|
@@ -171,7 +172,7 @@ function printSiteHuman(result) {
|
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
if (deferred.length > 0) {
|
|
174
|
-
log(` ${colors.dim}↪ deferred (not
|
|
175
|
+
log(` ${colors.dim}↪ deferred (not checked):${colors.reset}`)
|
|
175
176
|
for (const d of deferred) {
|
|
176
177
|
const extra = d.url
|
|
177
178
|
? ` ${colors.dim}(${d.url})${colors.reset}`
|
package/src/framework-index.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-24T19:00:27.393Z",
|
|
4
4
|
"packages": {
|
|
5
5
|
"@uniweb/api": {
|
|
6
6
|
"version": "0.6.1",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
12
|
"@uniweb/build": {
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.61.0",
|
|
14
14
|
"path": "framework/build",
|
|
15
15
|
"deps": [
|
|
16
16
|
"@uniweb/content-reader",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"deps": []
|
|
97
97
|
},
|
|
98
98
|
"@uniweb/schemas": {
|
|
99
|
-
"version": "0.
|
|
99
|
+
"version": "0.6.0",
|
|
100
100
|
"path": "framework/schemas",
|
|
101
101
|
"deps": []
|
|
102
102
|
},
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"deps": []
|
|
127
127
|
},
|
|
128
128
|
"@uniweb/unipress": {
|
|
129
|
-
"version": "0.10.
|
|
129
|
+
"version": "0.10.4",
|
|
130
130
|
"path": "framework/unipress",
|
|
131
131
|
"deps": [
|
|
132
132
|
"@uniweb/build",
|
package/src/index.js
CHANGED
|
@@ -1697,9 +1697,9 @@ project against framework conventions.
|
|
|
1697
1697
|
|
|
1698
1698
|
Every record file is checked against the schema its folder names, whether or
|
|
1699
1699
|
not a section reads it. A violation fails the run; \`push\` and \`publish\` refuse
|
|
1700
|
-
the same findings. The live render path stays tolerant.
|
|
1701
|
-
inputs
|
|
1702
|
-
|
|
1700
|
+
the same findings. The live render path stays tolerant. Remote (\`url:\`)
|
|
1701
|
+
inputs are not in the project, so they're reported as deferred, never silently
|
|
1702
|
+
skipped. A reference field's value is not checked against the entity it names.
|
|
1703
1703
|
|
|
1704
1704
|
${colors.bright}Options:${colors.reset}
|
|
1705
1705
|
--lax Report violations without failing (exit 0)
|