frameyard 0.1.0 → 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.
Files changed (87) hide show
  1. package/CHANGELOG.md +60 -2
  2. package/GLOSSARY.md +16 -0
  3. package/README.md +89 -51
  4. package/dist/assets/integrations.d.ts.map +1 -1
  5. package/dist/assets/integrations.js.map +1 -1
  6. package/dist/assets/process.d.ts.map +1 -1
  7. package/dist/assets/process.js +2 -2
  8. package/dist/assets/process.js.map +1 -1
  9. package/dist/assets/provenance.d.ts.map +1 -1
  10. package/dist/assets/provenance.js.map +1 -1
  11. package/dist/assets/transcribe.d.ts.map +1 -1
  12. package/dist/assets/transcribe.js +4 -1
  13. package/dist/assets/transcribe.js.map +1 -1
  14. package/dist/assets/tts.d.ts.map +1 -1
  15. package/dist/assets/tts.js +2 -4
  16. package/dist/assets/tts.js.map +1 -1
  17. package/dist/cli.js +19 -94
  18. package/dist/cli.js.map +1 -1
  19. package/dist/contracts.d.ts.map +1 -1
  20. package/dist/contracts.js +5 -6
  21. package/dist/contracts.js.map +1 -1
  22. package/dist/doctor.d.ts.map +1 -1
  23. package/dist/doctor.js +27 -22
  24. package/dist/doctor.js.map +1 -1
  25. package/dist/errors.d.ts +1 -1
  26. package/dist/errors.d.ts.map +1 -1
  27. package/dist/errors.js.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/preview/main.d.ts +2 -0
  33. package/dist/preview/main.d.ts.map +1 -1
  34. package/dist/preview/main.js +28 -3
  35. package/dist/preview/main.js.map +1 -1
  36. package/dist/renderer/audio.d.ts +5 -1
  37. package/dist/renderer/audio.d.ts.map +1 -1
  38. package/dist/renderer/audio.js +5 -2
  39. package/dist/renderer/audio.js.map +1 -1
  40. package/dist/renderer/browser.d.ts +1 -0
  41. package/dist/renderer/browser.d.ts.map +1 -1
  42. package/dist/renderer/browser.js +8 -2
  43. package/dist/renderer/browser.js.map +1 -1
  44. package/dist/renderer/ffmpeg.d.ts.map +1 -1
  45. package/dist/renderer/ffmpeg.js +3 -1
  46. package/dist/renderer/ffmpeg.js.map +1 -1
  47. package/dist/renderer/index.d.ts +5 -0
  48. package/dist/renderer/index.d.ts.map +1 -1
  49. package/dist/renderer/index.js +144 -19
  50. package/dist/renderer/index.js.map +1 -1
  51. package/dist/renderer/transcripts.d.ts.map +1 -1
  52. package/dist/renderer/transcripts.js +1 -3
  53. package/dist/renderer/transcripts.js.map +1 -1
  54. package/dist/runtime/index.d.ts +3 -0
  55. package/dist/runtime/index.d.ts.map +1 -1
  56. package/dist/runtime/index.js +85 -9
  57. package/dist/runtime/index.js.map +1 -1
  58. package/dist/runtime/media.d.ts +16 -0
  59. package/dist/runtime/media.d.ts.map +1 -0
  60. package/dist/runtime/media.js +307 -0
  61. package/dist/runtime/media.js.map +1 -0
  62. package/dist/scaffold.d.ts +3 -0
  63. package/dist/scaffold.d.ts.map +1 -0
  64. package/dist/scaffold.js +179 -0
  65. package/dist/scaffold.js.map +1 -0
  66. package/dist/server/server.d.ts.map +1 -1
  67. package/dist/server/server.js.map +1 -1
  68. package/dist/transcript.d.ts.map +1 -1
  69. package/dist/transcript.js.map +1 -1
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/docs/adr/0003-render-browser-frames-offline.md +2 -0
  73. package/docs/adr/0005-keep-parallel-rendering-opt-in-and-frame-ordered.md +3 -0
  74. package/docs/adr/0006-seek-embedded-media-from-the-frame-clock.md +9 -0
  75. package/docs/v0.1-design.md +16 -12
  76. package/examples/demo/compositions/demo.js +2 -5
  77. package/package.json +13 -4
  78. package/skills/frameyard/README.md +35 -0
  79. package/skills/frameyard/SKILL.md +63 -0
  80. package/{skill → skills/frameyard}/references/audio-assets.md +3 -3
  81. package/{skill → skills/frameyard}/references/deterministic-authoring.md +32 -4
  82. package/{skill → skills/frameyard}/references/failure-recovery.md +6 -3
  83. package/{skill → skills/frameyard}/references/json-results.md +2 -1
  84. package/{skill → skills/frameyard}/references/subtitles-karaoke.md +3 -3
  85. package/{skill → skills/frameyard}/scripts/frameyard.mjs +2 -2
  86. package/skill/README.md +0 -29
  87. package/skill/SKILL.md +0 -57
@@ -1,6 +1,7 @@
1
1
  import { normalizeComposition, resolveAudioClips, resolveProps, resolveTranscriptClips, } from "../contracts.js";
2
2
  import { FrameyardError, isFrameyardError } from "../errors.js";
3
3
  import { frameToMilliseconds } from "./clock.js";
4
+ import { describeMediaAudio, prepareMedia, releaseMedia, settleMedia } from "./media.js";
4
5
  export { frameToMilliseconds, frameToSeconds } from "./clock.js";
5
6
  export { random } from "./random.js";
6
7
  function isThenable(value) {
@@ -154,6 +155,14 @@ async function disposeAfterFailure(composition) {
154
155
  // Cleanup after a failed mount or first update must not mask the failure.
155
156
  }
156
157
  }
158
+ function clearContainer(container) {
159
+ releaseMedia(container);
160
+ container.replaceChildren();
161
+ }
162
+ async function discardRuntime(composition, container) {
163
+ await disposeAfterFailure(composition);
164
+ clearContainer(container);
165
+ }
157
166
  async function waitForMountedAssets(container) {
158
167
  await document.fonts.ready;
159
168
  const images = Array.from(container.querySelectorAll("img"));
@@ -165,7 +174,9 @@ async function waitForMountedAssets(container) {
165
174
  await image.decode();
166
175
  }
167
176
  catch (error) {
168
- throw new FrameyardError("ASSET_NOT_FOUND", `Could not load image asset "${image.currentSrc || image.src}".`, { cause: error });
177
+ throw new FrameyardError("ASSET_NOT_FOUND", `Could not load image asset "${image.currentSrc || image.src}".`, {
178
+ cause: error,
179
+ });
169
180
  }
170
181
  }));
171
182
  }
@@ -196,6 +207,7 @@ export async function createCompositionRuntime(options) {
196
207
  const { container } = options;
197
208
  const diagnostics = options.diagnostics;
198
209
  let warnedTransition = false;
210
+ let embeddedAudioClips = Object.freeze([]);
199
211
  const warnTransition = () => {
200
212
  if (!diagnostics || warnedTransition) {
201
213
  return;
@@ -213,20 +225,23 @@ export async function createCompositionRuntime(options) {
213
225
  await withDiagnosticsAsync("Composition mount()", diagnostics, () => composition.mount({ container, props }));
214
226
  }
215
227
  catch (error) {
216
- await disposeAfterFailure(composition);
217
- container.replaceChildren();
228
+ await discardRuntime(composition, container);
218
229
  throw wrapCompositionError("mount", null, error);
219
230
  }
220
231
  try {
221
232
  await waitForMountedAssets(container);
233
+ await prepareMedia(container);
222
234
  }
223
235
  catch (error) {
224
- await disposeAfterFailure(composition);
225
- container.replaceChildren();
236
+ await discardRuntime(composition, container);
226
237
  throw error;
227
238
  }
239
+ embeddedAudioClips = describeMediaAudio(container);
228
240
  let frame = 0;
229
241
  let disposed = false;
242
+ let settleLoop = null;
243
+ let settleWaiters = [];
244
+ let settleFrame = null;
230
245
  function seek(targetFrame) {
231
246
  if (disposed) {
232
247
  throw new FrameyardError("COMPOSITION_ERROR", "Cannot seek a disposed composition runtime.");
@@ -246,28 +261,89 @@ export async function createCompositionRuntime(options) {
246
261
  }
247
262
  frame = targetFrame;
248
263
  }
264
+ function settle() {
265
+ if (disposed) {
266
+ return Promise.reject(new FrameyardError("COMPOSITION_ERROR", "Cannot settle a disposed composition runtime."));
267
+ }
268
+ const targetFrame = frame;
269
+ const promise = new Promise((resolve, reject) => {
270
+ settleWaiters.push({ resolve, reject });
271
+ });
272
+ settleFrame = targetFrame;
273
+ settleLoop ??= runSettleLoop();
274
+ return promise;
275
+ }
276
+ async function runSettleLoop() {
277
+ try {
278
+ while (settleWaiters.length > 0) {
279
+ const waiters = settleWaiters;
280
+ settleWaiters = [];
281
+ const targetFrame = settleFrame ?? frame;
282
+ settleFrame = null;
283
+ if (disposed) {
284
+ const error = new FrameyardError("COMPOSITION_ERROR", "Cannot settle a disposed composition runtime.");
285
+ for (const waiter of waiters) {
286
+ waiter.reject(error);
287
+ }
288
+ continue;
289
+ }
290
+ try {
291
+ await settleMedia(container, targetFrame, composition.fps);
292
+ if (disposed) {
293
+ const error = new FrameyardError("COMPOSITION_ERROR", "Cannot settle a disposed composition runtime.");
294
+ for (const waiter of waiters) {
295
+ waiter.reject(error);
296
+ }
297
+ }
298
+ else {
299
+ for (const waiter of waiters) {
300
+ waiter.resolve();
301
+ }
302
+ }
303
+ }
304
+ catch (error) {
305
+ for (const waiter of waiters) {
306
+ waiter.reject(error);
307
+ }
308
+ }
309
+ }
310
+ }
311
+ finally {
312
+ settleLoop = null;
313
+ if (settleWaiters.length > 0) {
314
+ settleLoop = runSettleLoop();
315
+ }
316
+ }
317
+ }
249
318
  try {
250
319
  seek(0);
320
+ await settleMedia(container, 0, composition.fps);
251
321
  }
252
322
  catch (error) {
253
- await disposeAfterFailure(composition);
254
- container.replaceChildren();
323
+ await discardRuntime(composition, container);
255
324
  throw error;
256
325
  }
257
326
  return Object.freeze({
258
327
  composition,
259
328
  props,
260
329
  audioClips,
330
+ embeddedAudioClips,
261
331
  transcriptClips,
262
332
  get frame() {
263
333
  return frame;
264
334
  },
265
335
  seek,
336
+ settle,
266
337
  async dispose() {
267
338
  if (disposed) {
268
339
  return;
269
340
  }
270
341
  disposed = true;
342
+ const stopped = new FrameyardError("COMPOSITION_ERROR", "Cannot settle a disposed composition runtime.");
343
+ for (const waiter of settleWaiters) {
344
+ waiter.reject(stopped);
345
+ }
346
+ settleWaiters = [];
271
347
  try {
272
348
  if (composition.dispose) {
273
349
  const result = composition.dispose();
@@ -277,10 +353,10 @@ export async function createCompositionRuntime(options) {
277
353
  }
278
354
  }
279
355
  catch (error) {
280
- container.replaceChildren();
356
+ clearContainer(container);
281
357
  throw wrapCompositionError("dispose", null, error);
282
358
  }
283
- container.replaceChildren();
359
+ clearContainer(container);
284
360
  },
285
361
  });
286
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ResolvedAudioClip } from "../contracts.js";
2
+ /** Converts a composition-relative media reference to a normalized project path. */
3
+ export declare function normalizeMediaSource(raw: string): string;
4
+ /** Loads every embedded video into memory before frame production begins. */
5
+ export declare function prepareMedia(container: HTMLElement): Promise<void>;
6
+ /**
7
+ * Seeks every embedded video to the requested composition frame and waits for
8
+ * the browser to present the result. This is the asynchronous half of a seek;
9
+ * composition update() stays synchronous.
10
+ */
11
+ export declare function settleMedia(container: HTMLElement, frame: number, fps: number): Promise<void>;
12
+ /** Describes the audio contributed by unmuted embedded videos for preview and FFmpeg. */
13
+ export declare function describeMediaAudio(container: HTMLElement): readonly ResolvedAudioClip[];
14
+ /** Releases object URLs and media resources owned by the runtime. */
15
+ export declare function releaseMedia(container: HTMLElement): void;
16
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAkDzD,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA8BxD;AA8HD,6EAA6E;AAC7E,wBAAsB,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAsHD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnG;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,iBAAiB,EAAE,CAwBvF;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAYzD"}
@@ -0,0 +1,307 @@
1
+ import { FrameyardError } from "../errors.js";
2
+ import { frameToSeconds } from "./clock.js";
3
+ const MEDIA_TIMEOUT_MS = 30_000;
4
+ const TIME_EPSILON = 0.0005;
5
+ const preparedMedia = new WeakMap();
6
+ const preparedStates = new Set();
7
+ const pendingPreparation = new WeakMap();
8
+ const VIDEO_MIME_TYPES = {
9
+ ".mov": "video/quicktime",
10
+ ".mp4": "video/mp4",
11
+ ".m4v": "video/mp4",
12
+ ".ogv": "video/ogg",
13
+ ".webm": "video/webm",
14
+ };
15
+ function mediaSource(video) {
16
+ const direct = video.getAttribute("src");
17
+ if (direct !== null && direct.trim().length > 0) {
18
+ return direct.trim();
19
+ }
20
+ const source = video.querySelector("source[src]");
21
+ const nested = source?.getAttribute("src");
22
+ if (nested !== null && nested !== undefined && nested.trim().length > 0) {
23
+ return nested.trim();
24
+ }
25
+ return "";
26
+ }
27
+ /** Converts a composition-relative media reference to a normalized project path. */
28
+ export function normalizeMediaSource(raw) {
29
+ if (raw.length === 0) {
30
+ throw new FrameyardError("MEDIA_INVALID", "An embedded video must have a non-empty src attribute.");
31
+ }
32
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(raw) || raw.startsWith("//") || raw.startsWith("\\")) {
33
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video source must be a local project-relative file, not "${raw}".`);
34
+ }
35
+ let pathValue = raw.split(/[?#]/, 1)[0] ?? "";
36
+ pathValue = pathValue.replace(/\\/g, "/").replace(/^\/+/, "");
37
+ if (pathValue.startsWith("./")) {
38
+ pathValue = pathValue.slice(2);
39
+ }
40
+ if (pathValue.length === 0 || pathValue.split("/").includes("..") || pathValue.includes("\0")) {
41
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video source must stay inside the project, not "${raw}".`);
42
+ }
43
+ let decoded;
44
+ try {
45
+ decoded = decodeURIComponent(pathValue);
46
+ }
47
+ catch {
48
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video source is not a valid URL path: "${raw}".`);
49
+ }
50
+ if (decoded.length === 0 || decoded.split("/").includes("..") || decoded.includes("\0")) {
51
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video source must stay inside the project, not "${raw}".`);
52
+ }
53
+ return decoded;
54
+ }
55
+ function videoUrl(pathValue) {
56
+ return new URL(`/${pathValue}`, window.location.origin);
57
+ }
58
+ function waitForEvent(video, event, message, code = "MEDIA_INVALID") {
59
+ return new Promise((resolve, reject) => {
60
+ let timer;
61
+ function finish() {
62
+ video.removeEventListener(event, onEvent);
63
+ video.removeEventListener("error", onError);
64
+ clearTimeout(timer);
65
+ }
66
+ function onEvent() {
67
+ finish();
68
+ resolve();
69
+ }
70
+ function onError() {
71
+ finish();
72
+ reject(new FrameyardError(code, `${message}${video.error?.message ? `: ${video.error.message}` : ""}`));
73
+ }
74
+ timer = setTimeout(() => {
75
+ finish();
76
+ reject(new FrameyardError(code, `${message} Timed out after ${MEDIA_TIMEOUT_MS / 1000}s.`));
77
+ }, MEDIA_TIMEOUT_MS);
78
+ video.addEventListener(event, onEvent, { once: true });
79
+ video.addEventListener("error", onError, { once: true });
80
+ });
81
+ }
82
+ async function prepareVideo(video, owner) {
83
+ const raw = mediaSource(video);
84
+ const source = normalizeMediaSource(raw);
85
+ const spec = mediaSpec(video);
86
+ const existing = preparedMedia.get(video);
87
+ if (existing && existing.owner === owner && existing.source === source) {
88
+ return existing;
89
+ }
90
+ if (existing) {
91
+ preparedMedia.delete(video);
92
+ preparedStates.delete(existing);
93
+ URL.revokeObjectURL(existing.objectUrl);
94
+ }
95
+ let response;
96
+ try {
97
+ response = await fetch(videoUrl(source), { cache: "no-store" });
98
+ }
99
+ catch (error) {
100
+ throw new FrameyardError("ASSET_NOT_FOUND", `Could not load embedded video asset "${source}".`, {
101
+ cause: error,
102
+ });
103
+ }
104
+ if (!response.ok) {
105
+ throw new FrameyardError("ASSET_NOT_FOUND", `Could not load embedded video asset "${source}" (HTTP ${response.status}).`);
106
+ }
107
+ const blob = await response.blob();
108
+ if (blob.size === 0) {
109
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video asset "${source}" is empty.`);
110
+ }
111
+ const extension = source.slice(source.lastIndexOf(".")).toLowerCase();
112
+ const type = blob.type || VIDEO_MIME_TYPES[extension] || "video/webm";
113
+ const videoBlob = blob.type === type ? blob : blob.slice(0, blob.size, type);
114
+ const objectUrl = URL.createObjectURL(videoBlob);
115
+ const authorMuted = video.muted;
116
+ for (const nested of Array.from(video.querySelectorAll("source"))) {
117
+ nested.remove();
118
+ }
119
+ const loaded = waitForEvent(video, "loadeddata", `Embedded video asset "${source}" could not be decoded.`);
120
+ video.preload = "auto";
121
+ video.playsInline = true;
122
+ video.pause();
123
+ video.muted = true;
124
+ video.src = objectUrl;
125
+ video.load();
126
+ try {
127
+ await loaded;
128
+ if (!Number.isFinite(video.duration) || video.duration <= 0 || video.seekable.length === 0) {
129
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video asset "${source}" is not seekable.`);
130
+ }
131
+ }
132
+ catch (error) {
133
+ URL.revokeObjectURL(objectUrl);
134
+ throw error;
135
+ }
136
+ const state = { element: video, owner, source, objectUrl, spec, authorMuted };
137
+ preparedMedia.set(video, state);
138
+ preparedStates.add(state);
139
+ return state;
140
+ }
141
+ async function prepareOrGet(video, owner) {
142
+ const ready = preparedMedia.get(video);
143
+ if (ready && ready.owner === owner) {
144
+ return ready;
145
+ }
146
+ const pending = pendingPreparation.get(video);
147
+ if (pending) {
148
+ return pending;
149
+ }
150
+ const preparation = prepareVideo(video, owner);
151
+ pendingPreparation.set(video, preparation);
152
+ try {
153
+ return await preparation;
154
+ }
155
+ finally {
156
+ pendingPreparation.delete(video);
157
+ }
158
+ }
159
+ /** Loads every embedded video into memory before frame production begins. */
160
+ export async function prepareMedia(container) {
161
+ const videos = Array.from(container.querySelectorAll("video"));
162
+ await Promise.all(videos.map((video) => prepareOrGet(video, container)));
163
+ }
164
+ function integerAttribute(element, name, fallback) {
165
+ const raw = element.getAttribute(name);
166
+ if (raw === null || raw.trim().length === 0) {
167
+ return fallback;
168
+ }
169
+ const value = Number(raw);
170
+ if (!Number.isInteger(value) || value < 0) {
171
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video ${name} must be a non-negative integer.`);
172
+ }
173
+ return value;
174
+ }
175
+ function secondsAttribute(element, name, fallback, allowZero) {
176
+ const raw = element.getAttribute(name);
177
+ if (raw === null || raw.trim().length === 0) {
178
+ return fallback;
179
+ }
180
+ const value = Number(raw);
181
+ if (!Number.isFinite(value) || value < 0 || (!allowZero && value === 0)) {
182
+ throw new FrameyardError("MEDIA_INVALID", `Embedded video ${name} must be ${allowZero ? "a non-negative" : "a positive"} number of seconds.`);
183
+ }
184
+ return value;
185
+ }
186
+ function volumeAttribute(element) {
187
+ const raw = element.getAttribute("data-frameyard-volume");
188
+ if (raw === null || raw.trim().length === 0) {
189
+ return Math.max(0, Math.min(1, element.volume));
190
+ }
191
+ const value = Number(raw);
192
+ if (!Number.isFinite(value) || value < 0 || value > 1) {
193
+ throw new FrameyardError("MEDIA_INVALID", "Embedded video data-frameyard-volume must be between 0 and 1.");
194
+ }
195
+ return value;
196
+ }
197
+ function mediaSpec(element) {
198
+ const startFrame = integerAttribute(element, "data-frameyard-start", 0);
199
+ const trimStart = secondsAttribute(element, "data-frameyard-trim", 0, true);
200
+ const durationRaw = element.getAttribute("data-frameyard-duration");
201
+ const trimDuration = durationRaw === null || durationRaw.trim().length === 0
202
+ ? undefined
203
+ : secondsAttribute(element, "data-frameyard-duration", 0, false);
204
+ const spec = {
205
+ startFrame,
206
+ trimStart,
207
+ volume: volumeAttribute(element),
208
+ };
209
+ if (trimDuration !== undefined) {
210
+ spec.trimDuration = trimDuration;
211
+ }
212
+ return spec;
213
+ }
214
+ function seekTarget(video, spec, frame, fps) {
215
+ const localSeconds = frameToSeconds(frame, fps) - spec.startFrame / fps;
216
+ const usedSeconds = spec.trimDuration === undefined
217
+ ? Math.max(0, localSeconds)
218
+ : Math.min(spec.trimDuration, Math.max(0, localSeconds));
219
+ const target = spec.trimStart + usedSeconds;
220
+ const duration = Number.isFinite(video.duration) ? Math.max(0, video.duration) : target;
221
+ return Math.min(target, Math.max(0, duration - TIME_EPSILON));
222
+ }
223
+ async function seekVideo(video, frame, fps) {
224
+ const state = preparedMedia.get(video);
225
+ if (!state) {
226
+ throw new FrameyardError("MEDIA_INVALID", "Embedded video elements must be created in mount(); videos added during update() cannot be prepared without network access.");
227
+ }
228
+ if (!video.paused) {
229
+ video.pause();
230
+ }
231
+ if (video.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) {
232
+ await waitForEvent(video, "loadeddata", "Embedded video is not ready for frame production.");
233
+ }
234
+ const target = seekTarget(video, state.spec, frame, fps);
235
+ if (video.seeking) {
236
+ await waitForEvent(video, "seeked", "Embedded video could not finish an earlier seek.", "MEDIA_SEEK_FAILED");
237
+ }
238
+ if (!video.seeking && Math.abs(video.currentTime - target) < TIME_EPSILON) {
239
+ return;
240
+ }
241
+ const seeked = waitForEvent(video, "seeked", "Embedded video could not seek to the requested frame.", "MEDIA_SEEK_FAILED");
242
+ try {
243
+ video.currentTime = target;
244
+ }
245
+ catch (error) {
246
+ throw new FrameyardError("MEDIA_SEEK_FAILED", `Embedded video could not seek to ${target.toFixed(3)}s: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
247
+ }
248
+ await seeked;
249
+ }
250
+ async function nextPaint() {
251
+ await new Promise((resolve) => {
252
+ requestAnimationFrame(() => requestAnimationFrame(() => resolve()));
253
+ });
254
+ }
255
+ /**
256
+ * Seeks every embedded video to the requested composition frame and waits for
257
+ * the browser to present the result. This is the asynchronous half of a seek;
258
+ * composition update() stays synchronous.
259
+ */
260
+ export async function settleMedia(container, frame, fps) {
261
+ const videos = Array.from(container.querySelectorAll("video"));
262
+ if (videos.length === 0) {
263
+ return;
264
+ }
265
+ await Promise.all(videos.map((video) => seekVideo(video, frame, fps)));
266
+ await nextPaint();
267
+ }
268
+ /** Describes the audio contributed by unmuted embedded videos for preview and FFmpeg. */
269
+ export function describeMediaAudio(container) {
270
+ const clips = [];
271
+ for (const video of Array.from(container.querySelectorAll("video"))) {
272
+ const state = preparedMedia.get(video);
273
+ if (!state || state.authorMuted || video.getAttribute("data-frameyard-audio") === "off") {
274
+ continue;
275
+ }
276
+ const spec = state.spec;
277
+ if (spec.volume === 0) {
278
+ continue;
279
+ }
280
+ const clip = {
281
+ src: state.source,
282
+ startFrame: spec.startFrame,
283
+ trimStart: spec.trimStart,
284
+ volume: spec.volume,
285
+ };
286
+ if (spec.trimDuration !== undefined) {
287
+ clip.trimDuration = spec.trimDuration;
288
+ }
289
+ clips.push(Object.freeze(clip));
290
+ }
291
+ return Object.freeze(clips);
292
+ }
293
+ /** Releases object URLs and media resources owned by the runtime. */
294
+ export function releaseMedia(container) {
295
+ for (const state of Array.from(preparedStates)) {
296
+ if (state.owner !== container) {
297
+ continue;
298
+ }
299
+ preparedStates.delete(state);
300
+ preparedMedia.delete(state.element);
301
+ state.element.pause();
302
+ URL.revokeObjectURL(state.objectUrl);
303
+ state.element.removeAttribute("src");
304
+ state.element.load();
305
+ }
306
+ }
307
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function scaffoldFiles(projectName: string): Record<string, string>;
2
+ export declare const SCAFFOLD_NEXT: string[];
3
+ //# sourceMappingURL=scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAiKA,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBzE;AAED,eAAO,MAAM,aAAa,UAKzB,CAAC"}