@metaobjectsdev/cli 0.15.19 → 0.15.20
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/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +62 -27
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/lib/payload-field-tree.d.ts +4 -2
- package/dist/src/lib/payload-field-tree.d.ts.map +1 -1
- package/dist/src/lib/payload-field-tree.js +17 -10
- package/dist/src/lib/payload-field-tree.js.map +1 -1
- package/package.json +10 -10
- package/src/commands/verify.ts +62 -27
- package/src/lib/payload-field-tree.ts +17 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"AAuDA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6ThF"}
|
|
@@ -20,7 +20,7 @@ import { buildKyselyFromUrl } from "../lib/kysely.js";
|
|
|
20
20
|
import { tokensToAllowOptions, describeChange } from "../lib/allow.js";
|
|
21
21
|
import { computeDrift } from "@metaobjectsdev/migrate-ts";
|
|
22
22
|
import { loadMemory } from "@metaobjectsdev/sdk";
|
|
23
|
-
import { TYPE_TEMPLATE, TEMPLATE_SUBTYPE_PROMPT, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_TEXT_REF, TEMPLATE_ATTR_REQUIRED_SLOTS, TEMPLATE_ATTR_REQUIRED_TAGS, } from "@metaobjectsdev/metadata";
|
|
23
|
+
import { TYPE_TEMPLATE, TEMPLATE_SUBTYPE_PROMPT, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_TEXT_REF, TEMPLATE_ATTR_REQUIRED_SLOTS, TEMPLATE_ATTR_REQUIRED_TAGS, TEMPLATE_ATTR_KIND, TEMPLATE_KIND_EMAIL, TEMPLATE_KIND_DEFAULT, TEMPLATE_ATTR_SUBJECT_REF, TEMPLATE_ATTR_HTML_BODY_REF, TEMPLATE_ATTR_TEXT_BODY_REF, } from "@metaobjectsdev/metadata";
|
|
24
24
|
import { verify, ERR_REQUIRED_SLOT_UNUSED, ERR_PARTIAL_UNRESOLVED } from "@metaobjectsdev/render";
|
|
25
25
|
const DEFAULT_PROMPTS_DIR = "prompts";
|
|
26
26
|
// Loader error code (from @metaobjectsdev/metadata's ERROR_CODES) raised by the
|
|
@@ -146,56 +146,91 @@ export async function verifyCommand(args, cwd) {
|
|
|
146
146
|
let warnCount = 0;
|
|
147
147
|
let checked = 0;
|
|
148
148
|
for (const tmpl of templates) {
|
|
149
|
-
// ADR-0039: effective attrs — @
|
|
150
|
-
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
149
|
+
// ADR-0039: effective attrs — @payloadRef may be inherited via an abstract template.
|
|
151
150
|
const payloadRef = tmpl.attr(TEMPLATE_ATTR_PAYLOAD_REF);
|
|
152
|
-
//
|
|
153
|
-
|
|
151
|
+
// A typeless/absent @payloadRef is a loader-schema concern, not verify's. Every
|
|
152
|
+
// renderable template needs it (do NOT gate on @textRef — an @kind=email output
|
|
153
|
+
// has no @textRef, and gating on it silently skipped email drift; #193).
|
|
154
|
+
if (typeof payloadRef !== "string")
|
|
154
155
|
continue;
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
const fieldTree = derivePayloadFieldTree(root, payloadRef);
|
|
156
|
+
// @payloadRef must resolve to a loaded object.value (drives the field tree
|
|
157
|
+
// every render-engine drift check runs against).
|
|
158
|
+
const fieldTree = derivePayloadFieldTree(root, payloadRef, tmpl.package ?? tmpl.fileDefaultPackage ?? "");
|
|
159
159
|
if (fieldTree.length === 0) {
|
|
160
160
|
log.error(`[${tmpl.name}] (${tmpl.subType}) ${ERR_PARTIAL_UNRESOLVED}: ` +
|
|
161
161
|
`@payloadRef "${payloadRef}" did not resolve to a loaded object.value`);
|
|
162
162
|
errorCount++;
|
|
163
163
|
continue;
|
|
164
164
|
}
|
|
165
|
+
// Collect every renderable mustache ref for this template + whether the
|
|
166
|
+
// prompt-only @requiredSlots/@requiredTags rules apply — mirroring the
|
|
167
|
+
// gen-time render-helper drift gate so `verify` and `gen` agree (#193):
|
|
168
|
+
// template.prompt → the single @textRef (WITH required slots/tags).
|
|
169
|
+
// template.output document (default) → the @textRef body.
|
|
170
|
+
// template.output @kind=email → @subjectRef + @htmlBodyRef + optional @textBodyRef.
|
|
171
|
+
let refs = [];
|
|
172
|
+
let promptRules = false;
|
|
165
173
|
if (tmpl.subType === TEMPLATE_SUBTYPE_PROMPT) {
|
|
166
|
-
//
|
|
167
|
-
const
|
|
174
|
+
// ADR-0039: effective attrs — @textRef may be inherited via an abstract template.
|
|
175
|
+
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
176
|
+
if (typeof textRef === "string")
|
|
177
|
+
refs = [{ label: "prompt", ref: textRef }];
|
|
178
|
+
promptRules = true;
|
|
179
|
+
}
|
|
180
|
+
else if (tmpl.subType === TEMPLATE_SUBTYPE_OUTPUT) {
|
|
181
|
+
// ADR-0039: effective attrs — @kind / part refs may be inherited via an abstract template.
|
|
182
|
+
const kind = (tmpl.attr(TEMPLATE_ATTR_KIND) ?? TEMPLATE_KIND_DEFAULT).toLowerCase();
|
|
183
|
+
if (kind === TEMPLATE_KIND_EMAIL) {
|
|
184
|
+
const subjectRef = tmpl.attr(TEMPLATE_ATTR_SUBJECT_REF);
|
|
185
|
+
const htmlBodyRef = tmpl.attr(TEMPLATE_ATTR_HTML_BODY_REF);
|
|
186
|
+
const textBodyRef = tmpl.attr(TEMPLATE_ATTR_TEXT_BODY_REF);
|
|
187
|
+
if (typeof subjectRef === "string")
|
|
188
|
+
refs.push({ label: "email/subject", ref: subjectRef });
|
|
189
|
+
if (typeof htmlBodyRef === "string")
|
|
190
|
+
refs.push({ label: "email/html", ref: htmlBodyRef });
|
|
191
|
+
if (typeof textBodyRef === "string")
|
|
192
|
+
refs.push({ label: "email/text", ref: textBodyRef });
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
196
|
+
if (typeof textRef === "string")
|
|
197
|
+
refs = [{ label: "document", ref: textRef }];
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
continue; // unknown subtype — loader-schema concern.
|
|
202
|
+
}
|
|
203
|
+
// No renderable body ref present — absent required refs are a loader-schema
|
|
204
|
+
// concern, not verify's (mirrors the pre-#193 behavior for a bodyless template).
|
|
205
|
+
if (refs.length === 0)
|
|
206
|
+
continue;
|
|
207
|
+
// Slot/tag requirements are a template.prompt concept; the render-helper's
|
|
208
|
+
// email/document gate does NOT apply them per part (they would false-flag a
|
|
209
|
+
// slot as unused in each part). So only the prompt path carries them.
|
|
210
|
+
// ADR-0039: effective attrs — @requiredSlots/@requiredTags may be inherited.
|
|
211
|
+
const requiredSlots = promptRules ? attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_SLOTS)) : [];
|
|
212
|
+
const requiredTags = promptRules ? attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_TAGS)) : [];
|
|
213
|
+
for (const { label, ref } of refs) {
|
|
214
|
+
// Render-engine drift check: mustache variables ↔ payload field names.
|
|
215
|
+
const text = provider.resolve(ref);
|
|
168
216
|
if (text === undefined) {
|
|
169
|
-
log.error(`[${tmpl.name}] (
|
|
217
|
+
log.error(`[${tmpl.name}] (${label}) ${ERR_PARTIAL_UNRESOLVED}: ref "${ref}" did not resolve under ${promptsDir}`);
|
|
170
218
|
errorCount++;
|
|
171
219
|
continue;
|
|
172
220
|
}
|
|
173
|
-
// ADR-0039: effective attrs — @requiredSlots/@requiredTags may be inherited via an abstract template.
|
|
174
|
-
const requiredSlots = attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_SLOTS));
|
|
175
|
-
const requiredTags = attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_TAGS));
|
|
176
221
|
const drift = verify(text, fieldTree, { provider, requiredSlots, requiredTags });
|
|
177
222
|
checked++;
|
|
178
223
|
for (const e of drift) {
|
|
179
224
|
if (e.code === ERR_REQUIRED_SLOT_UNUSED) {
|
|
180
|
-
log.warn(`[${tmpl.name}] (
|
|
225
|
+
log.warn(`[${tmpl.name}] (${label}) ${e.code}: ${e.path}`);
|
|
181
226
|
warnCount++;
|
|
182
227
|
}
|
|
183
228
|
else {
|
|
184
|
-
log.error(`[${tmpl.name}] (
|
|
229
|
+
log.error(`[${tmpl.name}] (${label}) ${e.code}: ${e.path}`);
|
|
185
230
|
errorCount++;
|
|
186
231
|
}
|
|
187
232
|
}
|
|
188
233
|
}
|
|
189
|
-
else if (tmpl.subType === TEMPLATE_SUBTYPE_OUTPUT) {
|
|
190
|
-
// Output drift check: re-derive the payload field tree (already done above);
|
|
191
|
-
// if it resolved, the parser codegen can produce a schema. Field-type
|
|
192
|
-
// unsupported-by-Zod issues are caught by the codegen itself if/when
|
|
193
|
-
// `meta gen` runs; verify confines itself to ref-resolution checks.
|
|
194
|
-
checked++;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
// Unknown subtype — ignore (loader-schema concern).
|
|
198
|
-
}
|
|
199
234
|
}
|
|
200
235
|
if (errorCount > 0) {
|
|
201
236
|
log.error(`meta verify — ${errorCount} drift error(s) across ${templates.length} template(s).`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import type { PayloadField } from "@metaobjectsdev/render";
|
|
|
3
3
|
/**
|
|
4
4
|
* Walk an `object.value` view-object into a render `PayloadField[]`. Object-ref
|
|
5
5
|
* fields recurse into their referenced view-object; a `seen` set guards against
|
|
6
|
-
* a (pathological) reference cycle.
|
|
6
|
+
* a (pathological) reference cycle. `referrerPkg` (ADR-0042) is the package of
|
|
7
|
+
* the node that declares `voName` (the template for the root call; the parent VO
|
|
8
|
+
* for a nested recursion), so a bare ref resolves package-locally.
|
|
7
9
|
*/
|
|
8
|
-
export declare function derivePayloadFieldTree(root: MetaData, voName: string, seen?: ReadonlySet<string>): PayloadField[];
|
|
10
|
+
export declare function derivePayloadFieldTree(root: MetaData, voName: string, referrerPkg?: string, seen?: ReadonlySet<string>): PayloadField[];
|
|
9
11
|
//# sourceMappingURL=payload-field-tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-field-tree.d.ts","sourceRoot":"","sources":["../../../src/lib/payload-field-tree.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"payload-field-tree.d.ts","sourceRoot":"","sources":["../../../src/lib/payload-field-tree.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,QAAQ,EAKd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAU3D;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,WAAW,SAAK,EAChB,IAAI,GAAE,WAAW,CAAC,MAAM,CAAa,GACpC,YAAY,EAAE,CAuBhB"}
|
|
@@ -4,25 +4,31 @@
|
|
|
4
4
|
// PayloadField[] (no metadata import), and this function produces it by walking
|
|
5
5
|
// the view-object exactly as payload-codegen.ts does — scalars become leaves,
|
|
6
6
|
// `field.object` with an `@objectRef` becomes a nested tree.
|
|
7
|
-
import {
|
|
8
|
-
function findObject(root, name) {
|
|
7
|
+
import { TYPE_FIELD, FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, resolveObjectRef, } from "@metaobjectsdev/metadata";
|
|
8
|
+
function findObject(root, name, referrerPkg) {
|
|
9
9
|
// ADR-0039: effective children — resolve rather than rely on root being unextended.
|
|
10
|
-
// ADR-
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
return root
|
|
10
|
+
// ADR-0042: package-local — an FQN @objectRef binds the exact package; a bare ref
|
|
11
|
+
// binds the referrer's package FIRST (else root-level), never a same-named object.value
|
|
12
|
+
// in another package. The SAME resolver render-helper.ts's findObject uses (must not drift).
|
|
13
|
+
return resolveObjectRef(root, name, referrerPkg).node;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Walk an `object.value` view-object into a render `PayloadField[]`. Object-ref
|
|
17
17
|
* fields recurse into their referenced view-object; a `seen` set guards against
|
|
18
|
-
* a (pathological) reference cycle.
|
|
18
|
+
* a (pathological) reference cycle. `referrerPkg` (ADR-0042) is the package of
|
|
19
|
+
* the node that declares `voName` (the template for the root call; the parent VO
|
|
20
|
+
* for a nested recursion), so a bare ref resolves package-locally.
|
|
19
21
|
*/
|
|
20
|
-
export function derivePayloadFieldTree(root, voName, seen = new Set()) {
|
|
22
|
+
export function derivePayloadFieldTree(root, voName, referrerPkg = "", seen = new Set()) {
|
|
21
23
|
if (seen.has(voName))
|
|
22
24
|
return [];
|
|
23
|
-
const vo = findObject(root, voName);
|
|
25
|
+
const vo = findObject(root, voName, referrerPkg);
|
|
24
26
|
if (!vo)
|
|
25
27
|
return [];
|
|
28
|
+
// A nested @objectRef resolves in the FIELD's own declaring package (fallback
|
|
29
|
+
// below), which differs from this VO's when the field is inherited via extends
|
|
30
|
+
// from an abstract VO in another package (the bare ref was authored there).
|
|
31
|
+
const voPkg = vo.package ?? vo.fileDefaultPackage ?? "";
|
|
26
32
|
const nextSeen = new Set(seen).add(voName);
|
|
27
33
|
const fields = [];
|
|
28
34
|
for (const f of vo.children().filter((c) => c.type === TYPE_FIELD)) {
|
|
@@ -30,7 +36,8 @@ export function derivePayloadFieldTree(root, voName, seen = new Set()) {
|
|
|
30
36
|
// ADR-0039: effective attr — @objectRef may be inherited via extends.
|
|
31
37
|
const ref = f.attr(FIELD_ATTR_OBJECT_REF);
|
|
32
38
|
if (typeof ref === "string") {
|
|
33
|
-
|
|
39
|
+
const fieldPkg = f.parent?.package ?? f.parent?.fileDefaultPackage ?? voPkg;
|
|
40
|
+
fields.push({ name: f.name, fields: derivePayloadFieldTree(root, ref, fieldPkg, nextSeen) });
|
|
34
41
|
continue;
|
|
35
42
|
}
|
|
36
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-field-tree.js","sourceRoot":"","sources":["../../../src/lib/payload-field-tree.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,6DAA6D;AAE7D,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"payload-field-tree.js","sourceRoot":"","sources":["../../../src/lib/payload-field-tree.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,6DAA6D;AAE7D,OAAO,EAEL,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY,EAAE,WAAmB;IACnE,oFAAoF;IACpF,kFAAkF;IAClF,wFAAwF;IACxF,6FAA6F;IAC7F,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAc,EACd,MAAc,EACd,WAAW,GAAG,EAAE,EAChB,OAA4B,IAAI,GAAG,EAAE;IAErC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACvC,sEAAsE;YACtE,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,IAAI,KAAK,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7F,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/cli",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.20",
|
|
4
4
|
"description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|
|
@@ -49,15 +49,15 @@
|
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@libsql/kysely-libsql": "^0.4.0",
|
|
52
|
-
"@metaobjectsdev/codegen-ts": "0.15.
|
|
53
|
-
"@metaobjectsdev/codegen-ts-react": "0.15.
|
|
54
|
-
"@metaobjectsdev/codegen-ts-tanstack": "0.15.
|
|
55
|
-
"@metaobjectsdev/docs-site": "0.15.
|
|
56
|
-
"@metaobjectsdev/metadata": "0.15.
|
|
57
|
-
"@metaobjectsdev/migrate-ts": "0.15.
|
|
58
|
-
"@metaobjectsdev/render": "0.15.
|
|
59
|
-
"@metaobjectsdev/runtime-ts": "0.15.
|
|
60
|
-
"@metaobjectsdev/sdk": "0.15.
|
|
52
|
+
"@metaobjectsdev/codegen-ts": "0.15.20",
|
|
53
|
+
"@metaobjectsdev/codegen-ts-react": "0.15.20",
|
|
54
|
+
"@metaobjectsdev/codegen-ts-tanstack": "0.15.20",
|
|
55
|
+
"@metaobjectsdev/docs-site": "0.15.20",
|
|
56
|
+
"@metaobjectsdev/metadata": "0.15.20",
|
|
57
|
+
"@metaobjectsdev/migrate-ts": "0.15.20",
|
|
58
|
+
"@metaobjectsdev/render": "0.15.20",
|
|
59
|
+
"@metaobjectsdev/runtime-ts": "0.15.20",
|
|
60
|
+
"@metaobjectsdev/sdk": "0.15.20",
|
|
61
61
|
"@toon-format/toon": "^2.3.0",
|
|
62
62
|
"jiti": "^2.4.0"
|
|
63
63
|
},
|
package/src/commands/verify.ts
CHANGED
|
@@ -30,6 +30,12 @@ import {
|
|
|
30
30
|
TEMPLATE_ATTR_TEXT_REF,
|
|
31
31
|
TEMPLATE_ATTR_REQUIRED_SLOTS,
|
|
32
32
|
TEMPLATE_ATTR_REQUIRED_TAGS,
|
|
33
|
+
TEMPLATE_ATTR_KIND,
|
|
34
|
+
TEMPLATE_KIND_EMAIL,
|
|
35
|
+
TEMPLATE_KIND_DEFAULT,
|
|
36
|
+
TEMPLATE_ATTR_SUBJECT_REF,
|
|
37
|
+
TEMPLATE_ATTR_HTML_BODY_REF,
|
|
38
|
+
TEMPLATE_ATTR_TEXT_BODY_REF,
|
|
33
39
|
} from "@metaobjectsdev/metadata";
|
|
34
40
|
import { verify, ERR_REQUIRED_SLOT_UNUSED, ERR_PARTIAL_UNRESOLVED } from "@metaobjectsdev/render";
|
|
35
41
|
|
|
@@ -168,16 +174,16 @@ export async function verifyCommand(args: string[], cwd: string): Promise<number
|
|
|
168
174
|
let checked = 0;
|
|
169
175
|
|
|
170
176
|
for (const tmpl of templates) {
|
|
171
|
-
// ADR-0039: effective attrs — @
|
|
172
|
-
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
177
|
+
// ADR-0039: effective attrs — @payloadRef may be inherited via an abstract template.
|
|
173
178
|
const payloadRef = tmpl.attr(TEMPLATE_ATTR_PAYLOAD_REF);
|
|
174
|
-
//
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
//
|
|
180
|
-
|
|
179
|
+
// A typeless/absent @payloadRef is a loader-schema concern, not verify's. Every
|
|
180
|
+
// renderable template needs it (do NOT gate on @textRef — an @kind=email output
|
|
181
|
+
// has no @textRef, and gating on it silently skipped email drift; #193).
|
|
182
|
+
if (typeof payloadRef !== "string") continue;
|
|
183
|
+
|
|
184
|
+
// @payloadRef must resolve to a loaded object.value (drives the field tree
|
|
185
|
+
// every render-engine drift check runs against).
|
|
186
|
+
const fieldTree = derivePayloadFieldTree(root, payloadRef, tmpl.package ?? tmpl.fileDefaultPackage ?? "");
|
|
181
187
|
if (fieldTree.length === 0) {
|
|
182
188
|
log.error(
|
|
183
189
|
`[${tmpl.name}] (${tmpl.subType}) ${ERR_PARTIAL_UNRESOLVED}: ` +
|
|
@@ -187,40 +193,69 @@ export async function verifyCommand(args: string[], cwd: string): Promise<number
|
|
|
187
193
|
continue;
|
|
188
194
|
}
|
|
189
195
|
|
|
196
|
+
// Collect every renderable mustache ref for this template + whether the
|
|
197
|
+
// prompt-only @requiredSlots/@requiredTags rules apply — mirroring the
|
|
198
|
+
// gen-time render-helper drift gate so `verify` and `gen` agree (#193):
|
|
199
|
+
// template.prompt → the single @textRef (WITH required slots/tags).
|
|
200
|
+
// template.output document (default) → the @textRef body.
|
|
201
|
+
// template.output @kind=email → @subjectRef + @htmlBodyRef + optional @textBodyRef.
|
|
202
|
+
let refs: { label: string; ref: string }[] = [];
|
|
203
|
+
let promptRules = false;
|
|
190
204
|
if (tmpl.subType === TEMPLATE_SUBTYPE_PROMPT) {
|
|
191
|
-
//
|
|
192
|
-
const
|
|
205
|
+
// ADR-0039: effective attrs — @textRef may be inherited via an abstract template.
|
|
206
|
+
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
207
|
+
if (typeof textRef === "string") refs = [{ label: "prompt", ref: textRef }];
|
|
208
|
+
promptRules = true;
|
|
209
|
+
} else if (tmpl.subType === TEMPLATE_SUBTYPE_OUTPUT) {
|
|
210
|
+
// ADR-0039: effective attrs — @kind / part refs may be inherited via an abstract template.
|
|
211
|
+
const kind = ((tmpl.attr(TEMPLATE_ATTR_KIND) as string | undefined) ?? TEMPLATE_KIND_DEFAULT).toLowerCase();
|
|
212
|
+
if (kind === TEMPLATE_KIND_EMAIL) {
|
|
213
|
+
const subjectRef = tmpl.attr(TEMPLATE_ATTR_SUBJECT_REF);
|
|
214
|
+
const htmlBodyRef = tmpl.attr(TEMPLATE_ATTR_HTML_BODY_REF);
|
|
215
|
+
const textBodyRef = tmpl.attr(TEMPLATE_ATTR_TEXT_BODY_REF);
|
|
216
|
+
if (typeof subjectRef === "string") refs.push({ label: "email/subject", ref: subjectRef });
|
|
217
|
+
if (typeof htmlBodyRef === "string") refs.push({ label: "email/html", ref: htmlBodyRef });
|
|
218
|
+
if (typeof textBodyRef === "string") refs.push({ label: "email/text", ref: textBodyRef });
|
|
219
|
+
} else {
|
|
220
|
+
const textRef = tmpl.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
221
|
+
if (typeof textRef === "string") refs = [{ label: "document", ref: textRef }];
|
|
222
|
+
}
|
|
223
|
+
} else {
|
|
224
|
+
continue; // unknown subtype — loader-schema concern.
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// No renderable body ref present — absent required refs are a loader-schema
|
|
228
|
+
// concern, not verify's (mirrors the pre-#193 behavior for a bodyless template).
|
|
229
|
+
if (refs.length === 0) continue;
|
|
230
|
+
|
|
231
|
+
// Slot/tag requirements are a template.prompt concept; the render-helper's
|
|
232
|
+
// email/document gate does NOT apply them per part (they would false-flag a
|
|
233
|
+
// slot as unused in each part). So only the prompt path carries them.
|
|
234
|
+
// ADR-0039: effective attrs — @requiredSlots/@requiredTags may be inherited.
|
|
235
|
+
const requiredSlots = promptRules ? attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_SLOTS)) : [];
|
|
236
|
+
const requiredTags = promptRules ? attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_TAGS)) : [];
|
|
237
|
+
|
|
238
|
+
for (const { label, ref } of refs) {
|
|
239
|
+
// Render-engine drift check: mustache variables ↔ payload field names.
|
|
240
|
+
const text = provider.resolve(ref);
|
|
193
241
|
if (text === undefined) {
|
|
194
242
|
log.error(
|
|
195
|
-
`[${tmpl.name}] (
|
|
243
|
+
`[${tmpl.name}] (${label}) ${ERR_PARTIAL_UNRESOLVED}: ref "${ref}" did not resolve under ${promptsDir}`,
|
|
196
244
|
);
|
|
197
245
|
errorCount++;
|
|
198
246
|
continue;
|
|
199
247
|
}
|
|
200
|
-
|
|
201
|
-
// ADR-0039: effective attrs — @requiredSlots/@requiredTags may be inherited via an abstract template.
|
|
202
|
-
const requiredSlots = attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_SLOTS));
|
|
203
|
-
const requiredTags = attrAsStringArray(tmpl.attr(TEMPLATE_ATTR_REQUIRED_TAGS));
|
|
204
|
-
|
|
205
248
|
const drift = verify(text, fieldTree, { provider, requiredSlots, requiredTags });
|
|
206
249
|
checked++;
|
|
207
250
|
for (const e of drift) {
|
|
208
251
|
if (e.code === ERR_REQUIRED_SLOT_UNUSED) {
|
|
209
|
-
log.warn(`[${tmpl.name}] (
|
|
252
|
+
log.warn(`[${tmpl.name}] (${label}) ${e.code}: ${e.path}`);
|
|
210
253
|
warnCount++;
|
|
211
254
|
} else {
|
|
212
|
-
log.error(`[${tmpl.name}] (
|
|
255
|
+
log.error(`[${tmpl.name}] (${label}) ${e.code}: ${e.path}`);
|
|
213
256
|
errorCount++;
|
|
214
257
|
}
|
|
215
258
|
}
|
|
216
|
-
} else if (tmpl.subType === TEMPLATE_SUBTYPE_OUTPUT) {
|
|
217
|
-
// Output drift check: re-derive the payload field tree (already done above);
|
|
218
|
-
// if it resolved, the parser codegen can produce a schema. Field-type
|
|
219
|
-
// unsupported-by-Zod issues are caught by the codegen itself if/when
|
|
220
|
-
// `meta gen` runs; verify confines itself to ref-resolution checks.
|
|
221
|
-
checked++;
|
|
222
|
-
} else {
|
|
223
|
-
// Unknown subtype — ignore (loader-schema concern).
|
|
224
259
|
}
|
|
225
260
|
}
|
|
226
261
|
|
|
@@ -7,35 +7,41 @@
|
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
type MetaData,
|
|
10
|
-
TYPE_OBJECT,
|
|
11
10
|
TYPE_FIELD,
|
|
12
11
|
FIELD_SUBTYPE_OBJECT,
|
|
13
12
|
FIELD_ATTR_OBJECT_REF,
|
|
14
|
-
|
|
13
|
+
resolveObjectRef,
|
|
15
14
|
} from "@metaobjectsdev/metadata";
|
|
16
15
|
import type { PayloadField } from "@metaobjectsdev/render";
|
|
17
16
|
|
|
18
|
-
function findObject(root: MetaData, name: string): MetaData | undefined {
|
|
17
|
+
function findObject(root: MetaData, name: string, referrerPkg: string): MetaData | undefined {
|
|
19
18
|
// ADR-0039: effective children — resolve rather than rely on root being unextended.
|
|
20
|
-
// ADR-
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
return root
|
|
19
|
+
// ADR-0042: package-local — an FQN @objectRef binds the exact package; a bare ref
|
|
20
|
+
// binds the referrer's package FIRST (else root-level), never a same-named object.value
|
|
21
|
+
// in another package. The SAME resolver render-helper.ts's findObject uses (must not drift).
|
|
22
|
+
return resolveObjectRef(root, name, referrerPkg).node;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
/**
|
|
27
26
|
* Walk an `object.value` view-object into a render `PayloadField[]`. Object-ref
|
|
28
27
|
* fields recurse into their referenced view-object; a `seen` set guards against
|
|
29
|
-
* a (pathological) reference cycle.
|
|
28
|
+
* a (pathological) reference cycle. `referrerPkg` (ADR-0042) is the package of
|
|
29
|
+
* the node that declares `voName` (the template for the root call; the parent VO
|
|
30
|
+
* for a nested recursion), so a bare ref resolves package-locally.
|
|
30
31
|
*/
|
|
31
32
|
export function derivePayloadFieldTree(
|
|
32
33
|
root: MetaData,
|
|
33
34
|
voName: string,
|
|
35
|
+
referrerPkg = "",
|
|
34
36
|
seen: ReadonlySet<string> = new Set(),
|
|
35
37
|
): PayloadField[] {
|
|
36
38
|
if (seen.has(voName)) return [];
|
|
37
|
-
const vo = findObject(root, voName);
|
|
39
|
+
const vo = findObject(root, voName, referrerPkg);
|
|
38
40
|
if (!vo) return [];
|
|
41
|
+
// A nested @objectRef resolves in the FIELD's own declaring package (fallback
|
|
42
|
+
// below), which differs from this VO's when the field is inherited via extends
|
|
43
|
+
// from an abstract VO in another package (the bare ref was authored there).
|
|
44
|
+
const voPkg = vo.package ?? vo.fileDefaultPackage ?? "";
|
|
39
45
|
const nextSeen = new Set(seen).add(voName);
|
|
40
46
|
const fields: PayloadField[] = [];
|
|
41
47
|
for (const f of vo.children().filter((c) => c.type === TYPE_FIELD)) {
|
|
@@ -43,7 +49,8 @@ export function derivePayloadFieldTree(
|
|
|
43
49
|
// ADR-0039: effective attr — @objectRef may be inherited via extends.
|
|
44
50
|
const ref = f.attr(FIELD_ATTR_OBJECT_REF);
|
|
45
51
|
if (typeof ref === "string") {
|
|
46
|
-
|
|
52
|
+
const fieldPkg = f.parent?.package ?? f.parent?.fileDefaultPackage ?? voPkg;
|
|
53
|
+
fields.push({ name: f.name, fields: derivePayloadFieldTree(root, ref, fieldPkg, nextSeen) });
|
|
47
54
|
continue;
|
|
48
55
|
}
|
|
49
56
|
}
|