@planu/cli 0.39.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/engine/ai-cost-estimator/spec-loader.d.ts.map +1 -1
- package/dist/engine/ai-cost-estimator/spec-loader.js +4 -19
- package/dist/engine/ai-cost-estimator/spec-loader.js.map +1 -1
- package/dist/engine/docs-site-generator/data-collector.d.ts.map +1 -1
- package/dist/engine/docs-site-generator/data-collector.js +95 -70
- package/dist/engine/docs-site-generator/data-collector.js.map +1 -1
- package/dist/engine/docs-site-generator/index.d.ts.map +1 -1
- package/dist/engine/docs-site-generator/index.js +5 -2
- package/dist/engine/docs-site-generator/index.js.map +1 -1
- package/dist/engine/frontmatter-parser.d.ts +13 -0
- package/dist/engine/frontmatter-parser.d.ts.map +1 -0
- package/dist/engine/frontmatter-parser.js +54 -0
- package/dist/engine/frontmatter-parser.js.map +1 -0
- package/dist/engine/handoff-packager.d.ts.map +1 -1
- package/dist/engine/handoff-packager.js +3 -1
- package/dist/engine/handoff-packager.js.map +1 -1
- package/dist/engine/readiness-checker.d.ts.map +1 -1
- package/dist/engine/readiness-checker.js +5 -2
- package/dist/engine/readiness-checker.js.map +1 -1
- package/dist/engine/spec-migrator.d.ts +1 -1
- package/dist/engine/spec-migrator.d.ts.map +1 -1
- package/dist/engine/spec-migrator.js +27 -5
- package/dist/engine/spec-migrator.js.map +1 -1
- package/dist/engine/validator/extractors.d.ts.map +1 -1
- package/dist/engine/validator/extractors.js +5 -2
- package/dist/engine/validator/extractors.js.map +1 -1
- package/dist/tools/create-spec/spec-builder.js +23 -30
- package/dist/tools/create-spec/spec-builder.js.map +1 -1
- package/dist/tools/create-spec-hu.d.ts.map +1 -1
- package/dist/tools/create-spec-hu.js +16 -3
- package/dist/tools/create-spec-hu.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +1 -0
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/detect-drift.d.ts.map +1 -1
- package/dist/tools/detect-drift.js +3 -1
- package/dist/tools/detect-drift.js.map +1 -1
- package/dist/tools/export-spec.d.ts.map +1 -1
- package/dist/tools/export-spec.js +3 -1
- package/dist/tools/export-spec.js.map +1 -1
- package/dist/tools/generate-teammate-prompt.d.ts +0 -14
- package/dist/tools/generate-teammate-prompt.d.ts.map +1 -1
- package/dist/tools/generate-teammate-prompt.js +3 -14
- package/dist/tools/generate-teammate-prompt.js.map +1 -1
- package/dist/tools/plan-team-distribution.d.ts +0 -6
- package/dist/tools/plan-team-distribution.d.ts.map +1 -1
- package/dist/tools/plan-team-distribution.js +0 -13
- package/dist/tools/plan-team-distribution.js.map +1 -1
- package/dist/tools/reconcile-spec.d.ts.map +1 -1
- package/dist/tools/reconcile-spec.js +3 -1
- package/dist/tools/reconcile-spec.js.map +1 -1
- package/dist/tools/summarize-spec.d.ts.map +1 -1
- package/dist/tools/summarize-spec.js +7 -5
- package/dist/tools/summarize-spec.js.map +1 -1
- package/dist/tools/validate-team-results.d.ts +0 -6
- package/dist/tools/validate-team-results.d.ts.map +1 -1
- package/dist/tools/validate-team-results.js +0 -12
- package/dist/tools/validate-team-results.js.map +1 -1
- package/dist/types/frontmatter.d.ts +5 -0
- package/dist/types/frontmatter.d.ts.map +1 -0
- package/dist/types/frontmatter.js +2 -0
- package/dist/types/frontmatter.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/project/core.d.ts +0 -1
- package/dist/types/project/core.d.ts.map +1 -1
- package/dist/types/project/core.js +0 -1
- package/dist/types/project/core.js.map +1 -1
- package/dist/types/project.d.ts +1 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +1 -0
- package/dist/types/project.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-loader.d.ts","sourceRoot":"","sources":["../../../src/engine/ai-cost-estimator/spec-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spec-loader.d.ts","sourceRoot":"","sources":["../../../src/engine/ai-cost-estimator/spec-loader.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+D/C;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,kEAAkE;AAClE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAe7E"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Extracted from core.ts to keep file sizes within limits.
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
+
import { stripFrontmatter } from '../frontmatter-parser.js';
|
|
5
6
|
/**
|
|
6
7
|
* Reads spec content from a sdd/specs directory.
|
|
7
8
|
* Tries to find the spec directory by matching specId prefix.
|
|
@@ -20,27 +21,11 @@ export async function loadSpecContent(specId) {
|
|
|
20
21
|
let specDir = null;
|
|
21
22
|
try {
|
|
22
23
|
const topEntries = await readdir(specsRoot);
|
|
23
|
-
//
|
|
24
|
+
// Flat layout: planu/specs/SPEC-069-name/ (or legacy docs/sdd/specs/SPEC-069-name/)
|
|
24
25
|
const flatMatch = topEntries.find((e) => e.startsWith(specId));
|
|
25
26
|
if (flatMatch) {
|
|
26
27
|
specDir = join(specsRoot, flatMatch);
|
|
27
28
|
}
|
|
28
|
-
else {
|
|
29
|
-
// Try nested layout: planu/specs/{feature}/SPEC-069-name/
|
|
30
|
-
for (const group of topEntries) {
|
|
31
|
-
try {
|
|
32
|
-
const groupEntries = await readdir(join(specsRoot, group));
|
|
33
|
-
const nestedMatch = groupEntries.find((e) => e.startsWith(specId));
|
|
34
|
-
if (nestedMatch) {
|
|
35
|
-
specDir = join(specsRoot, group, nestedMatch);
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// Not a directory — skip
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
29
|
}
|
|
45
30
|
catch {
|
|
46
31
|
throw new Error(`Spec directory not found at "${specsRoot}". ` +
|
|
@@ -61,8 +46,8 @@ export async function loadSpecContent(specId) {
|
|
|
61
46
|
break;
|
|
62
47
|
}
|
|
63
48
|
try {
|
|
64
|
-
const
|
|
65
|
-
parts.push(
|
|
49
|
+
const raw = await readFile(join(specDir, filename), 'utf-8');
|
|
50
|
+
parts.push(stripFrontmatter(raw));
|
|
66
51
|
found = true;
|
|
67
52
|
}
|
|
68
53
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-loader.js","sourceRoot":"","sources":["../../../src/engine/ai-cost-estimator/spec-loader.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,2DAA2D;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-loader.js","sourceRoot":"","sources":["../../../src/engine/ai-cost-estimator/spec-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-collector.d.ts","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/data-collector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"data-collector.d.ts","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/data-collector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoNrF,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgCjF;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,CA4B7D;AAuDD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BjF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// SPEC-093: Data collector for docs site generator
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
3
|
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
4
|
-
import { join
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { parseFrontmatter } from '../frontmatter-parser.js';
|
|
5
6
|
const SDD_PHASES = {
|
|
6
7
|
Initialize: ['init_project', 'init_constitution', 'set_locale'],
|
|
7
8
|
Analyze: [
|
|
@@ -111,85 +112,109 @@ function parseSpecType(title) {
|
|
|
111
112
|
}
|
|
112
113
|
return 'feature';
|
|
113
114
|
}
|
|
114
|
-
|
|
115
|
+
function extractTitle(metadata, lines, fallback) {
|
|
116
|
+
if (typeof metadata.title === 'string') {
|
|
117
|
+
return metadata.title;
|
|
118
|
+
}
|
|
119
|
+
const titleLine = lines.find((l) => l.startsWith('# '));
|
|
120
|
+
const titleMatch = titleLine ? /^#\s+(?:SPEC-\d+:\s*)?(.+)/.exec(titleLine) : null;
|
|
121
|
+
return titleMatch?.[1]?.trim() ?? fallback;
|
|
122
|
+
}
|
|
123
|
+
function extractStatus(metadata, lines) {
|
|
124
|
+
if (typeof metadata.status === 'string') {
|
|
125
|
+
return metadata.status;
|
|
126
|
+
}
|
|
127
|
+
const statusLine = lines.find((l) => l.includes('**Status:**'));
|
|
128
|
+
const statusMatch = statusLine ? /\*\*Status:\*\*\s*(\w[\w-]*)/.exec(statusLine) : null;
|
|
129
|
+
return statusMatch?.[1] ?? 'draft';
|
|
130
|
+
}
|
|
131
|
+
function countCriteria(lines) {
|
|
132
|
+
let done = 0;
|
|
133
|
+
let total = 0;
|
|
134
|
+
for (const line of lines) {
|
|
135
|
+
if (/^\s*-\s*\[x\]/i.test(line)) {
|
|
136
|
+
done++;
|
|
137
|
+
total++;
|
|
138
|
+
}
|
|
139
|
+
else if (/^\s*-\s*\[\s\]/.test(line)) {
|
|
140
|
+
total++;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return { done, total };
|
|
144
|
+
}
|
|
145
|
+
function extractTags(metadata, lines) {
|
|
146
|
+
if (Array.isArray(metadata.tags)) {
|
|
147
|
+
return metadata.tags;
|
|
148
|
+
}
|
|
149
|
+
const tagsIndex = lines.findIndex((l) => /^##\s+Tags/.test(l));
|
|
150
|
+
if (tagsIndex < 0) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
const tags = [];
|
|
154
|
+
for (let i = tagsIndex + 1; i < lines.length; i++) {
|
|
155
|
+
const tagLine = lines[i];
|
|
156
|
+
if (tagLine === undefined || tagLine.startsWith('##')) {
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
const tagMatch = /^\s*-\s*(.+)/.exec(tagLine);
|
|
160
|
+
if (tagMatch?.[1]) {
|
|
161
|
+
tags.push(tagMatch[1].trim());
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return tags;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Parse a single spec directory into a DocSpecSummary.
|
|
168
|
+
*/
|
|
169
|
+
async function parseSpecDir(specDirPath, specDirName) {
|
|
170
|
+
const specFilePath = join(specDirPath, 'spec.md');
|
|
171
|
+
let rawContent;
|
|
172
|
+
try {
|
|
173
|
+
rawContent = await readFile(specFilePath, 'utf-8');
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const { metadata, body } = parseFrontmatter(rawContent);
|
|
179
|
+
const lines = body.split('\n');
|
|
180
|
+
const criteria = countCriteria(lines);
|
|
181
|
+
const id = typeof metadata.id === 'string' ? metadata.id : parseSpecId(specDirName);
|
|
182
|
+
const title = extractTitle(metadata, lines, specDirName);
|
|
183
|
+
const specType = typeof metadata.type === 'string' ? metadata.type : parseSpecType(title);
|
|
184
|
+
const category = typeof metadata.category === 'string' ? metadata.category : specType;
|
|
185
|
+
return {
|
|
186
|
+
id,
|
|
187
|
+
title,
|
|
188
|
+
slug: slugify(specDirName),
|
|
189
|
+
status: extractStatus(metadata, lines),
|
|
190
|
+
category,
|
|
191
|
+
type: specType,
|
|
192
|
+
criteriaTotal: criteria.total,
|
|
193
|
+
criteriaDone: criteria.done,
|
|
194
|
+
tags: extractTags(metadata, lines),
|
|
195
|
+
specPath: specFilePath,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
115
198
|
export async function collectSpecs(projectPath) {
|
|
116
199
|
const specsDir = join(projectPath, 'planu', 'specs');
|
|
117
200
|
const results = [];
|
|
118
|
-
let
|
|
201
|
+
let entries;
|
|
119
202
|
try {
|
|
120
|
-
|
|
203
|
+
entries = await readdir(specsDir);
|
|
121
204
|
}
|
|
122
205
|
catch {
|
|
123
206
|
return [];
|
|
124
207
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
|
|
208
|
+
// Flat layout: planu/specs/SPEC-XXX-slug/spec.md
|
|
209
|
+
for (const entry of entries) {
|
|
210
|
+
const entryPath = join(specsDir, entry);
|
|
211
|
+
const entryStat = await stat(entryPath).catch(() => null);
|
|
212
|
+
if (!entryStat?.isDirectory()) {
|
|
129
213
|
continue;
|
|
130
214
|
}
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const dirStat = await stat(specPath).catch(() => null);
|
|
135
|
-
if (!dirStat?.isDirectory()) {
|
|
136
|
-
continue;
|
|
137
|
-
}
|
|
138
|
-
const specFilePath = join(specPath, 'spec.md');
|
|
139
|
-
let content;
|
|
140
|
-
try {
|
|
141
|
-
content = await readFile(specFilePath, 'utf-8');
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
const lines = content.split('\n');
|
|
147
|
-
const titleLine = lines.find((l) => l.startsWith('# '));
|
|
148
|
-
const titleMatch = titleLine ? /^#\s+(?:SPEC-\d+:\s*)?(.+)/.exec(titleLine) : null;
|
|
149
|
-
const title = titleMatch?.[1]?.trim() ?? specDir;
|
|
150
|
-
const statusLine = lines.find((l) => l.includes('**Status:**'));
|
|
151
|
-
const statusMatch = statusLine ? /\*\*Status:\*\*\s*(\w[\w-]*)/.exec(statusLine) : null;
|
|
152
|
-
const status = statusMatch?.[1] ?? 'draft';
|
|
153
|
-
let criteriaDone = 0;
|
|
154
|
-
let criteriaTotal = 0;
|
|
155
|
-
for (const line of lines) {
|
|
156
|
-
if (/^\s*-\s*\[x\]/i.test(line)) {
|
|
157
|
-
criteriaDone++;
|
|
158
|
-
criteriaTotal++;
|
|
159
|
-
}
|
|
160
|
-
else if (/^\s*-\s*\[\s\]/.test(line)) {
|
|
161
|
-
criteriaTotal++;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
const tags = [];
|
|
165
|
-
const tagsIndex = lines.findIndex((l) => /^##\s+Tags/.test(l));
|
|
166
|
-
if (tagsIndex >= 0) {
|
|
167
|
-
for (let i = tagsIndex + 1; i < lines.length; i++) {
|
|
168
|
-
const tagLine = lines[i];
|
|
169
|
-
if (tagLine === undefined) {
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
if (tagLine.startsWith('##')) {
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
const tagMatch = /^\s*-\s*(.+)/.exec(tagLine);
|
|
176
|
-
if (tagMatch?.[1]) {
|
|
177
|
-
tags.push(tagMatch[1].trim());
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
results.push({
|
|
182
|
-
id: parseSpecId(specDir),
|
|
183
|
-
title,
|
|
184
|
-
slug: slugify(specDir),
|
|
185
|
-
status,
|
|
186
|
-
category: basename(category),
|
|
187
|
-
type: parseSpecType(title),
|
|
188
|
-
criteriaTotal,
|
|
189
|
-
criteriaDone,
|
|
190
|
-
tags,
|
|
191
|
-
specPath: specFilePath,
|
|
192
|
-
});
|
|
215
|
+
const summary = await parseSpecDir(entryPath, entry);
|
|
216
|
+
if (summary) {
|
|
217
|
+
results.push(summary);
|
|
193
218
|
}
|
|
194
219
|
}
|
|
195
220
|
results.sort((a, b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-collector.js","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/data-collector.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"data-collector.js","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/data-collector.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,UAAU,GAA6B;IAC3C,UAAU,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,YAAY,CAAC;IAC/D,OAAO,EAAE;QACP,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,qBAAqB;QACrB,gBAAgB;QAChB,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,cAAc;QACd,qBAAqB;KACtB;IACD,aAAa,EAAE;QACb,sBAAsB;QACtB,aAAa;QACb,oBAAoB;QACpB,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,uBAAuB;QACvB,gBAAgB;QAChB,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,UAAU;QACV,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,wBAAwB;KACzB;IACD,MAAM,EAAE;QACN,UAAU;QACV,cAAc;QACd,qBAAqB;QACrB,mBAAmB;QACnB,eAAe;QACf,WAAW;KACZ;IACD,SAAS,EAAE;QACT,yBAAyB;QACzB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB;QACpB,0BAA0B;QAC1B,iBAAiB;QACjB,YAAY;QACZ,+BAA+B;QAC/B,aAAa;QACb,oBAAoB;QACpB,gBAAgB;QAChB,aAAa;QACb,mBAAmB;QACnB,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,yBAAyB;QACzB,qBAAqB;KACtB;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC;IACrF,iBAAiB,EAAE;QACjB,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,oBAAoB;QACpB,oBAAoB;QACpB,gBAAgB;KACjB;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,QAAgB;IACxC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AAC/B,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CACnB,QAAiC,EACjC,KAAe,EACf,QAAgB;IAEhB,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,QAAiC,EAAE,KAAe;IACvE,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAe;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,QAAiC,EAAE,KAAe;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,IAAgB,CAAC;IACnC,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtF,OAAO;QACL,EAAE;QACF,KAAK;QACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;QAC1B,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;QACtC,QAAQ;QACR,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,QAAQ,CAAC,KAAK;QAC7B,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClC,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAGxD,CAAC;IAEF,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YACpC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YACpC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,KAAK,IAAI,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,KAAK,IAAI,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAExC,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,aAAa;QACb,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,YAAY;QACZ,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;AASrF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA8EtF"}
|
|
@@ -6,6 +6,7 @@ import { renderDashboard } from './dashboard-renderer.js';
|
|
|
6
6
|
import { renderSpecPage, renderSpecIndex } from './spec-renderer.js';
|
|
7
7
|
import { renderToolsCatalog } from './tools-renderer.js';
|
|
8
8
|
import { renderDiagramsPage } from './diagrams-renderer.js';
|
|
9
|
+
import { stripFrontmatter } from '../frontmatter-parser.js';
|
|
9
10
|
export async function generateDocsSite(config) {
|
|
10
11
|
const { projectPath, outputDir, title = 'Planu Documentation' } = config;
|
|
11
12
|
const [specs, metrics] = await Promise.all([
|
|
@@ -34,7 +35,8 @@ export async function generateDocsSite(config) {
|
|
|
34
35
|
let specContent = '';
|
|
35
36
|
let techContent = '';
|
|
36
37
|
try {
|
|
37
|
-
|
|
38
|
+
const raw = await readFile(spec.specPath, 'utf-8');
|
|
39
|
+
specContent = stripFrontmatter(raw);
|
|
38
40
|
}
|
|
39
41
|
catch {
|
|
40
42
|
/* missing */
|
|
@@ -43,7 +45,8 @@ export async function generateDocsSite(config) {
|
|
|
43
45
|
const techPath = spec.specPath
|
|
44
46
|
.replace(/spec\.md$/, 'technical.md')
|
|
45
47
|
.replace(/HU\.md$/, 'FICHA-TECNICA.md');
|
|
46
|
-
|
|
48
|
+
const rawTech = await readFile(techPath, 'utf-8');
|
|
49
|
+
techContent = stripFrontmatter(rawTech);
|
|
47
50
|
}
|
|
48
51
|
catch {
|
|
49
52
|
/* missing */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IAC3D,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,GAAG,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEzE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,YAAY,CAAC,WAAW,CAAC;QACzB,cAAc,CAAC,WAAW,CAAC;KAC5B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG;QACf,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC1C,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;QAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;QACtC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE;KACrD,CAAC;IAEF,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAK,cAAc,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC;KAClF,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;KACrE,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/docs-site-generator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FrontmatterResult } from '../types/frontmatter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse YAML frontmatter from markdown content.
|
|
4
|
+
* Supports simple key: value pairs, arrays `[a, b]`, null, integers, and quoted strings.
|
|
5
|
+
* Returns the original content as body if no frontmatter is found.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseFrontmatter(content: string): FrontmatterResult;
|
|
8
|
+
/**
|
|
9
|
+
* Strip YAML frontmatter from markdown content, returning only the body.
|
|
10
|
+
* If no frontmatter is present, returns the original content unchanged.
|
|
11
|
+
*/
|
|
12
|
+
export declare function stripFrontmatter(content: string): string;
|
|
13
|
+
//# sourceMappingURL=frontmatter-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-parser.d.ts","sourceRoot":"","sources":["../../src/engine/frontmatter-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAoCnE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// engine/frontmatter-parser.ts — Parse YAML frontmatter from spec.md files
|
|
2
|
+
// Zero-dependency: no external YAML parser needed for the simple key:value format.
|
|
3
|
+
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n([\s\S]*)$/;
|
|
4
|
+
const KV_LINE_RE = /^(\w+):\s*(.+)$/;
|
|
5
|
+
/**
|
|
6
|
+
* Parse YAML frontmatter from markdown content.
|
|
7
|
+
* Supports simple key: value pairs, arrays `[a, b]`, null, integers, and quoted strings.
|
|
8
|
+
* Returns the original content as body if no frontmatter is found.
|
|
9
|
+
*/
|
|
10
|
+
export function parseFrontmatter(content) {
|
|
11
|
+
const match = FRONTMATTER_RE.exec(content);
|
|
12
|
+
if (!match?.[1] || match[2] === undefined) {
|
|
13
|
+
return { metadata: {}, body: content };
|
|
14
|
+
}
|
|
15
|
+
const metadata = {};
|
|
16
|
+
for (const line of match[1].split('\n')) {
|
|
17
|
+
const kv = KV_LINE_RE.exec(line.trim());
|
|
18
|
+
if (!kv?.[1] || kv[2] === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const key = kv[1];
|
|
22
|
+
const val = kv[2].trim();
|
|
23
|
+
if (val.startsWith('[') && val.endsWith(']')) {
|
|
24
|
+
metadata[key] = val
|
|
25
|
+
.slice(1, -1)
|
|
26
|
+
.split(',')
|
|
27
|
+
.map((s) => s.trim().replace(/^["']|["']$/g, ''));
|
|
28
|
+
}
|
|
29
|
+
else if (val === 'null') {
|
|
30
|
+
metadata[key] = null;
|
|
31
|
+
}
|
|
32
|
+
else if (/^\d+$/.test(val)) {
|
|
33
|
+
metadata[key] = parseInt(val, 10);
|
|
34
|
+
}
|
|
35
|
+
else if (val === 'true') {
|
|
36
|
+
metadata[key] = true;
|
|
37
|
+
}
|
|
38
|
+
else if (val === 'false') {
|
|
39
|
+
metadata[key] = false;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
metadata[key] = val.replace(/^["']|["']$/g, '');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return { metadata, body: match[2] };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Strip YAML frontmatter from markdown content, returning only the body.
|
|
49
|
+
* If no frontmatter is present, returns the original content unchanged.
|
|
50
|
+
*/
|
|
51
|
+
export function stripFrontmatter(content) {
|
|
52
|
+
return content.replace(/^---\n[\s\S]*?\n---\n/, '');
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=frontmatter-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-parser.js","sourceRoot":"","sources":["../../src/engine/frontmatter-parser.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,mFAAmF;AAInF,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAC3D,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG;iBAChB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACZ,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-packager.d.ts","sourceRoot":"","sources":["../../src/engine/handoff-packager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff-packager.d.ts","sourceRoot":"","sources":["../../src/engine/handoff-packager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAgLnG,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// engine/handoff-packager.ts — Assembles handoff context package for AI agents (SPEC-039)
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { stripFrontmatter } from './frontmatter-parser.js';
|
|
3
4
|
// ── Parsing helpers ──────────────────────────────────────────────────────────
|
|
4
5
|
async function safeReadFile(path) {
|
|
5
6
|
if (!path) {
|
|
6
7
|
return '';
|
|
7
8
|
}
|
|
8
9
|
try {
|
|
9
|
-
|
|
10
|
+
const raw = await readFile(path, 'utf-8');
|
|
11
|
+
return stripFrontmatter(raw);
|
|
10
12
|
}
|
|
11
13
|
catch {
|
|
12
14
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-packager.js","sourceRoot":"","sources":["../../src/engine/handoff-packager.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff-packager.js","sourceRoot":"","sources":["../../src/engine/handoff-packager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness-checker.d.ts","sourceRoot":"","sources":["../../src/engine/readiness-checker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EAIhB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"readiness-checker.d.ts","sourceRoot":"","sources":["../../src/engine/readiness-checker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAoL3B,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,GAAG,SAAS,GACzB,OAAO,CAAC,eAAe,CAAC,CA2D1B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// engine/readiness-checker.ts — Spec readiness evaluation for implementation gate (SPEC-039)
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { stripFrontmatter } from './frontmatter-parser.js';
|
|
3
4
|
// ── Constants ────────────────────────────────────────────────────────────────
|
|
4
5
|
const VAGUE_WORDS = ['fast', 'easy', 'good', 'nice', 'quick', 'better', 'simple', 'clean'];
|
|
5
6
|
const STRICT_BLOCKER_THRESHOLD = 50;
|
|
@@ -33,7 +34,8 @@ async function readHuContent(spec) {
|
|
|
33
34
|
return '';
|
|
34
35
|
}
|
|
35
36
|
try {
|
|
36
|
-
|
|
37
|
+
const raw = await readFile(spec.specPath, 'utf-8');
|
|
38
|
+
return stripFrontmatter(raw);
|
|
37
39
|
}
|
|
38
40
|
catch {
|
|
39
41
|
return '';
|
|
@@ -44,7 +46,8 @@ async function readFichaContent(spec) {
|
|
|
44
46
|
return '';
|
|
45
47
|
}
|
|
46
48
|
try {
|
|
47
|
-
|
|
49
|
+
const raw = await readFile(spec.technicalPath, 'utf-8');
|
|
50
|
+
return stripFrontmatter(raw);
|
|
48
51
|
}
|
|
49
52
|
catch {
|
|
50
53
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness-checker.js","sourceRoot":"","sources":["../../src/engine/readiness-checker.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"readiness-checker.js","sourceRoot":"","sources":["../../src/engine/readiness-checker.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,gFAAgF;AAEhF,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE3F,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,gFAAgF;AAEhF,SAAS,mBAAmB,CAAC,IAAU;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,qEAAqE;IACrE,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ;IACrB,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS;IACtB,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO;IAEpB,4EAA4E;IAC5E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrF,QAAQ,CAAC,IAAI,CACX,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAU;IACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAU;IACxC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,OAAO,SAAS;SACb,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,aAAuB;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IACnC,IAAI,MAAc,CAAC;IAEnB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CACX,oCAAoC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,YAAoB;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5E,CAAC;IAEF,IAAI,MAAc,CAAC;IACnB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAC5B,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,CAAC;QACX,QAAQ,CAAC,IAAI,CACX,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAU;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CACpI,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAa,EACb,QAAgB,EAChB,cAAsB,EACtB,WAAmB,EACnB,UAAkB;IAElB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CACP,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,IAA0B;IAE1B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE5E,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhG,MAAM,SAAS,GAA+C;QAC5D,EAAE,EAAE,EAAE,CAAC,MAAM;QACb,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAClG,MAAM,gBAAgB,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAElG,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CACd,kBAAkB,UAAU,aAAa,gBAAgB,yCAAyC,CACnG,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CACd,kBAAkB,UAAU,aAAa,gBAAgB,yBAAyB,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAmB;QACrC,KAAK,EAAE,UAAU;QACjB,SAAS;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,WAAW;KACtB,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,IAAI,gBAAgB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,oBAAoB,CAC1C,UAAU,EACV,EAAE,CAAC,MAAM,EACT,QAAQ,CAAC,MAAM,EACf,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,MAAM,CACZ,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,cAAc;QACtB,eAAe;QACf,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ export declare function filterLegacySpecs(specs: Spec[]): Spec[];
|
|
|
12
12
|
export declare function migrateSpecs(projectPath: string, legacySpecs: Spec[], deps: SpecMigrationDeps): Promise<SpecMigrationResult>;
|
|
13
13
|
/**
|
|
14
14
|
* Detect specs whose folder name lacks the SPEC-XXX- prefix.
|
|
15
|
-
* E.g., folder is `planu/specs/
|
|
15
|
+
* E.g., folder is `planu/specs/login-form/` but should be `planu/specs/SPEC-012-login-form/`.
|
|
16
16
|
*/
|
|
17
17
|
export declare function filterUnprefixedSpecs(specs: Spec[]): Spec[];
|
|
18
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-migrator.d.ts","sourceRoot":"","sources":["../../src/engine/spec-migrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAetF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAEvD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,IAAI,EAAE,EACnB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAoB9B;
|
|
1
|
+
{"version":3,"file":"spec-migrator.d.ts","sourceRoot":"","sources":["../../src/engine/spec-migrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAetF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAEvD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,IAAI,EAAE,EACnB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAoB9B;AA2GD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAU3D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAsD9B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS3E"}
|