pro-visu 0.4.0 → 0.5.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/README.md CHANGED
@@ -5,14 +5,14 @@ screenshots, media walls — with more asset types to come) of the websites you
5
5
  into any website repo, point it at a URL, and it writes assets into a gitignored `pro-visu/`
6
6
  folder.
7
7
 
8
- > Status: **0.3** (pre-1.0; the option surface may still shift). Generators: `scroll-reel` (deterministic frame-stepped recording → mp4 — scroll
8
+ > Status: **0.4** (pre-1.0; the option surface may still shift). Generators: `scroll-reel` (deterministic frame-stepped recording → mp4 — scroll
9
9
  > reels, choreographed tours, scripted interaction, social formats and more), `screenshots`
10
10
  > (responsive full-page + element captures), `wall` (a seamless-looping media wall of your
11
11
  > assets), `image` (register a file for reuse), plus `specimen`/`palette`/`palette-reel`. The
12
12
  > pipeline is a plugin contract, so new asset types slot in without core changes.
13
13
 
14
- > Requires Node ≥ 18.18. The first run downloads a managed Chromium (cached and shared
15
- > across projects); ffmpeg is bundled — no global installs required.
14
+ > Requires Node ≥ 18.18. The first run downloads a managed Chromium and a static ffmpeg (both
15
+ > cached and shared across projects) — no global installs required.
16
16
 
17
17
  ## Install & usage
18
18
 
@@ -79,6 +79,12 @@ export default defineConfig({
79
79
  Config is discovered in multiple formats: `pro-visu.config.{ts,js,mjs,cjs,json}`,
80
80
  `.pro-visurc`, or a `pro-visu` key in `package.json`. Use `--config <path>` to override.
81
81
 
82
+ **Capture mode** (`settings.capture`) lets a site render a clean, settled snapshot for the camera
83
+ only — animations finished, no cookie banner, no chat widget — while keeping the real behaviour
84
+ for visitors. The signal is delivered as query params, cookies, localStorage, and/or an init
85
+ script; the site reads whichever fits its rendering model. (A session cookie also carries auth
86
+ for login-gated pages.) See the [settings docs](https://pro-visu.com/docs/configuration/settings#capture).
87
+
82
88
  Prefer JSON (or running via `npx`/global)? `pro-visu init --json` writes the same config as
83
89
  `pro-visu.config.json` plus a `pro-visu.schema.json`, wired up with `"$schema": "./pro-visu.schema.json"`
84
90
  so your editor still autocompletes and validates every field. `pro-visu schema` regenerates that
@@ -91,8 +97,8 @@ and are merged beneath each asset's own `options`.
91
97
 
92
98
  | Generator | Output | Key options |
93
99
  |---|---|---|
94
- | `scroll-reel` | mp4 of the site (frame-stepped by default) — scroll reels, choreographed tours, interaction demos | `width`/`height`/`fps`/`duration`/`easing` plus `capture`, `choreography`, `autoSections`, `kenBurns`, `loop`, clean-capture, `colorScheme`/`viewports`, `aspect`, `outputs`, `intro`/`outro`, `annotations`, `actions`, `focus`, `routes` — see [Recording reels in depth](#recording-reels-in-depth-scroll-reel) |
95
- | `screenshots` | png/jpeg page + element captures per breakpoint | `breakpoints[]`, `fullPage`, `format`, `elements[]`, `deviceScaleFactor` |
100
+ | `scroll-reel` | mp4 of the site (frame-stepped by default) — scroll reels, choreographed tours, interaction demos | `width`/`height`/`fps`/`durationMs`/`easing` plus `capture`, `choreography`, `autoSections`, `kenBurns`, `loop`, clean-capture, `colorScheme`/`viewports`, `aspect`, `outputs`, `intro`/`outro`, `annotations`, `actions`, `focus`, `routes` — see [Recording reels in depth](#recording-reels-in-depth-scroll-reel) |
101
+ | `screenshots` | png/jpeg page + element captures per viewport | `viewports[]`, `fullPage`, `format`, `elements[]`, `deviceScaleFactor` |
96
102
  | `wall` | mp4 media wall — columns of your assets, each scrolling on its own, looping seamlessly | `columns[]` (tiles + per-column motion), `pulses`, `loops`, `pan`, `gap`/`tileAspect`/`cornerRadius`, `stagger`, `test` |
97
103
  | `image` | passthrough — registers an existing image file as an asset (e.g. a wall tile) | `src`, `fileName` |
98
104
  | `specimen` / `palette` / `palette-reel` | type specimen / colour palette (still + reel) | see the [docs](https://pro-visu.com/docs) |
@@ -105,7 +111,7 @@ assets: [
105
111
  url: "https://your-site.com",
106
112
  generator: "screenshots",
107
113
  options: {
108
- breakpoints: [
114
+ viewports: [
109
115
  { name: "desktop", width: 1440, height: 900 },
110
116
  { name: "mobile", width: 390, height: 844 },
111
117
  ],
@@ -125,7 +131,7 @@ run-to-run**. Every option below is a `scroll-reel` option.
125
131
  > Every option has hover docs in `pro-visu.config.ts` — the authoring types are generated from
126
132
  > the validation schema, so the editor always matches what the tool accepts.
127
133
 
128
- ### Capture mode
134
+ ### Capture strategy
129
135
 
130
136
  | Option | Meaning |
131
137
  |---|---|
@@ -151,7 +157,7 @@ options: {
151
157
  }
152
158
  ```
153
159
 
154
- - `easing` — `linear`, `easeInOutCubic`/`Quad`, `easeOutCubic`/`Quint`, `easeInOutSine`/`Expo`.
160
+ - `easing` — `linear`, `ease-in-out-cubic`, `ease-in-out-quad`, `ease-out-cubic`, `ease-out-quint`, `ease-in-out-sine`, `ease-in-out-expo`.
155
161
  - `choreography: [{ to, durationMs?, holdMs?, easing? }]` — replaces the single sweep with an
156
162
  authored sequence (`to` = a `0..1` number, an `"NN%"` string, or a CSS selector to bring into view).
157
163
  - `autoSections: true | { minHeightFraction?, selector?, holdMs?, durationMs?, maxSections?, constantVelocity? }`
@@ -261,11 +267,11 @@ assets: [
261
267
  name: "wall",
262
268
  generator: "wall", // no url, no inputs — derived from the tiles below
263
269
  options: {
264
- durationSeconds: 16,
270
+ durationMs: 16000,
265
271
  pan: { direction: "left", loops: 1 },
266
272
  columns: [
267
273
  { tiles: ["img-coat", "ui-home"], direction: "down",
268
- pulses: [{ at: 0.1, duration: 0.15, distance: 0.5 }] },
274
+ pulses: [{ at: 0.1, span: 0.15, distance: 0.5 }] },
269
275
  { tiles: ["ui-home", "img-coat"], direction: "up", loops: 1, stagger: 0.4 },
270
276
  { tiles: ["img-coat", "ui-home"], stagger: 0.15 },
271
277
  ],
@@ -275,7 +281,7 @@ assets: [
275
281
  ```
276
282
 
277
283
  - **Motion** is a uniform *pulse* model: a column's travel = `loops` continuous periods + its
278
- `pulses` (each `{ at, duration, distance, easing }`, all clip-relative), rounded up to a whole
284
+ `pulses` (each `{ at, span, distance, easing }`, all clip-relative), rounded up to a whole
279
285
  number so it loops seamlessly. `loops` defaults to `0` (static unless a pulse moves it); `stagger`
280
286
  (0–1) phase-shifts a column so similar tiles don't line up.
281
287
  - **Tile sizing:** tiles fit the column width and take their height from the media's aspect, so
@@ -292,15 +298,17 @@ assets: [
292
298
 
293
299
  | Command | What it does |
294
300
  |---|---|
295
- | `pro-visu init` | Scaffold config, create + gitignore the output dir, ensure Chromium. `--json` scaffolds a dependency-free JSON config + JSON Schema instead of the TS one |
301
+ | `pro-visu init` | Scaffold config (detecting your framework/package manager/dev port), create + gitignore the output dir, ensure Chromium. `--json` scaffolds a dependency-free JSON config + JSON Schema (auto-selected when pro-visu isn't a local dependency) |
296
302
  | `pro-visu generate [--asset <name>]` | Run generators per config; writes assets + `manifest.json` |
297
- | `pro-visu list` | Show generated assets recorded in the manifest |
303
+ | `pro-visu doctor` | Check the setup Node, config + asset options, Chromium, ffmpeg, URL reachability — without generating |
304
+ | `pro-visu list [--json]` | Show generated assets recorded in the manifest |
298
305
  | `pro-visu schema [--out <path>]` | Write a JSON Schema for `pro-visu.config.json` (editor autocomplete); re-run after upgrading to refresh it |
299
306
  | `pro-visu reset` | Clean up orphaned processes/temp from an interrupted run |
300
307
 
301
308
  `generate` flags: `--draft` (faster, lower-fidelity iteration), `--cache` (skip assets whose
302
309
  inputs+options are unchanged), `--skip-server` (use an already-running site), `--skip-build`
303
- (keep the managed server but skip its build), `--concurrency`, `--verbose`. A managed server
310
+ (keep the managed server but skip its build), `--dry-run` (validate + print the plan only),
311
+ `--concurrency`, `--verbose`. A managed server
304
312
  (`settings.server`) can build → start → capture → stop the site automatically so the npm script
305
313
  is just `pro-visu generate`. See the [CLI docs](https://pro-visu.com/docs/cli) for the
306
314
  full flag list.