@sdd-method/sdd-cli 0.38.0 → 0.40.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/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/catalogue/archetype/resolver.d.ts +13 -0
- package/dist/lib/catalogue/archetype/resolver.d.ts.map +1 -1
- package/dist/lib/catalogue/archetype/resolver.js +5 -0
- package/dist/lib/catalogue/archetype/resolver.js.map +1 -1
- package/dist/lib/catalogue/archetype/wireframe.d.ts +14 -0
- package/dist/lib/catalogue/archetype/wireframe.d.ts.map +1 -0
- package/dist/lib/catalogue/archetype/wireframe.js +129 -0
- package/dist/lib/catalogue/archetype/wireframe.js.map +1 -0
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +7 -0
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/screen-tree.d.ts +14 -0
- package/dist/lib/catalogue/builders/screen-tree.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/screen-tree.js +35 -6
- package/dist/lib/catalogue/builders/screen-tree.js.map +1 -1
- package/dist/lib/catalogue/builders/screens.d.ts +13 -1
- package/dist/lib/catalogue/builders/screens.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/screens.js +45 -11
- package/dist/lib/catalogue/builders/screens.js.map +1 -1
- package/dist/lib/catalogue/screen-validation-loader.d.ts +45 -0
- package/dist/lib/catalogue/screen-validation-loader.d.ts.map +1 -0
- package/dist/lib/catalogue/screen-validation-loader.js +81 -0
- package/dist/lib/catalogue/screen-validation-loader.js.map +1 -0
- package/dist/verbs/render.d.ts +3 -0
- package/dist/verbs/render.d.ts.map +1 -0
- package/dist/verbs/render.js +76 -0
- package/dist/verbs/render.js.map +1 -0
- package/package.json +2 -2
|
@@ -79,15 +79,25 @@ export async function buildScreens(inputs) {
|
|
|
79
79
|
}
|
|
80
80
|
const name = extractH1(text) || (typeof fm.name === "string" ? fm.name : stem);
|
|
81
81
|
const status = typeof fm.status === "string" && fm.status !== "" ? maturity(fm.status, inputs.findings, screenId) : "";
|
|
82
|
+
// Direction discriminator (ADR 0135): forward authoring is `screen-spec`,
|
|
83
|
+
// reverse extraction `screen-extraction`. Read from frontmatter, default
|
|
84
|
+
// forward; only these two are recognised (others pass through, flagged).
|
|
85
|
+
const source = screenSource(fm.source, inputs.findings, screenId);
|
|
82
86
|
screens.push({
|
|
83
87
|
id: screenId,
|
|
84
88
|
name,
|
|
85
89
|
product_id: inputs.productId,
|
|
86
90
|
route: typeof fm.route === "string" ? fm.route : "",
|
|
87
91
|
status,
|
|
88
|
-
source
|
|
92
|
+
source,
|
|
89
93
|
source_sdd_id: "",
|
|
90
94
|
});
|
|
95
|
+
// Evidence integrity (ADR 0168 §4.2, defect f): a reverse-extracted screen
|
|
96
|
+
// must cite its route + component evidence with a `[^…]` footnote. Forward-
|
|
97
|
+
// authored screens make no such claim, so the check is reverse-scoped.
|
|
98
|
+
if (source === "screen-extraction" && !/\[\^[^\]]+\]/.test(text)) {
|
|
99
|
+
inputs.findings.add("coverage", `screen ${screenId}: reverse-extracted but cites no evidence footnote (screen-evidence-missing)`);
|
|
100
|
+
}
|
|
91
101
|
const block = extractOpenUiLangBlock(text);
|
|
92
102
|
if (!block) {
|
|
93
103
|
inputs.findings.add("coverage", `screens: ${filename} has no \`\`\`openui-lang block — screen emitted, no components`);
|
|
@@ -98,12 +108,13 @@ export async function buildScreens(inputs) {
|
|
|
98
108
|
const clean = stripBlockComments(block);
|
|
99
109
|
// Component invocations: Capitalised call heads (e.g. Stack(, StatCard().
|
|
100
110
|
// Local id references (lowercase, no parens) and list literals are skipped.
|
|
101
|
-
|
|
111
|
+
const componentNames = new Set(matchAll(clean, /\b([A-Z][A-Za-z0-9]*)\s*\(/g));
|
|
112
|
+
for (const comp of componentNames) {
|
|
102
113
|
const cid = `${inputs.productId}-${screenSlug(comp)}`;
|
|
103
114
|
if (!uiById.has(cid)) {
|
|
104
115
|
uiById.set(cid, {
|
|
105
116
|
id: cid, name: comp, product_id: inputs.productId,
|
|
106
|
-
kind: "", source
|
|
117
|
+
kind: "", source, source_sdd_id: "",
|
|
107
118
|
});
|
|
108
119
|
}
|
|
109
120
|
const scKey = `${screenId}__${cid}`;
|
|
@@ -125,7 +136,14 @@ export async function buildScreens(inputs) {
|
|
|
125
136
|
// free checks reason about tree shape + status only; root-is-leaf consults
|
|
126
137
|
// the archetype map when the screen declares a `platform:`.
|
|
127
138
|
const platform = typeof fm.platform === "string" ? fm.platform : undefined;
|
|
128
|
-
|
|
139
|
+
const overlay = platform !== undefined ? inputs.archetypeOverlays?.get(platform) : undefined;
|
|
140
|
+
emitDepthFindings(inputs.findings, screenId, status, analyzeComposition(clean), {
|
|
141
|
+
flatThreshold,
|
|
142
|
+
platform,
|
|
143
|
+
overlay,
|
|
144
|
+
componentNames,
|
|
145
|
+
decorativePrimitives: inputs.decorativePrimitives,
|
|
146
|
+
});
|
|
129
147
|
}
|
|
130
148
|
// realises: -> screen_feature
|
|
131
149
|
for (const fref of toList(fm.realises)) {
|
|
@@ -159,12 +177,8 @@ export async function buildScreens(inputs) {
|
|
|
159
177
|
screenAction: [...screenAction.values()],
|
|
160
178
|
};
|
|
161
179
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
// `screen-flat-composition` are advisory warnings; `screen-status-exceeds-depth`
|
|
165
|
-
// is an error (fails the build by default, like an FK failure) because a screen
|
|
166
|
-
// must not claim `working` maturity over an empty or flat composition.
|
|
167
|
-
function emitDepthFindings(findings, screenId, status, m, flatThreshold, platform) {
|
|
180
|
+
function emitDepthFindings(findings, screenId, status, m, ctx) {
|
|
181
|
+
const { flatThreshold, platform, overlay, componentNames, decorativePrimitives } = ctx;
|
|
168
182
|
const empty = m.componentCount <= 1;
|
|
169
183
|
const flat = !empty && m.maxDepth <= 1 && m.rootChildCount >= flatThreshold;
|
|
170
184
|
if (empty) {
|
|
@@ -186,11 +200,20 @@ function emitDepthFindings(findings, screenId, status, m, flatThreshold, platfor
|
|
|
186
200
|
// heuristic alone can't distinguish an empty container root (Stack([])) from a
|
|
187
201
|
// genuine leaf root (Button([])), so the check no-ops (ADR 0168 §4.5).
|
|
188
202
|
if (m.rootComponent !== "" && m.rootChildCount === 0) {
|
|
189
|
-
const byMap = isContainerArchetype(m.rootComponent, platform);
|
|
203
|
+
const byMap = isContainerArchetype(m.rootComponent, platform, overlay);
|
|
190
204
|
if (byMap === false && !m.containers.has(m.rootComponent)) {
|
|
191
205
|
findings.add("convention", `screen ${screenId}: root component "${m.rootComponent}" is a leaf, not a container (screen-root-is-leaf)`, "error");
|
|
192
206
|
}
|
|
193
207
|
}
|
|
208
|
+
// Styling-primitive leakage (ADR 0168 §4.2 screen-styling-primitive-as-structure):
|
|
209
|
+
// an adopter-flagged decorative primitive composed as a structural component.
|
|
210
|
+
// No-ops when the adopter declares no decorative set.
|
|
211
|
+
if (decorativePrimitives !== undefined && decorativePrimitives.size > 0) {
|
|
212
|
+
const leaked = [...componentNames].filter((c) => decorativePrimitives.has(c)).sort();
|
|
213
|
+
if (leaked.length > 0) {
|
|
214
|
+
findings.add("convention", `screen ${screenId}: decorative primitive${leaked.length > 1 ? "s" : ""} ${leaked.map((c) => `"${c}"`).join(", ")} used as structure (screen-styling-primitive-as-structure)`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
194
217
|
}
|
|
195
218
|
function emptyResult() {
|
|
196
219
|
return { screens: [], uiComponents: [], screenComponent: [], screenFeature: [], personaScreen: [], screenAction: [] };
|
|
@@ -212,6 +235,17 @@ function screenSlug(s) {
|
|
|
212
235
|
function normalise(s) {
|
|
213
236
|
return s.trim().toLowerCase().replace(/\s+/g, " ");
|
|
214
237
|
}
|
|
238
|
+
// Recognised direction discriminators (ADR 0135). Others pass through flagged.
|
|
239
|
+
const SCREEN_SOURCES = new Set(["screen-spec", "screen-extraction"]);
|
|
240
|
+
function screenSource(value, findings, screenId) {
|
|
241
|
+
if (typeof value !== "string" || value.trim() === "")
|
|
242
|
+
return "screen-spec";
|
|
243
|
+
const v = value.trim();
|
|
244
|
+
if (!SCREEN_SOURCES.has(v)) {
|
|
245
|
+
findings.add("convention", `screens: ${screenId} source "${v}" outside the standard set {screen-spec, screen-extraction} — passed through`);
|
|
246
|
+
}
|
|
247
|
+
return v;
|
|
248
|
+
}
|
|
215
249
|
function maturity(value, findings, screenId) {
|
|
216
250
|
const v = value.trim();
|
|
217
251
|
if (!STANDARD_MATURITY.has(v.toLowerCase())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/screens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/screens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loader for the optional `.sdd/screen-validation.yaml` config — the
|
|
3
|
+
* adopter-tunable parameters for screen-spec composition-depth validation
|
|
4
|
+
* (ADR 0168 §4.5) and the archetype overlay (ADR 0169 §4.3).
|
|
5
|
+
*
|
|
6
|
+
* Every field is optional and carries a method default; an absent file means
|
|
7
|
+
* "method defaults only" (the vocabulary-free checks all still run). Follows
|
|
8
|
+
* the same shape convention as the `.sdd/*-aliases.yaml` loaders.
|
|
9
|
+
*
|
|
10
|
+
* File shape:
|
|
11
|
+
*
|
|
12
|
+
* flat_threshold: 6 # screen-flat-composition N (default 6)
|
|
13
|
+
* decorative_primitives: # unlocks screen-styling-primitive-as-structure
|
|
14
|
+
* - Spacer
|
|
15
|
+
* - Divider
|
|
16
|
+
* archetype_overlays: # per-platform overlay (ADR 0169 §4.3)
|
|
17
|
+
* web-generic:
|
|
18
|
+
* overrides:
|
|
19
|
+
* VBespokeGrid: grid
|
|
20
|
+
* swiftui:
|
|
21
|
+
* overrides:
|
|
22
|
+
* BrandCard: card
|
|
23
|
+
*
|
|
24
|
+
* The decorative set + the overlays are adopter-owned (vendor-standard defaults
|
|
25
|
+
* ship in the method; bespoke names live here). The checks themselves stay
|
|
26
|
+
* vocabulary-free — they consume these parameters, they don't hardcode them.
|
|
27
|
+
*/
|
|
28
|
+
import type { ArchetypeOverlay } from "./archetype/resolver.js";
|
|
29
|
+
export declare const SCREEN_VALIDATION_REL_PATH: string;
|
|
30
|
+
export interface ScreenValidationConfig {
|
|
31
|
+
/** screen-flat-composition threshold N; undefined → method default (6). */
|
|
32
|
+
readonly flatThreshold?: number | undefined;
|
|
33
|
+
/** Component names the adopter flags as decorative (Spacer, Divider, …). */
|
|
34
|
+
readonly decorativePrimitives: ReadonlySet<string>;
|
|
35
|
+
/** Per-platform archetype overlay (platform → overlay), for the resolver. */
|
|
36
|
+
readonly archetypeOverlays: ReadonlyMap<string, ArchetypeOverlay>;
|
|
37
|
+
/** Path the config was loaded from (relative to SDD root). */
|
|
38
|
+
readonly relPath: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Load the optional screen-validation config. Returns `null` when the file is
|
|
42
|
+
* absent — callers apply method defaults. Throws on malformed YAML.
|
|
43
|
+
*/
|
|
44
|
+
export declare function loadScreenValidationConfig(sddPath: string): Promise<ScreenValidationConfig | null>;
|
|
45
|
+
//# sourceMappingURL=screen-validation-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-validation-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/screen-validation-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,eAAO,MAAM,0BAA0B,QAAyC,CAAC;AAEjF,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,4EAA4E;IAC5E,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClE,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAQD;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAoCxC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loader for the optional `.sdd/screen-validation.yaml` config — the
|
|
3
|
+
* adopter-tunable parameters for screen-spec composition-depth validation
|
|
4
|
+
* (ADR 0168 §4.5) and the archetype overlay (ADR 0169 §4.3).
|
|
5
|
+
*
|
|
6
|
+
* Every field is optional and carries a method default; an absent file means
|
|
7
|
+
* "method defaults only" (the vocabulary-free checks all still run). Follows
|
|
8
|
+
* the same shape convention as the `.sdd/*-aliases.yaml` loaders.
|
|
9
|
+
*
|
|
10
|
+
* File shape:
|
|
11
|
+
*
|
|
12
|
+
* flat_threshold: 6 # screen-flat-composition N (default 6)
|
|
13
|
+
* decorative_primitives: # unlocks screen-styling-primitive-as-structure
|
|
14
|
+
* - Spacer
|
|
15
|
+
* - Divider
|
|
16
|
+
* archetype_overlays: # per-platform overlay (ADR 0169 §4.3)
|
|
17
|
+
* web-generic:
|
|
18
|
+
* overrides:
|
|
19
|
+
* VBespokeGrid: grid
|
|
20
|
+
* swiftui:
|
|
21
|
+
* overrides:
|
|
22
|
+
* BrandCard: card
|
|
23
|
+
*
|
|
24
|
+
* The decorative set + the overlays are adopter-owned (vendor-standard defaults
|
|
25
|
+
* ship in the method; bespoke names live here). The checks themselves stay
|
|
26
|
+
* vocabulary-free — they consume these parameters, they don't hardcode them.
|
|
27
|
+
*/
|
|
28
|
+
import { readFile } from "node:fs/promises";
|
|
29
|
+
import { join } from "node:path";
|
|
30
|
+
import { parse as parseYaml } from "yaml";
|
|
31
|
+
export const SCREEN_VALIDATION_REL_PATH = join(".sdd", "screen-validation.yaml");
|
|
32
|
+
/**
|
|
33
|
+
* Load the optional screen-validation config. Returns `null` when the file is
|
|
34
|
+
* absent — callers apply method defaults. Throws on malformed YAML.
|
|
35
|
+
*/
|
|
36
|
+
export async function loadScreenValidationConfig(sddPath) {
|
|
37
|
+
const full = join(sddPath, SCREEN_VALIDATION_REL_PATH);
|
|
38
|
+
let text;
|
|
39
|
+
try {
|
|
40
|
+
text = await readFile(full, "utf-8");
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
if (err.code === "ENOENT")
|
|
44
|
+
return null;
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
const raw = parseYaml(text);
|
|
48
|
+
if (raw === null || typeof raw !== "object") {
|
|
49
|
+
throw new Error(`${SCREEN_VALIDATION_REL_PATH}: expected a mapping at the document root`);
|
|
50
|
+
}
|
|
51
|
+
const flatThreshold = typeof raw.flat_threshold === "number" && Number.isFinite(raw.flat_threshold) && raw.flat_threshold > 0
|
|
52
|
+
? raw.flat_threshold
|
|
53
|
+
: undefined;
|
|
54
|
+
const decorativePrimitives = new Set();
|
|
55
|
+
if (Array.isArray(raw.decorative_primitives)) {
|
|
56
|
+
for (const v of raw.decorative_primitives) {
|
|
57
|
+
if (typeof v === "string" && v !== "")
|
|
58
|
+
decorativePrimitives.add(v);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const archetypeOverlays = new Map();
|
|
62
|
+
if (raw.archetype_overlays !== null && typeof raw.archetype_overlays === "object" && !Array.isArray(raw.archetype_overlays)) {
|
|
63
|
+
for (const [platform, body] of Object.entries(raw.archetype_overlays)) {
|
|
64
|
+
const overrides = toStringMap(body?.overrides);
|
|
65
|
+
if (Object.keys(overrides).length > 0)
|
|
66
|
+
archetypeOverlays.set(platform, { overrides });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return { flatThreshold, decorativePrimitives, archetypeOverlays, relPath: SCREEN_VALIDATION_REL_PATH };
|
|
70
|
+
}
|
|
71
|
+
function toStringMap(raw) {
|
|
72
|
+
const out = {};
|
|
73
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
74
|
+
return out;
|
|
75
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
76
|
+
if (typeof v === "string" && v !== "")
|
|
77
|
+
out[k] = v;
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=screen-validation-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-validation-loader.js","sourceRoot":"","sources":["../../../src/lib/catalogue/screen-validation-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAG1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAmBjF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAe;IAEf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACvD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClE,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAqB,CAAC;IAChD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,0BAA0B,2CAA2C,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC;QACrG,CAAC,CAAC,GAAG,CAAC,cAAc;QACpB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC9D,IAAI,GAAG,CAAC,kBAAkB,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC5H,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAA6C,CAAC,EAAE,CAAC;YACjG,MAAM,SAAS,GAAG,WAAW,CAAE,IAAuC,EAAE,SAAS,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACzG,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC9E,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/verbs/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+CrD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { basename, dirname } from "node:path";
|
|
3
|
+
import { parse as parseYaml } from "yaml";
|
|
4
|
+
import { renderWireframe } from "../lib/catalogue/archetype/wireframe.js";
|
|
5
|
+
import { loadScreenValidationConfig } from "../lib/catalogue/screen-validation-loader.js";
|
|
6
|
+
export function registerRender(program) {
|
|
7
|
+
const render = program
|
|
8
|
+
.command("render")
|
|
9
|
+
.description("Render method artefacts to visual form");
|
|
10
|
+
render
|
|
11
|
+
.command("screen <file>")
|
|
12
|
+
.description("Render a screen-spec's openui-lang block to a structural wireframe SVG (ADR 0169). " +
|
|
13
|
+
"Platform comes from the `platform:` frontmatter; an adopter overlay is read from " +
|
|
14
|
+
".sdd/screen-validation.yaml when present.")
|
|
15
|
+
.option("--out <file>", "write the SVG to a file (default: stdout)")
|
|
16
|
+
.action(async (file, opts) => {
|
|
17
|
+
let text;
|
|
18
|
+
try {
|
|
19
|
+
text = await readFile(file, "utf-8");
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
process.stderr.write(`[FAIL] cannot read ${file}: ${err.message}\n`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const block = extractBlock(text);
|
|
27
|
+
if (block === null) {
|
|
28
|
+
process.stderr.write(`[FAIL] ${file} has no \`\`\`openui-lang block\n`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const fm = parseFrontmatter(text);
|
|
33
|
+
const platform = typeof fm.platform === "string" ? fm.platform : undefined;
|
|
34
|
+
const title = typeof fm.screen === "string" ? fm.screen : basename(file).replace(/\.md$/i, "");
|
|
35
|
+
// An overlay lives in the SDD's .sdd/; when the file sits under screens/,
|
|
36
|
+
// the SDD root is its grandparent. Best-effort — absent → no overlay.
|
|
37
|
+
const overlay = platform !== undefined ? await loadOverlay(file, platform) : undefined;
|
|
38
|
+
const svg = renderWireframe({ block, platform, overlay, title });
|
|
39
|
+
if (opts.out !== undefined) {
|
|
40
|
+
await writeFile(opts.out, svg, "utf-8");
|
|
41
|
+
process.stdout.write(`[OK] wrote ${opts.out}\n`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
process.stdout.write(svg + "\n");
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function extractBlock(text) {
|
|
49
|
+
const m = /```openui-lang\r?\n([\s\S]*?)```/.exec(text);
|
|
50
|
+
return m ? (m[1] ?? "") : null;
|
|
51
|
+
}
|
|
52
|
+
function parseFrontmatter(text) {
|
|
53
|
+
const m = /^---\r?\n([\s\S]*?)\r?\n---/.exec(text);
|
|
54
|
+
if (!m)
|
|
55
|
+
return {};
|
|
56
|
+
try {
|
|
57
|
+
const parsed = parseYaml(m[1] ?? "");
|
|
58
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function loadOverlay(file, platform) {
|
|
65
|
+
const screensDir = dirname(file);
|
|
66
|
+
// .../<sddRoot>/screens/<file>.md → sddRoot is the parent of screens/.
|
|
67
|
+
const sddRoot = basename(screensDir) === "screens" ? dirname(screensDir) : screensDir;
|
|
68
|
+
try {
|
|
69
|
+
const cfg = await loadScreenValidationConfig(sddRoot);
|
|
70
|
+
return cfg?.archetypeOverlays.get(platform);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/verbs/render.ts"],"names":[],"mappings":"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"}
|