@just-every/design 0.1.31 → 0.1.33
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/README.md +10 -45
- package/dist/cli.js +113 -653
- package/dist/cli.js.map +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +36 -53
- package/dist/install.js.map +1 -1
- package/dist/instructions.d.ts +2 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +69 -0
- package/dist/instructions.js.map +1 -0
- package/dist/progress.d.ts +9 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +88 -0
- package/dist/progress.js.map +1 -0
- package/dist/response-guidance.d.ts +3 -0
- package/dist/response-guidance.d.ts.map +1 -1
- package/dist/response-guidance.js +428 -92
- package/dist/response-guidance.js.map +1 -1
- package/dist/screenshot.d.ts +17 -0
- package/dist/screenshot.d.ts.map +1 -0
- package/dist/screenshot.js +222 -0
- package/dist/screenshot.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +130 -465
- package/dist/server.js.map +1 -1
- package/dist/tool-logic.d.ts +1 -0
- package/dist/tool-logic.d.ts.map +1 -1
- package/dist/tool-logic.js +19 -96
- package/dist/tool-logic.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, statSync } from 'node:fs';
|
|
3
|
+
import { mkdir } from 'node:fs/promises';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
function which(bin) {
|
|
7
|
+
try {
|
|
8
|
+
const tool = process.platform === 'win32' ? 'where' : 'which';
|
|
9
|
+
const res = spawnSync(tool, [bin], { encoding: 'utf8' });
|
|
10
|
+
if (res.status !== 0)
|
|
11
|
+
return null;
|
|
12
|
+
const first = String(res.stdout || '').trim().split(/\r?\n/)[0];
|
|
13
|
+
return first ? first.trim() : null;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function resolveHeadlessBrowserBinary() {
|
|
20
|
+
const explicit = process.env.CHROME_PATH?.trim();
|
|
21
|
+
if (explicit && existsSync(explicit))
|
|
22
|
+
return explicit;
|
|
23
|
+
const candidates = [
|
|
24
|
+
'google-chrome',
|
|
25
|
+
'google-chrome-stable',
|
|
26
|
+
'chromium',
|
|
27
|
+
'chromium-browser',
|
|
28
|
+
'chrome',
|
|
29
|
+
'msedge',
|
|
30
|
+
'microsoft-edge',
|
|
31
|
+
];
|
|
32
|
+
for (const c of candidates) {
|
|
33
|
+
const found = which(c);
|
|
34
|
+
if (found)
|
|
35
|
+
return found;
|
|
36
|
+
}
|
|
37
|
+
if (process.platform === 'darwin') {
|
|
38
|
+
const macCandidates = [
|
|
39
|
+
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
|
40
|
+
'/Applications/Chromium.app/Contents/MacOS/Chromium',
|
|
41
|
+
'/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge',
|
|
42
|
+
];
|
|
43
|
+
for (const c of macCandidates) {
|
|
44
|
+
if (existsSync(c))
|
|
45
|
+
return c;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
export async function runScreenshotCommand(args) {
|
|
51
|
+
const url = args.url.trim();
|
|
52
|
+
if (!url)
|
|
53
|
+
throw new Error('Missing URL.');
|
|
54
|
+
const outPath = path.resolve(args.outPath);
|
|
55
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
56
|
+
const browser = resolveHeadlessBrowserBinary();
|
|
57
|
+
if (!browser) {
|
|
58
|
+
throw new Error('No headless Chrome/Chromium/Edge binary found. Install a Chromium-based browser or set CHROME_PATH to an executable path.');
|
|
59
|
+
}
|
|
60
|
+
const tmpProfile = await (async () => {
|
|
61
|
+
const base = path.join(os.tmpdir(), 'every-design-screenshot-');
|
|
62
|
+
const { mkdtemp } = await import('node:fs/promises');
|
|
63
|
+
return mkdtemp(base);
|
|
64
|
+
})();
|
|
65
|
+
try {
|
|
66
|
+
const waitMs = Number.isFinite(args.waitMs) ? Math.max(0, Math.min(120_000, Math.round(args.waitMs))) : 4000;
|
|
67
|
+
const timeoutMs = Math.max(15_000, Math.min(180_000, waitMs + 30_000));
|
|
68
|
+
const argsList = [
|
|
69
|
+
'--headless=new',
|
|
70
|
+
'--disable-gpu',
|
|
71
|
+
'--hide-scrollbars',
|
|
72
|
+
'--mute-audio',
|
|
73
|
+
'--no-first-run',
|
|
74
|
+
'--no-default-browser-check',
|
|
75
|
+
'--disable-background-networking',
|
|
76
|
+
'--disable-sync',
|
|
77
|
+
'--disable-extensions',
|
|
78
|
+
'--metrics-recording-only',
|
|
79
|
+
'--force-device-scale-factor=1',
|
|
80
|
+
`--window-size=${args.width},${args.height}`,
|
|
81
|
+
`--user-data-dir=${tmpProfile}`,
|
|
82
|
+
`--virtual-time-budget=${waitMs || 0}`,
|
|
83
|
+
`--screenshot=${outPath}`,
|
|
84
|
+
url,
|
|
85
|
+
];
|
|
86
|
+
if (typeof process.getuid === 'function' && process.getuid() === 0) {
|
|
87
|
+
// Chromium requires no-sandbox flags when running as root.
|
|
88
|
+
argsList.unshift('--disable-setuid-sandbox', '--no-sandbox');
|
|
89
|
+
}
|
|
90
|
+
const screenshotOk = () => {
|
|
91
|
+
try {
|
|
92
|
+
return statSync(outPath).size > 0;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
99
|
+
const waitForScreenshotStable = async (signal) => {
|
|
100
|
+
const start = Date.now();
|
|
101
|
+
// Chrome writes the screenshot file as a single operation most of the time, but we've seen
|
|
102
|
+
// occasional flakiness where the file exists briefly at size=0. Wait for a stable >0 size.
|
|
103
|
+
let lastSize = -1;
|
|
104
|
+
let stableTicks = 0;
|
|
105
|
+
while (Date.now() - start < timeoutMs) {
|
|
106
|
+
if (signal.aborted)
|
|
107
|
+
return false;
|
|
108
|
+
let size = -1;
|
|
109
|
+
try {
|
|
110
|
+
size = statSync(outPath).size;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
size = -1;
|
|
114
|
+
}
|
|
115
|
+
if (size > 0) {
|
|
116
|
+
if (size === lastSize)
|
|
117
|
+
stableTicks += 1;
|
|
118
|
+
else
|
|
119
|
+
stableTicks = 0;
|
|
120
|
+
lastSize = size;
|
|
121
|
+
if (stableTicks >= 2)
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
await sleep(100);
|
|
125
|
+
}
|
|
126
|
+
if (signal.aborted)
|
|
127
|
+
return false;
|
|
128
|
+
throw new Error('Timed out waiting for screenshot file to be produced.');
|
|
129
|
+
};
|
|
130
|
+
// Use an isolated process group on Unix so we can reliably kill Chrome + its helpers.
|
|
131
|
+
const child = spawn(browser, argsList, {
|
|
132
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
133
|
+
detached: process.platform !== 'win32',
|
|
134
|
+
});
|
|
135
|
+
let stdout = '';
|
|
136
|
+
let stderr = '';
|
|
137
|
+
child.stdout?.setEncoding('utf8');
|
|
138
|
+
child.stderr?.setEncoding('utf8');
|
|
139
|
+
child.stdout?.on('data', (chunk) => {
|
|
140
|
+
stdout += String(chunk);
|
|
141
|
+
});
|
|
142
|
+
child.stderr?.on('data', (chunk) => {
|
|
143
|
+
stderr += String(chunk);
|
|
144
|
+
});
|
|
145
|
+
const killChild = (signal) => {
|
|
146
|
+
if (!child.pid)
|
|
147
|
+
return;
|
|
148
|
+
try {
|
|
149
|
+
if (process.platform !== 'win32') {
|
|
150
|
+
// Kill the whole process group (negative PID) when detached.
|
|
151
|
+
process.kill(-child.pid, signal);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
process.kill(child.pid, signal);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// ignore
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const exitPromise = new Promise((resolve, reject) => {
|
|
162
|
+
child.once('error', reject);
|
|
163
|
+
child.once('exit', (code, signal) => resolve({ code, signal }));
|
|
164
|
+
});
|
|
165
|
+
const abort = new AbortController();
|
|
166
|
+
const screenshotPromise = waitForScreenshotStable(abort.signal)
|
|
167
|
+
.then((ok) => ({ type: 'screenshot', ok }))
|
|
168
|
+
.catch((error) => ({ type: 'screenshot_error', error }));
|
|
169
|
+
const exitPromiseHandled = exitPromise
|
|
170
|
+
.then((r) => ({ type: 'exit', ...r }))
|
|
171
|
+
.catch((error) => ({ type: 'exit_error', error }));
|
|
172
|
+
// Hard-kill after the timeout budget; Chrome can hang even after producing a screenshot.
|
|
173
|
+
const timeout = setTimeout(() => {
|
|
174
|
+
killChild('SIGKILL');
|
|
175
|
+
}, timeoutMs);
|
|
176
|
+
try {
|
|
177
|
+
const first = await Promise.race([screenshotPromise, exitPromiseHandled]);
|
|
178
|
+
abort.abort();
|
|
179
|
+
if (first.type === 'exit_error') {
|
|
180
|
+
const message = first.error instanceof Error ? first.error.message : String(first.error);
|
|
181
|
+
throw new Error(`Screenshot failed (spawn error): ${message}`);
|
|
182
|
+
}
|
|
183
|
+
if (first.type === 'screenshot_error') {
|
|
184
|
+
// Still allow a best-effort success if Chrome produced a screenshot before hanging.
|
|
185
|
+
killChild('SIGKILL');
|
|
186
|
+
await Promise.race([exitPromise.catch(() => undefined), sleep(1_500)]);
|
|
187
|
+
}
|
|
188
|
+
// If the screenshot is ready but Chrome is still running, kill it immediately instead of
|
|
189
|
+
// waiting for the timeout (which is often ~waitMs+30s).
|
|
190
|
+
if (first.type === 'screenshot' && first.ok) {
|
|
191
|
+
killChild('SIGKILL');
|
|
192
|
+
// Don't await indefinitely; cleanup is best-effort.
|
|
193
|
+
await Promise.race([exitPromise.catch(() => undefined), sleep(1_500)]);
|
|
194
|
+
}
|
|
195
|
+
const ok = screenshotOk();
|
|
196
|
+
if (!ok) {
|
|
197
|
+
// Chrome may exit without producing a screenshot; include output to help debug.
|
|
198
|
+
const detail = (stderr || stdout).trim();
|
|
199
|
+
const exit = first.type === 'exit' ? first : await exitPromise.catch(() => ({ code: null, signal: null }));
|
|
200
|
+
throw new Error(`Screenshot failed (exit ${exit.code ?? 'unknown'}, signal ${exit.signal ?? 'none'}): ${detail || 'no output'}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
clearTimeout(timeout);
|
|
205
|
+
// Ensure Chrome isn't left running in the background.
|
|
206
|
+
killChild('SIGKILL');
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
screenshotPath: outPath,
|
|
210
|
+
width: args.width,
|
|
211
|
+
height: args.height,
|
|
212
|
+
engine: 'chrome-headless',
|
|
213
|
+
binary: browser,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
const { rm } = await import('node:fs/promises');
|
|
218
|
+
await rm(tmpProfile, { recursive: true, force: true }).catch(() => undefined);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
export { resolveHeadlessBrowserBinary, which };
|
|
222
|
+
//# sourceMappingURL=screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../src/screenshot.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,iBA8T7D"}
|