frameyard 0.3.0 → 0.4.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 (104) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/GLOSSARY.md +42 -2
  3. package/README.md +162 -101
  4. package/dist/bindings.d.ts +42 -0
  5. package/dist/bindings.d.ts.map +1 -0
  6. package/dist/bindings.js +144 -0
  7. package/dist/bindings.js.map +1 -0
  8. package/dist/cli.js +25 -10
  9. package/dist/cli.js.map +1 -1
  10. package/dist/contracts.d.ts +73 -47
  11. package/dist/contracts.d.ts.map +1 -1
  12. package/dist/contracts.js +14 -159
  13. package/dist/contracts.js.map +1 -1
  14. package/dist/errors.d.ts +15 -4
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +8 -0
  17. package/dist/errors.js.map +1 -1
  18. package/dist/html/index.d.ts +5 -0
  19. package/dist/html/index.d.ts.map +1 -0
  20. package/dist/html/index.js +3 -0
  21. package/dist/html/index.js.map +1 -0
  22. package/dist/html/parse.d.ts +30 -0
  23. package/dist/html/parse.d.ts.map +1 -0
  24. package/dist/html/parse.js +80 -0
  25. package/dist/html/parse.js.map +1 -0
  26. package/dist/html/validate.d.ts +14 -0
  27. package/dist/html/validate.d.ts.map +1 -0
  28. package/dist/html/validate.js +931 -0
  29. package/dist/html/validate.js.map +1 -0
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/preview/main.d.ts +10 -3
  35. package/dist/preview/main.d.ts.map +1 -1
  36. package/dist/preview/main.js +186 -88
  37. package/dist/preview/main.js.map +1 -1
  38. package/dist/project.d.ts +2 -0
  39. package/dist/project.d.ts.map +1 -1
  40. package/dist/project.js +4 -0
  41. package/dist/project.js.map +1 -1
  42. package/dist/renderer/browser.d.ts +11 -1
  43. package/dist/renderer/browser.d.ts.map +1 -1
  44. package/dist/renderer/browser.js +62 -10
  45. package/dist/renderer/browser.js.map +1 -1
  46. package/dist/renderer/index.d.ts +25 -5
  47. package/dist/renderer/index.d.ts.map +1 -1
  48. package/dist/renderer/index.js +64 -9
  49. package/dist/renderer/index.js.map +1 -1
  50. package/dist/runtime/bindings.d.ts +11 -0
  51. package/dist/runtime/bindings.d.ts.map +1 -0
  52. package/dist/runtime/bindings.js +164 -0
  53. package/dist/runtime/bindings.js.map +1 -0
  54. package/dist/runtime/diagnostics.d.ts +4 -0
  55. package/dist/runtime/diagnostics.d.ts.map +1 -0
  56. package/dist/runtime/diagnostics.js +107 -0
  57. package/dist/runtime/diagnostics.js.map +1 -0
  58. package/dist/runtime/host.d.ts +12 -0
  59. package/dist/runtime/host.d.ts.map +1 -0
  60. package/dist/runtime/host.js +701 -0
  61. package/dist/runtime/host.js.map +1 -0
  62. package/dist/runtime/index.d.ts +0 -29
  63. package/dist/runtime/index.d.ts.map +1 -1
  64. package/dist/runtime/index.js +0 -360
  65. package/dist/runtime/index.js.map +1 -1
  66. package/dist/runtime/media.js +7 -7
  67. package/dist/runtime/media.js.map +1 -1
  68. package/dist/scaffold.d.ts.map +1 -1
  69. package/dist/scaffold.js +167 -79
  70. package/dist/scaffold.js.map +1 -1
  71. package/dist/server/composition-html.d.ts +20 -0
  72. package/dist/server/composition-html.d.ts.map +1 -0
  73. package/dist/server/composition-html.js +45 -0
  74. package/dist/server/composition-html.js.map +1 -0
  75. package/dist/server/preview-html.d.ts.map +1 -1
  76. package/dist/server/preview-html.js +19 -14
  77. package/dist/server/preview-html.js.map +1 -1
  78. package/dist/server/server.d.ts.map +1 -1
  79. package/dist/server/server.js +94 -6
  80. package/dist/server/server.js.map +1 -1
  81. package/dist/version.d.ts +1 -1
  82. package/dist/version.js +1 -1
  83. package/docs/adr/0001-keep-composition-authoring-web-native.md +2 -0
  84. package/docs/adr/0006-seek-embedded-media-from-the-frame-clock.md +3 -1
  85. package/docs/adr/0007-make-html-documents-the-composition-unit.md +31 -0
  86. package/docs/migration-0.4.md +279 -0
  87. package/docs/v0.1-design.md +76 -55
  88. package/examples/demo/README.md +7 -3
  89. package/examples/demo/compositions/demo.controller.js +120 -0
  90. package/examples/demo/compositions/demo.html +253 -0
  91. package/examples/demo/video.config.js +1 -1
  92. package/package.json +4 -2
  93. package/skills/frameyard/README.md +4 -0
  94. package/skills/frameyard/SKILL.md +38 -11
  95. package/skills/frameyard/references/audio-assets.md +25 -14
  96. package/skills/frameyard/references/bindings.md +73 -0
  97. package/skills/frameyard/references/common-mistakes.md +59 -0
  98. package/skills/frameyard/references/controllers.md +126 -0
  99. package/skills/frameyard/references/deterministic-authoring.md +143 -52
  100. package/skills/frameyard/references/diagnostics.md +90 -0
  101. package/skills/frameyard/references/failure-recovery.md +37 -14
  102. package/skills/frameyard/references/json-results.md +41 -7
  103. package/skills/frameyard/references/subtitles-karaoke.md +10 -18
  104. package/examples/demo/compositions/demo.js +0 -206
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/html/validate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { VERSION, VERSION as version } from "./version.js";
2
- export { assertJsonSerializable, defineComposition, normalizeComposition, resolveAudioClips, resolveProps, resolveTranscriptClips, } from "./contracts.js";
3
- export type { AudioClip, AudioContext, Composition, CompositionDefinition, CompositionMetadata, JsonPrimitive, JsonValue, MountContext, Props, ResolvedAudioClip, ResolvedTranscriptClip, TranscriptClip, UpdateContext, } from "./contracts.js";
2
+ export { assertJsonSerializable, isPlainObject, mergeProps, normalizeAudioClip, normalizeTranscriptClip, } from "./contracts.js";
3
+ export type { AudioClip, CompositionDiagnostic, CompositionDiagnosticDetails, CompositionMetadata, CompositionSourceInfo, ControllerDeclaration, DiagnosticSeverity, FrameyardHost, JsonPrimitive, JsonValue, Props, ResolvedAudioClip, ResolvedTranscriptClip, TranscriptClip, } from "./contracts.js";
4
4
  export { FrameyardError, errorMessage, isFrameyardError } from "./errors.js";
5
5
  export type { FrameyardErrorCode } from "./errors.js";
6
6
  export { TRANSCRIPT_SCHEMA_VERSION, parseTranscript, transcriptToSrt, transcriptToVtt } from "./transcript.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,KAAK,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/G,YAAY,EACV,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/G,YAAY,EACV,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { VERSION, VERSION as version } from "./version.js";
2
- export { assertJsonSerializable, defineComposition, normalizeComposition, resolveAudioClips, resolveProps, resolveTranscriptClips, } from "./contracts.js";
2
+ export { assertJsonSerializable, isPlainObject, mergeProps, normalizeAudioClip, normalizeTranscriptClip, } from "./contracts.js";
3
3
  export { FrameyardError, errorMessage, isFrameyardError } from "./errors.js";
4
4
  export { TRANSCRIPT_SCHEMA_VERSION, parseTranscript, transcriptToSrt, transcriptToVtt } from "./transcript.js";
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,13 +1,20 @@
1
- import type { CompositionMetadata, Props, ResolvedAudioClip, ResolvedTranscriptClip } from "../index.js";
2
- interface PreviewLoadResult {
1
+ import type { CompositionDiagnostic, CompositionMetadata, Props, ResolvedAudioClip, ResolvedTranscriptClip } from "../index.js";
2
+ interface LoadedHostState {
3
3
  metadata: CompositionMetadata;
4
4
  props: Props;
5
+ controller: {
6
+ kind: "inline";
7
+ } | {
8
+ kind: "external";
9
+ src: string;
10
+ } | null;
5
11
  audioClips: ResolvedAudioClip[];
6
12
  embeddedAudioClips: ResolvedAudioClip[];
7
13
  transcriptClips: ResolvedTranscriptClip[];
14
+ diagnostics: CompositionDiagnostic[];
8
15
  }
9
16
  interface PreviewApi {
10
- load(entry: string, props?: unknown): Promise<PreviewLoadResult>;
17
+ load(entry: string, props?: unknown): Promise<LoadedHostState>;
11
18
  seek(frame: number): void;
12
19
  settle(): Promise<void>;
13
20
  dispose(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/preview/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AASzG,UAAU,iBAAiB;IACzB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,eAAe,EAAE,sBAAsB,EAAE,CAAC;CAC3C;AAED,UAAU,UAAU;IAClB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,EAAE,UAAU,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/preview/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EAEnB,KAAK,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAYrB,UAAU,eAAe;IACvB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,WAAW,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAOD,UAAU,UAAU;IAClB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,EAAE,UAAU,CAAC;KAChC;CACF"}
@@ -1,6 +1,5 @@
1
- import { createCompositionRuntime, frameToMilliseconds, loadCompositionModule, } from "../runtime/index.js";
1
+ import { frameToMilliseconds } from "../runtime/index.js";
2
2
  import { FrameyardError, errorMessage, isFrameyardError } from "../errors.js";
3
- const isRender = new URLSearchParams(window.location.search).get("render") === "1";
4
3
  function byId(id) {
5
4
  const element = document.getElementById(id);
6
5
  if (!element) {
@@ -8,10 +7,11 @@ function byId(id) {
8
7
  }
9
8
  return element;
10
9
  }
11
- const stage = byId("stage");
10
+ const stageFrame = byId("stage-frame");
12
11
  const stageWrap = byId("stage-wrap");
13
12
  const viewport = byId("viewport");
14
13
  const errorBox = byId("error");
14
+ const diagnosticsBox = byId("diagnostics");
15
15
  const propsEditor = byId("props");
16
16
  const applyButton = byId("apply");
17
17
  const formatButton = byId("format");
@@ -24,7 +24,7 @@ const durationLabel = byId("duration");
24
24
  const clockLabel = byId("clock");
25
25
  const muteCheckbox = byId("mute");
26
26
  const volumeSlider = byId("volume");
27
- let runtime = null;
27
+ let hostFrame = null;
28
28
  let metadata = null;
29
29
  let audioClips = [];
30
30
  let embeddedAudioClips = [];
@@ -39,6 +39,7 @@ let muted = false;
39
39
  let lastError = null;
40
40
  let selectedEntry = null;
41
41
  let loadQueue = Promise.resolve();
42
+ let loadSequence = 0;
42
43
  const entries = new Map();
43
44
  function showError(error) {
44
45
  lastError = errorMessage(error);
@@ -78,17 +79,11 @@ function fitStage() {
78
79
  if (!metadata) {
79
80
  return;
80
81
  }
81
- if (isRender) {
82
- stage.style.transform = "none";
83
- stageWrap.style.width = "";
84
- stageWrap.style.height = "";
85
- return;
86
- }
87
82
  const padding = 48;
88
83
  const availableWidth = Math.max(1, viewport.clientWidth - padding);
89
84
  const availableHeight = Math.max(1, viewport.clientHeight - padding);
90
85
  const scale = Math.min(availableWidth / metadata.width, availableHeight / metadata.height, 1);
91
- stage.style.transform = `scale(${scale})`;
86
+ stageFrame.style.transform = `scale(${scale})`;
92
87
  stageWrap.style.width = `${metadata.width * scale}px`;
93
88
  stageWrap.style.height = `${metadata.height * scale}px`;
94
89
  }
@@ -116,7 +111,7 @@ function releaseAudio() {
116
111
  }
117
112
  function buildAudio() {
118
113
  releaseAudio();
119
- if (isRender || !metadata) {
114
+ if (!metadata) {
120
115
  return;
121
116
  }
122
117
  for (const clip of [...audioClips, ...embeddedAudioClips]) {
@@ -181,11 +176,12 @@ function stopPlayback() {
181
176
  stopAudio();
182
177
  }
183
178
  function renderFrame(frame, options = {}) {
184
- if (!runtime || !metadata) {
179
+ const active = hostFrame;
180
+ if (!active || !metadata) {
185
181
  throw new FrameyardError("COMPOSITION_ERROR", "No composition is loaded.");
186
182
  }
187
183
  try {
188
- runtime.seek(frame);
184
+ active.seek(frame);
189
185
  }
190
186
  catch (error) {
191
187
  stopPlayback();
@@ -196,10 +192,10 @@ function renderFrame(frame, options = {}) {
196
192
  clearError();
197
193
  updateTransport();
198
194
  syncAudio();
195
+ refreshDiagnostics();
199
196
  if (options.settle !== false) {
200
- const active = runtime;
201
197
  void active.settle().catch((error) => {
202
- if (runtime !== active) {
198
+ if (hostFrame !== active) {
203
199
  return;
204
200
  }
205
201
  stopPlayback();
@@ -208,7 +204,7 @@ function renderFrame(frame, options = {}) {
208
204
  }
209
205
  }
210
206
  function playbackLoop() {
211
- if (!playing || !runtime || !metadata) {
207
+ if (!playing || !hostFrame || !metadata) {
212
208
  return;
213
209
  }
214
210
  const elapsed = (performance.now() - playStartClock) / 1000;
@@ -232,7 +228,7 @@ function playbackLoop() {
232
228
  animationFrame = requestAnimationFrame(playbackLoop);
233
229
  }
234
230
  function setPlaying(value) {
235
- if (!runtime || !metadata || playing === value) {
231
+ if (!hostFrame || !metadata || playing === value) {
236
232
  return;
237
233
  }
238
234
  if (value) {
@@ -257,22 +253,28 @@ async function teardown() {
257
253
  releaseAudio();
258
254
  playButton.disabled = true;
259
255
  scrubber.disabled = true;
260
- if (runtime) {
261
- const active = runtime;
262
- runtime = null;
263
- await active.dispose();
264
- }
265
- else {
266
- stage.replaceChildren();
256
+ if (hostFrame) {
257
+ const active = hostFrame;
258
+ hostFrame = null;
259
+ try {
260
+ await active.dispose();
261
+ }
262
+ catch {
263
+ // The host may already be disposed after a failed load.
264
+ }
267
265
  }
266
+ stageFrame.hidden = true;
267
+ stageFrame.removeAttribute("src");
268
+ stageFrame.style.width = "0px";
269
+ stageFrame.style.height = "0px";
268
270
  metadata = null;
269
271
  audioClips = [];
270
272
  embeddedAudioClips = [];
271
273
  currentFrame = 0;
274
+ diagnosticsBox.hidden = true;
275
+ diagnosticsBox.replaceChildren();
272
276
  updateMeta();
273
277
  updateTransport();
274
- stage.style.width = "0px";
275
- stage.style.height = "0px";
276
278
  }
277
279
  function enqueue(task) {
278
280
  const run = loadQueue.then(task, task);
@@ -283,59 +285,155 @@ async function loadNow(entry, propOverrides) {
283
285
  if (typeof entry !== "string" || entry.length === 0) {
284
286
  throw new FrameyardError("COMPOSITION_INVALID", "A composition entry path is required.");
285
287
  }
288
+ const composition = [...entries.values()].find((candidate) => candidate.entry === entry);
289
+ if (!composition) {
290
+ throw new FrameyardError("COMPOSITION_NOT_FOUND", `Composition entry is not listed: ${entry}`);
291
+ }
292
+ if (hostFrame && selectedEntry === composition.entry) {
293
+ clearError();
294
+ return loadHtmlProps(composition, hostFrame, propOverrides);
295
+ }
286
296
  await teardown();
287
297
  clearError();
288
- const moduleUrl = new URL(entry, `${window.location.origin}/`);
289
- if (moduleUrl.origin !== window.location.origin) {
290
- throw new FrameyardError("COMPOSITION_INVALID", "Composition entry must be served from this project.");
291
- }
292
- const loadedComposition = await loadCompositionModule(moduleUrl.href);
293
- const loadedMetadata = {
294
- width: loadedComposition.width,
295
- height: loadedComposition.height,
296
- fps: loadedComposition.fps,
297
- durationInFrames: loadedComposition.durationInFrames,
298
- };
299
- metadata = loadedMetadata;
300
- stage.style.width = `${loadedMetadata.width}px`;
301
- stage.style.height = `${loadedMetadata.height}px`;
302
- stage.style.transform = isRender ? "none" : "";
298
+ selectedEntry = composition.entry;
299
+ return loadHtmlNow(composition, propOverrides);
300
+ }
301
+ async function loadHtmlNow(composition, propOverrides) {
302
+ if (!composition.metadata) {
303
+ throw new FrameyardError("COMPOSITION_INVALID", `Composition "${composition.id}" has no static metadata.`);
304
+ }
305
+ stageFrame.hidden = false;
306
+ metadata = composition.metadata;
307
+ stageFrame.style.width = `${metadata.width}px`;
308
+ stageFrame.style.height = `${metadata.height}px`;
303
309
  fitStage();
304
310
  updateMeta();
305
- const active = await createCompositionRuntime({
306
- composition: loadedComposition,
307
- container: stage,
308
- props: propOverrides,
309
- ...(isRender
310
- ? {}
311
- : {
312
- diagnostics: (warning) => {
313
- console.warn(`[frameyard] ${warning}`);
314
- },
315
- }),
316
- });
317
- runtime = active;
318
- audioClips = active.audioClips;
319
- embeddedAudioClips = active.embeddedAudioClips;
311
+ const url = new URL(composition.entry, window.location.origin);
312
+ url.searchParams.set("__fy-manual", "1");
313
+ const loadToken = String(++loadSequence);
314
+ url.searchParams.set("__fy-load", loadToken);
315
+ stageFrame.src = url.href;
316
+ const host = await waitForHost(composition, loadToken);
317
+ await host.load({ props: clonePropsForHost(propOverrides) });
318
+ hostFrame = host;
319
+ stageFrame.contentDocument?.addEventListener("fy-diagnostic", () => refreshDiagnostics());
320
+ const loaded = readHostState(host);
321
+ applyLoadedHostState(composition, loaded);
322
+ return loaded;
323
+ }
324
+ async function loadHtmlProps(composition, host, propOverrides) {
325
+ await host.load({ props: clonePropsForHost(propOverrides) });
326
+ const loaded = readHostState(host);
327
+ applyLoadedHostState(composition, loaded);
328
+ return loaded;
329
+ }
330
+ function readHostState(host) {
331
+ return {
332
+ metadata: host.metadata,
333
+ props: host.props,
334
+ controller: host.controller,
335
+ audioClips: [...host.audioClips],
336
+ embeddedAudioClips: [...host.embeddedAudioClips],
337
+ transcriptClips: [...host.transcriptClips],
338
+ diagnostics: [...host.diagnostics],
339
+ };
340
+ }
341
+ function applyLoadedHostState(composition, loaded) {
342
+ metadata = loaded.metadata;
343
+ audioClips = loaded.audioClips;
344
+ embeddedAudioClips = loaded.embeddedAudioClips;
320
345
  currentFrame = 0;
321
346
  buildAudio();
322
347
  updateTransport();
323
- propsEditor.value = JSON.stringify(active.props, null, 2);
324
- selectedEntry = entry;
325
- const idForEntry = [...entries].find(([, value]) => value === entry)?.[0];
326
- if (idForEntry) {
327
- compositionSelect.value = idForEntry;
328
- }
348
+ propsEditor.value = JSON.stringify(loaded.props, null, 2);
349
+ selectedEntry = composition.entry;
350
+ compositionSelect.value = composition.id;
329
351
  updateAudioVolumes();
330
352
  syncAudio();
331
353
  fitStage();
332
- return {
333
- metadata: loadedMetadata,
334
- props: active.props,
335
- audioClips: [...audioClips],
336
- embeddedAudioClips: [...embeddedAudioClips],
337
- transcriptClips: [...active.transcriptClips],
338
- };
354
+ refreshDiagnostics(loaded.diagnostics);
355
+ }
356
+ function clonePropsForHost(props) {
357
+ if (props === undefined) {
358
+ return undefined;
359
+ }
360
+ try {
361
+ const serialized = JSON.stringify(props);
362
+ const contentWindow = stageFrame.contentWindow;
363
+ return contentWindow?.JSON ? contentWindow.JSON.parse(serialized) : JSON.parse(serialized);
364
+ }
365
+ catch {
366
+ return props;
367
+ }
368
+ }
369
+ async function waitForHost(composition, loadToken) {
370
+ const deadline = performance.now() + 30_000;
371
+ while (performance.now() < deadline) {
372
+ const contentWindow = stageFrame.contentWindow;
373
+ let currentToken = null;
374
+ try {
375
+ currentToken = contentWindow ? new URL(contentWindow.location.href).searchParams.get("__fy-load") : null;
376
+ }
377
+ catch {
378
+ currentToken = null;
379
+ }
380
+ if (contentWindow && currentToken === loadToken) {
381
+ if (contentWindow.__fyError) {
382
+ throw new FrameyardError(contentWindow.__fyError.code, contentWindow.__fyError.message);
383
+ }
384
+ if (contentWindow.__fy) {
385
+ await contentWindow.__fy.ready;
386
+ return contentWindow.__fy;
387
+ }
388
+ }
389
+ await new Promise((resolve) => setTimeout(resolve, 25));
390
+ }
391
+ throw new FrameyardError("RENDER_FAILED", `Timed out waiting for composition "${composition.id}" to load.`);
392
+ }
393
+ function mergeDiagnostics(...groups) {
394
+ const seen = new Set();
395
+ const result = [];
396
+ for (const group of groups) {
397
+ for (const diagnostic of group) {
398
+ const key = JSON.stringify([
399
+ diagnostic.severity,
400
+ diagnostic.code,
401
+ diagnostic.message,
402
+ diagnostic.details ?? null,
403
+ ]);
404
+ if (!seen.has(key)) {
405
+ seen.add(key);
406
+ result.push(diagnostic);
407
+ }
408
+ }
409
+ }
410
+ return result;
411
+ }
412
+ function refreshDiagnostics(runtimeDiagnostics) {
413
+ const composition = selectedEntry
414
+ ? [...entries.values()].find((candidate) => candidate.entry === selectedEntry)
415
+ : undefined;
416
+ const all = mergeDiagnostics(composition?.diagnostics ?? [], runtimeDiagnostics ?? hostFrame?.diagnostics ?? []);
417
+ diagnosticsBox.hidden = all.length === 0;
418
+ diagnosticsBox.replaceChildren(...all.map(renderDiagnostic));
419
+ }
420
+ function renderDiagnostic(diagnostic) {
421
+ const element = document.createElement("span");
422
+ element.className = `diagnostic ${diagnostic.severity}`;
423
+ const details = diagnostic.details;
424
+ const location = details?.line !== undefined ? ` (${details.path ?? "composition"}:${details.line}:${details.column ?? 1})` : "";
425
+ element.textContent = `${diagnostic.severity}: [${diagnostic.code}] ${diagnostic.message}${location}`;
426
+ return element;
427
+ }
428
+ function isCompositionMetadata(value) {
429
+ if (typeof value !== "object" || value === null) {
430
+ return false;
431
+ }
432
+ const record = value;
433
+ return (typeof record.width === "number" &&
434
+ typeof record.height === "number" &&
435
+ typeof record.fps === "number" &&
436
+ typeof record.durationInFrames === "number");
339
437
  }
340
438
  function browserCommandError(error) {
341
439
  if (isFrameyardError(error)) {
@@ -355,8 +453,9 @@ const api = {
355
453
  throw browserCommandError(error);
356
454
  }
357
455
  finally {
358
- playButton.disabled = runtime === null;
359
- scrubber.disabled = runtime === null;
456
+ const ready = hostFrame !== null;
457
+ playButton.disabled = !ready;
458
+ scrubber.disabled = !ready;
360
459
  }
361
460
  });
362
461
  },
@@ -374,10 +473,10 @@ const api = {
374
473
  },
375
474
  async settle() {
376
475
  try {
377
- if (!runtime) {
476
+ if (!hostFrame) {
378
477
  throw new FrameyardError("COMPOSITION_ERROR", "No composition is loaded.");
379
478
  }
380
- await runtime.settle();
479
+ await hostFrame.settle();
381
480
  }
382
481
  catch (error) {
383
482
  throw browserCommandError(error);
@@ -412,10 +511,15 @@ async function initPreview() {
412
511
  if (typeof item.id !== "string" || typeof item.entry !== "string") {
413
512
  continue;
414
513
  }
415
- entries.set(item.id, item.entry);
514
+ const metadata = isCompositionMetadata(item.metadata) ? item.metadata : undefined;
515
+ const controller = item.controller === null || item.controller === undefined
516
+ ? null
517
+ : item.controller;
518
+ const diagnostics = Array.isArray(item.diagnostics) ? item.diagnostics : [];
519
+ entries.set(item.id, { id: item.id, entry: item.entry, metadata, controller, diagnostics });
416
520
  const option = document.createElement("option");
417
521
  option.value = item.id;
418
- option.textContent = item.id;
522
+ option.textContent = metadata ? `${item.id} — ${metadata.width}×${metadata.height} · ${metadata.fps} fps` : item.id;
419
523
  compositionSelect.append(option);
420
524
  }
421
525
  const requested = new URLSearchParams(window.location.search).get("composition");
@@ -423,7 +527,7 @@ async function initPreview() {
423
527
  if (!firstId) {
424
528
  throw new FrameyardError("CONFIG_INVALID", "The project has no usable compositions.");
425
529
  }
426
- const firstEntry = entries.get(firstId);
530
+ const firstEntry = entries.get(firstId).entry;
427
531
  selectedEntry = firstEntry;
428
532
  compositionSelect.value = firstId;
429
533
  document.title = `${firstId} — Frameyard Preview`;
@@ -449,13 +553,13 @@ async function initPreview() {
449
553
  window.addEventListener("resize", fitStage);
450
554
  compositionSelect.addEventListener("change", () => {
451
555
  const id = compositionSelect.value;
452
- const entry = entries.get(id);
453
- if (!entry) {
556
+ const composition = entries.get(id);
557
+ if (!composition) {
454
558
  return;
455
559
  }
456
- selectedEntry = entry;
560
+ selectedEntry = composition.entry;
457
561
  document.title = `${id} — Frameyard Preview`;
458
- void api.load(entry).catch(showError);
562
+ void api.load(composition.entry).catch(showError);
459
563
  });
460
564
  applyButton.addEventListener("click", () => {
461
565
  if (!selectedEntry) {
@@ -495,11 +599,5 @@ window.addEventListener("error", (event) => {
495
599
  window.addEventListener("unhandledrejection", (event) => {
496
600
  showError(event.reason);
497
601
  });
498
- if (isRender) {
499
- document.body.classList.add("render");
500
- updateTransport();
501
- }
502
- else {
503
- void initPreview();
504
- }
602
+ void initPreview();
505
603
  //# sourceMappingURL=main.js.map