@juxtapose/server 0.5.2 → 0.6.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/router.js +33 -6
- package/dist/router.js.map +1 -1
- package/dist/serve.js +3 -0
- package/dist/serve.js.map +1 -1
- package/dist/source.d.ts +24 -1
- package/dist/source.js +125 -19
- package/dist/source.js.map +1 -1
- package/package.json +2 -2
package/dist/router.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
// Hand-rolled rather than pulling in a framework: there are ten routes, none
|
|
4
4
|
// of them need middleware, and the addon has to mount this inside Storybook's
|
|
5
5
|
// own Vite dev server where an extra HTTP stack would just be in the way.
|
|
6
|
+
import { VariantConfigError } from '@juxtapose/core';
|
|
6
7
|
/** Mounted under this prefix so it cannot collide with workbench routes. */
|
|
7
8
|
export const API_PREFIX = '/jux/api';
|
|
8
|
-
const
|
|
9
|
+
const isImageKind = (s) => s === 'current' || s === 'baseline' || s === 'diff';
|
|
10
|
+
const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
9
11
|
/**
|
|
10
12
|
* Returns a handler that resolves true when it handled the request.
|
|
11
13
|
*
|
|
@@ -24,7 +26,13 @@ export function createRouter(source) {
|
|
|
24
26
|
await route(source, method, path, query, req, res);
|
|
25
27
|
}
|
|
26
28
|
catch (err) {
|
|
27
|
-
// A
|
|
29
|
+
// A variant declaration error is the user's to fix: a 400 with the
|
|
30
|
+
// message names the story and variant.
|
|
31
|
+
if (err instanceof VariantConfigError) {
|
|
32
|
+
json(res, 400, { error: err.message });
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
// Anything else is a bug in the tool, not in the user's stories, so
|
|
28
36
|
// surface it rather than silently returning an empty report.
|
|
29
37
|
json(res, 500, { error: err instanceof Error ? err.message : String(err) });
|
|
30
38
|
}
|
|
@@ -45,8 +53,9 @@ async function route(source, method, path, query, req, res) {
|
|
|
45
53
|
// so take everything after the kind rather than splitting into fixed parts.
|
|
46
54
|
const image = /^\/image\/([^/]+)\/(.+)$/.exec(path);
|
|
47
55
|
if (method === 'GET' && image) {
|
|
56
|
+
// Both groups are non-optional, so a match always fills them.
|
|
48
57
|
const kind = image[1];
|
|
49
|
-
if (!
|
|
58
|
+
if (!isImageKind(kind))
|
|
50
59
|
return json(res, 400, { error: 'unknown image kind' });
|
|
51
60
|
const bytes = await source.image(kind, decodeURIComponent(image[2]));
|
|
52
61
|
if (!bytes)
|
|
@@ -63,6 +72,7 @@ async function route(source, method, path, query, req, res) {
|
|
|
63
72
|
}
|
|
64
73
|
const handoff = /^\/handoff\/(.+)$/.exec(path);
|
|
65
74
|
if (method === 'GET' && handoff) {
|
|
75
|
+
// Non-optional group: a match always fills it.
|
|
66
76
|
const prompt = await source.handoff(decodeURIComponent(handoff[1]));
|
|
67
77
|
if (prompt === null)
|
|
68
78
|
return json(res, 404, { error: 'no such story in the last run' });
|
|
@@ -72,16 +82,30 @@ async function route(source, method, path, query, req, res) {
|
|
|
72
82
|
}
|
|
73
83
|
if (method === 'POST' && path === '/approve') {
|
|
74
84
|
const body = await readJson(req);
|
|
75
|
-
|
|
85
|
+
const storyId = isRecord(body) ? body['storyId'] : undefined;
|
|
86
|
+
if (typeof storyId !== 'string' || !storyId)
|
|
76
87
|
return json(res, 400, { error: 'storyId required' });
|
|
77
|
-
await source.approve(
|
|
88
|
+
await source.approve(storyId);
|
|
78
89
|
return json(res, 200, { ok: true });
|
|
79
90
|
}
|
|
80
91
|
if (method === 'POST' && path === '/run') {
|
|
81
92
|
const body = await readJson(req);
|
|
93
|
+
const raw = isRecord(body) ? body['storyIds'] : undefined;
|
|
94
|
+
// Absent (or null) means every story; present must be a list of ids.
|
|
95
|
+
// Anything else used to reach source.run as-is, where a string matched
|
|
96
|
+
// by substring.
|
|
97
|
+
let storyIds;
|
|
98
|
+
if (raw !== undefined && raw !== null) {
|
|
99
|
+
if (!Array.isArray(raw) || !raw.every((s) => typeof s === 'string'))
|
|
100
|
+
return json(res, 400, { error: 'storyIds must be an array of strings' });
|
|
101
|
+
storyIds = raw;
|
|
102
|
+
}
|
|
103
|
+
// Resolved first, so a variant config error answers this request with a
|
|
104
|
+
// 400 instead of failing the run silently in the background.
|
|
105
|
+
await source.stories();
|
|
82
106
|
// Deliberately not awaited: a run takes seconds and the client polls
|
|
83
107
|
// /progress. Holding the request open would just time out.
|
|
84
|
-
void source.run(
|
|
108
|
+
void source.run(storyIds).catch(() => { });
|
|
85
109
|
return json(res, 202, { started: true });
|
|
86
110
|
}
|
|
87
111
|
if (method === 'POST' && path === '/cancel') {
|
|
@@ -121,6 +145,9 @@ async function readJson(req) {
|
|
|
121
145
|
const chunks = [];
|
|
122
146
|
let size = 0;
|
|
123
147
|
for await (const chunk of req) {
|
|
148
|
+
// Buffers unless someone called setEncoding on the request; nobody does.
|
|
149
|
+
if (!Buffer.isBuffer(chunk))
|
|
150
|
+
return null;
|
|
124
151
|
size += chunk.length;
|
|
125
152
|
// A review API has no business accepting large bodies; refuse rather
|
|
126
153
|
// than buffering whatever arrives.
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/dist/serve.js
CHANGED
|
@@ -15,7 +15,10 @@ export async function serve(source, port = 0) {
|
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
17
|
await new Promise((ok) => server.listen(port, '127.0.0.1', ok));
|
|
18
|
+
// A TCP listen always has an AddressInfo; the string form is for pipes.
|
|
18
19
|
const addr = server.address();
|
|
20
|
+
if (addr === null || typeof addr === 'string')
|
|
21
|
+
throw new Error(`jux: review server has no TCP address (${String(addr)})`);
|
|
19
22
|
return {
|
|
20
23
|
url: `http://127.0.0.1:${addr.port}`,
|
|
21
24
|
port: addr.port,
|
package/dist/serve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,0DAA0D;AAE1D,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,0DAA0D;AAE1D,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAoB,EAAE,IAAI,GAAG,CAAC;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,MAAM,GAAW,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,IAAI,OAAO;gBAAE,OAAO;YACpB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,wEAAwE;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7E,OAAO;QACL,GAAG,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
|
package/dist/source.d.ts
CHANGED
|
@@ -28,7 +28,12 @@ export declare function watchTargets(triggerId: string, matched: readonly StoryM
|
|
|
28
28
|
export declare class RunDirSource implements ReviewSource {
|
|
29
29
|
private readonly opts;
|
|
30
30
|
private report;
|
|
31
|
+
/** In flight or settled: concurrent callers share one discovery. */
|
|
31
32
|
private storyCache;
|
|
33
|
+
private indexCache;
|
|
34
|
+
/** A variant config error, kept until the stories or the config file
|
|
35
|
+
* change: retrying it on every poll would relaunch discovery each time. */
|
|
36
|
+
private configError;
|
|
32
37
|
private readonly affectedCache;
|
|
33
38
|
private browser;
|
|
34
39
|
private running;
|
|
@@ -49,7 +54,16 @@ export declare class RunDirSource implements ReviewSource {
|
|
|
49
54
|
setBaseUrl(baseUrl: string): void;
|
|
50
55
|
bundle(): Promise<ReviewBundle>;
|
|
51
56
|
progress(): Promise<RunProgress>;
|
|
57
|
+
/**
|
|
58
|
+
* Every capture: the enumerated stories with the params the preview
|
|
59
|
+
* declares (when the platform can discover them) and their variants
|
|
60
|
+
* expanded. Keyed by capture key, like everything the run writes.
|
|
61
|
+
*/
|
|
52
62
|
stories(): Promise<StoryManifest[]>;
|
|
63
|
+
/** The platform's own stories, without discovery: enough for a title or a
|
|
64
|
+
* source path, and never starts a browser. */
|
|
65
|
+
private indexStories;
|
|
66
|
+
private loadStories;
|
|
53
67
|
/** Drop the cached story index — the workbench told us it changed. */
|
|
54
68
|
flushStories(): void;
|
|
55
69
|
flushIndex(): Promise<void>;
|
|
@@ -68,6 +82,16 @@ export declare class RunDirSource implements ReviewSource {
|
|
|
68
82
|
affected(storyId: string): Promise<string[]>;
|
|
69
83
|
image(kind: ImageKind, storyId: string): Promise<Buffer | null>;
|
|
70
84
|
handoff(storyId: string): Promise<string | null>;
|
|
85
|
+
/**
|
|
86
|
+
* The baseline image on disk, as `jux handoff` finds it.
|
|
87
|
+
*
|
|
88
|
+
* Baselines live in the store, not the run dir: a run writes only what it
|
|
89
|
+
* captured. The handoff used to point at `images/<id>-baseline.webp` in the
|
|
90
|
+
* run dir, which nothing writes (#115). A variant key locates the variant's
|
|
91
|
+
* own baseline. Absent when the store cannot say or there is no baseline
|
|
92
|
+
* yet, so the prompt never names a file that is not there.
|
|
93
|
+
*/
|
|
94
|
+
private locateBaseline;
|
|
71
95
|
approve(storyId: string): Promise<void>;
|
|
72
96
|
run(storyIds?: string[]): Promise<void>;
|
|
73
97
|
cancel(): Promise<void>;
|
|
@@ -79,4 +103,3 @@ export declare class RunDirSource implements ReviewSource {
|
|
|
79
103
|
}
|
|
80
104
|
/** Overlay fresh results onto the previous report, keeping untouched stories. */
|
|
81
105
|
export declare function mergeReports(previous: RunReport | null, fresh: RunReport): RunReport;
|
|
82
|
-
/** The same hash the manifest stores, so a match means "already approved". */
|
package/dist/source.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// A ReviewSource backed by run artifacts on disk plus a live capture pool.
|
|
2
2
|
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
3
|
-
import { existsSync } from 'node:fs';
|
|
3
|
+
import { existsSync, statSync } from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { approveCapture, compareCodeUnits, computeGroups, buildHandoffPrompt, createAncestryCheck, alwaysAncestor, acquireBrowser, encodeStoryId, hashImage, resolveAffectedFromPaths, runCapture, DEFAULT_VIEWPORT, } from '@juxtapose/core';
|
|
5
|
+
import { approveCapture, compareCodeUnits, expandVariants, computeGroups, buildHandoffPrompt, handoffVariant, createAncestryCheck, alwaysAncestor, acquireBrowser, encodeStoryId, hashImage, resolveAffectedFromPaths, runCapture, DEFAULT_VIEWPORT, parseRunReport, platformStoryId, prepareCaptures, selectByStoryId, VariantConfigError, } from '@juxtapose/core';
|
|
6
6
|
/**
|
|
7
7
|
* Which of the matched stories to actually recapture.
|
|
8
8
|
*
|
|
@@ -22,7 +22,12 @@ export function watchTargets(triggerId, matched) {
|
|
|
22
22
|
export class RunDirSource {
|
|
23
23
|
opts;
|
|
24
24
|
report = null;
|
|
25
|
+
/** In flight or settled: concurrent callers share one discovery. */
|
|
25
26
|
storyCache = null;
|
|
27
|
+
indexCache = null;
|
|
28
|
+
/** A variant config error, kept until the stories or the config file
|
|
29
|
+
* change: retrying it on every poll would relaunch discovery each time. */
|
|
30
|
+
configError = null;
|
|
26
31
|
affectedCache = new Map();
|
|
27
32
|
browser = null;
|
|
28
33
|
running = false;
|
|
@@ -72,18 +77,68 @@ export class RunDirSource {
|
|
|
72
77
|
storyId: this.currentStory,
|
|
73
78
|
};
|
|
74
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Every capture: the enumerated stories with the params the preview
|
|
82
|
+
* declares (when the platform can discover them) and their variants
|
|
83
|
+
* expanded. Keyed by capture key, like everything the run writes.
|
|
84
|
+
*/
|
|
75
85
|
async stories() {
|
|
76
|
-
if (this.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
if (this.configError) {
|
|
87
|
+
if (this.configError.configStamp === configStamp(this.opts.projectRoot))
|
|
88
|
+
throw this.configError.error;
|
|
89
|
+
this.configError = null;
|
|
90
|
+
}
|
|
91
|
+
this.storyCache ??= this.loadStories();
|
|
92
|
+
const pending = this.storyCache;
|
|
93
|
+
try {
|
|
94
|
+
return await pending;
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
// Not cached as a result: the next call retries, unless the error is
|
|
98
|
+
// the user's config, which only an edit can fix.
|
|
99
|
+
if (this.storyCache === pending)
|
|
100
|
+
this.storyCache = null;
|
|
101
|
+
if (err instanceof VariantConfigError)
|
|
102
|
+
this.configError = {
|
|
103
|
+
error: err,
|
|
104
|
+
configStamp: configStamp(this.opts.projectRoot),
|
|
105
|
+
};
|
|
106
|
+
throw err;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** The platform's own stories, without discovery: enough for a title or a
|
|
110
|
+
* source path, and never starts a browser. */
|
|
111
|
+
indexStories() {
|
|
112
|
+
this.indexCache ??= this.opts.platform
|
|
113
|
+
.enumerate({ projectRoot: this.opts.projectRoot, origin: this.opts.baseUrl })
|
|
114
|
+
.catch((err) => {
|
|
115
|
+
this.indexCache = null;
|
|
116
|
+
throw err;
|
|
81
117
|
});
|
|
82
|
-
return this.
|
|
118
|
+
return this.indexCache;
|
|
119
|
+
}
|
|
120
|
+
async loadStories() {
|
|
121
|
+
const enumerated = await this.indexStories();
|
|
122
|
+
const projectVariants = this.opts.config.variants;
|
|
123
|
+
// Discovery needs a page, so it only runs for a platform that has it; the
|
|
124
|
+
// browser it starts is the one the next capture would start anyway.
|
|
125
|
+
return this.opts.platform.discoverParams
|
|
126
|
+
? prepareCaptures(enumerated, {
|
|
127
|
+
platform: this.opts.platform,
|
|
128
|
+
browser: await this.ensureBrowser(),
|
|
129
|
+
baseUrl: this.opts.baseUrl,
|
|
130
|
+
viewport: this.opts.config.viewport ?? DEFAULT_VIEWPORT,
|
|
131
|
+
...(projectVariants ? { projectVariants } : {}),
|
|
132
|
+
onWarning: (m) => process.stderr.write(`juxtapose: ${m}\n`),
|
|
133
|
+
})
|
|
134
|
+
: expandVariants(enumerated, projectVariants);
|
|
83
135
|
}
|
|
84
136
|
/** Drop the cached story index — the workbench told us it changed. */
|
|
85
137
|
flushStories() {
|
|
86
138
|
this.storyCache = null;
|
|
139
|
+
this.indexCache = null;
|
|
140
|
+
// A story edit may be the fix for a variant declaration error.
|
|
141
|
+
this.configError = null;
|
|
87
142
|
// Component paths may have moved, so the answers keyed off them are stale
|
|
88
143
|
// too. Cheap to rebuild; wrong to keep.
|
|
89
144
|
this.affectedCache.clear();
|
|
@@ -107,10 +162,16 @@ export class RunDirSource {
|
|
|
107
162
|
const cached = this.affectedCache.get(storyId);
|
|
108
163
|
if (cached)
|
|
109
164
|
return cached;
|
|
165
|
+
// The workbench rerenders a story by its own id; what gets recaptured is
|
|
166
|
+
// every capture of it, variants included, and of whatever shares its
|
|
167
|
+
// component. Keys, so the run takes exactly these captures.
|
|
110
168
|
const stories = await this.stories();
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
169
|
+
const keysFor = (ids) => selectByStoryId(stories, ids).selected.map((s) => s.storyId);
|
|
170
|
+
const triggered = stories.find((s) => s.storyId === storyId || platformStoryId(s) === storyId);
|
|
171
|
+
if (!triggered?.componentPath) {
|
|
172
|
+
const keys = keysFor([storyId]);
|
|
173
|
+
return keys.length > 0 ? keys : [storyId];
|
|
174
|
+
}
|
|
114
175
|
const matched = await resolveAffectedFromPaths(stories, [triggered.componentPath], {
|
|
115
176
|
projectRoot: this.opts.projectRoot,
|
|
116
177
|
buildDir: this.opts.buildDir,
|
|
@@ -126,7 +187,7 @@ export class RunDirSource {
|
|
|
126
187
|
// serialize `parameters.juxtapose` — so the opt-out is honoured on Ladle
|
|
127
188
|
// today and on Storybook once #12 lands. It never over-captures: an
|
|
128
189
|
// unreadable param leaves the story in, which is the status quo.
|
|
129
|
-
const result = watchTargets(storyId, matched);
|
|
190
|
+
const result = keysFor(watchTargets(storyId, matched));
|
|
130
191
|
this.affectedCache.set(storyId, result);
|
|
131
192
|
return result;
|
|
132
193
|
}
|
|
@@ -140,9 +201,15 @@ export class RunDirSource {
|
|
|
140
201
|
const result = report?.results.find((r) => r.storyId === storyId);
|
|
141
202
|
if (!result)
|
|
142
203
|
return null;
|
|
143
|
-
|
|
204
|
+
// The source is the story's; a variant has no file of its own. The index
|
|
205
|
+
// has the title and path, and the result says what the variant set, so
|
|
206
|
+
// no discovery (and no browser) is needed for a prompt.
|
|
207
|
+
const baseId = result.baseStoryId ?? storyId;
|
|
208
|
+
const story = (await this.indexStories()).find((s) => s.storyId === baseId);
|
|
209
|
+
const variant = handoffVariant(result);
|
|
144
210
|
const images = path.join(this.opts.runDir, 'images');
|
|
145
211
|
const safe = encodeStoryId(storyId);
|
|
212
|
+
const baseline = this.locateBaseline(storyId);
|
|
146
213
|
return buildHandoffPrompt({
|
|
147
214
|
storyId,
|
|
148
215
|
storyTitle: story ? `${story.title} — ${story.name}` : storyId,
|
|
@@ -150,16 +217,41 @@ export class RunDirSource {
|
|
|
150
217
|
mismatchPercent: result.mismatchPercent,
|
|
151
218
|
mismatchPixels: result.mismatchPixels,
|
|
152
219
|
changedRegions: result.changedRegions,
|
|
153
|
-
|
|
220
|
+
// What the capture was taken at, which changedRegions are relative to;
|
|
221
|
+
// a variant's viewport is not its story's.
|
|
222
|
+
viewport: result.viewport ??
|
|
223
|
+
story?.params.viewport ??
|
|
224
|
+
this.opts.config.viewport ??
|
|
225
|
+
DEFAULT_VIEWPORT,
|
|
154
226
|
componentPath: story?.componentPath ?? '',
|
|
155
227
|
images: {
|
|
156
|
-
baseline
|
|
228
|
+
baseline,
|
|
157
229
|
current: path.join(images, `${safe}-current.webp`),
|
|
158
230
|
diff: result.status === 'fail' ? path.join(images, `${safe}-diff.webp`) : undefined,
|
|
159
231
|
},
|
|
160
232
|
projectRoot: this.opts.projectRoot,
|
|
233
|
+
...(variant ? { variant } : {}),
|
|
161
234
|
});
|
|
162
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* The baseline image on disk, as `jux handoff` finds it.
|
|
238
|
+
*
|
|
239
|
+
* Baselines live in the store, not the run dir: a run writes only what it
|
|
240
|
+
* captured. The handoff used to point at `images/<id>-baseline.webp` in the
|
|
241
|
+
* run dir, which nothing writes (#115). A variant key locates the variant's
|
|
242
|
+
* own baseline. Absent when the store cannot say or there is no baseline
|
|
243
|
+
* yet, so the prompt never names a file that is not there.
|
|
244
|
+
*/
|
|
245
|
+
locateBaseline(storyId) {
|
|
246
|
+
let file;
|
|
247
|
+
try {
|
|
248
|
+
file = this.opts.store.locate?.(storyId);
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
return file !== undefined && existsSync(file) ? file : undefined;
|
|
254
|
+
}
|
|
163
255
|
async approve(storyId) {
|
|
164
256
|
const task = this.approvalQueue.then(async () => {
|
|
165
257
|
const image = await this.readImage('current', storyId);
|
|
@@ -187,9 +279,8 @@ export class RunDirSource {
|
|
|
187
279
|
if (this.running)
|
|
188
280
|
return;
|
|
189
281
|
const all = await this.stories();
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
: all;
|
|
282
|
+
// A base id runs the story with all its variants; a key, one capture.
|
|
283
|
+
const selected = storyIds?.length ? selectByStoryId(all, storyIds).selected : all;
|
|
193
284
|
this.running = true;
|
|
194
285
|
this.done = 0;
|
|
195
286
|
this.total = selected.length;
|
|
@@ -258,7 +349,7 @@ export class RunDirSource {
|
|
|
258
349
|
return this.report;
|
|
259
350
|
try {
|
|
260
351
|
const raw = await readFile(path.join(this.opts.runDir, 'report.json'), 'utf8');
|
|
261
|
-
this.report =
|
|
352
|
+
this.report = parseRunReport(raw);
|
|
262
353
|
}
|
|
263
354
|
catch {
|
|
264
355
|
this.report = null;
|
|
@@ -302,4 +393,19 @@ export function mergeReports(previous, fresh) {
|
|
|
302
393
|
};
|
|
303
394
|
}
|
|
304
395
|
/** The same hash the manifest stores, so a match means "already approved". */
|
|
396
|
+
/** Modification times of every file a project config can come from. A
|
|
397
|
+
* changed stamp means the user edited it, so a cached config error is
|
|
398
|
+
* worth retrying. */
|
|
399
|
+
function configStamp(projectRoot) {
|
|
400
|
+
return ['juxtapose.config.json', '.juxtaposerc.json', 'package.json']
|
|
401
|
+
.map((name) => {
|
|
402
|
+
try {
|
|
403
|
+
return String(statSync(path.join(projectRoot, name)).mtimeMs);
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
return '-';
|
|
407
|
+
}
|
|
408
|
+
})
|
|
409
|
+
.join('|');
|
|
410
|
+
}
|
|
305
411
|
//# sourceMappingURL=source.js.map
|
package/dist/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juxtapose/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Local review API for juxtapose — the contract every review UI is a skin over.",
|
|
6
6
|
"keywords": [
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@juxtapose/core": "0.
|
|
29
|
+
"@juxtapose/core": "0.9.0"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|