versioncam 0.1.3 → 0.3.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/CHANGELOG.md +174 -0
- package/README.md +152 -15
- package/dist/cli/commands/check.js +45 -4
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.js +39 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.js +25 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/preview.js +10 -1
- package/dist/cli/commands/preview.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +17 -0
- package/dist/cli/commands/publish.js +203 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/record.js +2 -0
- package/dist/cli/commands/record.js.map +1 -1
- package/dist/cli/commands/render.d.ts +17 -0
- package/dist/cli/commands/render.js +98 -21
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/cli/cwd.d.ts +46 -0
- package/dist/cli/cwd.js +102 -0
- package/dist/cli/cwd.js.map +1 -0
- package/dist/cli/main.js +19 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/usage.d.ts +3 -2
- package/dist/cli/usage.js +17 -4
- package/dist/cli/usage.js.map +1 -1
- package/dist/config.d.ts +35 -1
- package/dist/config.js +44 -0
- package/dist/config.js.map +1 -1
- package/dist/core/camera-track.d.ts +63 -0
- package/dist/core/camera-track.js +230 -0
- package/dist/core/camera-track.js.map +1 -0
- package/dist/core/camera.d.ts +14 -1
- package/dist/core/camera.js +18 -2
- package/dist/core/camera.js.map +1 -1
- package/dist/core/follow.d.ts +129 -0
- package/dist/core/follow.js +151 -0
- package/dist/core/follow.js.map +1 -0
- package/dist/core/motion-defaults.d.ts +29 -0
- package/dist/core/motion-defaults.js +29 -0
- package/dist/core/motion-defaults.js.map +1 -1
- package/dist/core/timeline.d.ts +10 -2
- package/dist/core/timeline.js.map +1 -1
- package/dist/driver/clip.d.ts +6 -0
- package/dist/driver/clip.js +6 -3
- package/dist/driver/clip.js.map +1 -1
- package/dist/driver/reports.d.ts +34 -2
- package/dist/driver/reports.js +31 -3
- package/dist/driver/reports.js.map +1 -1
- package/dist/driver/session.d.ts +36 -1
- package/dist/driver/session.js +72 -14
- package/dist/driver/session.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +7 -1
- package/dist/loader.js +23 -8
- package/dist/loader.js.map +1 -1
- package/dist/page/assets/index-fZtacWyp.js +2 -0
- package/dist/page/index.html +1 -1
- package/dist/publish/client.d.ts +38 -0
- package/dist/publish/client.js +118 -0
- package/dist/publish/client.js.map +1 -0
- package/dist/publish/index.d.ts +12 -0
- package/dist/publish/index.js +11 -0
- package/dist/publish/index.js.map +1 -0
- package/dist/publish/manifest.d.ts +46 -0
- package/dist/publish/manifest.js +133 -0
- package/dist/publish/manifest.js.map +1 -0
- package/dist/publish/protocol.d.ts +203 -0
- package/dist/publish/protocol.js +56 -0
- package/dist/publish/protocol.js.map +1 -0
- package/dist/render/encode.d.ts +27 -1
- package/dist/render/encode.js +115 -37
- package/dist/render/encode.js.map +1 -1
- package/dist/render/presentation.d.ts +12 -0
- package/dist/render/presentation.js +15 -0
- package/dist/render/presentation.js.map +1 -1
- package/dist/render/render.js +19 -1
- package/dist/render/render.js.map +1 -1
- package/dist/render/sampling.d.ts +13 -0
- package/dist/render/sampling.js +47 -19
- package/dist/render/sampling.js.map +1 -1
- package/dist/render/scenes.d.ts +16 -0
- package/dist/render/scenes.js +108 -0
- package/dist/render/scenes.js.map +1 -0
- package/dist/render/sequence.d.ts +21 -1
- package/dist/render/sequence.js +71 -14
- package/dist/render/sequence.js.map +1 -1
- package/dist/review/review.js +46 -21
- package/dist/review/review.js.map +1 -1
- package/dsl.md +37 -0
- package/package.json +6 -2
- package/plugin/README.md +7 -2
- package/plugin/agents/versioncam-reviewer.md +3 -2
- package/plugin/skills/versioncam/SKILL.md +60 -14
- package/plugin/skills/versioncam/authoring.md +6 -1
- package/plugin/skills/versioncam/onboarding.md +17 -17
- package/dist/page/assets/index-DUom5amc.js +0 -1
|
@@ -45,6 +45,35 @@ export const MOTION = {
|
|
|
45
45
|
maxZoom: 1.65,
|
|
46
46
|
/** Padding around a zoom target, as a fraction of its size. */
|
|
47
47
|
zoomPad: 0.12,
|
|
48
|
+
/**
|
|
49
|
+
* How far in a camera that follows the cursor goes. Gentler than a zoom's
|
|
50
|
+
* 1.5, because a zoom frames one thing and stops, while a follow keeps the
|
|
51
|
+
* cursor in frame as it travels and needs more of the page around it to
|
|
52
|
+
* say where it is going. A website review that found clips zooming in and
|
|
53
|
+
* out too much settled on this: in a little, once, and pan.
|
|
54
|
+
*/
|
|
55
|
+
followZoom: 1.35,
|
|
56
|
+
/**
|
|
57
|
+
* The share of a following camera's frame, around its centre, that the
|
|
58
|
+
* cursor can move within without the camera answering. At 1.35× on a page
|
|
59
|
+
* 1440 wide that is 160 pixels either side and 100 up or down: a move to
|
|
60
|
+
* the next field of a form stays inside it, a move across the page does
|
|
61
|
+
* not. Much smaller and the camera fidgets with every small movement.
|
|
62
|
+
*/
|
|
63
|
+
followDeadZone: 0.3,
|
|
64
|
+
/**
|
|
65
|
+
* How softly a following camera moves: the time it would take over a move
|
|
66
|
+
* the cursor made at once, 3% to 97% of the way. The camera runs over the
|
|
67
|
+
* cursor's whole path, so it has no lag to trade against; larger is
|
|
68
|
+
* smoother, and sets off earlier before each move the cursor makes. At
|
|
69
|
+
* 600, with the dead zone above, it sets off within about a tenth of a
|
|
70
|
+
* second of the cursor and comes to rest about a fifth of a second after
|
|
71
|
+
* the cursor stops: close enough to read as following, soft enough that a
|
|
72
|
+
* pan across the page never lurches. With no dead zone it would lead the
|
|
73
|
+
* cursor by a quarter of a second, which starts to read as a camera that
|
|
74
|
+
* moved first.
|
|
75
|
+
*/
|
|
76
|
+
followSmoothingMs: 600,
|
|
48
77
|
/** How long a highlight stays up if the script does not say. */
|
|
49
78
|
highlightMs: 1800,
|
|
50
79
|
/** Click ripple, in the renderer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion-defaults.js","sourceRoot":"","sources":["../../src/core/motion-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;OAIG;IACH,YAAY,EAAE,GAAG;IAEjB,6EAA6E;IAC7E,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,GAAG;IAEpB,2EAA2E;IAC3E,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,GAAG;IAEf;;;OAGG;IACH,eAAe,EAAE,IAAI;IAErB;;;;;OAKG;IACH,cAAc,EAAE,IAAI;IAEpB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,IAAI;IAEb,+DAA+D;IAC/D,OAAO,EAAE,IAAI;IAEb,gEAAgE;IAChE,WAAW,EAAE,IAAI;IAEjB,qCAAqC;IACrC,QAAQ,EAAE,GAAG;IACb,kDAAkD;IAClD,YAAY,EAAE,EAAE;IAEhB,4EAA4E;IAC5E,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IAEjB,qEAAqE;IACrE,eAAe,EAAE,CAAC;IAElB,gCAAgC;IAChC,YAAY,EAAE,GAAG;CACT,CAAC"}
|
|
1
|
+
{"version":3,"file":"motion-defaults.js","sourceRoot":"","sources":["../../src/core/motion-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;OAIG;IACH,YAAY,EAAE,GAAG;IAEjB,6EAA6E;IAC7E,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,GAAG;IAEpB,2EAA2E;IAC3E,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,GAAG;IAEf;;;OAGG;IACH,eAAe,EAAE,IAAI;IAErB;;;;;OAKG;IACH,cAAc,EAAE,IAAI;IAEpB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,IAAI;IAEb,+DAA+D;IAC/D,OAAO,EAAE,IAAI;IAEb;;;;;;OAMG;IACH,UAAU,EAAE,IAAI;IAEhB;;;;;;OAMG;IACH,cAAc,EAAE,GAAG;IAEnB;;;;;;;;;;;OAWG;IACH,iBAAiB,EAAE,GAAG;IAEtB,gEAAgE;IAChE,WAAW,EAAE,IAAI;IAEjB,qCAAqC;IACrC,QAAQ,EAAE,GAAG;IACb,kDAAkD;IAClD,YAAY,EAAE,EAAE;IAEhB,4EAA4E;IAC5E,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IAEjB,qEAAqE;IACrE,eAAe,EAAE,CAAC;IAElB,gCAAgC;IAChC,YAAY,EAAE,GAAG;CACT,CAAC"}
|
package/dist/core/timeline.d.ts
CHANGED
|
@@ -45,8 +45,16 @@ export type PointerAction = {
|
|
|
45
45
|
export type CameraKey = {
|
|
46
46
|
t: number;
|
|
47
47
|
rect: Rect;
|
|
48
|
-
/**
|
|
49
|
-
|
|
48
|
+
/**
|
|
49
|
+
* How to reach this key from the previous one: `minjerk` glides, `hold`
|
|
50
|
+
* stays put and then cuts, and `linear` goes straight there, because the
|
|
51
|
+
* key is the next frame's sample of a path the recording computed: a
|
|
52
|
+
* camera following the cursor, or blending one move into another.
|
|
53
|
+
* Recordings made before the camera could follow have no `linear` keys,
|
|
54
|
+
* and a renderer from before then reads one as `minjerk`, which lands on
|
|
55
|
+
* the same sample at every frame.
|
|
56
|
+
*/
|
|
57
|
+
ease: "minjerk" | "hold" | "linear";
|
|
50
58
|
};
|
|
51
59
|
export type HighlightStyle = "ring" | "spotlight";
|
|
52
60
|
export type Highlight = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/core/timeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/core/timeline.ts"],"names":[],"mappings":"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"}
|
package/dist/driver/clip.d.ts
CHANGED
|
@@ -39,6 +39,12 @@ export type ClipDefinition = {
|
|
|
39
39
|
* every way of recording had to go through a test runner.
|
|
40
40
|
*/
|
|
41
41
|
export declare function clip(id: string, options: ClipOptions, body: ClipBody): ClipDefinition;
|
|
42
|
+
/**
|
|
43
|
+
* This package's version, for the recording's provenance: which versioncam
|
|
44
|
+
* made it, read by whoever shows the recording rather than guessed from the
|
|
45
|
+
* latest release.
|
|
46
|
+
*/
|
|
47
|
+
export declare const RECORDER_VERSION: string;
|
|
42
48
|
export type RunClipResult = {
|
|
43
49
|
timeline: Timeline;
|
|
44
50
|
dir: string;
|
package/dist/driver/clip.js
CHANGED
|
@@ -2,7 +2,7 @@ import { execFileSync } from "node:child_process";
|
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { FREEZE_CSS_SCRIPT, MUTATION_COUNTER_SCRIPT } from "./page-hooks.js";
|
|
5
|
-
import { writeFailure, writeSettles } from "./reports.js";
|
|
5
|
+
import { writeFailure, writeSettles, writeTargets } from "./reports.js";
|
|
6
6
|
import { RecordingSession } from "./session.js";
|
|
7
7
|
/**
|
|
8
8
|
* Declare a clip.
|
|
@@ -19,7 +19,7 @@ export function clip(id, options, body) {
|
|
|
19
19
|
* made it, read by whoever shows the recording rather than guessed from the
|
|
20
20
|
* latest release.
|
|
21
21
|
*/
|
|
22
|
-
const RECORDER_VERSION = createRequire(import.meta.url)("../../package.json").version;
|
|
22
|
+
export const RECORDER_VERSION = createRequire(import.meta.url)("../../package.json").version;
|
|
23
23
|
/** The app's commit, for the recording's provenance. Best effort. */
|
|
24
24
|
function appCommit(cwd) {
|
|
25
25
|
try {
|
|
@@ -103,6 +103,7 @@ export async function runClip(browser, config, definition, runOptions = {}) {
|
|
|
103
103
|
}
|
|
104
104
|
const timeline = session.finish();
|
|
105
105
|
writeSettles(dir, session.settles);
|
|
106
|
+
writeTargets(dir, session.evidence().targets);
|
|
106
107
|
return { timeline, dir, cost: session.cost, settles: session.settles };
|
|
107
108
|
}
|
|
108
109
|
catch (error) {
|
|
@@ -112,13 +113,15 @@ export async function runClip(browser, config, definition, runOptions = {}) {
|
|
|
112
113
|
//
|
|
113
114
|
// Nothing in this block may throw, or it would replace the failure it
|
|
114
115
|
// exists to report — a disk error standing in for the locator that broke.
|
|
116
|
+
const evidence = session.evidence();
|
|
115
117
|
try {
|
|
116
118
|
writeSettles(dir, session.settles);
|
|
119
|
+
writeTargets(dir, evidence.targets);
|
|
117
120
|
}
|
|
118
121
|
catch {
|
|
119
122
|
// Said by the error on its way up, which is the more useful of the two.
|
|
120
123
|
}
|
|
121
|
-
await writeFailure(page, dir, { message: error.message, ...session.at }, { draft });
|
|
124
|
+
await writeFailure(page, dir, { message: error.message, ...session.at, step: evidence.step }, { draft });
|
|
122
125
|
throw error;
|
|
123
126
|
}
|
|
124
127
|
finally {
|
package/dist/driver/clip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/driver/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/driver/clip.ts"],"names":[],"mappings":"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"}
|
package/dist/driver/reports.d.ts
CHANGED
|
@@ -1,24 +1,48 @@
|
|
|
1
1
|
import type { Page } from "playwright";
|
|
2
|
+
import type { Rect } from "../core/timeline.js";
|
|
2
3
|
import type { SettleReport } from "./settle.js";
|
|
3
4
|
/**
|
|
4
5
|
* What a recording leaves behind besides its frames.
|
|
5
6
|
*
|
|
6
7
|
* A clip is written by someone who was not watching it run — increasingly,
|
|
7
8
|
* by something that cannot watch at all — so everything that would have been
|
|
8
|
-
* on screen has to be on disk.
|
|
9
|
-
* it ended badly, the page at the moment it gave up.
|
|
9
|
+
* on screen has to be on disk. What the waits waited for; where each step's
|
|
10
|
+
* target was; and, if it ended badly, the page at the moment it gave up.
|
|
10
11
|
*/
|
|
11
12
|
/** The name a reader looks for, in one place. */
|
|
12
13
|
export declare const SETTLES_FILE = "settles.json";
|
|
13
14
|
export declare const FAILURE_JSON = "failure.json";
|
|
14
15
|
export declare const FAILURE_PNG = "failure.png";
|
|
16
|
+
export declare const TARGETS_FILE = "targets.json";
|
|
15
17
|
export declare function writeSettles(dir: string, reports: SettleReport[]): void;
|
|
18
|
+
/**
|
|
19
|
+
* Where each step's target was on the page when the step began, by the step's
|
|
20
|
+
* index in the timeline's `steps`, in CSS pixels of the viewport.
|
|
21
|
+
*
|
|
22
|
+
* Beside the timeline rather than in it, because the timeline is the golden
|
|
23
|
+
* contract between capture and render and this is for neither of them: it is
|
|
24
|
+
* what lets version.cam crop a screenshot to the control a step used. Only a
|
|
25
|
+
* step that measured a target has an entry, and it is the first target the
|
|
26
|
+
* step measured, which for `typeInto` is the field and for `drag` is where the
|
|
27
|
+
* drag began.
|
|
28
|
+
*/
|
|
29
|
+
export type Targets = Record<string, Rect>;
|
|
30
|
+
export declare function writeTargets(dir: string, targets: Targets): void;
|
|
16
31
|
export type Failure = {
|
|
17
32
|
message: string;
|
|
18
33
|
/** The last frame captured before it gave up; -1 if none was. */
|
|
19
34
|
frame: number;
|
|
20
35
|
/** Authored seconds, which is where in the script to look. */
|
|
21
36
|
t: number;
|
|
37
|
+
/**
|
|
38
|
+
* The step that was running: its index in the timeline's `steps` and the
|
|
39
|
+
* call, such as `click`. Null when it failed before the first step, and
|
|
40
|
+
* absent from failures written before 0.3.0.
|
|
41
|
+
*/
|
|
42
|
+
step?: {
|
|
43
|
+
index: number;
|
|
44
|
+
call: string;
|
|
45
|
+
} | null;
|
|
22
46
|
};
|
|
23
47
|
/**
|
|
24
48
|
* The failure, then the picture of it.
|
|
@@ -32,3 +56,11 @@ export type Failure = {
|
|
|
32
56
|
export declare function writeFailure(page: Page, dir: string, failure: Failure, options?: {
|
|
33
57
|
draft?: boolean;
|
|
34
58
|
}): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* A failure that happened before the run had a page to record (a saved
|
|
61
|
+
* session the browser refused, a clip whose viewport is invalid) leaves no
|
|
62
|
+
* report of its own. This writes the message where a later step looks for
|
|
63
|
+
* one, with no step, no frame and no picture, so `publish` and `--report`
|
|
64
|
+
* still say that the clip failed and why. A report the run did write is kept.
|
|
65
|
+
*/
|
|
66
|
+
export declare function ensureFailure(dir: string, error: Error): void;
|
package/dist/driver/reports.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { writeFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
/**
|
|
4
4
|
* What a recording leaves behind besides its frames.
|
|
5
5
|
*
|
|
6
6
|
* A clip is written by someone who was not watching it run — increasingly,
|
|
7
7
|
* by something that cannot watch at all — so everything that would have been
|
|
8
|
-
* on screen has to be on disk.
|
|
9
|
-
* it ended badly, the page at the moment it gave up.
|
|
8
|
+
* on screen has to be on disk. What the waits waited for; where each step's
|
|
9
|
+
* target was; and, if it ended badly, the page at the moment it gave up.
|
|
10
10
|
*/
|
|
11
11
|
/** The name a reader looks for, in one place. */
|
|
12
12
|
export const SETTLES_FILE = "settles.json";
|
|
13
13
|
export const FAILURE_JSON = "failure.json";
|
|
14
14
|
export const FAILURE_PNG = "failure.png";
|
|
15
|
+
export const TARGETS_FILE = "targets.json";
|
|
15
16
|
export function writeSettles(dir, reports) {
|
|
16
17
|
writeFileSync(join(dir, SETTLES_FILE), `${JSON.stringify(reports, null, 2)}\n`);
|
|
17
18
|
}
|
|
19
|
+
export function writeTargets(dir, targets) {
|
|
20
|
+
writeFileSync(join(dir, TARGETS_FILE), `${JSON.stringify(targets, null, 2)}\n`);
|
|
21
|
+
}
|
|
18
22
|
/**
|
|
19
23
|
* The failure, then the picture of it.
|
|
20
24
|
*
|
|
@@ -39,4 +43,28 @@ export async function writeFailure(page, dir, failure, options = {}) {
|
|
|
39
43
|
// Nothing to do about it here, and the original failure is on its way up.
|
|
40
44
|
}
|
|
41
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* A failure that happened before the run had a page to record (a saved
|
|
48
|
+
* session the browser refused, a clip whose viewport is invalid) leaves no
|
|
49
|
+
* report of its own. This writes the message where a later step looks for
|
|
50
|
+
* one, with no step, no frame and no picture, so `publish` and `--report`
|
|
51
|
+
* still say that the clip failed and why. A report the run did write is kept.
|
|
52
|
+
*/
|
|
53
|
+
export function ensureFailure(dir, error) {
|
|
54
|
+
if (existsSync(join(dir, FAILURE_JSON)))
|
|
55
|
+
return;
|
|
56
|
+
try {
|
|
57
|
+
mkdirSync(dir, { recursive: true });
|
|
58
|
+
const failure = {
|
|
59
|
+
message: error.message,
|
|
60
|
+
frame: -1,
|
|
61
|
+
t: 0,
|
|
62
|
+
step: null,
|
|
63
|
+
};
|
|
64
|
+
writeFileSync(join(dir, FAILURE_JSON), `${JSON.stringify(failure, null, 2)}\n`);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// The error itself is on its way to the terminal either way.
|
|
68
|
+
}
|
|
69
|
+
}
|
|
42
70
|
//# sourceMappingURL=reports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/driver/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/driver/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC;;;;;;;GAOG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,OAAuB;IAC/D,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EACvB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxC,CAAC;AACJ,CAAC;AAeD,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,OAAgB;IACxD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EACvB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxC,CAAC;AACJ,CAAC;AAgBD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAU,EACV,GAAW,EACX,OAAgB,EAChB,UAA+B,EAAE;IAEjC,IAAI,CAAC;QACH,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EACvB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxC,CAAC;QACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EACtB,MAAM,IAAI,CAAC,UAAU,CAAC;YACpB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,SAAS;YAChB,iEAAiE;YACjE,6DAA6D;YAC7D,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,KAAY;IACrD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO;IAChD,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAY;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,CAAC,CAAC;YACT,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,IAAI;SACX,CAAC;QACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EACvB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;AACH,CAAC"}
|
package/dist/driver/session.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Locator, Page } from "playwright";
|
|
2
|
+
import type { FollowOptions } from "../core/follow.js";
|
|
2
3
|
import { loop as planLoop } from "../core/loop.js";
|
|
3
4
|
import type { LoopPlanner } from "../core/loop.js";
|
|
4
5
|
import type { HighlightStyle, Rect, Timeline, Vec2 } from "../core/timeline.js";
|
|
@@ -50,6 +51,16 @@ export declare class RecordingSession {
|
|
|
50
51
|
private readonly stateIndexByHash;
|
|
51
52
|
private readonly queue;
|
|
52
53
|
private readonly settleReports;
|
|
54
|
+
/**
|
|
55
|
+
* What the clip asked of the camera, turned into keys by `finish()`. Not
|
|
56
|
+
* keys as it goes, because a camera following the cursor depends on where
|
|
57
|
+
* the cursor goes next, which only the rest of the clip says.
|
|
58
|
+
*/
|
|
59
|
+
private readonly cameraWrites;
|
|
60
|
+
/** The first box each step measured, by the step's index. */
|
|
61
|
+
private readonly stepTargets;
|
|
62
|
+
/** Where the cursor rests in frame 0, before its track has a step. */
|
|
63
|
+
private readonly cursorStart;
|
|
53
64
|
/** Authored time, in seconds. */
|
|
54
65
|
private t;
|
|
55
66
|
/** Index of the last captured frame; -1 before frame 0 exists. */
|
|
@@ -181,6 +192,10 @@ export declare class RecordingSession {
|
|
|
181
192
|
/** Type at a human cadence. The cursor stays where it is. */
|
|
182
193
|
type(text: string): Promise<void>;
|
|
183
194
|
press(key: string): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Each of these starts from wherever the camera is, still or moving, and
|
|
197
|
+
* blends into where it is going over its `duration`: see `cameraTrack`.
|
|
198
|
+
*/
|
|
184
199
|
readonly camera: {
|
|
185
200
|
zoom: (target: Locator | Rect, scale?: number, options?: {
|
|
186
201
|
duration?: number;
|
|
@@ -191,8 +206,16 @@ export declare class RecordingSession {
|
|
|
191
206
|
reset: (options?: {
|
|
192
207
|
duration?: number;
|
|
193
208
|
}) => void;
|
|
209
|
+
/**
|
|
210
|
+
* Follow the cursor at one scale until the next camera write, keeping it
|
|
211
|
+
* inside a dead zone around the frame's centre and the frame inside the
|
|
212
|
+
* page. The options are checked here, so a bad one fails this line.
|
|
213
|
+
*/
|
|
214
|
+
follow: (options?: FollowOptions) => void;
|
|
215
|
+
/** Stop following, and come to rest on the framing the follow was heading for. */
|
|
216
|
+
release: () => void;
|
|
194
217
|
};
|
|
195
|
-
private
|
|
218
|
+
private frameCamera;
|
|
196
219
|
highlight(target: Locator | Rect, style: HighlightStyle, options?: {
|
|
197
220
|
for?: number;
|
|
198
221
|
}): Promise<void>;
|
|
@@ -292,6 +315,18 @@ export declare class RecordingSession {
|
|
|
292
315
|
* `runClip`, never by a clip.
|
|
293
316
|
*/
|
|
294
317
|
forClipBody(): RecordingSession;
|
|
318
|
+
/**
|
|
319
|
+
* What the run leaves besides its frames: where each step's target was, and
|
|
320
|
+
* the step that is running now (the one that failed, when this is asked
|
|
321
|
+
* after a failure). Called by `runClip`, never by a clip.
|
|
322
|
+
*/
|
|
323
|
+
evidence(): {
|
|
324
|
+
targets: Record<string, Rect>;
|
|
325
|
+
step: {
|
|
326
|
+
index: number;
|
|
327
|
+
call: string;
|
|
328
|
+
} | null;
|
|
329
|
+
};
|
|
295
330
|
/** Write the timeline out. Called by `clip()` once the script has run. */
|
|
296
331
|
finish(): Timeline;
|
|
297
332
|
}
|
package/dist/driver/session.js
CHANGED
|
@@ -4,6 +4,8 @@ import { join } from "node:path";
|
|
|
4
4
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
5
5
|
import { cursorEnd, evalCursor, planMove, targetPoint, } from "../core/cursor.js";
|
|
6
6
|
import { zoomRect } from "../core/camera.js";
|
|
7
|
+
import { cameraTrack } from "../core/camera-track.js";
|
|
8
|
+
import { resolveFollow } from "../core/follow.js";
|
|
7
9
|
import { loop as planLoop, resampleByArcLength } from "../core/loop.js";
|
|
8
10
|
import { seeded } from "../core/rng.js";
|
|
9
11
|
import { typingSchedule } from "../core/typing.js";
|
|
@@ -12,7 +14,7 @@ import { emptyTiming } from "../core/timing.js";
|
|
|
12
14
|
import { TICK_MS, settlePage } from "./settle.js";
|
|
13
15
|
import { FRAME_PROBE } from "./page-hooks.js";
|
|
14
16
|
/** Members a script calls that are not steps: locator factories, and the driver's own. */
|
|
15
|
-
const NOT_A_STEP = /^(by[A-Z]|css$|constructor$|finish$|forClipBody$)/;
|
|
17
|
+
const NOT_A_STEP = /^(by[A-Z]|css$|constructor$|finish$|forClipBody$|evidence$)/;
|
|
16
18
|
/**
|
|
17
19
|
* `Array.isArray` does not narrow a readonly tuple union, and a Locator is an
|
|
18
20
|
* object like any other, so both targets need real guards.
|
|
@@ -60,6 +62,16 @@ export class RecordingSession {
|
|
|
60
62
|
stateIndexByHash = new Map();
|
|
61
63
|
queue = [];
|
|
62
64
|
settleReports = [];
|
|
65
|
+
/**
|
|
66
|
+
* What the clip asked of the camera, turned into keys by `finish()`. Not
|
|
67
|
+
* keys as it goes, because a camera following the cursor depends on where
|
|
68
|
+
* the cursor goes next, which only the rest of the clip says.
|
|
69
|
+
*/
|
|
70
|
+
cameraWrites = [];
|
|
71
|
+
/** The first box each step measured, by the step's index. */
|
|
72
|
+
stepTargets = {};
|
|
73
|
+
/** Where the cursor rests in frame 0, before its track has a step. */
|
|
74
|
+
cursorStart;
|
|
63
75
|
/** Authored time, in seconds. */
|
|
64
76
|
t = 0;
|
|
65
77
|
/** Index of the last captured frame; -1 before frame 0 exists. */
|
|
@@ -104,6 +116,7 @@ export class RecordingSession {
|
|
|
104
116
|
options.viewport.width * start.x,
|
|
105
117
|
options.viewport.height * start.y,
|
|
106
118
|
];
|
|
119
|
+
this.cursorStart = this.cursor;
|
|
107
120
|
this.timeline = emptyTimeline({
|
|
108
121
|
clipId: options.clipId,
|
|
109
122
|
fps: options.fps,
|
|
@@ -428,6 +441,10 @@ export class RecordingSession {
|
|
|
428
441
|
this.inputPending = true;
|
|
429
442
|
}
|
|
430
443
|
// ── camera, highlight, caption ────────────────────────────────────────────
|
|
444
|
+
/**
|
|
445
|
+
* Each of these starts from wherever the camera is, still or moving, and
|
|
446
|
+
* blends into where it is going over its `duration`: see `cameraTrack`.
|
|
447
|
+
*/
|
|
431
448
|
camera = {
|
|
432
449
|
zoom: async (target, scale, options = {}) => {
|
|
433
450
|
const box = isRect(target) ? target : await this.boxOf(target);
|
|
@@ -435,28 +452,40 @@ export class RecordingSession {
|
|
|
435
452
|
maxScale: scale ?? this.motion.defaultZoom,
|
|
436
453
|
pad: this.motion.zoomPad,
|
|
437
454
|
});
|
|
438
|
-
this.
|
|
455
|
+
this.frameCamera(rect, options.duration);
|
|
439
456
|
},
|
|
440
457
|
to: (rect, options = {}) => {
|
|
441
|
-
this.
|
|
458
|
+
this.frameCamera(rect, options.duration);
|
|
442
459
|
},
|
|
443
460
|
reset: (options = {}) => {
|
|
444
|
-
this.
|
|
461
|
+
this.frameCamera({
|
|
445
462
|
x: 0,
|
|
446
463
|
y: 0,
|
|
447
464
|
w: this.options.viewport.width,
|
|
448
465
|
h: this.options.viewport.height,
|
|
449
|
-
}, options.duration
|
|
466
|
+
}, options.duration);
|
|
467
|
+
},
|
|
468
|
+
/**
|
|
469
|
+
* Follow the cursor at one scale until the next camera write, keeping it
|
|
470
|
+
* inside a dead zone around the frame's centre and the frame inside the
|
|
471
|
+
* page. The options are checked here, so a bad one fails this line.
|
|
472
|
+
*/
|
|
473
|
+
follow: (options = {}) => {
|
|
474
|
+
const { spec, durationMs } = resolveFollow(options, this.motion);
|
|
475
|
+
this.cameraWrites.push({ t: this.t, kind: "follow", spec, durationMs });
|
|
476
|
+
},
|
|
477
|
+
/** Stop following, and come to rest on the framing the follow was heading for. */
|
|
478
|
+
release: () => {
|
|
479
|
+
this.cameraWrites.push({ t: this.t, kind: "release" });
|
|
450
480
|
},
|
|
451
481
|
};
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
keys.push({ t: this.t + durationMs / 1000, rect, ease: "minjerk" });
|
|
482
|
+
frameCamera(rect, durationMs) {
|
|
483
|
+
this.cameraWrites.push({
|
|
484
|
+
t: this.t,
|
|
485
|
+
kind: "frame",
|
|
486
|
+
rect,
|
|
487
|
+
durationMs: durationMs ?? this.motion.zoomDurationMs,
|
|
488
|
+
});
|
|
460
489
|
}
|
|
461
490
|
async highlight(target, style, options = {}) {
|
|
462
491
|
const rect = isRect(target) ? target : await this.boxOf(target);
|
|
@@ -516,7 +545,14 @@ export class RecordingSession {
|
|
|
516
545
|
if (!box) {
|
|
517
546
|
throw new Error(`Matched ${locator.toString()} but it has no box (zero-sized or detached).`);
|
|
518
547
|
}
|
|
519
|
-
|
|
548
|
+
const rect = { x: box.x, y: box.y, w: box.width, h: box.height };
|
|
549
|
+
// Kept for the targets sidecar: the first box a step measures is the
|
|
550
|
+
// control it acts on. A step's own later measurements (typeInto clicking
|
|
551
|
+
// the field it already measured) must not replace it.
|
|
552
|
+
const steps = this.timeline.steps ?? [];
|
|
553
|
+
if (steps.length > 0)
|
|
554
|
+
this.stepTargets[String(steps.length - 1)] ??= rect;
|
|
555
|
+
return rect;
|
|
520
556
|
}
|
|
521
557
|
/**
|
|
522
558
|
* Wait for a target to be on screen, advancing the page's clock a tick at a
|
|
@@ -795,6 +831,19 @@ export class RecordingSession {
|
|
|
795
831
|
});
|
|
796
832
|
return view(this, "");
|
|
797
833
|
}
|
|
834
|
+
/**
|
|
835
|
+
* What the run leaves besides its frames: where each step's target was, and
|
|
836
|
+
* the step that is running now (the one that failed, when this is asked
|
|
837
|
+
* after a failure). Called by `runClip`, never by a clip.
|
|
838
|
+
*/
|
|
839
|
+
evidence() {
|
|
840
|
+
const steps = this.timeline.steps ?? [];
|
|
841
|
+
const last = steps.at(-1);
|
|
842
|
+
return {
|
|
843
|
+
targets: { ...this.stepTargets },
|
|
844
|
+
step: last ? { index: steps.length - 1, call: last.call } : null,
|
|
845
|
+
};
|
|
846
|
+
}
|
|
798
847
|
/** Write the timeline out. Called by `clip()` once the script has run. */
|
|
799
848
|
finish() {
|
|
800
849
|
const startedAt = performance.now();
|
|
@@ -802,6 +851,15 @@ export class RecordingSession {
|
|
|
802
851
|
this.timeline.meta.captured = this.timing.captured;
|
|
803
852
|
if (this.options.draft)
|
|
804
853
|
this.timeline.meta.draft = true;
|
|
854
|
+
// Only now, with the whole cursor track known: a camera that follows the
|
|
855
|
+
// cursor reads ahead of where it is.
|
|
856
|
+
this.timeline.camera = cameraTrack(this.cameraWrites, {
|
|
857
|
+
viewport: this.options.viewport,
|
|
858
|
+
fps: this.options.fps,
|
|
859
|
+
durationFrames: this.timeline.durationFrames,
|
|
860
|
+
cursor: this.timeline.cursor,
|
|
861
|
+
cursorStart: this.cursorStart,
|
|
862
|
+
});
|
|
805
863
|
const finite = this.timeline.durationFrames / this.options.fps;
|
|
806
864
|
for (const caption of this.timeline.captions) {
|
|
807
865
|
if (!Number.isFinite(caption.t1))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/driver/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/driver/session.ts"],"names":[],"mappings":"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"}
|