@metaobjectsdev/codegen-ts 0.23.2 → 0.24.1
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/generator.d.ts +9 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js.map +1 -1
- package/dist/generators/api-field-shape.js +1 -1
- package/dist/generators/api-field-shape.js.map +1 -1
- package/dist/generators/api-model.d.ts.map +1 -1
- package/dist/generators/api-model.js +71 -42
- package/dist/generators/api-model.js.map +1 -1
- package/dist/generators/docs-data-builder.d.ts.map +1 -1
- package/dist/generators/docs-data-builder.js +36 -1
- package/dist/generators/docs-data-builder.js.map +1 -1
- package/dist/generators/docs-data.d.ts +14 -0
- package/dist/generators/docs-data.d.ts.map +1 -1
- package/dist/generators/docs-file.d.ts.map +1 -1
- package/dist/generators/docs-file.js +13 -4
- package/dist/generators/docs-file.js.map +1 -1
- package/dist/generators/extractor-file.d.ts.map +1 -1
- package/dist/generators/extractor-file.js +7 -11
- package/dist/generators/extractor-file.js.map +1 -1
- package/dist/generators/index.d.ts +4 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +5 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/output-parser-file.d.ts.map +1 -1
- package/dist/generators/output-parser-file.js +12 -7
- package/dist/generators/output-parser-file.js.map +1 -1
- package/dist/generators/output-prompt-file.d.ts.map +1 -1
- package/dist/generators/output-prompt-file.js +14 -24
- package/dist/generators/output-prompt-file.js.map +1 -1
- package/dist/generators/requirement-tests.d.ts +44 -0
- package/dist/generators/requirement-tests.d.ts.map +1 -0
- package/dist/generators/requirement-tests.js +127 -0
- package/dist/generators/requirement-tests.js.map +1 -0
- package/dist/generators/requirements-file.d.ts +9 -0
- package/dist/generators/requirements-file.d.ts.map +1 -0
- package/dist/generators/requirements-file.js +53 -0
- package/dist/generators/requirements-file.js.map +1 -0
- package/dist/generators/requirements-markdown.d.ts +10 -0
- package/dist/generators/requirements-markdown.d.ts.map +1 -0
- package/dist/generators/requirements-markdown.js +71 -0
- package/dist/generators/requirements-markdown.js.map +1 -0
- package/dist/generators/requirements-toon.d.ts +3 -0
- package/dist/generators/requirements-toon.d.ts.map +1 -0
- package/dist/generators/requirements-toon.js +47 -0
- package/dist/generators/requirements-toon.js.map +1 -0
- package/dist/generators/requirements-view.d.ts +32 -0
- package/dist/generators/requirements-view.d.ts.map +1 -0
- package/dist/generators/requirements-view.js +64 -0
- package/dist/generators/requirements-view.js.map +1 -0
- package/dist/generators/trace-helper-file.d.ts.map +1 -1
- package/dist/generators/trace-helper-file.js +19 -11
- package/dist/generators/trace-helper-file.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/metaobjects-config.d.ts +12 -20
- package/dist/metaobjects-config.d.ts.map +1 -1
- package/dist/metaobjects-config.js +5 -1
- package/dist/metaobjects-config.js.map +1 -1
- package/dist/orphan-sweep.d.ts +38 -0
- package/dist/orphan-sweep.d.ts.map +1 -0
- package/dist/orphan-sweep.js +129 -0
- package/dist/orphan-sweep.js.map +1 -0
- package/dist/overwrite-policy.d.ts +97 -3
- package/dist/overwrite-policy.d.ts.map +1 -1
- package/dist/overwrite-policy.js +293 -81
- package/dist/overwrite-policy.js.map +1 -1
- package/dist/projection/build-projection-views.d.ts +8 -0
- package/dist/projection/build-projection-views.d.ts.map +1 -1
- package/dist/projection/build-projection-views.js +7 -4
- package/dist/projection/build-projection-views.js.map +1 -1
- package/dist/projection/extract-view-spec.d.ts.map +1 -1
- package/dist/projection/extract-view-spec.js +70 -4
- package/dist/projection/extract-view-spec.js.map +1 -1
- package/dist/projection/view-ddl-emit.d.ts.map +1 -1
- package/dist/projection/view-ddl-emit.js +52 -0
- package/dist/projection/view-ddl-emit.js.map +1 -1
- package/dist/projection/view-spec.d.ts +15 -0
- package/dist/projection/view-spec.d.ts.map +1 -1
- package/dist/reconcile-orphans.d.ts +80 -0
- package/dist/reconcile-orphans.d.ts.map +1 -0
- package/dist/reconcile-orphans.js +61 -0
- package/dist/reconcile-orphans.js.map +1 -0
- package/dist/render-engine/embedded-templates.generated.js +1 -1
- package/dist/render-engine/embedded-templates.generated.js.map +1 -1
- package/dist/requirement-walk.d.ts +57 -0
- package/dist/requirement-walk.d.ts.map +1 -0
- package/dist/requirement-walk.js +94 -0
- package/dist/requirement-walk.js.map +1 -0
- package/dist/runner.d.ts +35 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +217 -21
- package/dist/runner.js.map +1 -1
- package/dist/templates/extractor.d.ts +4 -4
- package/dist/templates/extractor.d.ts.map +1 -1
- package/dist/templates/extractor.js +18 -22
- package/dist/templates/extractor.js.map +1 -1
- package/dist/templates/find-inbound.d.ts +44 -0
- package/dist/templates/find-inbound.d.ts.map +1 -0
- package/dist/templates/find-inbound.js +69 -0
- package/dist/templates/find-inbound.js.map +1 -0
- package/dist/templates/inferred-types.d.ts.map +1 -1
- package/dist/templates/inferred-types.js +8 -4
- package/dist/templates/inferred-types.js.map +1 -1
- package/dist/templates/output-format-spec-emitter.d.ts.map +1 -1
- package/dist/templates/output-format-spec-emitter.js +7 -4
- package/dist/templates/output-format-spec-emitter.js.map +1 -1
- package/dist/templates/output-parser.d.ts +8 -3
- package/dist/templates/output-parser.d.ts.map +1 -1
- package/dist/templates/output-parser.js +71 -31
- package/dist/templates/output-parser.js.map +1 -1
- package/dist/templates/output-prompt.d.ts +6 -5
- package/dist/templates/output-prompt.d.ts.map +1 -1
- package/dist/templates/output-prompt.js +26 -37
- package/dist/templates/output-prompt.js.map +1 -1
- package/dist/templates/queries.js +1 -1
- package/dist/templates/queries.js.map +1 -1
- package/dist/templates/requirement-test.d.ts +12 -0
- package/dist/templates/requirement-test.d.ts.map +1 -0
- package/dist/templates/requirement-test.js +120 -0
- package/dist/templates/requirement-test.js.map +1 -0
- package/dist/templates/zod-validators.d.ts.map +1 -1
- package/dist/templates/zod-validators.js +32 -15
- package/dist/templates/zod-validators.js.map +1 -1
- package/package.json +9 -8
- package/src/generator.ts +9 -0
- package/src/generators/api-field-shape.ts +1 -1
- package/src/generators/api-model.ts +69 -44
- package/src/generators/docs-data-builder.ts +37 -0
- package/src/generators/docs-data.ts +15 -0
- package/src/generators/docs-file.ts +13 -4
- package/src/generators/extractor-file.ts +7 -11
- package/src/generators/index.ts +11 -0
- package/src/generators/output-parser-file.ts +12 -7
- package/src/generators/output-prompt-file.ts +14 -27
- package/src/generators/requirement-tests.ts +203 -0
- package/src/generators/requirements-file.ts +71 -0
- package/src/generators/requirements-markdown.ts +72 -0
- package/src/generators/requirements-toon.ts +64 -0
- package/src/generators/requirements-view.ts +93 -0
- package/src/generators/trace-helper-file.ts +20 -10
- package/src/index.ts +47 -1
- package/src/metaobjects-config.ts +17 -22
- package/src/orphan-sweep.ts +178 -0
- package/src/overwrite-policy.ts +362 -89
- package/src/projection/build-projection-views.ts +15 -4
- package/src/projection/extract-view-spec.ts +62 -3
- package/src/projection/view-ddl-emit.ts +54 -0
- package/src/projection/view-spec.ts +25 -0
- package/src/reconcile-orphans.ts +136 -0
- package/src/reference/barrel.ts +4 -0
- package/src/reference/entity.ts +4 -0
- package/src/reference/queries.ts +4 -0
- package/src/reference/routes.ts +4 -0
- package/src/render-engine/embedded-templates.generated.ts +1 -1
- package/src/requirement-walk.ts +124 -0
- package/src/runner.ts +266 -27
- package/src/templates/extractor.ts +19 -24
- package/src/templates/find-inbound.ts +96 -0
- package/src/templates/inferred-types.ts +8 -4
- package/src/templates/output-format-spec-emitter.ts +7 -4
- package/src/templates/output-parser.ts +76 -34
- package/src/templates/output-prompt.ts +29 -42
- package/src/templates/queries.ts +1 -1
- package/src/templates/requirement-test.ts +140 -0
- package/src/templates/zod-validators.ts +32 -15
- package/templates/docs/entity-page.md.mustache +8 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// server/typescript/packages/codegen-ts/src/generators/requirements-markdown.ts
|
|
2
|
+
//
|
|
3
|
+
// The human-facing half of the `requirements` docs surface — shape A, one index page.
|
|
4
|
+
//
|
|
5
|
+
// Design: docs/superpowers/specs/2026-08-21-requirements-doc-surface-design.md §4, §5
|
|
6
|
+
//
|
|
7
|
+
// ONE PAGE, NOT ONE PER NODE. Shape B (a page per top-level requirement) was measured
|
|
8
|
+
// and dominated: 19 files and ~30.5K tokens against ~11.9K for the index, with one page
|
|
9
|
+
// at 86KB. An 86KB page is not a documentation page.
|
|
10
|
+
//
|
|
11
|
+
// NO TEST LINK IS RENDERED, under any input (§3). With `@verifiedBy` retired there is no
|
|
12
|
+
// join key, so there is nothing honest to print — and a derived path would read as MORE
|
|
13
|
+
// authoritative than an author-chosen string, not less. Silence here is consistent with
|
|
14
|
+
// five shipped statements that a requirement carrying no test link is a legitimate
|
|
15
|
+
// declared state; it is not a gap waiting to be filled by whoever notices it next.
|
|
16
|
+
//
|
|
17
|
+
// PROSE LIVES HERE, STRUCTURE LIVES IN THE TOON SIBLING. TOON quotes every comma-bearing
|
|
18
|
+
// string, so statements and violations dilute it badly. The split is not stylistic.
|
|
19
|
+
/** `##` for a root-level requirement, deepening with nesting. `#` is the page title. */
|
|
20
|
+
function heading(depth) {
|
|
21
|
+
return "#".repeat(Math.min(depth + 2, 6));
|
|
22
|
+
}
|
|
23
|
+
/** The one-line fact bar: the attrs that are scannable rather than readable. */
|
|
24
|
+
function facts(r) {
|
|
25
|
+
const parts = [`\`${r.subType}\``];
|
|
26
|
+
if (r.level !== undefined)
|
|
27
|
+
parts.push(`**L${r.level}**`);
|
|
28
|
+
if (r.status !== undefined)
|
|
29
|
+
parts.push(`status: \`${r.status}\``);
|
|
30
|
+
// Absent `@disposition` means UNDECIDED, which is a real state and not the same as
|
|
31
|
+
// "no gap" — so it is omitted rather than rendered as a default.
|
|
32
|
+
if (r.disposition !== undefined)
|
|
33
|
+
parts.push(`disposition: \`${r.disposition}\``);
|
|
34
|
+
if (r.trackedBy.length > 0)
|
|
35
|
+
parts.push(`tracked: ${r.trackedBy.join(", ")}`);
|
|
36
|
+
return parts.join(" · ");
|
|
37
|
+
}
|
|
38
|
+
function renderOne(r) {
|
|
39
|
+
const out = [`${heading(r.depth)} ${r.path}`, "", facts(r), ""];
|
|
40
|
+
if (r.statement !== undefined)
|
|
41
|
+
out.push(r.statement, "");
|
|
42
|
+
// The prescriptive pair. A requirement MUST be violable, so the counterexample is not
|
|
43
|
+
// decoration — it is what makes the statement checkable, and it reads beside it.
|
|
44
|
+
if (r.counterexample !== undefined)
|
|
45
|
+
out.push(`**Counterexample:** ${r.counterexample}`, "");
|
|
46
|
+
if (r.description !== undefined)
|
|
47
|
+
out.push(r.description, "");
|
|
48
|
+
if (r.implementedBy.length > 0) {
|
|
49
|
+
out.push(`**Implemented by:** ${r.implementedBy.map((c) => `\`${c}\``).join(", ")}`, "");
|
|
50
|
+
}
|
|
51
|
+
return out.join("\n");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Render the ledger as one markdown index.
|
|
55
|
+
*
|
|
56
|
+
* Returns the EMPTY STRING for an empty ledger rather than a headed-but-empty page.
|
|
57
|
+
* The generator keys on that to emit no file at all, which is in turn what lets the
|
|
58
|
+
* surface default to on without changing output for any project lacking a ledger.
|
|
59
|
+
*/
|
|
60
|
+
export function renderRequirementsMarkdown(rows) {
|
|
61
|
+
if (rows.length === 0)
|
|
62
|
+
return "";
|
|
63
|
+
return [
|
|
64
|
+
"# Requirements",
|
|
65
|
+
"",
|
|
66
|
+
`${rows.length} declared requirement${rows.length === 1 ? "" : "s"}, in declaration order.`,
|
|
67
|
+
"",
|
|
68
|
+
...rows.map(renderOne),
|
|
69
|
+
].join("\n");
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=requirements-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-markdown.js","sourceRoot":"","sources":["../../src/generators/requirements-markdown.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,sFAAsF;AACtF,EAAE;AACF,sFAAsF;AACtF,EAAE;AACF,sFAAsF;AACtF,wFAAwF;AACxF,qDAAqD;AACrD,EAAE;AACF,yFAAyF;AACzF,wFAAwF;AACxF,wFAAwF;AACxF,mFAAmF;AACnF,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,oFAAoF;AAIpF,wFAAwF;AACxF,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAChF,SAAS,KAAK,CAAC,CAAiB;IAC9B,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAClE,mFAAmF;IACnF,iEAAiE;IACjE,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;IACjF,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,CAAiB;IAClC,MAAM,GAAG,GAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE1E,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACzD,sFAAsF;IACtF,iFAAiF;IACjF,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAA+B;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,GAAG,IAAI,CAAC,MAAM,wBAAwB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,yBAAyB;QAC3F,EAAE;QACF,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-toon.d.ts","sourceRoot":"","sources":["../../src/generators/requirements-toon.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAsB7D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAgB9E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// server/typescript/packages/codegen-ts/src/generators/requirements-toon.ts
|
|
2
|
+
//
|
|
3
|
+
// The machine-facing half of the `requirements` docs surface.
|
|
4
|
+
//
|
|
5
|
+
// Design: docs/superpowers/specs/2026-08-21-requirements-doc-surface-design.md §5
|
|
6
|
+
//
|
|
7
|
+
// CHOSEN FOR THE DECLARED-COUNT HEADER, NOT THE TOKEN SAVING. Measured with this same
|
|
8
|
+
// encoder on 321 rows, TOON is 42.1% smaller than JSON but only 7.3% smaller than a
|
|
9
|
+
// markdown table — a table is already header-once, so compression is close to a
|
|
10
|
+
// non-argument. What it buys is the header:
|
|
11
|
+
//
|
|
12
|
+
// requirements[321]{path,level,status,claims,statement}:
|
|
13
|
+
//
|
|
14
|
+
// A reader can verify it received all 321 rows. A documentation generator that silently
|
|
15
|
+
// drops rows produces a document that looks complete and is not, and this is the one
|
|
16
|
+
// cheap defence against that.
|
|
17
|
+
//
|
|
18
|
+
// PROSE IS DELIBERATELY THIN HERE. TOON quotes every comma-bearing string, so statements
|
|
19
|
+
// dilute the format badly. The readable half lives in the markdown sibling; this file
|
|
20
|
+
// carries structure. That split is the reason both are emitted rather than one.
|
|
21
|
+
//
|
|
22
|
+
// `notes` NEVER APPEARS — RequirementRow does not carry it (documentation.json charters
|
|
23
|
+
// it internal-only). Nothing to strip, by construction.
|
|
24
|
+
import { encode } from "@toon-format/toon";
|
|
25
|
+
/** TOON is tabular: a field absent on one row and present on another breaks the uniform
|
|
26
|
+
* header. So every optional value collapses to "" rather than being omitted — an empty
|
|
27
|
+
* cell reads as absent without costing the header its shape. */
|
|
28
|
+
function cell(v) {
|
|
29
|
+
return v ?? "";
|
|
30
|
+
}
|
|
31
|
+
export function renderRequirementsToon(rows) {
|
|
32
|
+
if (rows.length === 0)
|
|
33
|
+
return "";
|
|
34
|
+
const table = rows.map((r) => ({
|
|
35
|
+
path: r.path,
|
|
36
|
+
subType: r.subType,
|
|
37
|
+
level: r.level ?? "",
|
|
38
|
+
status: cell(r.status),
|
|
39
|
+
disposition: cell(r.disposition),
|
|
40
|
+
// Joined rather than nested: a nested array per row would cost the tabular header,
|
|
41
|
+
// which is the entire reason this format was picked.
|
|
42
|
+
claims: r.implementedBy.join(" "),
|
|
43
|
+
statement: cell(r.statement),
|
|
44
|
+
}));
|
|
45
|
+
return encode({ requirements: table });
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=requirements-toon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-toon.js","sourceRoot":"","sources":["../../src/generators/requirements-toon.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,8DAA8D;AAC9D,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,sFAAsF;AACtF,oFAAoF;AACpF,gFAAgF;AAChF,4CAA4C;AAC5C,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,wFAAwF;AACxF,qFAAqF;AACrF,8BAA8B;AAC9B,EAAE;AACF,yFAAyF;AACzF,sFAAsF;AACtF,gFAAgF;AAChF,EAAE;AACF,wFAAwF;AACxF,wDAAwD;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgB3C;;iEAEiE;AACjE,SAAS,IAAI,CAAC,CAAqB;IACjC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA+B;IACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACtB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAChC,mFAAmF;QACnF,qDAAqD;QACrD,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QACjC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7B,CAAC,CAAC,CAAC;IAEJ,OAAO,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
2
|
+
/** One requirement, projected for rendering. Ordered depth-first, declaration order. */
|
|
3
|
+
export interface RequirementRow {
|
|
4
|
+
/** Dotted child-name path from the root — the same address every other node uses. */
|
|
5
|
+
readonly path: string;
|
|
6
|
+
/** 0 for a root-level requirement. Derived from `path`, so it cannot disagree with it. */
|
|
7
|
+
readonly depth: number;
|
|
8
|
+
/** "functional" | "architectural" — the check-polarity axis. */
|
|
9
|
+
readonly subType: string;
|
|
10
|
+
/** Undefined on an unlevelled architectural requirement (the flat policy form). */
|
|
11
|
+
readonly level: number | undefined;
|
|
12
|
+
readonly status: string | undefined;
|
|
13
|
+
readonly disposition: string | undefined;
|
|
14
|
+
readonly trackedBy: readonly string[];
|
|
15
|
+
readonly statement: string | undefined;
|
|
16
|
+
readonly counterexample: string | undefined;
|
|
17
|
+
/** Chartered user-facing. `notes` has no counterpart here, by design. */
|
|
18
|
+
readonly description: string | undefined;
|
|
19
|
+
/** `@implementedBy` exactly as authored — provenance a reader can grep for. */
|
|
20
|
+
readonly implementedBy: readonly string[];
|
|
21
|
+
/** DISTINCT `type.subType` concerns among the targets that actually resolved. */
|
|
22
|
+
readonly claimedConcerns: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Project every `requirement.*` node — nested ones included — into render-ready rows.
|
|
26
|
+
*
|
|
27
|
+
* Returns `[]` for a model declaring no requirements, which is what lets the surface
|
|
28
|
+
* emit NOTHING rather than an empty page, and is in turn what makes turning the surface
|
|
29
|
+
* on by default a no-op for every project without a ledger.
|
|
30
|
+
*/
|
|
31
|
+
export declare function requirementRows(root: MetaData): RequirementRow[];
|
|
32
|
+
//# sourceMappingURL=requirements-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-view.d.ts","sourceRoot":"","sources":["../../src/generators/requirements-view.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,iFAAiF;IACjF,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAYD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE,CAoBhE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// server/typescript/packages/codegen-ts/src/generators/requirements-view.ts
|
|
2
|
+
//
|
|
3
|
+
// The projected row the `requirements` docs surface renders from.
|
|
4
|
+
//
|
|
5
|
+
// Design: docs/superpowers/specs/2026-08-21-requirements-doc-surface-design.md
|
|
6
|
+
//
|
|
7
|
+
// PROJECTS OVER `walkRequirements()`, NEVER RE-WALKS. That walk already resolves the
|
|
8
|
+
// depth-first traversal, the dotted `path` (hierarchy IS nesting), and the
|
|
9
|
+
// `@implementedBy` targets, and it is what `requirementTests()` is built on. Sharing it
|
|
10
|
+
// means the doc view and the generated stubs agree about what the ledger contains by
|
|
11
|
+
// construction; two walks kept in step by hand is exactly the drift this surface exists
|
|
12
|
+
// to remove.
|
|
13
|
+
//
|
|
14
|
+
// `notes` IS DELIBERATELY ABSENT FROM THIS TYPE, not merely unread. `documentation.json`
|
|
15
|
+
// charters it internal-only, never emitted to a user-facing doc surface, and the
|
|
16
|
+
// original ask this design replaced wanted a "stripper" for precisely this. A renderer
|
|
17
|
+
// cannot leak a field the projection never carries — which is a stronger guarantee than
|
|
18
|
+
// asking every renderer to remember.
|
|
19
|
+
//
|
|
20
|
+
// RESOLVING ACCESSORS ONLY (ADR-0039). Every read below goes through MetaRequirement's
|
|
21
|
+
// resolving accessors or the resolving `attr()`, so a requirement that `extends` an
|
|
22
|
+
// abstract parent inherits its `@level` / `@status` / statement rather than projecting
|
|
23
|
+
// them as undefined. No `own*()` call belongs in this file.
|
|
24
|
+
import { DOC_ATTR_DESCRIPTION, REQUIREMENT_ATTR_STATEMENT, REQUIREMENT_ATTR_COUNTEREXAMPLE, } from "@metaobjectsdev/metadata";
|
|
25
|
+
import { walkRequirements } from "../requirement-walk.js";
|
|
26
|
+
/** Reads a resolving string attr, normalising "declared but empty" to undefined so a
|
|
27
|
+
* renderer has one absent-case to handle rather than two. */
|
|
28
|
+
function stringAttr(node, name) {
|
|
29
|
+
// `attr()` is the RESOLVING accessor in TypeScript (ADR-0039). Note the cross-port
|
|
30
|
+
// naming inversion this repo records: Python's `attr()` is own-only, TS's resolves.
|
|
31
|
+
const raw = node.attr(name);
|
|
32
|
+
if (typeof raw !== "string")
|
|
33
|
+
return undefined;
|
|
34
|
+
return raw.length > 0 ? raw : undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Project every `requirement.*` node — nested ones included — into render-ready rows.
|
|
38
|
+
*
|
|
39
|
+
* Returns `[]` for a model declaring no requirements, which is what lets the surface
|
|
40
|
+
* emit NOTHING rather than an empty page, and is in turn what makes turning the surface
|
|
41
|
+
* on by default a no-op for every project without a ledger.
|
|
42
|
+
*/
|
|
43
|
+
export function requirementRows(root) {
|
|
44
|
+
return walkRequirements(root).map((walked) => {
|
|
45
|
+
const { node, view, targets } = walked;
|
|
46
|
+
return {
|
|
47
|
+
path: view.path,
|
|
48
|
+
// Derived rather than threaded: a separately-tracked depth could drift from the
|
|
49
|
+
// path that renders beside it, and there is only one right answer.
|
|
50
|
+
depth: view.path.split(".").length - 1,
|
|
51
|
+
subType: view.subType,
|
|
52
|
+
level: view.level,
|
|
53
|
+
status: view.status,
|
|
54
|
+
disposition: node.disposition(),
|
|
55
|
+
trackedBy: node.trackedBy(),
|
|
56
|
+
statement: stringAttr(node, REQUIREMENT_ATTR_STATEMENT),
|
|
57
|
+
counterexample: stringAttr(node, REQUIREMENT_ATTR_COUNTEREXAMPLE),
|
|
58
|
+
description: stringAttr(node, DOC_ATTR_DESCRIPTION),
|
|
59
|
+
implementedBy: node.implementedBy(),
|
|
60
|
+
claimedConcerns: [...new Set(targets.map((t) => t.concern))],
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=requirements-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-view.js","sourceRoot":"","sources":["../../src/generators/requirements-view.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,kEAAkE;AAClE,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,qFAAqF;AACrF,2EAA2E;AAC3E,wFAAwF;AACxF,qFAAqF;AACrF,wFAAwF;AACxF,aAAa;AACb,EAAE;AACF,yFAAyF;AACzF,iFAAiF;AACjF,uFAAuF;AACvF,wFAAwF;AACxF,qCAAqC;AACrC,EAAE;AACF,uFAAuF;AACvF,oFAAoF;AACpF,uFAAuF;AACvF,4DAA4D;AAE5D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAyB1D;8DAC8D;AAC9D,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,mFAAmF;IACnF,oFAAoF;IACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,gFAAgF;YAChF,mEAAmE;YACnE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC;YACvD,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,+BAA+B,CAAC;YACjE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC;YACnD,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACnC,eAAe,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-helper-file.d.ts","sourceRoot":"","sources":["../../src/generators/trace-helper-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trace-helper-file.d.ts","sourceRoot":"","sources":["../../src/generators/trace-helper-file.ts"],"names":[],"mappings":"AA+BA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAQzB,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,eAAO,MAAM,eAAe,EA+PvB,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
//
|
|
17
17
|
// Consumer wiring (metaobjects.config.ts):
|
|
18
18
|
// generators: [..., entityFile(), queriesFile(), traceHelperFile(), barrel()]
|
|
19
|
-
import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_PROMPT, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_RESPONSE_REF, TEMPLATE_ATTR_FORMAT, TEMPLATE_ATTR_TEXT_REF, } from "@metaobjectsdev/metadata";
|
|
19
|
+
import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_PROMPT, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_RESPONSE_REF, TEMPLATE_ATTR_FORMAT, RESPONSE_FORMAT_XML, TEMPLATE_ATTR_TEXT_REF, } from "@metaobjectsdev/metadata";
|
|
20
|
+
import { responseFormatOf } from "../templates/find-inbound.js";
|
|
20
21
|
import { perEntity, } from "../generator.js";
|
|
21
22
|
import { generatePayloadInterfacesBatch } from "../payload-codegen.js";
|
|
22
23
|
import { GENERATED_HEADER } from "../constants.js";
|
|
@@ -84,13 +85,18 @@ export const traceHelperFile = function traceHelperFile(opts) {
|
|
|
84
85
|
const recordBuildArg = sti
|
|
85
86
|
? `{ ...input, callType: ${JSON.stringify(callTypeValue)}, status, errorDetail }`
|
|
86
87
|
: `{ ...input, status, errorDetail }`;
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
// ADR-0053: the REPLY's syntax is @responseFormat, not @format.
|
|
89
|
+
//
|
|
90
|
+
// This site used to read @format twice — once as the reply's syntax and once
|
|
91
|
+
// as the prompt body's — under a comment calling them "two intentionally
|
|
92
|
+
// different shapes". They are two different FACTS, not two shapes of one:
|
|
93
|
+
// a plain-text prompt can elicit an XML reply, and the shipped docs-site
|
|
94
|
+
// fixture is exactly that. Reading @format here mis-parsed every prompt whose
|
|
95
|
+
// body format differed from its reply's.
|
|
96
|
+
//
|
|
97
|
+
// The same rule the output-parser / extractor / response-format-fragment
|
|
98
|
+
// generators use — all four now go through responseFormatOf().
|
|
99
|
+
const formatLiteral = responseFormatOf(prompt) === RESPONSE_FORMAT_XML ? "Format.XML" : "Format.JSON";
|
|
94
100
|
// Collect VO names for interface emission (dedupe via batch emitter).
|
|
95
101
|
// Both refs are guaranteed strings by the guards above. ADR-0042: a bare
|
|
96
102
|
// ref resolves in the prompt's package.
|
|
@@ -101,9 +107,11 @@ export const traceHelperFile = function traceHelperFile(opts) {
|
|
|
101
107
|
// ADR-0039: resolving — a prompt may inherit @textRef via extends.
|
|
102
108
|
const textRef = prompt.attr(TEMPLATE_ATTR_TEXT_REF);
|
|
103
109
|
const renderable = typeof textRef === "string";
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
110
|
+
// render() takes the raw format string of the prompt BODY — @format, which is
|
|
111
|
+
// genuinely this attribute's job. Distinct from formatLiteral above, which is
|
|
112
|
+
// the REPLY's syntax and comes from @responseFormat (ADR-0053).
|
|
113
|
+
// ADR-0039: resolving — a prompt may inherit @format via extends.
|
|
114
|
+
const promptFormat = prompt.attr(TEMPLATE_ATTR_FORMAT);
|
|
107
115
|
const renderFormat = typeof promptFormat === "string" ? promptFormat : "text";
|
|
108
116
|
// Build the import block — all imports MUST stay at the top of the emitted file.
|
|
109
117
|
// `extract` + `render` both live in @metaobjectsdev/render: import them together
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-helper-file.js","sourceRoot":"","sources":["../../src/generators/trace-helper-file.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,wDAAwD;AACxD,EAAE;AACF,uFAAuF;AACvF,oFAAoF;AACpF,iFAAiF;AACjF,oFAAoF;AACpF,yCAAyC;AACzC,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,+BAA+B;AAC/B,EAAE;AACF,2CAA2C;AAC3C,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"trace-helper-file.js","sourceRoot":"","sources":["../../src/generators/trace-helper-file.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type { TemplateSpecEntry, TemplateSpecFile } from "./template-codegen/tem
|
|
|
10
10
|
export type { TemplateScope } from "./generators/template-generator.js";
|
|
11
11
|
export { generatorRegistry, listGenerators, getGenerator, } from "./generator-registry.js";
|
|
12
12
|
export type { GeneratorRegistryEntry, GeneratorTier } from "./generator-registry.js";
|
|
13
|
-
export type { MetaobjectsGenConfig, NormalizedMetaobjectsGenConfig, ResolvedGenConfig, Dialect, ExtStyle, ColumnNamingStrategy, MetaDataTypeProvider, GeneratorSpec, DocsConfig, ResolvedDocsConfig, DocsSurface, ApiSurface
|
|
13
|
+
export type { MetaobjectsGenConfig, NormalizedMetaobjectsGenConfig, ResolvedGenConfig, Dialect, ExtStyle, ColumnNamingStrategy, MetaDataTypeProvider, GeneratorSpec, DocsConfig, ResolvedDocsConfig, DocsSurface, ApiSurface } from "./metaobjects-config.js";
|
|
14
14
|
export { defineConfig, normalizeConfig, resolveGenerators, resolveDocsConfig } from "./metaobjects-config.js";
|
|
15
15
|
export { apiLabel } from "./generators/api-label.js";
|
|
16
16
|
export type { ColumnSpec, DefaultExpr } from "./column-mapper.js";
|
|
@@ -75,4 +75,16 @@ export type { EntityDocData, StorageFieldDoc, IdentityDoc, RelationshipDoc, Used
|
|
|
75
75
|
export { buildEntityDocData } from "./generators/docs-data-builder.js";
|
|
76
76
|
export type { TemplateDocData, TemplateOutputPart } from "./generators/template-doc-data.js";
|
|
77
77
|
export { buildTemplateDocData } from "./generators/template-doc-builder.js";
|
|
78
|
+
export { requirementTests } from "./generators/requirement-tests.js";
|
|
79
|
+
export { requirementsFile } from "./generators/requirements-file.js";
|
|
80
|
+
export type { RequirementRow } from "./generators/requirements-view.js";
|
|
81
|
+
export type { RequirementTestsOpts, RequirementTestRenderer, } from "./generators/requirement-tests.js";
|
|
82
|
+
export { walkRequirements, groupByConcern, concernOf, NO_CONCERN, } from "./requirement-walk.js";
|
|
83
|
+
export type { RequirementView, ResolvedClaim, WalkedRequirement, } from "./requirement-walk.js";
|
|
84
|
+
export { renderRequirementTest } from "./templates/requirement-test.js";
|
|
85
|
+
export type { RequirementTestArgs } from "./templates/requirement-test.js";
|
|
86
|
+
export { reconcileOrphans, refusedOrphanMessage } from "./reconcile-orphans.js";
|
|
87
|
+
export type { OrphanDecision, ReconcileOrphansArgs, OrphanPolicy, } from "./reconcile-orphans.js";
|
|
88
|
+
export { sweepOrphans } from "./orphan-sweep.js";
|
|
89
|
+
export type { OrphanJob, SweepOrphansArgs, SweepOrphansResult, } from "./orphan-sweep.js";
|
|
78
90
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAClG,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErF,YAAY,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -87,4 +87,22 @@ export { templateGenerator, } from "./generators/template-generator.js";
|
|
|
87
87
|
export { FileSystemProvider, ProviderChain, frameworkTemplatesProvider, projectProvider, } from "./render-engine/framework-provider.js";
|
|
88
88
|
export { buildEntityDocData } from "./generators/docs-data-builder.js";
|
|
89
89
|
export { buildTemplateDocData } from "./generators/template-doc-builder.js";
|
|
90
|
+
// FR-038 — requirement-derived test stubs.
|
|
91
|
+
//
|
|
92
|
+
// Both the factory AND its primitives are exported deliberately. Scaffold-and-own
|
|
93
|
+
// means the application owns its generator file, but that is only a real escape
|
|
94
|
+
// hatch if it can compose one from parts — otherwise an app needing one different
|
|
95
|
+
// behaviour must reimplement the requirement walk, and reimplementing it badly is
|
|
96
|
+
// worse than the bug report this is meant to avoid.
|
|
97
|
+
export { requirementTests } from "./generators/requirement-tests.js";
|
|
98
|
+
export { requirementsFile } from "./generators/requirements-file.js";
|
|
99
|
+
export { walkRequirements, groupByConcern, concernOf, NO_CONCERN, } from "./requirement-walk.js";
|
|
100
|
+
export { renderRequirementTest } from "./templates/requirement-test.js";
|
|
101
|
+
// FR-038 §8 — deletion integrity. Pure decision logic: which no-longer-generated
|
|
102
|
+
// files may be removed, and which were hand-edited and must be refused instead.
|
|
103
|
+
// `OrphanPolicy` is the Generator field an app sets to opt in; `sweepOrphans` is
|
|
104
|
+
// the filesystem binding, exported so an app composing its own generator can
|
|
105
|
+
// reconcile the same way the runner does instead of hand-rolling the walk.
|
|
106
|
+
export { reconcileOrphans, refusedOrphanMessage } from "./reconcile-orphans.js";
|
|
107
|
+
export { sweepOrphans } from "./orphan-sweep.js";
|
|
90
108
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,29 +146,21 @@ export interface MetaobjectsGenConfig extends Omit<ResolvedGenConfig, "dbImport"
|
|
|
146
146
|
* loader. Composed AFTER the default core+forge bundle.
|
|
147
147
|
*/
|
|
148
148
|
providers?: readonly MetaDataTypeProvider[];
|
|
149
|
-
/** `meta verify` settings. Nothing here affects codegen. */
|
|
150
|
-
verify?: VerifyConfig;
|
|
151
|
-
}
|
|
152
|
-
/** `meta verify` settings. */
|
|
153
|
-
export interface VerifyConfig {
|
|
154
149
|
/**
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* **What counts as a test file is the project's call.** The built-in patterns cover
|
|
158
|
-
* the conventions this repo ports to (jest/vitest/bun, JUnit, Maven Failsafe `*IT`,
|
|
159
|
-
* xUnit/NUnit, pytest, Kotlin) and are a CONVENIENCE, not an authority — a list of
|
|
160
|
-
* guesses about someone else's repository will always be incomplete, and when it is,
|
|
161
|
-
* a requirement naming a real test reads as a broken claim. Anything declared here is
|
|
162
|
-
* added to the built-ins.
|
|
150
|
+
* MetaObjects-shipped library packages this project loads alongside its own metadata —
|
|
151
|
+
* `["ai"]` makes `extends: "metaobjects::ai::LlmCallBase"` resolve.
|
|
163
152
|
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
153
|
+
* Sits beside `providers` because it answers the same shape of question: what does this
|
|
154
|
+
* project's model need in scope beyond the files it declares. Opt-in, because a library
|
|
155
|
+
* registers real top-level nodes and a project that never references one should not find
|
|
156
|
+
* them in its model, its generated output or its docs.
|
|
166
157
|
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
158
|
+
* Threaded to `loadMemory` by every CLI command that loads metadata. Before it existed,
|
|
159
|
+
* `librarySources` was reachable only from `MetaDataLoader.fromDirectory` — which the
|
|
160
|
+
* CLI does not use — so a generator that consumes a library was registered FOR the CLI
|
|
161
|
+
* while its input was unreachable THROUGH it (#333).
|
|
170
162
|
*/
|
|
171
|
-
|
|
163
|
+
libraries?: readonly string[];
|
|
172
164
|
}
|
|
173
165
|
/** MetaobjectsGenConfig after applying defaults. All fields required.
|
|
174
166
|
* `targets` is Omitted from the base so it can narrow from the user-facing
|
|
@@ -189,7 +181,7 @@ export interface NormalizedMetaobjectsGenConfig extends Omit<MetaobjectsGenConfi
|
|
|
189
181
|
outputLayout: OutputLayout;
|
|
190
182
|
targets: Record<string, ResolvedTarget>;
|
|
191
183
|
}
|
|
192
|
-
export type DocsSurface = "model" | "api";
|
|
184
|
+
export type DocsSurface = "model" | "api" | "requirements";
|
|
193
185
|
export interface ApiSurface {
|
|
194
186
|
lang: string;
|
|
195
187
|
subDir: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaobjects-config.d.ts","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChI,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC5C,gFAAgF;AAChF,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,kIAAkI;IAClI,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;oFAGgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;wFAEwF;AACxF,eAAO,MAAM,eAAe,EAAE,OAAkB,CAAC;AACjD,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mFAAmF;IACnF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C
|
|
1
|
+
{"version":3,"file":"metaobjects-config.d.ts","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,11 @@ export function resolveDocsConfig(block, cli, fallbackLayout) {
|
|
|
15
15
|
outDir: cli.outDir ?? block?.outDir ?? "./docs",
|
|
16
16
|
layout: cli.layout ?? block?.layout ?? fallbackLayout,
|
|
17
17
|
baseUrl: cli.baseUrl ?? block?.baseUrl ?? "",
|
|
18
|
-
|
|
18
|
+
// `requirements` defaults ON. Safe ONLY because requirementsFile() emits ZERO
|
|
19
|
+
// files for a project declaring no `requirement.*` node — not an empty page. A
|
|
20
|
+
// project without a ledger sees byte-identical output to before the surface
|
|
21
|
+
// existed; see requirements-file.ts.
|
|
22
|
+
surfaces: cli.surfaces ?? block?.surfaces ?? ["model", "api", "requirements"],
|
|
19
23
|
apiSurfaces: cli.apiSurfaces ?? block?.apiSurfaces ?? [{ lang: "ts", subDir: "api" }],
|
|
20
24
|
};
|
|
21
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaobjects-config.js","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAwD,MAAM,0BAA0B,CAAC;AAIhI,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAqB5D,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AA0C7C;;wFAEwF;AACxF,MAAM,CAAC,MAAM,eAAe,GAAY,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"metaobjects-config.js","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type OrphanPolicy } from "./reconcile-orphans.js";
|
|
2
|
+
/** One opt-in generator's stake in the sweep. */
|
|
3
|
+
export interface OrphanJob {
|
|
4
|
+
/** For diagnostics — which generator's namespace this is. */
|
|
5
|
+
readonly generatorName: string;
|
|
6
|
+
/** Absolute directory this generator wrote to, i.e. the base its policy's
|
|
7
|
+
* relative paths are measured from. */
|
|
8
|
+
readonly writeOutDir: string;
|
|
9
|
+
readonly policy: OrphanPolicy;
|
|
10
|
+
}
|
|
11
|
+
export interface SweepOrphansArgs {
|
|
12
|
+
readonly genStateDir: string;
|
|
13
|
+
/** Absolute project root — the base gen-state keys are relative to. */
|
|
14
|
+
readonly projectRoot: string;
|
|
15
|
+
/** Project-relative paths written on THIS run, by ANY generator. A path some
|
|
16
|
+
* other generator now produces is not an orphan, so the whole run's output is
|
|
17
|
+
* the right exclusion set, not just the opting-in generator's. */
|
|
18
|
+
readonly emittedRelPaths: readonly string[];
|
|
19
|
+
readonly jobs: readonly OrphanJob[];
|
|
20
|
+
/** Decide and report, touch nothing. */
|
|
21
|
+
readonly dryRun: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface SweepOrphansResult {
|
|
24
|
+
/** Untouched orphans deleted (or, under dryRun, that would be). */
|
|
25
|
+
readonly removed: string[];
|
|
26
|
+
/** Hand-edited orphans left alone and reported. */
|
|
27
|
+
readonly refused: string[];
|
|
28
|
+
/** Which generator's namespace each refusal came from, so the caller can name it
|
|
29
|
+
* instead of assuming one. `orphanPolicy` is a generic `Generator` field and an app
|
|
30
|
+
* is encouraged to compose its own generator, so a message hardcoding one
|
|
31
|
+
* generator's name would be wrong for exactly the users the seam exists for. */
|
|
32
|
+
readonly refusedBy: ReadonlyMap<string, string>;
|
|
33
|
+
/** Hand-edited orphans deleted because their policy set `force`. Separate from
|
|
34
|
+
* `removed` so the caller can say the louder thing about them. */
|
|
35
|
+
readonly forced: string[];
|
|
36
|
+
}
|
|
37
|
+
export declare function sweepOrphans(args: SweepOrphansArgs): SweepOrphansResult;
|
|
38
|
+
//# sourceMappingURL=orphan-sweep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orphan-sweep.d.ts","sourceRoot":"","sources":["../src/orphan-sweep.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E,iDAAiD;AACjD,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;4CACwC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;uEAEmE;IACnE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B;;;qFAGiF;IACjF,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD;uEACmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AASD,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAqGvE"}
|