@metaobjectsdev/codegen-ts 0.23.1 → 0.24.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/dist/column-mapper.d.ts +32 -0
- package/dist/column-mapper.d.ts.map +1 -1
- package/dist/column-mapper.js +91 -8
- package/dist/column-mapper.js.map +1 -1
- package/dist/enum-meta.d.ts +20 -0
- package/dist/enum-meta.d.ts.map +1 -1
- package/dist/enum-meta.js +32 -1
- package/dist/enum-meta.js.map +1 -1
- 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 +2 -0
- 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 -6
- package/dist/projection/extract-view-spec.js.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/drizzle-schema.d.ts.map +1 -1
- package/dist/templates/drizzle-schema.js +67 -4
- package/dist/templates/drizzle-schema.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/filter-allowlist.d.ts.map +1 -1
- package/dist/templates/filter-allowlist.js +4 -2
- package/dist/templates/filter-allowlist.js.map +1 -1
- package/dist/templates/filter-type.d.ts.map +1 -1
- package/dist/templates/filter-type.js +6 -2
- package/dist/templates/filter-type.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/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 +7 -6
- package/src/column-mapper.ts +124 -8
- package/src/enum-meta.ts +37 -1
- 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 +10 -0
- package/src/projection/extract-view-spec.ts +88 -4
- 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/drizzle-schema.ts +70 -6
- package/src/templates/extractor.ts +19 -24
- package/src/templates/filter-allowlist.ts +4 -2
- package/src/templates/filter-type.ts +6 -2
- package/src/templates/find-inbound.ts +96 -0
- 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
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { TYPE_FIELD, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferenceBetween, resolveObjectRef, } from "@metaobjectsdev/metadata";
|
|
1
|
+
import { TYPE_FIELD, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_OP_LIKE, FIELD_SUBTYPE_ENUM, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferenceBetween, resolveObjectRef, } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { MetaObject } from "@metaobjectsdev/metadata";
|
|
3
|
+
import { intValueMapOf } from "../enum-meta.js";
|
|
3
4
|
import { columnNameFromField, viewNameFromProjection, } from "../naming.js";
|
|
4
5
|
// #213 — a write-through ENTITY (FR-024 §7 read-view) hosts its own view; the base
|
|
5
6
|
// is the entity itself, not an extends-anchored projection.
|
|
@@ -68,13 +69,71 @@ function resolveAggregateFilter(filter, entity, alias, ctx) {
|
|
|
68
69
|
kind: "cmp",
|
|
69
70
|
ref: `${alias}.${sourceColumnNameFor(field, ctx)}`,
|
|
70
71
|
op,
|
|
71
|
-
|
|
72
|
+
// Same int-backed-enum encoding as the row-scope @filter below: this scoping
|
|
73
|
+
// filter renders as a SQL literal too (FILTER (WHERE …) / CASE WHEN), so a
|
|
74
|
+
// member symbol would land unencoded in an integer comparison.
|
|
75
|
+
value: encodeIntEnumFilterValue(opObj[op], op, field.subType === FIELD_SUBTYPE_ENUM ? intValueMapOf(field) : undefined, key, entity.name),
|
|
72
76
|
});
|
|
73
77
|
}
|
|
74
78
|
if (clauses.length === 0)
|
|
75
79
|
return undefined;
|
|
76
80
|
return clauses.length === 1 ? clauses[0] : { kind: "and", clauses };
|
|
77
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* The `@intValueMap` of every int-backed `field.enum` the projection declares, keyed
|
|
84
|
+
* by field name. Only int-backed enums appear, so a lookup miss means "no encoding".
|
|
85
|
+
*
|
|
86
|
+
* `fields()` (effective) and `intValueMapOf` (which reads `attr`, RESOLVING) — a
|
|
87
|
+
* projection's fields are bound through `extends` to the base entity's, and post-#246
|
|
88
|
+
* the map itself commonly lives one hop further up on a shared abstract declaration.
|
|
89
|
+
* Own-only at either hop would silently emit the member symbol into an integer column
|
|
90
|
+
* (ADR-0039).
|
|
91
|
+
*/
|
|
92
|
+
function intEnumMapsOf(projection) {
|
|
93
|
+
const out = new Map();
|
|
94
|
+
for (const f of projection.fields()) {
|
|
95
|
+
if (f.subType !== FIELD_SUBTYPE_ENUM)
|
|
96
|
+
continue;
|
|
97
|
+
const map = intValueMapOf(f);
|
|
98
|
+
if (map !== undefined)
|
|
99
|
+
out.set(f.name, map);
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Lower a filter value for an int-backed `field.enum` from its member SYMBOL to the
|
|
105
|
+
* INTEGER it persists as. A no-op for every other field (`intMap` undefined), so a
|
|
106
|
+
* string-backed enum's SQL is byte-identical.
|
|
107
|
+
*
|
|
108
|
+
* `isNull` is skipped — its value is a boolean, not a member. `like` is unreachable:
|
|
109
|
+
* `opsForField` removes it from an int-backed enum's band, so the loader rejects it
|
|
110
|
+
* before codegen; the explicit throw makes that a loud failure rather than a
|
|
111
|
+
* `LIKE NaN`. An unmapped member is likewise loader-unreachable (the key set is
|
|
112
|
+
* pinned equal to `@values`) and throws for the same reason — silently emitting the
|
|
113
|
+
* symbol would produce DDL that fails only at apply time, against a live database.
|
|
114
|
+
*/
|
|
115
|
+
function encodeIntEnumFilterValue(value, op, intMap, fieldName, projectionName) {
|
|
116
|
+
if (intMap === undefined)
|
|
117
|
+
return value;
|
|
118
|
+
if (op === FILTER_OP_IS_NULL)
|
|
119
|
+
return value;
|
|
120
|
+
if (op === FILTER_OP_LIKE) {
|
|
121
|
+
throw new Error(`Projection ${projectionName}: view @filter uses "like" on "${fieldName}", an ` +
|
|
122
|
+
`int-backed field.enum (@intValueMap) — it stores as an integer column, so a ` +
|
|
123
|
+
`substring match is not expressible. Use eq/ne/in.`);
|
|
124
|
+
}
|
|
125
|
+
const encode = (v) => {
|
|
126
|
+
if (typeof v !== "string")
|
|
127
|
+
return v;
|
|
128
|
+
const n = intMap[v];
|
|
129
|
+
if (typeof n !== "number") {
|
|
130
|
+
throw new Error(`Projection ${projectionName}: view @filter value "${v}" for "${fieldName}" has no ` +
|
|
131
|
+
`entry in @intValueMap.`);
|
|
132
|
+
}
|
|
133
|
+
return n;
|
|
134
|
+
};
|
|
135
|
+
return Array.isArray(value) ? value.map(encode) : encode(value);
|
|
136
|
+
}
|
|
78
137
|
/**
|
|
79
138
|
* #207 — resolve a projection's row-scope `@filter` (the desugared canonical
|
|
80
139
|
* `{ field: { op: value }, and?, or? }`) into a {@link ViewFilterClause} whose
|
|
@@ -90,14 +149,14 @@ function resolveAggregateFilter(filter, entity, alias, ctx) {
|
|
|
90
149
|
* - a ref naming no declared field → THROW (dangling; also loader-rejected).
|
|
91
150
|
* Multiple fields at one level compose with AND (mirrors resolveAggregateFilter).
|
|
92
151
|
*/
|
|
93
|
-
function resolveViewFilter(filter, columnsByField, projectionName) {
|
|
152
|
+
function resolveViewFilter(filter, columnsByField, projectionName, intMapsByField) {
|
|
94
153
|
if (typeof filter !== "object" || filter === null || Array.isArray(filter))
|
|
95
154
|
return undefined;
|
|
96
155
|
const clauses = [];
|
|
97
156
|
for (const [key, val] of Object.entries(filter)) {
|
|
98
157
|
if (key === FILTER_AND || key === FILTER_OR) {
|
|
99
158
|
const subs = (Array.isArray(val) ? val : [])
|
|
100
|
-
.map((s) => resolveViewFilter(s, columnsByField, projectionName))
|
|
159
|
+
.map((s) => resolveViewFilter(s, columnsByField, projectionName, intMapsByField))
|
|
101
160
|
.filter((c) => c !== undefined);
|
|
102
161
|
if (subs.length > 0)
|
|
103
162
|
clauses.push({ kind: key === FILTER_AND ? "and" : "or", clauses: subs });
|
|
@@ -115,7 +174,12 @@ function resolveViewFilter(filter, columnsByField, projectionName) {
|
|
|
115
174
|
// becomes its own comparison, AND-composed (dropping all-but-the-first would silently
|
|
116
175
|
// widen the exposed row set). The loader has already validated every op for this
|
|
117
176
|
// field's subtype.
|
|
118
|
-
for (const [op,
|
|
177
|
+
for (const [op, rawValue] of Object.entries(desugarClause(val))) {
|
|
178
|
+
// An INT-BACKED field.enum (@intValueMap, design D5) stores as an INTEGER
|
|
179
|
+
// column, so the authored member SYMBOL must become its integer before it is
|
|
180
|
+
// rendered as a SQL literal. The Drizzle customType handles the runtime query
|
|
181
|
+
// path, but view DDL is emitted as literal SQL text and never touches Drizzle.
|
|
182
|
+
const value = encodeIntEnumFilterValue(rawValue, op, intMapsByField.get(key), key, projectionName);
|
|
119
183
|
if (col.kind === "passthrough") {
|
|
120
184
|
clauses.push({ kind: "cmp", ref: `${col.sourceAlias}.${col.sourceColumn}`, op, value });
|
|
121
185
|
}
|
|
@@ -858,7 +922,7 @@ export function extractViewSpec(projection, root, ctx) {
|
|
|
858
922
|
const rawFilter = projection.ownAttr(OBJECT_PROJECTION_ATTR_FILTER);
|
|
859
923
|
if (rawFilter !== undefined) {
|
|
860
924
|
const columnsByField = new Map(selectSpec.columns.map((c) => [c.fieldName, c]));
|
|
861
|
-
where = resolveViewFilter(rawFilter, columnsByField, projection.name);
|
|
925
|
+
where = resolveViewFilter(rawFilter, columnsByField, projection.name, intEnumMapsOf(projection));
|
|
862
926
|
}
|
|
863
927
|
}
|
|
864
928
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-view-spec.js","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract-view-spec.js","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A generator's opt-in to orphan reconciliation, and the namespace it applies to.
|
|
3
|
+
*
|
|
4
|
+
* Declaring this is the ONLY way in: `.gen-state/.hashes.json` records paths, not
|
|
5
|
+
* which generator produced each one, so the runner genuinely cannot work out who
|
|
6
|
+
* owns what. Deriving ownership from the output directory instead would be worse
|
|
7
|
+
* than useless — every generator in a single-target project writes to the same
|
|
8
|
+
* `outDir`, so one generator narrowing its output would delete its siblings'
|
|
9
|
+
* files. The generator has to say.
|
|
10
|
+
*/
|
|
11
|
+
export interface OrphanPolicy {
|
|
12
|
+
/**
|
|
13
|
+
* True when `relPathInTarget` — a path relative to this generator's own output
|
|
14
|
+
* directory, always `/`-separated — is inside the namespace this generator is
|
|
15
|
+
* the sole producer of.
|
|
16
|
+
*
|
|
17
|
+
* Be narrow. This predicate is the blast radius: every previously-generated
|
|
18
|
+
* path it accepts and this run did not re-emit is a deletion candidate.
|
|
19
|
+
*/
|
|
20
|
+
readonly owns: (relPathInTarget: string) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Delete a hand-edited orphan instead of refusing it. Default false.
|
|
23
|
+
*
|
|
24
|
+
* The seam exists because §6 requires every default to have one, not because
|
|
25
|
+
* it is advisable: the refusal already names the file and deleting it by hand
|
|
26
|
+
* is a one-line answer, whereas this flag makes the destructive outcome the
|
|
27
|
+
* automatic one.
|
|
28
|
+
*/
|
|
29
|
+
readonly force?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface OrphanDecision {
|
|
32
|
+
/** No longer emitted, on disk, and byte-identical to the snapshot we wrote.
|
|
33
|
+
* Safe to delete — the generator is removing only its own untouched output. */
|
|
34
|
+
readonly remove: readonly string[];
|
|
35
|
+
/** No longer emitted and CHANGED since we wrote it (or with no snapshot to
|
|
36
|
+
* compare against). Left alone and reported, never deleted. */
|
|
37
|
+
readonly refused: readonly string[];
|
|
38
|
+
/** No longer emitted and already absent from disk. Nothing to delete; the
|
|
39
|
+
* caller should just drop the stale snapshot. */
|
|
40
|
+
readonly vanished: readonly string[];
|
|
41
|
+
}
|
|
42
|
+
export interface ReconcileOrphansArgs {
|
|
43
|
+
/** Relative paths this generator emitted on some previous run — in practice the
|
|
44
|
+
* keys of `.gen-state/.hashes.json`. */
|
|
45
|
+
readonly previouslyGenerated: readonly string[];
|
|
46
|
+
/** Relative paths emitted on THIS run. */
|
|
47
|
+
readonly emitted: readonly string[];
|
|
48
|
+
/** Namespace guard. Orphan reconciliation is opt-in and scoped: a generator must
|
|
49
|
+
* never delete another generator's output just because it stopped emitting its
|
|
50
|
+
* own. */
|
|
51
|
+
readonly owns: (relPath: string) => boolean;
|
|
52
|
+
/** Whether the file is still on disk at all. */
|
|
53
|
+
readonly exists: (relPath: string) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the file is byte-for-byte what we recorded writing.
|
|
56
|
+
*
|
|
57
|
+
* MUST fail closed — false when it cannot be proven. This is deliberately the
|
|
58
|
+
* same question the write path asks (`isPristineGenerated`), of the same
|
|
59
|
+
* evidence: the committed hash manifest. Before they were unified, one feature
|
|
60
|
+
* refused to DELETE a hand-edited file while silently OVERWRITING one, which is
|
|
61
|
+
* the same uncertainty answered two opposite ways.
|
|
62
|
+
*/
|
|
63
|
+
readonly isUntouched: (relPath: string) => boolean;
|
|
64
|
+
}
|
|
65
|
+
export declare function reconcileOrphans(args: ReconcileOrphansArgs): OrphanDecision;
|
|
66
|
+
/**
|
|
67
|
+
* The message shown when a hand-edited orphan is refused.
|
|
68
|
+
*
|
|
69
|
+
* It has to say what happened, why nothing was deleted, and what the two ways out
|
|
70
|
+
* are — otherwise the reasonable reaction to an unexplained refusal is to delete
|
|
71
|
+
* the file, which is the outcome the refusal exists to prevent.
|
|
72
|
+
*/
|
|
73
|
+
export declare function refusedOrphanMessage(paths: readonly string[],
|
|
74
|
+
/** Which generator's namespace these came from. `orphanPolicy` is a generic
|
|
75
|
+
* `Generator` field and `sweepOrphans`/`OrphanPolicy` are exported precisely so an
|
|
76
|
+
* app can compose its own — so this message must not hardcode `requirement-tests`,
|
|
77
|
+
* naming a generator the project may not even use and a cause ("the requirement was
|
|
78
|
+
* removed") that may not apply. */
|
|
79
|
+
generatorName?: string): string;
|
|
80
|
+
//# sourceMappingURL=reconcile-orphans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-orphans.d.ts","sourceRoot":"","sources":["../src/reconcile-orphans.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B;oFACgF;IAChF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;oEACgE;IAChE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;sDACkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC;6CACyC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;eAEW;IACX,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc,CA0B3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE;AACxB;;;;oCAIoC;AACpC,aAAa,SAAmB,GAC/B,MAAM,CAQR"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// FR-038 §8 — deletion integrity: what happens to a generated file that is no
|
|
2
|
+
// longer generated.
|
|
3
|
+
//
|
|
4
|
+
// A requirement's stubs become orphans when the requirement is deleted. The
|
|
5
|
+
// obvious move — remove them, as the FR-038 draft said for `abandoned` entries —
|
|
6
|
+
// is safe only for an UNTOUCHED stub. On a filled one it eats assertions somebody
|
|
7
|
+
// wrote, and the whole point of the inversion is that the body is hand-written and
|
|
8
|
+
// survives regeneration.
|
|
9
|
+
//
|
|
10
|
+
// So: remove what the generator wrote, REFUSE what a human changed, and name it.
|
|
11
|
+
// That mirrors the migrate engine refusing a primary-key move rather than emitting
|
|
12
|
+
// something un-appliable (#258) — a refusal is recoverable, a deletion is not.
|
|
13
|
+
//
|
|
14
|
+
// Deliberately PURE: the caller supplies the readers. The decision is the part
|
|
15
|
+
// worth testing, and threading a filesystem through it would make the rule harder
|
|
16
|
+
// to exercise than the plumbing around it.
|
|
17
|
+
export function reconcileOrphans(args) {
|
|
18
|
+
const emitted = new Set(args.emitted);
|
|
19
|
+
const remove = [];
|
|
20
|
+
const refused = [];
|
|
21
|
+
const vanished = [];
|
|
22
|
+
for (const relPath of args.previouslyGenerated) {
|
|
23
|
+
if (emitted.has(relPath))
|
|
24
|
+
continue;
|
|
25
|
+
if (!args.owns(relPath))
|
|
26
|
+
continue;
|
|
27
|
+
if (!args.exists(relPath)) {
|
|
28
|
+
vanished.push(relPath);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// Fail closed: unless we can prove the file is untouched, guessing wrong
|
|
32
|
+
// deletes someone's work.
|
|
33
|
+
if (!args.isUntouched(relPath)) {
|
|
34
|
+
refused.push(relPath);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
remove.push(relPath);
|
|
38
|
+
}
|
|
39
|
+
return { remove, refused, vanished };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The message shown when a hand-edited orphan is refused.
|
|
43
|
+
*
|
|
44
|
+
* It has to say what happened, why nothing was deleted, and what the two ways out
|
|
45
|
+
* are — otherwise the reasonable reaction to an unexplained refusal is to delete
|
|
46
|
+
* the file, which is the outcome the refusal exists to prevent.
|
|
47
|
+
*/
|
|
48
|
+
export function refusedOrphanMessage(paths,
|
|
49
|
+
/** Which generator's namespace these came from. `orphanPolicy` is a generic
|
|
50
|
+
* `Generator` field and `sweepOrphans`/`OrphanPolicy` are exported precisely so an
|
|
51
|
+
* app can compose its own — so this message must not hardcode `requirement-tests`,
|
|
52
|
+
* naming a generator the project may not even use and a cause ("the requirement was
|
|
53
|
+
* removed") that may not apply. */
|
|
54
|
+
generatorName = "orphan cleanup") {
|
|
55
|
+
return (`${generatorName}: ${paths.length} generated file(s) are no longer produced by ` +
|
|
56
|
+
`this generator but have been edited by hand, so they were NOT deleted: ` +
|
|
57
|
+
`${paths.join(", ")}. Either what produced them was removed (delete these files ` +
|
|
58
|
+
`yourself if the edits are no longer wanted) or it was renamed (move the edits ` +
|
|
59
|
+
`into the newly generated file first — regeneration cannot follow a rename).`);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=reconcile-orphans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-orphans.js","sourceRoot":"","sources":["../src/reconcile-orphans.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oBAAoB;AACpB,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,yBAAyB;AACzB,EAAE;AACF,iFAAiF;AACjF,mFAAmF;AACnF,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,2CAA2C;AAqE3C,MAAM,UAAU,gBAAgB,CAAC,IAA0B;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,SAAS;QAElC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,yEAAyE;QACzE,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAwB;AACxB;;;;oCAIoC;AACpC,aAAa,GAAG,gBAAgB;IAEhC,OAAO,CACL,GAAG,aAAa,KAAK,KAAK,CAAC,MAAM,+CAA+C;QAChF,yEAAyE;QACzE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D;QACjF,gFAAgF;QAChF,6EAA6E,CAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -9,7 +9,7 @@ export const EMBEDDED_FRAMEWORK_TEMPLATES = {
|
|
|
9
9
|
"api/agent-api.md": "{{{generatedMarker}}}\n\n# {{title}}\n\nGenerated API reference for {{project}}; call these exactly as written. {{importNote}}\n{{#hasSetup}}\n\n## Setup\n{{#setup}}\n- `{{handle}}` — {{{note}}} `{{{snippetInline}}}`\n{{/setup}}\n{{/hasSetup}}\n{{#units}}\n\n## {{node}}\n{{#groups}}\n\n`{{importHeader}}`\n{{#symbols}}\n- `{{signature}}` — {{usage}}{{#throwsMarker}} {{throwsMarker}}{{/throwsMarker}}\n{{/symbols}}\n{{/groups}}\n{{#example}}\n\nExample:\n```ts\n{{{example}}}\n```\n{{/example}}\n{{/units}}\n",
|
|
10
10
|
"api/entity-api.md": "{{{generatedMarker}}}\n\n# {{node}} API\n{{#modelPageHref}}\n\n**Model / metadata:** [{{node}}]({{modelPageHref}})\n{{/modelPageHref}}\n\n> Import paths are relative to your generated-output directory.\n{{#hasSetup}}\n\n## Setup\n\nObtain the runtime handles the calls below need:\n{{#setup}}\n\n- `{{handle}}` — {{{note}}}\n\n```ts\n{{{snippet}}}\n```\n{{/setup}}\n{{/hasSetup}}\n{{#unitExample}}\n\n## Example\n\n```ts\n{{{unitExample}}}\n```\n{{/unitExample}}\n{{#sections}}\n\n## {{heading}}\n{{#symbols}}\n\n### `{{signature}}`\n\n{{usage}}\n\n```ts\n{{importLine}}\n```\n{{#hasFields}}\n\n{{fieldsCaption}}:\n\n| Field | Type | Required | Notes |\n|---|---|---|---|\n{{#fieldRows}}\n| `{{field}}` | `{{{type}}}` | {{required}} | {{notes}} |\n{{/fieldRows}}\n{{/hasFields}}\n{{#mountNote}}\n\nMount: {{{mountNote}}}\n{{/mountNote}}\n{{#throws}}\n\nThrows: {{throws}}\n{{/throws}}\n{{#example}}\n\n```ts\n{{{example}}}\n```\n{{/example}}\n{{/symbols}}\n{{/sections}}\n",
|
|
11
11
|
"api/index.md": "{{{generatedMarker}}}\n\n# {{title}}\n\n{{intro}}\n{{#hasEntities}}\n\n## Entities\n\n{{#entities}}\n- [{{node}}]({{href}}) — {{summary}} ({{symbolCount}} symbol{{^one}}s{{/one}})\n{{/entities}}\n{{/hasEntities}}\n{{#hasTemplates}}\n\n## Templates\n\n{{#templates}}\n- [{{node}}]({{href}}) — {{summary}} ({{symbolCount}} symbol{{^one}}s{{/one}})\n{{/templates}}\n{{/hasTemplates}}\n",
|
|
12
|
-
"docs/entity-page.md": "{{{generatedMarker}}}\n\n# {{entity.name}}\n{{#summaryLead}}\n\n{{{.}}}\n{{/summaryLead}}\n{{#descriptionQuote}}\n\n{{{.}}}\n{{/descriptionQuote}}\n{{#apiRefs.0}}\n\n**API reference:** {{/apiRefs.0}}{{#apiRefs}}[{{label}}]({{href}}){{^last}} · {{/last}}{{/apiRefs}}{{#apiRefs.0}}\n{{/apiRefs.0}}\n\n{{{preambleHeader}}}\n{{#hasIdentities}}\n\n## Identity\n\n{{#identities}}\n- {{{bullet}}}\n{{/identities}}\n{{/hasIdentities}}\n{{#hasNeighborhoodEr}}\n\n## In context\n\n{{{neighborhoodErBlock}}}\n{{/hasNeighborhoodEr}}\n{{#fields.hasFields}}\n\n## Fields\n\n| Field | Type | Required | Column | Rules |\n|---|---|---|---|---|\n{{#fields.rows}}\n| {{{fieldCell}}} | {{{typeCell}}} | {{requiredCell}} | {{{storageCell}}} | {{{rulesCell}}} |\n{{/fields.rows}}\n{{/fields.hasFields}}\n{{#fieldDetails.hasDetails}}\n\n## Field details\n\n{{#fieldDetails.rows}}\n{{{block}}}\n\n{{/fieldDetails.rows}}\n{{/fieldDetails.hasDetails}}\n{{#hasRelationships}}\n\n## Relationships\n\n{{#relationships}}\n- {{{bullet}}}\n{{/relationships}}\n{{/hasRelationships}}\n{{#hasUsedBy}}\n\n## Used by\n\n{{#usedBy}}\n- {{{bullet}}}\n{{/usedBy}}\n{{/hasUsedBy}}\n",
|
|
12
|
+
"docs/entity-page.md": "{{{generatedMarker}}}\n\n# {{entity.name}}\n{{#summaryLead}}\n\n{{{.}}}\n{{/summaryLead}}\n{{#descriptionQuote}}\n\n{{{.}}}\n{{/descriptionQuote}}\n{{#apiRefs.0}}\n\n**API reference:** {{/apiRefs.0}}{{#apiRefs}}[{{label}}]({{href}}){{^last}} · {{/last}}{{/apiRefs}}{{#apiRefs.0}}\n{{/apiRefs.0}}\n\n{{{preambleHeader}}}\n{{#hasIdentities}}\n\n## Identity\n\n{{#identities}}\n- {{{bullet}}}\n{{/identities}}\n{{/hasIdentities}}\n{{#hasNeighborhoodEr}}\n\n## In context\n\n{{{neighborhoodErBlock}}}\n{{/hasNeighborhoodEr}}\n{{#fields.hasFields}}\n\n## Fields\n\n| Field | Type | Required | Column | Rules |\n|---|---|---|---|---|\n{{#fields.rows}}\n| {{{fieldCell}}} | {{{typeCell}}} | {{requiredCell}} | {{{storageCell}}} | {{{rulesCell}}} |\n{{/fields.rows}}\n{{/fields.hasFields}}\n{{#fieldDetails.hasDetails}}\n\n## Field details\n\n{{#fieldDetails.rows}}\n{{{block}}}\n\n{{/fieldDetails.rows}}\n{{/fieldDetails.hasDetails}}\n{{#hasRelationships}}\n\n## Relationships\n\n{{#relationships}}\n- {{{bullet}}}\n{{/relationships}}\n{{/hasRelationships}}\n{{#hasUsedBy}}\n\n## Used by\n\n{{#usedBy}}\n- {{{bullet}}}\n{{/usedBy}}\n{{/hasUsedBy}}\n{{#hasClaimedBy}}\n\n## Required by\n\n{{#claimedBy}}\n- {{{bullet}}}\n{{/claimedBy}}\n{{/hasClaimedBy}}\n",
|
|
13
13
|
"docs/template-page.md": "{{{generatedMarker}}}\n\n# {{name}}\n{{#descriptionQuote}}\n\n{{{.}}}\n{{/descriptionQuote}}\n\n**Kind:** {{kind}}\n\n## Output\n{{^isEmail}}\n\n- Format: `{{format}}`\n{{/isEmail}}\n{{#isEmail}}\n\nMultipart email — rendered as the following parts:\n\n| Part | Source | Format | Escaping |\n|---|---|---|---|\n{{#parts}}\n| {{label}} | `{{ref}}` | `{{format}}` | {{#escaped}}escaped{{/escaped}}{{^escaped}}raw{{/escaped}} |\n{{/parts}}\n{{/isEmail}}\n\n## Input\n\n- Payload: [`{{payload.name}}`]({{payload.link}})\n{{#hasRequiredTags}}\n- Required fields:{{#requiredTags}} `{{.}}`{{/requiredTags}}\n{{/hasRequiredTags}}\n\n## Render contract\n\n- Every field referenced by the template is validated against the payload at generation time; an unknown field fails generation.\n{{#maxChars}}\n- Maximum length: {{.}} characters (rendering longer output fails).\n{{/maxChars}}\n{{#hasRequiredTags}}\n- Required tags must be present:{{#requiredTags}} `{{.}}`{{/requiredTags}}\n{{/hasRequiredTags}}\n\n## Source\n\n{{#sourceRefs}}\n- `{{.}}`\n{{/sourceRefs}}\n{{#templateSourceSection}}\n\n{{{.}}}\n{{/templateSourceSection}}\n\n## Capability\n\n{{capability}}\n",
|
|
14
14
|
};
|
|
15
15
|
//# sourceMappingURL=embedded-templates.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded-templates.generated.js","sourceRoot":"","sources":["../../src/render-engine/embedded-templates.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,iGAAiG;AACjG,EAAE;AACF,8DAA8D;AAC9D,oEAAoE;AACpE,wEAAwE;AACxE,sDAAsD;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,kBAAkB,EAAE,+fAA+f;IACnhB,mBAAmB,EAAE,88BAA88B;IACn+B,cAAc,EAAE,gYAAgY;IAChZ,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"embedded-templates.generated.js","sourceRoot":"","sources":["../../src/render-engine/embedded-templates.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,iGAAiG;AACjG,EAAE;AACF,8DAA8D;AAC9D,oEAAoE;AACpE,wEAAwE;AACxE,sDAAsD;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,kBAAkB,EAAE,+fAA+f;IACnhB,mBAAmB,EAAE,88BAA88B;IACn+B,cAAc,EAAE,gYAAgY;IAChZ,qBAAqB,EAAE,kuCAAkuC;IACzvC,uBAAuB,EAAE,woCAAwoC;CAClqC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { MetaData, MetaRequirement } from "@metaobjectsdev/metadata";
|
|
2
|
+
/** The shape an app's `filter` receives. Never the node itself. */
|
|
3
|
+
export interface RequirementView {
|
|
4
|
+
/** "functional" | "architectural" — the check-polarity axis. */
|
|
5
|
+
readonly subType: string;
|
|
6
|
+
/** 1 solution · 2 segment · 3 service · 4 object · 5 member. Undefined on an
|
|
7
|
+
* unlevelled architectural requirement (the original flat policy form). */
|
|
8
|
+
readonly level: number | undefined;
|
|
9
|
+
readonly status: string | undefined;
|
|
10
|
+
/** Dotted path from the root through nesting ancestors — hierarchy is nesting. */
|
|
11
|
+
readonly path: string;
|
|
12
|
+
/** DISTINCT `type.subType` concerns among the resolved targets. */
|
|
13
|
+
readonly implementedByTypes: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedClaim {
|
|
16
|
+
/** The reference exactly as authored, for the doc comment. */
|
|
17
|
+
readonly ref: string;
|
|
18
|
+
readonly node: MetaData;
|
|
19
|
+
readonly concern: string;
|
|
20
|
+
}
|
|
21
|
+
export interface WalkedRequirement {
|
|
22
|
+
readonly node: MetaRequirement;
|
|
23
|
+
readonly view: RequirementView;
|
|
24
|
+
readonly targets: readonly ResolvedClaim[];
|
|
25
|
+
}
|
|
26
|
+
/** `<type>.<subType>` — the key a renderer map is looked up by. */
|
|
27
|
+
export declare function concernOf(node: MetaData): string;
|
|
28
|
+
/**
|
|
29
|
+
* The concern key for a requirement that resolves NO targets.
|
|
30
|
+
*
|
|
31
|
+
* Doubles as the catch-all renderer key, deliberately: a requirement with nothing
|
|
32
|
+
* to fan out over falls through to whatever the app registered as its default.
|
|
33
|
+
*/
|
|
34
|
+
export declare const NO_CONCERN = "*";
|
|
35
|
+
/**
|
|
36
|
+
* Depth-first walk of every `requirement.*` node, nested ones included.
|
|
37
|
+
*
|
|
38
|
+
* Unresolvable `@implementedBy` references are skipped rather than thrown on —
|
|
39
|
+
* resolution severity is `meta verify`'s job (it depends on `@status`, which is why
|
|
40
|
+
* it cannot live in the loader), and codegen must not fail a build over a
|
|
41
|
+
* diagnostic another command owns.
|
|
42
|
+
*/
|
|
43
|
+
export declare function walkRequirements(root: MetaData): WalkedRequirement[];
|
|
44
|
+
/**
|
|
45
|
+
* Group a requirement's targets by distinct concern — the fan-out unit.
|
|
46
|
+
*
|
|
47
|
+
* One entry per distinct `type.subType`, NOT one per target: a single architectural
|
|
48
|
+
* requirement claimed by 123 entities must emit one stub, not 123, which is the
|
|
49
|
+
* hostile-first-contact outcome FR-038 §10 exists to avoid.
|
|
50
|
+
*
|
|
51
|
+
* A requirement resolving NO targets still yields exactly ONE group. That is not a
|
|
52
|
+
* degenerate case: `REQUIREMENT_LINK_FLOOR_LEVEL` forbids `@implementedBy` below L4,
|
|
53
|
+
* so every L1–L3 requirement resolves nothing — and an application that chooses to
|
|
54
|
+
* cover L3 would otherwise get silence instead of a stub.
|
|
55
|
+
*/
|
|
56
|
+
export declare function groupByConcern(w: WalkedRequirement): Map<string, ResolvedClaim[]>;
|
|
57
|
+
//# sourceMappingURL=requirement-walk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-walk.d.ts","sourceRoot":"","sources":["../src/requirement-walk.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE1E,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;gFAC4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAmCpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CASjF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// FR-038 — walking `requirement.*` nodes and projecting them for downstream filters.
|
|
2
|
+
//
|
|
3
|
+
// WHY A WALK RATHER THAN ctx.matches: the `Generator` contract is entity-shaped —
|
|
4
|
+
// `GenContext.entities` is `MetaObject[]` and `filter` is
|
|
5
|
+
// `(entity: MetaObject) => boolean` — so a requirement-driven generator cannot use
|
|
6
|
+
// it and must walk `loadedRoot` itself. Generalising `Generator` over any node kind
|
|
7
|
+
// is the principled fix and is deliberately out of scope: it is a core contract
|
|
8
|
+
// change touching every existing generator in five ports.
|
|
9
|
+
//
|
|
10
|
+
// WHY A PROJECTION rather than the raw node: an application's filter is app-owned
|
|
11
|
+
// policy (FR-038 §5), and handing it a `MetaData` would bind adopter code to
|
|
12
|
+
// metamodel internals and export the ADR-0039 own-vs-resolving accessor trap. The
|
|
13
|
+
// projection is additive — it can grow, but it never hands out the node.
|
|
14
|
+
import { TYPE_REQUIREMENT, resolveClaim } from "@metaobjectsdev/metadata";
|
|
15
|
+
/** `<type>.<subType>` — the key a renderer map is looked up by. */
|
|
16
|
+
export function concernOf(node) {
|
|
17
|
+
return `${node.type}.${node.subType}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The concern key for a requirement that resolves NO targets.
|
|
21
|
+
*
|
|
22
|
+
* Doubles as the catch-all renderer key, deliberately: a requirement with nothing
|
|
23
|
+
* to fan out over falls through to whatever the app registered as its default.
|
|
24
|
+
*/
|
|
25
|
+
export const NO_CONCERN = "*";
|
|
26
|
+
/**
|
|
27
|
+
* Depth-first walk of every `requirement.*` node, nested ones included.
|
|
28
|
+
*
|
|
29
|
+
* Unresolvable `@implementedBy` references are skipped rather than thrown on —
|
|
30
|
+
* resolution severity is `meta verify`'s job (it depends on `@status`, which is why
|
|
31
|
+
* it cannot live in the loader), and codegen must not fail a build over a
|
|
32
|
+
* diagnostic another command owns.
|
|
33
|
+
*/
|
|
34
|
+
export function walkRequirements(root) {
|
|
35
|
+
const out = [];
|
|
36
|
+
const visit = (node, prefix) => {
|
|
37
|
+
if (node.type !== TYPE_REQUIREMENT)
|
|
38
|
+
return;
|
|
39
|
+
const path = prefix === "" ? node.name : `${prefix}.${node.name}`;
|
|
40
|
+
const req = node;
|
|
41
|
+
// Same referrer-package basis the CLI's checks use, so a bare reference binds
|
|
42
|
+
// package-locally under the ADR-0042 contract.
|
|
43
|
+
const referrerPkg = node.package ?? node.fileDefaultPackage ?? "";
|
|
44
|
+
const targets = [];
|
|
45
|
+
for (const ref of req.implementedBy()) {
|
|
46
|
+
const target = resolveClaim(root, ref, referrerPkg);
|
|
47
|
+
if (target === undefined)
|
|
48
|
+
continue;
|
|
49
|
+
targets.push({ ref, node: target, concern: concernOf(target) });
|
|
50
|
+
}
|
|
51
|
+
out.push({
|
|
52
|
+
node: req,
|
|
53
|
+
view: {
|
|
54
|
+
subType: node.subType,
|
|
55
|
+
level: req.level(),
|
|
56
|
+
status: req.status(),
|
|
57
|
+
path,
|
|
58
|
+
implementedByTypes: [...new Set(targets.map((t) => t.concern))],
|
|
59
|
+
},
|
|
60
|
+
targets,
|
|
61
|
+
});
|
|
62
|
+
for (const child of node.children())
|
|
63
|
+
visit(child, path);
|
|
64
|
+
};
|
|
65
|
+
for (const child of root.children())
|
|
66
|
+
visit(child, "");
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Group a requirement's targets by distinct concern — the fan-out unit.
|
|
71
|
+
*
|
|
72
|
+
* One entry per distinct `type.subType`, NOT one per target: a single architectural
|
|
73
|
+
* requirement claimed by 123 entities must emit one stub, not 123, which is the
|
|
74
|
+
* hostile-first-contact outcome FR-038 §10 exists to avoid.
|
|
75
|
+
*
|
|
76
|
+
* A requirement resolving NO targets still yields exactly ONE group. That is not a
|
|
77
|
+
* degenerate case: `REQUIREMENT_LINK_FLOOR_LEVEL` forbids `@implementedBy` below L4,
|
|
78
|
+
* so every L1–L3 requirement resolves nothing — and an application that chooses to
|
|
79
|
+
* cover L3 would otherwise get silence instead of a stub.
|
|
80
|
+
*/
|
|
81
|
+
export function groupByConcern(w) {
|
|
82
|
+
const groups = new Map();
|
|
83
|
+
for (const t of w.targets) {
|
|
84
|
+
const existing = groups.get(t.concern);
|
|
85
|
+
if (existing === undefined)
|
|
86
|
+
groups.set(t.concern, [t]);
|
|
87
|
+
else
|
|
88
|
+
existing.push(t);
|
|
89
|
+
}
|
|
90
|
+
if (groups.size === 0)
|
|
91
|
+
groups.set(NO_CONCERN, []);
|
|
92
|
+
return groups;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=requirement-walk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-walk.js","sourceRoot":"","sources":["../src/requirement-walk.ts"],"names":[],"mappings":"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"}
|