@reventlessdev/reventless-spec 3.0.0-alpha.83 → 3.0.0-alpha.84
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/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/components/Plugin.res +20 -0
- package/src/components/Plugin.res.mjs +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.84 (2026-07-29)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **plugin:** why a read model is named by that field ([699ef8e](https://github.com/ReventlessDev/reventless-core/commit/699ef8e72f1b1d82fb04672739e5e4a8db61ae9a))
|
|
11
|
+
|
|
12
|
+
|
|
6
13
|
# 3.0.0-alpha.83 (2026-07-28)
|
|
7
14
|
|
|
8
15
|
### Features
|
package/package.json
CHANGED
|
@@ -218,6 +218,26 @@ type queryableDef = {
|
|
|
218
218
|
*/
|
|
219
219
|
searchableFields: array<string>,
|
|
220
220
|
/**
|
|
221
|
+
Which rung of the `labelField` ladder produced it, so a consumer with a name
|
|
222
|
+
rule of its own can tell a declaration from a guess before ranking the two:
|
|
223
|
+
|
|
224
|
+
- `"annotation"` — a `@displayName` spec. The author said which field names the
|
|
225
|
+
record; nothing a client infers locally outranks it.
|
|
226
|
+
- `"convention"` — a field literally named `name`/`title`/`label`/`displayName`.
|
|
227
|
+
A guess, and the one guess a client can independently arrive at.
|
|
228
|
+
- `"position"` — the first candidate in declaration order. A guess, and a fact
|
|
229
|
+
only this side knows; a client's own conventional-name rule is the better
|
|
230
|
+
answer where the two differ.
|
|
231
|
+
- `"fallback"` — no candidate at all, so `labelField` is `"id"`. The state
|
|
232
|
+
saying it has no human-readable field.
|
|
233
|
+
|
|
234
|
+
`None` means not stated — defs persisted before this field existed, and
|
|
235
|
+
hand-rolled defs that decline to say. Distinct from `Some("fallback")`, which
|
|
236
|
+
is this side stating that it looked. js_nullable for the same JSON-safety
|
|
237
|
+
reason as `statusField`.
|
|
238
|
+
*/
|
|
239
|
+
labelFieldSource: @s.matches(stringOptionSchema) option<string>,
|
|
240
|
+
/**
|
|
221
241
|
Name of the state field whose value identifies the row's lifecycle status, used
|
|
222
242
|
by AutoUI together with `commandDef.allowedStates` to filter the per-row command
|
|
223
243
|
menu. Resolution order (codegen): (1) field annotated `@status`; (2) a field
|
|
@@ -114,6 +114,7 @@ let queryableDefSchema = S.schema(s => ({
|
|
|
114
114
|
linkedWriteSide: s.m(S.array(S.string)),
|
|
115
115
|
labelField: s.m(S.string),
|
|
116
116
|
searchableFields: s.m(S.array(S.string)),
|
|
117
|
+
labelFieldSource: s.m(stringOptionSchema),
|
|
117
118
|
statusField: s.m(stringOptionSchema),
|
|
118
119
|
visibility: s.m(stringOptionSchema),
|
|
119
120
|
chapter: s.m(stringOptionSchema)
|