recordable 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.
Files changed (47) hide show
  1. package/README.md +184 -30
  2. package/dist/actions.d.ts +7 -0
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +5 -0
  5. package/dist/actions.js.map +1 -1
  6. package/dist/audio/track.d.ts +10 -0
  7. package/dist/audio/track.d.ts.map +1 -1
  8. package/dist/audio/track.js +19 -0
  9. package/dist/audio/track.js.map +1 -1
  10. package/dist/compose/boundaries.d.ts +13 -0
  11. package/dist/compose/boundaries.d.ts.map +1 -0
  12. package/dist/compose/boundaries.js +49 -0
  13. package/dist/compose/boundaries.js.map +1 -0
  14. package/dist/compose/mix.d.ts +3 -2
  15. package/dist/compose/mix.d.ts.map +1 -1
  16. package/dist/compose/mix.js +8 -3
  17. package/dist/compose/mix.js.map +1 -1
  18. package/dist/compose/recordable.d.ts +24 -2
  19. package/dist/compose/recordable.d.ts.map +1 -1
  20. package/dist/compose/recordable.js +56 -11
  21. package/dist/compose/recordable.js.map +1 -1
  22. package/dist/compose/session.d.ts +19 -8
  23. package/dist/compose/session.d.ts.map +1 -1
  24. package/dist/compose/session.js +99 -28
  25. package/dist/compose/session.js.map +1 -1
  26. package/dist/ffmpeg.d.ts.map +1 -1
  27. package/dist/ffmpeg.js +8 -3
  28. package/dist/ffmpeg.js.map +1 -1
  29. package/dist/formats/json.d.ts +2 -1
  30. package/dist/formats/json.d.ts.map +1 -1
  31. package/dist/formats/json.js.map +1 -1
  32. package/dist/fs.d.ts +16 -0
  33. package/dist/fs.d.ts.map +1 -1
  34. package/dist/fs.js +33 -4
  35. package/dist/fs.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/result.d.ts +30 -0
  39. package/dist/result.d.ts.map +1 -0
  40. package/dist/result.js +8 -0
  41. package/dist/result.js.map +1 -0
  42. package/dist/video/recorder.d.ts +26 -3
  43. package/dist/video/recorder.d.ts.map +1 -1
  44. package/dist/video/recorder.js +43 -19
  45. package/dist/video/recorder.js.map +1 -1
  46. package/package.json +19 -6
  47. package/recordable.schema.json +78 -0
@@ -1 +1 @@
1
- {"version":3,"file":"recordable.d.ts","sourceRoot":"","sources":["../../src/compose/recordable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordable.d.ts","sourceRoot":"","sources":["../../src/compose/recordable.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { Recorder } from "../video/recorder.js";
7
7
  import { AudioTrack } from "../audio/track.js";
8
8
  import { Runtime } from "../browser/runtime.js";
9
9
  import { Session } from "./session.js";
10
+ import { validateBoundaries } from "./boundaries.js";
10
11
  import { buildArgs, validateAction } from "../actions.js";
11
12
  import { resolveVisitUrls, splitScript } from "../script.js";
12
13
  import { extractActions, parseMarkdown } from "../formats/markdown/parse.js";
@@ -106,9 +107,47 @@ export class Recordable {
106
107
  }
107
108
  // ─── Recording control ───────────────────────────────────────────────────────
108
109
  //
109
- // Recording is ON from the top by default and finalises automatically when
110
- // run() endsthere is no start()/stop(). Use pause()/resume() to carve
111
- // off-camera gaps; every captured segment is stitched into one seamless MP4.
110
+ // Two axes (ROADMAP §6). pause()/resume() carve off-camera gaps *within* one
111
+ // output filethe gap is stitched out, the clip stays continuous.
112
+ // start()/end()/split() move the *file* boundaries, producing separate files.
113
+ // Boundaries default to the script edges: with neither, recording runs ON from
114
+ // the top and finalises into one MP4 at run() end — add only the bookend you need.
115
+ /**
116
+ * Open an output file (the opening boundary). Content *before* the first
117
+ * `start()` runs off-camera; absent, recording opens at the top. Pass an
118
+ * optional `name` to label the file (`start("intro")` → `…-intro.mp4`).
119
+ * Pair with `end()`, or leave it to close implicitly at the bottom.
120
+ */
121
+ start(name) {
122
+ return this._enqueue(async () => {
123
+ this.recorder.openFile(name ?? null);
124
+ }, true, "start");
125
+ }
126
+ /**
127
+ * Close the current output file (the closing boundary). Content *after* `end()`
128
+ * runs off-camera (cleanup is common, so no warning); absent, recording closes
129
+ * at the bottom. Open another file with `start()` for a second output.
130
+ */
131
+ end() {
132
+ return this._enqueue(async () => {
133
+ await this.recorder.closeFile();
134
+ }, true, "end");
135
+ }
136
+ /**
137
+ * Split the output here: close the current file and open the next in one move,
138
+ * camera still rolling (`split() ≡ end() + start()` fused, no gap). Pass an
139
+ * optional `name` to label the new file. For two files with an off-camera gap
140
+ * between them, use `end()` … `start()` instead.
141
+ */
142
+ split(name) {
143
+ return this._enqueue(async (page) => {
144
+ await this.recorder.closeFile();
145
+ this.recorder.openFile(name ?? null);
146
+ // Keep rolling: begin the next file's first segment now (no off-camera gap).
147
+ if (this.recording)
148
+ await this.recorder.begin(page);
149
+ }, true, "split");
150
+ }
112
151
  /**
113
152
  * Stop capturing. The chain keeps running — anything between `pause()` and the
114
153
  * next resume executes off-camera (page loads, logins, data setup) and is
@@ -119,7 +158,7 @@ export class Recordable {
119
158
  this.recording = false;
120
159
  this.runtime.parkCursor(); // remember where the cursor is for resume()
121
160
  await this.recorder.end();
122
- }, true);
161
+ }, true, "pause");
123
162
  }
124
163
  /** Resume capturing in a fresh segment, immediately. Restores the cursor to its
125
164
  * pause() position (a manual step may have navigated away and wiped the overlay,
@@ -129,7 +168,7 @@ export class Recordable {
129
168
  this.recording = true;
130
169
  await this.recorder.begin(page);
131
170
  await this.runtime.restoreCursor(page);
132
- }, true);
171
+ }, true, "resume");
133
172
  }
134
173
  /**
135
174
  * Block the chain until the user *plays* — clicks the in-page ▶ Play button (or
@@ -166,7 +205,7 @@ export class Recordable {
166
205
  const file = this._resolveFile(path);
167
206
  this.log("Insert", file);
168
207
  await this.recorder.insert(file, options);
169
- }, true);
208
+ }, true, "insert");
170
209
  }
171
210
  /**
172
211
  * Lay an existing audio file (mp3/wav) onto the timeline at this point —
@@ -189,7 +228,7 @@ export class Recordable {
189
228
  this.log("Audio", `${truncate(file)} @ ${Math.round(startMs)}ms (${Math.round(durationMs)}ms)`);
190
229
  if (wait)
191
230
  await sleep(durationMs);
192
- });
231
+ }, false, "audio");
193
232
  }
194
233
  // ─── Navigation ────────────────────────────────────────────────────────────
195
234
  /** Navigate to a URL and wait for the page to settle. */
@@ -293,12 +332,18 @@ export class Recordable {
293
332
  });
294
333
  }
295
334
  // ─── Execution ─────────────────────────────────────────────────────────────
296
- /** Execute the queued action sequence, then finalise the recording. */
335
+ /** Execute the queued action sequence, then finalise the recording. Resolves to
336
+ * a {@link RecordableResult} describing the written file(s). */
297
337
  async run() {
298
338
  // Finish any deferred load work (voiceover synthesis) before recording.
299
339
  for (const job of this.pending)
300
340
  await job();
301
341
  this.pending = [];
342
+ // Validate the recording-control state machine up front (ROADMAP §6), so an
343
+ // illegal start/end/split/pause sequence fails before the browser launches.
344
+ validateBoundaries(this.queue
345
+ .map((i) => i.kind)
346
+ .filter((k) => k !== undefined));
302
347
  // Expose just what the session needs; cfg/recording are read live via arrow
303
348
  // getters (this instance mutates them as control actions run).
304
349
  const comp = {
@@ -316,7 +361,7 @@ export class Recordable {
316
361
  get: () => this.recording,
317
362
  enumerable: true,
318
363
  });
319
- await new Session(comp).run();
364
+ return new Session(comp).run();
320
365
  }
321
366
  // ─── Private ───────────────────────────────────────────────────────────────
322
367
  /** Resolve a local asset path (insert/audio clip) against `baseDir` so a
@@ -325,8 +370,8 @@ export class Recordable {
325
370
  _resolveFile(path) {
326
371
  return isAbsolute(path) ? path : resolve(this.cfg.baseDir, path);
327
372
  }
328
- _enqueue(run, control = false) {
329
- this.queue.push({ run, control });
373
+ _enqueue(run, control = false, kind) {
374
+ this.queue.push({ run, control, kind });
330
375
  return this;
331
376
  }
332
377
  /** Recompute `cfg` as defaults < content config < constructor config, then
@@ -1 +1 @@
1
- {"version":3,"file":"recordable.js","sourceRoot":"","sources":["../../src/compose/recordable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordable.js","sourceRoot":"","sources":["../../src/compose/recordable.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,17 @@ import type { ResolvedConfig } from "../config.js";
4
4
  import { type Recorder } from "../video/recorder.js";
5
5
  import { type AudioTrack } from "../audio/track.js";
6
6
  import { type Runtime } from "../browser/runtime.js";
7
- /** One queued action. `control` actions (pause/resume/insert) run without forcing a
8
- * capture segment to begin. */
7
+ import { type QueueKind } from "./boundaries.js";
8
+ import { type RecordableResult } from "../result.js";
9
+ /** One queued action. `control` actions (pause/resume/insert/boundaries) run
10
+ * without forcing a capture segment to begin; `kind` tags the recording-control
11
+ * actions so the boundary state machine and finalisation can reason about them. */
9
12
  export interface QueueItem {
10
13
  /** Returns a `Page` to switch the active tab to (e.g. a `followNewTab` click),
11
14
  * otherwise void — capture stays on the current tab. */
12
15
  run: (page: Page) => Promise<Page | void>;
13
16
  control: boolean;
17
+ kind?: QueueKind;
14
18
  }
15
19
  /** What the session needs from the builder to execute a composed recording.
16
20
  * `cfg` and `recording` are read live (the builder mutates them mid-run). */
@@ -27,11 +31,16 @@ export declare class Session {
27
31
  private readonly comp;
28
32
  private browser;
29
33
  private zoomExt;
30
- private outputPath;
31
34
  private finalised;
35
+ private startedAt;
36
+ private readonly warnings;
37
+ private result;
32
38
  constructor(comp: Composition);
33
- /** Execute the queued action sequence, then finalise the recording. */
34
- run(): Promise<void>;
39
+ /** Execute the queued action sequence, then finalise the recording. Resolves to
40
+ * a {@link RecordableResult} on success; throws (browser/ffmpeg failure, or a
41
+ * script that can't run to completion) otherwise — so the result is the success
42
+ * path only and its `files` are always real. */
43
+ run(): Promise<RecordableResult>;
35
44
  /** Prepare a page for capture: set the viewport, the `Accept-Language` header (when
36
45
  * a `language` is configured), and (when the cursor is on) wire the per-page
37
46
  * re-inject. A navigation wipes the in-page cursor overlay and any
@@ -45,9 +54,11 @@ export declare class Session {
45
54
  * the run loop lazily begins a fresh segment before the next action. */
46
55
  private _switchTab;
47
56
  private _cleanup;
48
- /** Seal the recording: stitch the captured/inserted segments (video layer),
49
- * then mix the audio track onto them (audio layer). The video defines the
50
- * length. Idempotent a signal handler and the normal path both call it. */
57
+ /** Seal the recording: close any open file (implicit end at the bottom), then for
58
+ * each output file stitch its segments (video layer) and mix its slice of the
59
+ * audio track onto it (audio layer). Empty files are reported and skipped.
60
+ * Builds the {@link RecordableResult}. Idempotent — a signal handler and the
61
+ * normal path both call it. */
51
62
  private _finalize;
52
63
  }
53
64
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/compose/session.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAgB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAI/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAarD;gCACgC;AAChC,MAAM,WAAW,SAAS;IACxB;6DACyD;IACzD,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;8EAC8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,OAAO;IAMN,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEG,IAAI,EAAE,WAAW;IAE9C,uEAAuE;IACjE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA4E1B;;;;;wFAKoF;YACtE,UAAU;IAwBxB;;;6EAGyE;YAC3D,UAAU;YAyBV,QAAQ;IAWtB;;kFAE8E;YAChE,SAAS;CA0BxB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/compose/session.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAgB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAK/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,KAAK,UAAU,EAAyB,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAe1E;;oFAEoF;AACpF,MAAM,WAAW,SAAS;IACxB;6DACyD;IACzD,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;8EAC8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,OAAO;IAQN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAiC;gBAElB,IAAI,EAAE,WAAW;IAE9C;;;qDAGiD;IAC3C,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA4FtC;;;;;wFAKoF;YACtE,UAAU;IAwBxB;;;6EAGyE;YAC3D,UAAU;YAyBV,QAAQ;IAWtB;;;;oCAIgC;YAClB,SAAS;CA4ExB"}
@@ -1,26 +1,32 @@
1
1
  import puppeteer from "puppeteer";
2
2
  import { join } from "node:path";
3
+ import { statSync } from "node:fs";
3
4
  import { sleep } from "../utils.js";
4
- import { getOutputPath } from "../fs.js";
5
+ import { resolveOutputPaths } from "../fs.js";
5
6
  import { RecordableError } from "../errors.js";
6
7
  import { stitch } from "../video/stitch.js";
8
+ import { partitionAudioByFiles } from "../audio/track.js";
7
9
  import { addAudio } from "./mix.js";
8
10
  import { createZoomExtension, } from "../browser/page-zoom.js";
9
11
  export class Session {
10
12
  comp;
11
13
  browser = null;
12
14
  zoomExt = null;
13
- outputPath = "";
14
15
  finalised = false;
16
+ startedAt = 0;
17
+ warnings = [];
18
+ result = null;
15
19
  constructor(comp) {
16
20
  this.comp = comp;
17
21
  }
18
- /** Execute the queued action sequence, then finalise the recording. */
22
+ /** Execute the queued action sequence, then finalise the recording. Resolves to
23
+ * a {@link RecordableResult} on success; throws (browser/ffmpeg failure, or a
24
+ * script that can't run to completion) otherwise — so the result is the success
25
+ * path only and its `files` are always real. */
19
26
  async run() {
20
27
  const { log, recorder, runtime } = this.comp;
21
28
  log("Start", "recording…");
22
- let ok = true;
23
- this.outputPath = getOutputPath(this.comp.cfg);
29
+ this.startedAt = Date.now();
24
30
  recorder.init();
25
31
  const cfg = this.comp.cfg;
26
32
  // Browser page zoom (Ctrl +/−) ships as a bundled extension — the only
@@ -50,6 +56,11 @@ export class Session {
50
56
  }
51
57
  let page = await this.browser.newPage();
52
58
  await this._setupPage(page, runtime, cfg);
59
+ // Boundaries default to the script edges (ROADMAP §6): with no explicit
60
+ // start() the first file is open from the top; otherwise the file opens
61
+ // closed and the first start() opens it (content before runs off-camera).
62
+ if (!this.comp.queue.some((i) => i.kind === "start"))
63
+ recorder.openFile(null);
53
64
  // Finalise the recording and close the browser on SIGINT / SIGTERM.
54
65
  const onSignal = () => {
55
66
  log("Signal", "finalising recording…");
@@ -57,11 +68,16 @@ export class Session {
57
68
  };
58
69
  process.once("SIGINT", onSignal);
59
70
  process.once("SIGTERM", onSignal);
71
+ let caught = null;
60
72
  try {
61
73
  for (const item of this.comp.queue) {
62
74
  // Lazily begin a segment before the first capture-worthy action while
63
- // recording is intended — keeps a leading pause() from making an empty clip.
64
- if (!item.control && this.comp.recording && !recorder.capturing) {
75
+ // recording is intended *and* a file is open — keeps a leading pause()
76
+ // (or an off-camera gap between end() and start()) from making a clip.
77
+ if (!item.control &&
78
+ this.comp.recording &&
79
+ recorder.fileOpen &&
80
+ !recorder.capturing) {
65
81
  await recorder.begin(page);
66
82
  }
67
83
  // A `followNewTab` click returns the tab it opened: seal the current segment
@@ -75,18 +91,23 @@ export class Session {
75
91
  }
76
92
  }
77
93
  catch (err) {
78
- ok = false;
94
+ caught = err;
79
95
  log.error(String(err));
80
96
  }
81
97
  finally {
82
98
  process.off("SIGINT", onSignal);
83
99
  process.off("SIGTERM", onSignal);
84
100
  await this._cleanup();
85
- log("Output", this.outputPath);
101
+ for (const f of this.result?.files ?? [])
102
+ log("Output", f.path);
86
103
  // Bookends the "Start" line; green only when the run actually succeeded.
87
- if (ok)
104
+ if (!caught)
88
105
  log.success("Done", "recording complete");
89
106
  }
107
+ // A run that couldn't complete throws — never a half-real result.
108
+ if (caught)
109
+ throw caught;
110
+ return this.result;
90
111
  }
91
112
  /** Prepare a page for capture: set the viewport, the `Accept-Language` header (when
92
113
  * a `language` is configured), and (when the cursor is on) wire the per-page
@@ -109,9 +130,9 @@ export class Session {
109
130
  if (frame !== page.mainFrame())
110
131
  return;
111
132
  runtime.resetZoomState();
112
- // Only mask the real pointer while recording — a paused / wait-for-user
113
- // step is driven by hand, so the `cursor: none` overlay stays off.
114
- if (!this.comp.recording)
133
+ // Only mask the real pointer while actually recording — a paused / off-camera
134
+ // (no file open) step is driven by hand, so the `cursor: none` overlay stays off.
135
+ if (!this.comp.recording || !this.comp.recorder.fileOpen)
115
136
  return;
116
137
  void runtime.injectCursor(page).catch(() => { });
117
138
  });
@@ -150,31 +171,81 @@ export class Session {
150
171
  this.zoomExt?.cleanup();
151
172
  this.zoomExt = null;
152
173
  }
153
- /** Seal the recording: stitch the captured/inserted segments (video layer),
154
- * then mix the audio track onto them (audio layer). The video defines the
155
- * length. Idempotent a signal handler and the normal path both call it. */
174
+ /** Seal the recording: close any open file (implicit end at the bottom), then for
175
+ * each output file stitch its segments (video layer) and mix its slice of the
176
+ * audio track onto it (audio layer). Empty files are reported and skipped.
177
+ * Builds the {@link RecordableResult}. Idempotent — a signal handler and the
178
+ * normal path both call it. */
156
179
  async _finalize() {
157
180
  if (this.finalised)
158
181
  return;
159
182
  this.finalised = true;
160
183
  const { recorder, audioTrack, cfg, log } = this.comp;
161
- await recorder.end();
162
- const segs = recorder.segments;
163
- if (segs.length === 0) {
184
+ // Implicit end: close the file still open at the script's end (seals the
185
+ // in-flight segment). A no-op when the script ended with an explicit end().
186
+ if (recorder.fileOpen)
187
+ await recorder.closeFile();
188
+ const elapsedMs = Date.now() - this.startedAt;
189
+ const files = recorder.outputFiles;
190
+ // Drop files that captured no frames (e.g. start→end with nothing between),
191
+ // warning each — they're never written.
192
+ const kept = [];
193
+ files.forEach((f, i) => {
194
+ if (f.segments.length > 0) {
195
+ kept.push(f);
196
+ return;
197
+ }
198
+ const name = f.label ? `"${f.label}"` : `#${i + 1}`;
199
+ const msg = `empty recording ${name} captured no frames — skipped`;
200
+ this.warnings.push(msg);
201
+ log("Record", msg);
202
+ });
203
+ if (kept.length === 0) {
164
204
  log("Record", "nothing was recorded — no output written");
165
205
  recorder.removeTmp();
206
+ this.result = {
207
+ status: "empty",
208
+ files: [],
209
+ outputDir: cfg.outputDir,
210
+ durationMs: 0,
211
+ elapsedMs,
212
+ warnings: this.warnings,
213
+ };
166
214
  return;
167
215
  }
168
- // With audio, render the silent video to a temp file then mix onto it;
169
- // otherwise stitch straight to the output.
170
- const needAudio = audioTrack.length > 0;
171
- const videoOut = needAudio
172
- ? join(recorder.tmpDir, "video.mp4")
173
- : this.outputPath;
174
- await stitch(segs, cfg, log, videoOut, recorder.tmpDir);
175
- if (needAudio)
176
- await addAudio(videoOut, audioTrack.list(), this.outputPath, log);
216
+ const paths = resolveOutputPaths(cfg, kept);
217
+ const clipsByFile = partitionAudioByFiles(audioTrack.list(), kept);
218
+ const resultFiles = [];
219
+ for (let i = 0; i < kept.length; i++) {
220
+ const f = kept[i];
221
+ const out = paths[i];
222
+ const clips = clipsByFile[i];
223
+ const needAudio = clips.length > 0;
224
+ // With audio, render the silent video to a temp file then mix onto it;
225
+ // otherwise stitch straight to the output.
226
+ const videoOut = needAudio
227
+ ? join(recorder.tmpDir, `video-${i}.mp4`)
228
+ : out;
229
+ await stitch(f.segments, cfg, log, videoOut, recorder.tmpDir);
230
+ if (needAudio)
231
+ this.warnings.push(...(await addAudio(videoOut, clips, out, log)));
232
+ resultFiles.push({
233
+ path: out,
234
+ label: f.label,
235
+ index: i + 1,
236
+ durationMs: Math.round(f.durationMs),
237
+ bytes: statSync(out).size,
238
+ });
239
+ }
177
240
  recorder.removeTmp();
241
+ this.result = {
242
+ status: "completed",
243
+ files: resultFiles,
244
+ outputDir: cfg.outputDir,
245
+ durationMs: resultFiles.reduce((sum, f) => sum + f.durationMs, 0),
246
+ elapsedMs,
247
+ warnings: this.warnings,
248
+ };
178
249
  }
179
250
  }
180
251
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/compose/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/compose/session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../src/ffmpeg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,EAAE,CAS7D;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAazD;AAYD,eAAO,MAAM,WAAW,QAAsB,CAAC;AAS/C;;kFAEkF;AAClF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvD"}
1
+ {"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../src/ffmpeg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,EAAE,CAS7D;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAazD;AAmBD,eAAO,MAAM,WAAW,QAAsB,CAAC;AAS/C;;kFAEkF;AAClF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvD"}
package/dist/ffmpeg.js CHANGED
@@ -27,11 +27,16 @@ export function getDuration(path) {
27
27
  });
28
28
  });
29
29
  }
30
- // Prefer the ffmpeg binary bundled by @ffmpeg-installer/ffmpeg; fall back to a
31
- // system `ffmpeg` on PATH if it isn't present for some reason.
30
+ // Prefer the ffmpeg binary bundled by ffmpeg-static; fall back to a system
31
+ // `ffmpeg` on PATH if it isn't present for some reason. ffmpeg-static ships a
32
+ // current ffmpeg (>= 6) on every platform — unlike @ffmpeg-installer, whose
33
+ // Linux binary was 4.1 and lacked `xfade` (4.3) and adelay's `all` option (4.2).
32
34
  function resolveFfmpegPath() {
33
35
  try {
34
- return createRequire(import.meta.url)("@ffmpeg-installer/ffmpeg").path;
36
+ // ffmpeg-static exports the binary path directly (null on an unsupported
37
+ // platform, in which case we defer to a system ffmpeg).
38
+ const path = createRequire(import.meta.url)("ffmpeg-static");
39
+ return path ?? "ffmpeg";
35
40
  }
36
41
  catch {
37
42
  return "ffmpeg";
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../src/ffmpeg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../src/ffmpeg.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Recordable } from "../compose/recordable.js";
2
2
  import type { RecordableConfig } from "../config.js";
3
+ import type { RecordableResult } from "../result.js";
3
4
  import type { Script } from "../script.js";
4
5
  /**
5
6
  * Build a {@link Recordable} from a JSON script without running it — a thin
@@ -8,5 +9,5 @@ import type { Script } from "../script.js";
8
9
  */
9
10
  export declare function fromJSON(script: Script | string, configOverride?: RecordableConfig): Recordable;
10
11
  /** Build a {@link Recordable} from a JSON script and run it to completion. */
11
- export declare function runScript(script: Script | string, configOverride?: RecordableConfig): Promise<void>;
12
+ export declare function runScript(script: Script | string, configOverride?: RecordableConfig): Promise<RecordableResult>;
12
13
  //# sourceMappingURL=json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/formats/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAS3C;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,cAAc,GAAE,gBAAqB,GACpC,UAAU,CAEZ;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,cAAc,CAAC,EAAE,gBAAgB,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/formats/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAS3C;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,cAAc,GAAE,gBAAqB,GACpC,UAAU,CAEZ;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,cAAc,CAAC,EAAE,gBAAgB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/formats/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAE1E;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAuB,EACvB,iBAAmC,EAAE;IAErC,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CACvB,MAAuB,EACvB,cAAiC;IAEjC,OAAO,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/formats/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAE1E;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAuB,EACvB,iBAAmC,EAAE;IAErC,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CACvB,MAAuB,EACvB,cAAiC;IAEjC,OAAO,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;AAChD,CAAC"}
package/dist/fs.d.ts CHANGED
@@ -6,4 +6,20 @@ export declare function getOutputPath(opts: {
6
6
  outputName: string;
7
7
  outputTimestamp: boolean;
8
8
  }): string;
9
+ /**
10
+ * Resolve the output path for each file of a multi-file run (ROADMAP §6),
11
+ * ensuring the directory exists. A single unlabelled file stays
12
+ * `<name>.mp4`; otherwise each file is suffixed — a label always wins
13
+ * (`<name>-intro.mp4`), an unlabelled file falls back to its 1-based position
14
+ * (`<name>-2.mp4`). One run-wide timestamp (when enabled) is shared by all.
15
+ * Collisions (e.g. a label equal to another's index) are disambiguated by
16
+ * appending the position.
17
+ */
18
+ export declare function resolveOutputPaths(opts: {
19
+ outputDir: string;
20
+ outputName: string;
21
+ outputTimestamp: boolean;
22
+ }, files: readonly {
23
+ label: string | null;
24
+ }[]): string[];
9
25
  //# sourceMappingURL=fs.d.ts.map
package/dist/fs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAKA,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYxD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B,GAAG,MAAM,CAQT"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAKA,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYxD;AASD,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B,GAAG,MAAM,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,EACzE,KAAK,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GACzC,MAAM,EAAE,CAgBV"}