@somewhere-tech/cli 0.18.2 → 0.18.3
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/commands/browser.js
CHANGED
|
@@ -12,7 +12,9 @@ const looksLikeUrl = (s) => !!s && /^https?:\/\//i.test(s);
|
|
|
12
12
|
* becomes `url`; otherwise --project (or a non-URL positional, then the linked
|
|
13
13
|
* project) becomes `project_id`. The action flags compile to an ordered `steps`
|
|
14
14
|
* array (goto → wait_for → eval → screenshot). `--snapshot` is display-only
|
|
15
|
-
* (the DOM map is always returned) so it is NOT a step here.
|
|
15
|
+
* (the DOM map is always returned) so it is NOT a step here. `--store` (EYES
|
|
16
|
+
* mode: get a scratch signed URL instead of an inline shot) and `--include`
|
|
17
|
+
* (opt-in `network`/`dom` sections) forward the matching request params.
|
|
16
18
|
*/
|
|
17
19
|
export function buildBrowserBody(target, opts, linkedProject) {
|
|
18
20
|
const body = {};
|
|
@@ -35,6 +37,15 @@ export function buildBrowserBody(target, opts, linkedProject) {
|
|
|
35
37
|
body.steps = steps;
|
|
36
38
|
if (opts.viewport)
|
|
37
39
|
body.viewport = opts.viewport;
|
|
40
|
+
if (opts.store)
|
|
41
|
+
body.store = true;
|
|
42
|
+
// Opt-in heavy sections for a no-steps inspect call. Split the CSV, trim, and
|
|
43
|
+
// drop empties; the worker filters to the known section names.
|
|
44
|
+
if (opts.include) {
|
|
45
|
+
const sections = opts.include.split(',').map((s) => s.trim()).filter(Boolean);
|
|
46
|
+
if (sections.length)
|
|
47
|
+
body.include = sections;
|
|
48
|
+
}
|
|
38
49
|
return body;
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
@@ -117,9 +128,28 @@ export function formatBrowserReport(r, opts = {}) {
|
|
|
117
128
|
for (const e of fr)
|
|
118
129
|
lines.push(`failed_request: ${failedRequestText(e)}`);
|
|
119
130
|
for (const shot of r.screenshots ?? []) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
if (typeof shot === 'string') {
|
|
132
|
+
lines.push(`screenshot: ${shot}`);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const label = shot.label ? `${shot.label} — ` : '';
|
|
136
|
+
if (shot.error) {
|
|
137
|
+
lines.push(`screenshot: ${label}${red(`error — ${shot.error}`)}`);
|
|
138
|
+
}
|
|
139
|
+
else if (shot.scratch_url) {
|
|
140
|
+
// EYES mode + --store: a short-TTL signed link to the full-res image.
|
|
141
|
+
const exp = shot.scratch_expires_at ? dim(` (expires ${shot.scratch_expires_at})`) : '';
|
|
142
|
+
lines.push(`screenshot: ${label}${shot.scratch_url}${exp}`);
|
|
143
|
+
}
|
|
144
|
+
else if (shot.fs_path ?? shot.path ?? shot.url) {
|
|
145
|
+
// VERIFY mode: a durable project file path (or a legacy path/url).
|
|
146
|
+
lines.push(`screenshot: ${label}${shot.fs_path ?? shot.path ?? shot.url}`);
|
|
147
|
+
}
|
|
148
|
+
else if (shot.inline_base64) {
|
|
149
|
+
// EYES mode default: the image came back inline. A terminal can't render
|
|
150
|
+
// it — say it was captured and point at the ways to actually view it.
|
|
151
|
+
lines.push(`screenshot: ${label}${dim('captured inline (image bytes — not shown in the terminal; re-run with --store for a viewable link, or --json for the base64)')}`);
|
|
152
|
+
}
|
|
123
153
|
}
|
|
124
154
|
// Full interactive-element map only on demand; the count above is the default.
|
|
125
155
|
if (opts.snapshot) {
|
|
@@ -134,9 +164,10 @@ export function formatBrowserReport(r, opts = {}) {
|
|
|
134
164
|
export function registerBrowser(program) {
|
|
135
165
|
program
|
|
136
166
|
.command('browser [target]')
|
|
137
|
-
.description('
|
|
138
|
-
'
|
|
139
|
-
'
|
|
167
|
+
.description('SEE, inspect, and DRIVE any web page and print the combined HEALTH SIGNAL — console ' +
|
|
168
|
+
'errors, failed requests, JS page errors, and the interactive-element (DOM) map — as ' +
|
|
169
|
+
'grep-able text, not a dumped image. Two modes: EYES (no --project, any public URL — look ' +
|
|
170
|
+
'at / screenshot ANY page) and VERIFY (--project — drive + assert YOUR deployed app). ' +
|
|
140
171
|
'`target` is a URL (https://…) or a project ref; defaults to the linked project. ' +
|
|
141
172
|
'Add steps with --path / --wait / --eval / --screenshot. ' +
|
|
142
173
|
'Exits non-zero when the page is unhealthy (a step failed, a request failed, or JS threw).')
|
|
@@ -148,12 +179,24 @@ export function registerBrowser(program) {
|
|
|
148
179
|
.option('--screenshot', 'Capture a screenshot and print its stored path (requires a project).')
|
|
149
180
|
.option('--snapshot', 'Print the full interactive-element / DOM map, not just the count.')
|
|
150
181
|
.option('--viewport <size>', 'desktop (default) or mobile.')
|
|
182
|
+
.option('--store', 'EYES mode only: store the screenshot in an ephemeral, self-expiring scratch store and print a short-lived signed URL (plus its expiry) instead of an inline capture. Ignored with a project.')
|
|
183
|
+
.option('--include <sections>', 'Opt-in heavy sections for a no-steps inspect call: a comma list of "network" and/or "dom" (e.g. --include network,dom). Lean by default.')
|
|
151
184
|
.option('--json', 'Print the raw browser response envelope as JSON.')
|
|
152
185
|
.action(async (target, opts) => {
|
|
153
186
|
if (opts.viewport && opts.viewport !== 'desktop' && opts.viewport !== 'mobile') {
|
|
154
187
|
error(`--viewport must be "desktop" or "mobile" (got "${opts.viewport}")`);
|
|
155
188
|
process.exit(1);
|
|
156
189
|
}
|
|
190
|
+
if (opts.include) {
|
|
191
|
+
const bad = opts.include
|
|
192
|
+
.split(',')
|
|
193
|
+
.map((s) => s.trim())
|
|
194
|
+
.filter((s) => s && s !== 'network' && s !== 'dom');
|
|
195
|
+
if (bad.length) {
|
|
196
|
+
error(`--include only accepts "network" and/or "dom" (got "${bad.join(', ')}")`);
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
157
200
|
const client = new ApiClient(getToken());
|
|
158
201
|
const linked = loadProjectConfig()?.project_id;
|
|
159
202
|
const body = buildBrowserBody(target, opts, linked);
|
|
@@ -168,7 +211,7 @@ export function registerBrowser(program) {
|
|
|
168
211
|
}
|
|
169
212
|
let r;
|
|
170
213
|
try {
|
|
171
|
-
r = await client.call('POST', '/browser', body, undefined, {
|
|
214
|
+
r = await client.call('POST', '/browser/test', body, undefined, {
|
|
172
215
|
timeoutMs: BROWSER_TIMEOUT_MS,
|
|
173
216
|
});
|
|
174
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEhE;4EAC4E;AAC5E,MAAM,kBAAkB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"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"}
|