@anselmdk/feature-spec-md 0.5.0-rc.1 → 0.5.0-rc.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"githubActionDiffReport.d.ts","sourceRoot":"","sources":["../src/githubActionDiffReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,CAAC;AAqBhE,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,6BAA6B,iBA4DvC"}
1
+ {"version":3,"file":"githubActionDiffReport.d.ts","sourceRoot":"","sources":["../src/githubActionDiffReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,CAAC;AAsBhE,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,6BAA6B,iBAyCvC"}
@@ -8,29 +8,18 @@ import { writeGithubOutput, writeGithubSummary } from "./githubActionOutput.js";
8
8
  export async function publishGithubActionDiffReport(options) {
9
9
  const config = ftpConfig(options);
10
10
  const prNumber = config.prNumber;
11
- if (!prNumber) {
11
+ if (!prNumber)
12
12
  throw new Error("Missing required option --pr-number or FEATURE_SPEC_PR_NUMBER.");
13
- }
14
13
  const buildsRoot = pathJoin(config.remoteDir, "build");
15
14
  const builds = await listBuildNumbers(buildsRoot, config);
16
15
  const currentBuild = config.buildNumber;
17
- const previousBuild = previousBuildNumber(builds, currentBuild);
18
- const currentBuildUrl = publicUrl(config.baseUrl, "build", currentBuild, "");
19
- const previousBuildUrl = previousBuild
20
- ? publicUrl(config.baseUrl, "build", previousBuild, "")
21
- : undefined;
22
- const report = previousBuild
23
- ? await compareBuilds(config, previousBuild, currentBuild, prNumber)
24
- : {
25
- prNumber,
26
- currentBuild,
27
- currentBuildUrl,
28
- files: [],
29
- };
30
- if (previousBuild) {
31
- report.previousBuild = previousBuild;
32
- report.previousBuildUrl = previousBuildUrl;
33
- }
16
+ const requestedBaseBuild = optionValue(options, "base-build-number", "FEATURE_SPEC_BASE_BUILD_NUMBER");
17
+ const hasRequestedBaseBuild = Boolean(requestedBaseBuild && builds.includes(requestedBaseBuild));
18
+ const baseBuild = hasRequestedBaseBuild ? requestedBaseBuild : previousBuildNumber(builds, currentBuild);
19
+ const baseLabel = hasRequestedBaseBuild ? "main" : baseBuild ? "previous" : "none";
20
+ const report = baseBuild
21
+ ? await compareBuilds(config, baseBuild, currentBuild, prNumber, baseLabel)
22
+ : emptyReport(config, prNumber, currentBuild);
34
23
  const localReportDir = join(tmpdir(), `feature-spec-md-pr-diff-${process.pid}-${prNumber}-${currentBuild}`);
35
24
  await mkdir(localReportDir, { recursive: true });
36
25
  await writeFile(join(localReportDir, "index.html"), renderDiffReport(report), "utf8");
@@ -41,98 +30,87 @@ export async function publishGithubActionDiffReport(options) {
41
30
  "## Feature Spec PR Diff",
42
31
  "",
43
32
  `<p><strong>Diff report:</strong> <a href=\"${html(reportUrl)}\">PR #${html(prNumber)} build ${html(currentBuild)}</a></p>`,
44
- report.previousBuild
45
- ? `<p>Compared build <strong>${html(report.previousBuild)}</strong> with build <strong>${html(currentBuild)}</strong>.</p>`
46
- : `<p>No earlier build was found, so this report establishes the first comparison baseline.</p>`,
33
+ summaryComparisonSentence(report),
47
34
  "",
48
35
  ].join("\n"));
49
36
  await writeGithubOutput({
50
37
  "diff-report-url": reportUrl,
51
38
  "diff-comment-body": commentBody(report, reportUrl),
52
- "previous-build": report.previousBuild ?? "",
39
+ "base-build": report.baseLabel === "main" ? report.baseBuild ?? "" : "",
40
+ "previous-build": report.baseLabel === "previous" ? report.baseBuild ?? "" : "",
53
41
  "current-build": currentBuild,
54
42
  });
55
43
  console.log(`Feature spec PR diff report uploaded to ${reportUrl}`);
56
44
  }
57
- async function compareBuilds(config, previousBuild, currentBuild, prNumber) {
58
- const previousRoot = pathJoin(config.remoteDir, "build", previousBuild);
45
+ function emptyReport(config, prNumber, currentBuild) {
46
+ return {
47
+ prNumber,
48
+ currentBuild,
49
+ currentBuildUrl: publicUrl(config.baseUrl, "build", currentBuild, ""),
50
+ baseLabel: "none",
51
+ files: [],
52
+ };
53
+ }
54
+ async function compareBuilds(config, baseBuild, currentBuild, prNumber, baseLabel) {
55
+ const baseRoot = pathJoin(config.remoteDir, "build", baseBuild);
59
56
  const currentRoot = pathJoin(config.remoteDir, "build", currentBuild);
60
- const previousFiles = await listRemoteFilesRecursive(previousRoot, config);
57
+ const baseFiles = await listRemoteFilesRecursive(baseRoot, config);
61
58
  const currentFiles = await listRemoteFilesRecursive(currentRoot, config);
62
- const previousRelative = new Set(previousFiles.map((file) => relativeRemotePath(previousRoot, file)));
59
+ const baseRelative = new Set(baseFiles.map((file) => relativeRemotePath(baseRoot, file)));
63
60
  const currentRelative = new Set(currentFiles.map((file) => relativeRemotePath(currentRoot, file)));
64
- const allPaths = Array.from(new Set([...previousRelative, ...currentRelative])).sort();
65
- const localRoot = join(tmpdir(), `feature-spec-md-build-compare-${process.pid}-${previousBuild}-${currentBuild}`);
61
+ const allPaths = Array.from(new Set([...baseRelative, ...currentRelative])).sort();
62
+ const localRoot = join(tmpdir(), `feature-spec-md-build-compare-${process.pid}-${baseBuild}-${currentBuild}`);
66
63
  const files = [];
67
64
  for (const filePath of allPaths) {
68
- const previousRemote = previousRelative.has(filePath)
69
- ? pathJoin(previousRoot, filePath)
70
- : undefined;
71
- const currentRemote = currentRelative.has(filePath)
72
- ? pathJoin(currentRoot, filePath)
73
- : undefined;
74
- const previousLocal = previousRemote
75
- ? join(localRoot, "previous", filePath)
76
- : undefined;
65
+ const baseRemote = baseRelative.has(filePath) ? pathJoin(baseRoot, filePath) : undefined;
66
+ const currentRemote = currentRelative.has(filePath) ? pathJoin(currentRoot, filePath) : undefined;
67
+ const baseLocal = baseRemote ? join(localRoot, "base", filePath) : undefined;
77
68
  const currentLocal = currentRemote ? join(localRoot, "current", filePath) : undefined;
78
- if (previousRemote && previousLocal) {
79
- await downloadRemoteFile(previousRemote, previousLocal, config);
80
- }
81
- if (currentRemote && currentLocal) {
69
+ if (baseRemote && baseLocal)
70
+ await downloadRemoteFile(baseRemote, baseLocal, config);
71
+ if (currentRemote && currentLocal)
82
72
  await downloadRemoteFile(currentRemote, currentLocal, config);
83
- }
84
- const previousInfo = previousLocal ? await fileInfo(previousLocal) : undefined;
73
+ const baseInfo = baseLocal ? await fileInfo(baseLocal) : undefined;
85
74
  const currentInfo = currentLocal ? await fileInfo(currentLocal) : undefined;
86
- const status = !previousInfo
87
- ? "added"
88
- : !currentInfo
89
- ? "removed"
90
- : previousInfo.hash === currentInfo.hash
91
- ? "unchanged"
92
- : "changed";
75
+ const status = !baseInfo ? "added" : !currentInfo ? "removed" : baseInfo.hash === currentInfo.hash ? "unchanged" : "changed";
93
76
  files.push({
94
77
  path: filePath,
95
78
  kind: fileKind(filePath),
96
79
  status,
97
- previousHash: previousInfo?.hash,
80
+ previousHash: baseInfo?.hash,
98
81
  currentHash: currentInfo?.hash,
99
- previousSize: previousInfo?.size,
82
+ previousSize: baseInfo?.size,
100
83
  currentSize: currentInfo?.size,
101
84
  });
102
85
  }
103
86
  return {
104
87
  prNumber,
105
- previousBuild,
88
+ baseBuild,
106
89
  currentBuild,
107
- previousBuildUrl: publicUrl(config.baseUrl, "build", previousBuild, ""),
90
+ baseBuildUrl: publicUrl(config.baseUrl, "build", baseBuild, ""),
108
91
  currentBuildUrl: publicUrl(config.baseUrl, "build", currentBuild, ""),
92
+ baseLabel,
109
93
  files,
110
94
  };
111
95
  }
112
96
  function previousBuildNumber(builds, currentBuild) {
113
97
  const current = Number(currentBuild);
114
- return builds
115
- .map(Number)
116
- .filter((build) => Number.isFinite(build) && build < current)
117
- .sort((a, b) => b - a)
118
- .at(0)
119
- ?.toString();
98
+ return builds.map(Number).filter((build) => Number.isFinite(build) && build < current).sort((a, b) => b - a).at(0)?.toString();
99
+ }
100
+ function optionValue(options, key, envKey) {
101
+ return options[key] ?? process.env[envKey];
120
102
  }
121
103
  async function fileInfo(filePath) {
122
104
  const buffer = await readFile(filePath);
123
- return {
124
- hash: createHash("sha256").update(buffer).digest("hex"),
125
- size: buffer.byteLength,
126
- };
105
+ return { hash: createHash("sha256").update(buffer).digest("hex"), size: buffer.byteLength };
127
106
  }
128
107
  function relativeRemotePath(root, filePath) {
129
108
  return relative(root, filePath).split("\\").join("/");
130
109
  }
131
110
  function fileKind(filePath) {
132
111
  const name = basename(filePath).toLowerCase();
133
- if (name === "index.html" || name.endsWith(".html") || name.endsWith(".json")) {
112
+ if (name === "index.html" || name.endsWith(".html") || name.endsWith(".json"))
134
113
  return "report";
135
- }
136
114
  if (/\.(png|jpe?g|webp|gif)$/i.test(name))
137
115
  return "screenshot";
138
116
  return "asset";
@@ -140,46 +118,12 @@ function fileKind(filePath) {
140
118
  function renderDiffReport(report) {
141
119
  const changed = report.files.filter((file) => file.status !== "unchanged");
142
120
  const byKind = (kind) => changed.filter((file) => file.kind === kind);
143
- const sections = [
144
- renderFileSection("Report output", byKind("report")),
145
- renderFileSection("Screenshots", byKind("screenshot")),
146
- renderFileSection("Other assets", byKind("asset")),
147
- ].join("\n");
148
- return `<!doctype html>
149
- <html lang="en">
150
- <head>
151
- <meta charset="utf-8">
152
- <meta name="viewport" content="width=device-width,initial-scale=1">
153
- <title>Feature spec PR diff</title>
154
- <style>
155
- body{font-family:system-ui,sans-serif;max-width:1180px;margin:0 auto;padding:40px 24px;color:#1f2328}
156
- .panel{border:1px solid #d0d7de;border-radius:8px;padding:20px;margin:18px 0}
157
- .badge{border:1px solid #d0d7de;border-radius:999px;padding:2px 8px;font-size:12px;white-space:nowrap}
158
- .added{color:#1a7f37}.removed{color:#cf222e}.changed{color:#9a6700}.muted{color:#57606a}
159
- table{border-collapse:collapse;width:100%;font-size:14px} th,td{border:1px solid #d0d7de;padding:6px 8px;text-align:left;vertical-align:top} th{background:#f6f8fa}
160
- a{color:#0969da}
161
- </style>
162
- </head>
163
- <body>
164
- <h1>Feature spec PR diff for PR #${html(report.prNumber)}</h1>
165
- <p>Generated ${html(new Date().toISOString())}.</p>
166
- <section class="panel">
167
- <h2>Compared builds</h2>
168
- <p>${report.previousBuild ? `Previous: <a href="${html(report.previousBuildUrl ?? "")}">build ${html(report.previousBuild)}</a>` : "No previous build found."}</p>
169
- <p>Current: <a href="${html(report.currentBuildUrl)}">build ${html(report.currentBuild)}</a></p>
170
- <p><span class="badge">${changed.length} changed file${changed.length === 1 ? "" : "s"}</span> <span class="muted">${report.files.length} file${report.files.length === 1 ? "" : "s"} checked</span></p>
171
- </section>
172
- ${sections}
173
- </body>
174
- </html>`;
121
+ return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Feature spec PR diff</title><style>body{font-family:system-ui,sans-serif;max-width:1180px;margin:0 auto;padding:40px 24px;color:#1f2328}.panel{border:1px solid #d0d7de;border-radius:8px;padding:20px;margin:18px 0}.badge{border:1px solid #d0d7de;border-radius:999px;padding:2px 8px;font-size:12px}.added{color:#1a7f37}.removed{color:#cf222e}.changed{color:#9a6700}.muted{color:#57606a}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border:1px solid #d0d7de;padding:6px 8px;text-align:left;vertical-align:top}th{background:#f6f8fa}a{color:#0969da}</style></head><body><h1>Feature spec PR diff for PR #${html(report.prNumber)}</h1><p>Generated ${html(new Date().toISOString())}.</p><section class="panel"><h2>Compared builds</h2><p>${report.baseBuild ? `${baseLabel(report)}: <a href="${html(report.baseBuildUrl ?? "")}">build ${html(report.baseBuild)}</a>` : "No base build found."}</p><p>PR: <a href="${html(report.currentBuildUrl)}">build ${html(report.currentBuild)}</a></p><p><span class="badge">${changed.length} changed file${changed.length === 1 ? "" : "s"}</span> <span class="muted">${report.files.length} file${report.files.length === 1 ? "" : "s"} checked</span></p></section>${renderFileSection("Report output", byKind("report"))}${renderFileSection("Screenshots", byKind("screenshot"))}${renderFileSection("Other assets", byKind("asset"))}</body></html>`;
175
122
  }
176
123
  function renderFileSection(title, files) {
177
- if (!files.length) {
124
+ if (!files.length)
178
125
  return `<section class="panel"><h2>${html(title)}</h2><p class="muted">No changes.</p></section>`;
179
- }
180
- return `<section class="panel"><h2>${html(title)}</h2><table><thead><tr><th>Status</th><th>File</th><th>Size change</th></tr></thead><tbody>${files
181
- .map((file) => `<tr><td class="${file.status}">${html(file.status)}</td><td><code>${html(file.path)}</code></td><td>${html(sizeChange(file))}</td></tr>`)
182
- .join("")}</tbody></table></section>`;
126
+ return `<section class="panel"><h2>${html(title)}</h2><table><thead><tr><th>Status</th><th>File</th><th>Size change</th></tr></thead><tbody>${files.map((file) => `<tr><td class="${file.status}">${html(file.status)}</td><td><code>${html(file.path)}</code></td><td>${html(sizeChange(file))}</td></tr>`).join("")}</tbody></table></section>`;
183
127
  }
184
128
  function sizeChange(file) {
185
129
  if (file.previousSize === undefined)
@@ -187,23 +131,29 @@ function sizeChange(file) {
187
131
  if (file.currentSize === undefined)
188
132
  return `-${file.previousSize} bytes`;
189
133
  const diff = file.currentSize - file.previousSize;
190
- if (diff === 0)
191
- return "same size";
192
- return `${diff > 0 ? "+" : ""}${diff} bytes`;
134
+ return diff === 0 ? "same size" : `${diff > 0 ? "+" : ""}${diff} bytes`;
193
135
  }
194
136
  function commentBody(report, reportUrl) {
195
137
  const changed = report.files.filter((file) => file.status !== "unchanged");
196
138
  const reportChanges = changed.filter((file) => file.kind === "report").length;
197
139
  const screenshotChanges = changed.filter((file) => file.kind === "screenshot").length;
198
- const previous = report.previousBuild
199
- ? `build ${report.previousBuild} → build ${report.currentBuild}`
200
- : `build ${report.currentBuild}`;
201
- return [
202
- "## Feature spec PR diff",
203
- "",
204
- `[Open the diff report](${reportUrl}) for ${previous}.`,
205
- "",
206
- `Changed files: **${changed.length}** total, **${reportChanges}** report output, **${screenshotChanges}** screenshots.`,
207
- ].join("\n");
140
+ return ["## Feature spec PR diff", "", `[Open the diff report](${reportUrl}) for ${comparisonText(report)}.`, "", `Changed files: **${changed.length}** total, **${reportChanges}** report output, **${screenshotChanges}** screenshots.`].join("\n");
141
+ }
142
+ function comparisonText(report) {
143
+ if (!report.baseBuild)
144
+ return `PR build ${report.currentBuild}`;
145
+ return `${baseLabel(report).toLowerCase()} build ${report.baseBuild} → PR build ${report.currentBuild}`;
146
+ }
147
+ function summaryComparisonSentence(report) {
148
+ if (!report.baseBuild)
149
+ return `<p>No base build was found, so this report establishes the first comparison baseline.</p>`;
150
+ return `<p>Compared ${html(baseLabel(report).toLowerCase())} build <strong>${html(report.baseBuild)}</strong> with PR build <strong>${html(report.currentBuild)}</strong>.</p>`;
151
+ }
152
+ function baseLabel(report) {
153
+ if (report.baseLabel === "main")
154
+ return "Main";
155
+ if (report.baseLabel === "previous")
156
+ return "Previous";
157
+ return "Base";
208
158
  }
209
159
  //# sourceMappingURL=githubActionDiffReport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"githubActionDiffReport.js","sourceRoot":"","sources":["../src/githubActionDiffReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"githubActionDiffReport.js","sourceRoot":"","sources":["../src/githubActionDiffReport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anselmdk/feature-spec-md",
3
- "version": "0.5.0-rc.1",
3
+ "version": "0.5.0-rc.2",
4
4
  "description": "Markdown specs for AI-assisted, testable spec driven development across model, feature, stack, and design documents.",
5
5
  "type": "module",
6
6
  "repository": {