shots capture: signed-in web apps (shots.capture.auth request with ${cred:}/${env:} references or storageState), shots login saves a demo sign-in to .storebound/auth.json (0600), expired-session warning, secrets and cookies masked

This commit is contained in:
CRTkafa 2026-10-20 12:41:43 +07:00
parent 3949ff1531
commit e1e4e05237
15 changed files with 545 additions and 9 deletions

View file

@ -200,6 +200,8 @@ export interface ShotSpec {
extras?: Record<string, string | number | boolean>;
}
export type { CaptureAuth } from '../shots/auth';
import type { CaptureAuth } from '../shots/auth';
export interface ShotsCapture {
/** Where frames come from. Default "web". */
source?: 'web' | 'ios-sim' | 'android-emu' | 'folder';
@ -254,6 +256,10 @@ export interface ShotsCapture {
/** Web: files or folders of the app build (e.g. "apps/game/src" or "apps/game/dist") hashed into the capture cache,
* so a code change re-captures. Default: the HTML at baseUrl and the scripts it loads. */
build?: string | string[];
/** Web: sign in before the shots (apps whose key screens are behind a login; use a demo account on a local or demo
* backend with fabricated data). { request: { url, method, headers, body } } with "${cred:NAME}" / "${env:NAME}"
* references (never literal secrets), or { storageState: ".storebound/auth.json" } from `storebound shots login`. */
auth?: CaptureAuth;
shots: Record<string, ShotSpec>;
}