frameyard 0.2.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 (112) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/GLOSSARY.md +58 -2
  3. package/README.md +185 -95
  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 +37 -14
  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 +12 -3
  35. package/dist/preview/main.d.ts.map +1 -1
  36. package/dist/preview/main.js +208 -85
  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/audio.d.ts +5 -1
  43. package/dist/renderer/audio.d.ts.map +1 -1
  44. package/dist/renderer/audio.js +4 -0
  45. package/dist/renderer/audio.js.map +1 -1
  46. package/dist/renderer/browser.d.ts +12 -1
  47. package/dist/renderer/browser.d.ts.map +1 -1
  48. package/dist/renderer/browser.js +69 -11
  49. package/dist/renderer/browser.js.map +1 -1
  50. package/dist/renderer/index.d.ts +30 -5
  51. package/dist/renderer/index.d.ts.map +1 -1
  52. package/dist/renderer/index.js +204 -26
  53. package/dist/renderer/index.js.map +1 -1
  54. package/dist/runtime/bindings.d.ts +11 -0
  55. package/dist/runtime/bindings.d.ts.map +1 -0
  56. package/dist/runtime/bindings.js +164 -0
  57. package/dist/runtime/bindings.js.map +1 -0
  58. package/dist/runtime/diagnostics.d.ts +4 -0
  59. package/dist/runtime/diagnostics.d.ts.map +1 -0
  60. package/dist/runtime/diagnostics.js +107 -0
  61. package/dist/runtime/diagnostics.js.map +1 -0
  62. package/dist/runtime/host.d.ts +12 -0
  63. package/dist/runtime/host.d.ts.map +1 -0
  64. package/dist/runtime/host.js +701 -0
  65. package/dist/runtime/host.js.map +1 -0
  66. package/dist/runtime/index.d.ts +0 -26
  67. package/dist/runtime/index.d.ts.map +1 -1
  68. package/dist/runtime/index.js +0 -286
  69. package/dist/runtime/index.js.map +1 -1
  70. package/dist/runtime/media.d.ts +16 -0
  71. package/dist/runtime/media.d.ts.map +1 -0
  72. package/dist/runtime/media.js +307 -0
  73. package/dist/runtime/media.js.map +1 -0
  74. package/dist/scaffold.d.ts.map +1 -1
  75. package/dist/scaffold.js +169 -78
  76. package/dist/scaffold.js.map +1 -1
  77. package/dist/server/composition-html.d.ts +20 -0
  78. package/dist/server/composition-html.d.ts.map +1 -0
  79. package/dist/server/composition-html.js +45 -0
  80. package/dist/server/composition-html.js.map +1 -0
  81. package/dist/server/preview-html.d.ts.map +1 -1
  82. package/dist/server/preview-html.js +19 -14
  83. package/dist/server/preview-html.js.map +1 -1
  84. package/dist/server/server.d.ts.map +1 -1
  85. package/dist/server/server.js +94 -6
  86. package/dist/server/server.js.map +1 -1
  87. package/dist/version.d.ts +1 -1
  88. package/dist/version.js +1 -1
  89. package/docs/adr/0001-keep-composition-authoring-web-native.md +2 -0
  90. package/docs/adr/0003-render-browser-frames-offline.md +2 -0
  91. package/docs/adr/0005-keep-parallel-rendering-opt-in-and-frame-ordered.md +3 -0
  92. package/docs/adr/0006-seek-embedded-media-from-the-frame-clock.md +11 -0
  93. package/docs/adr/0007-make-html-documents-the-composition-unit.md +31 -0
  94. package/docs/migration-0.4.md +279 -0
  95. package/docs/v0.1-design.md +82 -57
  96. package/examples/demo/README.md +7 -3
  97. package/examples/demo/compositions/demo.controller.js +120 -0
  98. package/examples/demo/compositions/demo.html +253 -0
  99. package/examples/demo/video.config.js +1 -1
  100. package/package.json +9 -3
  101. package/skills/frameyard/README.md +4 -0
  102. package/skills/frameyard/SKILL.md +41 -11
  103. package/skills/frameyard/references/audio-assets.md +25 -14
  104. package/skills/frameyard/references/bindings.md +73 -0
  105. package/skills/frameyard/references/common-mistakes.md +59 -0
  106. package/skills/frameyard/references/controllers.md +126 -0
  107. package/skills/frameyard/references/deterministic-authoring.md +160 -41
  108. package/skills/frameyard/references/diagnostics.md +90 -0
  109. package/skills/frameyard/references/failure-recovery.md +38 -12
  110. package/skills/frameyard/references/json-results.md +43 -8
  111. package/skills/frameyard/references/subtitles-karaoke.md +10 -18
  112. package/examples/demo/compositions/demo.js +0 -206
@@ -3,18 +3,61 @@ import { randomUUID } from "node:crypto";
3
3
  import { tmpdir } from "node:os";
4
4
  import path from "node:path";
5
5
  import { FrameyardError, isFrameyardError } from "../errors.js";
6
+ import { validateHtmlComposition } from "../html/validate.js";
6
7
  import { startPreviewServer } from "../server/server.js";
7
8
  import { inspectTimelineAudio } from "./audio.js";
8
9
  import { openCompositionSession } from "./browser.js";
9
10
  import { assertFfmpegCapabilities, mixAudioTimeline, startVideoEncoder } from "./ffmpeg.js";
10
11
  import { inspectTranscriptClips } from "./transcripts.js";
11
- function compositionEntry(project, id) {
12
+ export const MAX_RENDER_CONCURRENCY = 16;
13
+ /** Validates the render concurrency flag and returns its normalized value. */
14
+ export function validateRenderConcurrency(value) {
15
+ const concurrency = value ?? 1;
16
+ if (!Number.isInteger(concurrency) || concurrency < 1) {
17
+ throw new FrameyardError("USAGE", `--concurrency must be a positive integer; received ${String(value)}.`);
18
+ }
19
+ if (concurrency > MAX_RENDER_CONCURRENCY) {
20
+ throw new FrameyardError("USAGE", `--concurrency must be at most ${MAX_RENDER_CONCURRENCY}; received ${concurrency}.`);
21
+ }
22
+ return concurrency;
23
+ }
24
+ function compositionFor(project, id) {
12
25
  const composition = project.compositions.get(id);
13
26
  if (!composition) {
14
27
  const available = [...project.compositions.keys()].join(", ") || "(none)";
15
28
  throw new FrameyardError("COMPOSITION_NOT_FOUND", `Composition "${id}" is not listed in video.config.js. Available: ${available}.`);
16
29
  }
17
- return composition.entry;
30
+ return composition;
31
+ }
32
+ function timelineAudioClips(session) {
33
+ return [...session.audioClips, ...session.embeddedAudioClips.map((clip) => ({ ...clip, allowSilent: true }))];
34
+ }
35
+ function audioDiagnostics(warnings) {
36
+ return warnings.map((message) => ({ severity: "warning", code: "AUDIO_WARNING", message }));
37
+ }
38
+ function transcriptDiagnostics(warnings) {
39
+ return warnings.map((message) => ({ severity: "warning", code: "TRANSCRIPT_WARNING", message }));
40
+ }
41
+ function diagnosticKey(diagnostic) {
42
+ return JSON.stringify([diagnostic.severity, diagnostic.code, diagnostic.message, diagnostic.details ?? null]);
43
+ }
44
+ function mergeDiagnostics(...groups) {
45
+ const seen = new Set();
46
+ const result = [];
47
+ for (const group of groups) {
48
+ for (const diagnostic of group) {
49
+ const key = diagnosticKey(diagnostic);
50
+ if (!seen.has(key)) {
51
+ seen.add(key);
52
+ result.push(diagnostic);
53
+ }
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ async function readSessionDiagnostics(sessions) {
59
+ const groups = await Promise.all(sessions.map((session) => session.readDiagnostics()));
60
+ return mergeDiagnostics(...groups);
18
61
  }
19
62
  function throwIfAborted(signal) {
20
63
  if (signal?.aborted) {
@@ -57,31 +100,56 @@ async function publishFile(tempPath, outPath, overwrite) {
57
100
  await rm(tempPath, { force: true });
58
101
  }
59
102
  }
60
- async function withSession(options, callback) {
103
+ async function withSessions(options, resolveSessionCount, callback) {
61
104
  throwIfAborted(options.signal);
62
- const entry = compositionEntry(options.project, options.compositionId);
105
+ const composition = compositionFor(options.project, options.compositionId);
106
+ const validation = await validateHtmlComposition({
107
+ projectRoot: options.project.root,
108
+ entry: composition.entry,
109
+ props: options.props,
110
+ });
111
+ const staticDiagnostics = validation.diagnostics;
112
+ const staticErrors = staticDiagnostics.filter((diagnostic) => diagnostic.severity === "error");
113
+ if (!validation.info || staticErrors.length > 0) {
114
+ const first = staticErrors[0];
115
+ throw new FrameyardError(first?.code ?? "COMPOSITION_INVALID", `Composition "${options.compositionId}": ${first?.message ?? "static validation failed."}`, { diagnostics: validation.diagnostics });
116
+ }
117
+ const staticInfo = validation.info;
63
118
  const server = await startPreviewServer({ projectRoot: options.project.root, port: 0 });
64
- let session;
119
+ const sessions = [];
65
120
  try {
66
121
  try {
67
- session = await openCompositionSession({
68
- serverUrl: server.url,
69
- entry,
70
- props: options.props,
71
- });
72
- return await callback(session);
122
+ const open = async () => {
123
+ throwIfAborted(options.signal);
124
+ sessions.push(await openCompositionSession({
125
+ serverUrl: server.url,
126
+ entry: composition.entry,
127
+ props: options.props,
128
+ info: staticInfo,
129
+ staticDiagnostics,
130
+ }));
131
+ };
132
+ await open();
133
+ const sessionCount = Math.max(1, resolveSessionCount(sessions[0]));
134
+ for (let index = sessions.length; index < sessionCount; index += 1) {
135
+ await open();
136
+ }
137
+ return await callback(sessions);
73
138
  }
74
139
  catch (error) {
75
140
  if (isFrameyardError(error)) {
141
+ const runtimeDiagnostics = sessions.length > 0 ? await readSessionDiagnostics(sessions).catch(() => []) : [];
76
142
  throw new FrameyardError(error.code, `Composition "${options.compositionId}": ${error.message}`, {
77
143
  cause: error,
144
+ details: error.details,
145
+ diagnostics: error.diagnostics ?? (runtimeDiagnostics.length > 0 ? runtimeDiagnostics : undefined),
78
146
  });
79
147
  }
80
148
  throw error;
81
149
  }
82
150
  }
83
151
  finally {
84
- if (session) {
152
+ for (const session of sessions) {
85
153
  try {
86
154
  await session.close();
87
155
  }
@@ -97,16 +165,99 @@ async function withSession(options, callback) {
97
165
  }
98
166
  }
99
167
  }
168
+ async function withSession(options, callback) {
169
+ return withSessions(options, () => 1, async (sessions) => callback(sessions[0]));
170
+ }
100
171
  function reportProgress(options, frame, total, startedAt) {
101
172
  options.onProgress?.({ frame, total, elapsedMs: performance.now() - startedAt });
102
173
  }
174
+ async function captureFramesInOrder(options) {
175
+ const buffered = new Map();
176
+ const waiters = [];
177
+ const windowSize = Math.max(options.sessions.length * 2, 2);
178
+ let nextFrame = 0;
179
+ let nextWrite = 0;
180
+ let failure;
181
+ const notify = () => {
182
+ for (const wake of waiters.splice(0)) {
183
+ wake();
184
+ }
185
+ };
186
+ const fail = (error) => {
187
+ failure ??= { error };
188
+ notify();
189
+ };
190
+ const onAbort = () => fail(new FrameyardError("RENDER_FAILED", "Operation cancelled."));
191
+ options.signal?.addEventListener("abort", onAbort, { once: true });
192
+ const waitForChange = () => new Promise((resolve) => waiters.push(resolve));
193
+ const take = async (frame) => {
194
+ while (!buffered.has(frame)) {
195
+ if (failure) {
196
+ throw failure.error;
197
+ }
198
+ await waitForChange();
199
+ }
200
+ const png = buffered.get(frame);
201
+ buffered.delete(frame);
202
+ return png;
203
+ };
204
+ const captureWorker = async (session) => {
205
+ while (!failure) {
206
+ throwIfAborted(options.signal);
207
+ const frame = nextFrame;
208
+ if (frame >= options.total) {
209
+ return;
210
+ }
211
+ if (frame >= nextWrite + windowSize) {
212
+ await waitForChange();
213
+ continue;
214
+ }
215
+ nextFrame = frame + 1;
216
+ await session.seek(frame);
217
+ const png = await session.capture();
218
+ buffered.set(frame, png);
219
+ notify();
220
+ }
221
+ };
222
+ const writeFrames = async () => {
223
+ for (let frame = 0; frame < options.total; frame += 1) {
224
+ throwIfAborted(options.signal);
225
+ const png = await take(frame);
226
+ await options.writeFrame(png);
227
+ nextWrite = frame + 1;
228
+ options.onProgress?.({
229
+ frame: nextWrite,
230
+ total: options.total,
231
+ elapsedMs: performance.now() - options.startedAt,
232
+ });
233
+ notify();
234
+ }
235
+ };
236
+ const guard = async (task) => {
237
+ try {
238
+ await task();
239
+ }
240
+ catch (error) {
241
+ fail(error);
242
+ }
243
+ };
244
+ try {
245
+ await Promise.all([guard(writeFrames), ...options.sessions.map((session) => guard(() => captureWorker(session)))]);
246
+ }
247
+ finally {
248
+ options.signal?.removeEventListener("abort", onAbort);
249
+ }
250
+ if (failure && (nextWrite < options.total || !options.signal?.aborted)) {
251
+ throw failure.error;
252
+ }
253
+ }
103
254
  export async function checkComposition(options) {
104
255
  const startedAt = performance.now();
105
256
  return withSession(options, async (session) => {
106
257
  const total = session.metadata.durationInFrames;
107
258
  const audio = await inspectTimelineAudio({
108
259
  projectRoot: options.project.root,
109
- clips: session.audioClips,
260
+ clips: timelineAudioClips(session),
110
261
  fps: session.metadata.fps,
111
262
  durationInFrames: total,
112
263
  signal: options.signal,
@@ -121,16 +272,19 @@ export async function checkComposition(options) {
121
272
  await session.seek(frame);
122
273
  reportProgress(options, frame + 1, total, startedAt);
123
274
  }
275
+ const diagnostics = mergeDiagnostics(await session.readDiagnostics(), audioDiagnostics(audio.warnings), transcriptDiagnostics(transcripts.warnings));
124
276
  return {
125
277
  composition: options.compositionId,
278
+ entry: session.entry,
279
+ controller: session.controller,
126
280
  metadata: session.metadata,
127
281
  framesChecked: total,
128
- audio: { clips: audio.clips.length, warnings: audio.warnings, details: audio.clips },
282
+ audio: { clips: audio.clips.length, details: audio.clips },
129
283
  transcripts: {
130
284
  clips: transcripts.clips.length,
131
- warnings: transcripts.warnings,
132
285
  details: transcripts.clips,
133
286
  },
287
+ diagnostics,
134
288
  elapsedMs: performance.now() - startedAt,
135
289
  };
136
290
  });
@@ -150,7 +304,7 @@ export async function captureStill(options) {
150
304
  if (options.frame >= total) {
151
305
  throw new FrameyardError("FRAME_OUT_OF_RANGE", `Frame ${options.frame} is outside the valid range 0..${total - 1}.`);
152
306
  }
153
- await inspectTranscriptClips({
307
+ const transcripts = await inspectTranscriptClips({
154
308
  projectRoot: options.project.root,
155
309
  clips: session.transcriptClips,
156
310
  signal: options.signal,
@@ -158,6 +312,7 @@ export async function captureStill(options) {
158
312
  throwIfAborted(options.signal);
159
313
  await session.seek(options.frame);
160
314
  const png = await session.capture();
315
+ const diagnostics = mergeDiagnostics(await session.readDiagnostics(), transcriptDiagnostics(transcripts.warnings));
161
316
  const tempPath = path.join(path.dirname(options.outPath), `.${path.basename(options.outPath)}.frameyard-${process.pid}-${randomUUID()}.tmp`);
162
317
  try {
163
318
  await writeFile(tempPath, png);
@@ -169,10 +324,13 @@ export async function captureStill(options) {
169
324
  }
170
325
  return {
171
326
  composition: options.compositionId,
327
+ entry: session.entry,
328
+ controller: session.controller,
172
329
  frame: options.frame,
173
330
  path: options.outPath,
174
331
  width: session.metadata.width,
175
332
  height: session.metadata.height,
333
+ diagnostics,
176
334
  elapsedMs: performance.now() - startedAt,
177
335
  };
178
336
  });
@@ -181,12 +339,15 @@ export async function renderComposition(options) {
181
339
  if (path.extname(options.outPath).toLowerCase() !== ".mp4") {
182
340
  throw new FrameyardError("USAGE", `Render output must use an .mp4 extension: ${options.outPath}`);
183
341
  }
342
+ const requestedConcurrency = validateRenderConcurrency(options.concurrency);
184
343
  const overwrite = options.overwrite ?? false;
185
344
  await ensureOutputAvailable(options.outPath, overwrite);
186
345
  await assertFfmpegCapabilities(options.signal);
187
346
  const startedAt = performance.now();
188
- return withSession(options, async (session) => {
347
+ return withSessions(options, (first) => Math.min(requestedConcurrency, first.metadata.durationInFrames), async (sessions) => {
348
+ const session = sessions[0];
189
349
  const { width, height, fps, durationInFrames } = session.metadata;
350
+ const concurrency = sessions.length;
190
351
  if (width % 2 !== 0 || height % 2 !== 0) {
191
352
  throw new FrameyardError("RENDER_FAILED", `H.264 output requires even dimensions; the composition is ${width}×${height}.`);
192
353
  }
@@ -194,7 +355,7 @@ export async function renderComposition(options) {
194
355
  const total = durationInFrames;
195
356
  const audio = await inspectTimelineAudio({
196
357
  projectRoot: options.project.root,
197
- clips: session.audioClips,
358
+ clips: timelineAudioClips(session),
198
359
  fps,
199
360
  durationInFrames,
200
361
  signal: options.signal,
@@ -234,12 +395,25 @@ export async function renderComposition(options) {
234
395
  ...(audioPath !== undefined ? { audioPath } : {}),
235
396
  signal: options.signal,
236
397
  });
237
- for (let frame = 0; frame < total; frame += 1) {
238
- throwIfAborted(options.signal);
239
- await session.seek(frame);
240
- const png = await session.capture();
241
- await encoder.writeFrame(png);
242
- reportProgress(options, frame + 1, total, startedAt);
398
+ const activeEncoder = encoder;
399
+ if (concurrency === 1) {
400
+ for (let frame = 0; frame < total; frame += 1) {
401
+ throwIfAborted(options.signal);
402
+ await session.seek(frame);
403
+ const png = await session.capture();
404
+ await activeEncoder.writeFrame(png);
405
+ reportProgress(options, frame + 1, total, startedAt);
406
+ }
407
+ }
408
+ else {
409
+ await captureFramesInOrder({
410
+ sessions,
411
+ total,
412
+ signal: options.signal,
413
+ startedAt,
414
+ writeFrame: (png) => activeEncoder.writeFrame(png),
415
+ ...(options.onProgress !== undefined ? { onProgress: options.onProgress } : {}),
416
+ });
243
417
  }
244
418
  await encoder.finish();
245
419
  encoder = undefined;
@@ -248,8 +422,11 @@ export async function renderComposition(options) {
248
422
  }
249
423
  await publishFile(tempOut, options.outPath, overwrite);
250
424
  completed = true;
425
+ const diagnostics = mergeDiagnostics(await readSessionDiagnostics(sessions), audioDiagnostics(audio.warnings), transcriptDiagnostics(transcripts.warnings));
251
426
  return {
252
427
  composition: options.compositionId,
428
+ entry: session.entry,
429
+ controller: session.controller,
253
430
  path: options.outPath,
254
431
  width,
255
432
  height,
@@ -257,12 +434,13 @@ export async function renderComposition(options) {
257
434
  durationInFrames,
258
435
  durationSeconds,
259
436
  framesRendered: total,
437
+ concurrency,
260
438
  bytes: (await stat(options.outPath)).size,
261
- audio: { clips: audio.clips.length, warnings: audio.warnings },
439
+ audio: { clips: audio.clips.length },
262
440
  transcripts: {
263
441
  clips: transcripts.clips.length,
264
- warnings: transcripts.warnings,
265
442
  },
443
+ diagnostics,
266
444
  elapsedMs: performance.now() - startedAt,
267
445
  };
268
446
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CompositionDiagnostic, Props } from "../contracts.js";
2
+ export interface ApplyBindingsOptions {
3
+ root: Element;
4
+ props: Readonly<Props>;
5
+ onDiagnostic?: (diagnostic: CompositionDiagnostic) => void;
6
+ }
7
+ /** Applies declarative prop bindings to the pristine composition DOM. */
8
+ export declare function applyBindings(options: ApplyBindingsOptions): void;
9
+ /** Exposes primitive top-level props as --fy-prop-* custom properties. */
10
+ export declare function applyPropVariables(root: HTMLElement, props: Readonly<Props>): void;
11
+ //# sourceMappingURL=bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/runtime/bindings.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC5D;AAoBD,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAEjE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAYlF"}
@@ -0,0 +1,164 @@
1
+ import { coerceAttribute, coerceClass, coerceText, isTruthy, resolveBindingPath, validateBindingPath, } from "../bindings.js";
2
+ import { FrameyardError } from "../errors.js";
3
+ const VOID_ELEMENTS = new Set([
4
+ "area",
5
+ "base",
6
+ "br",
7
+ "col",
8
+ "embed",
9
+ "hr",
10
+ "img",
11
+ "input",
12
+ "link",
13
+ "meta",
14
+ "param",
15
+ "source",
16
+ "track",
17
+ "wbr",
18
+ ]);
19
+ const SAFE_PROP_NAME = /^[A-Za-z_][A-Za-z0-9_-]*$/;
20
+ /** Applies declarative prop bindings to the pristine composition DOM. */
21
+ export function applyBindings(options) {
22
+ applyToElement(options.root, { props: options.props }, options, true);
23
+ }
24
+ /** Exposes primitive top-level props as --fy-prop-* custom properties. */
25
+ export function applyPropVariables(root, props) {
26
+ for (const [name, value] of Object.entries(props)) {
27
+ if (!SAFE_PROP_NAME.test(name)) {
28
+ continue;
29
+ }
30
+ const property = `--fy-prop-${name}`;
31
+ if (value === null || value === undefined || typeof value === "object") {
32
+ root.style.removeProperty(property);
33
+ continue;
34
+ }
35
+ root.style.setProperty(property, typeof value === "boolean" ? (value ? "1" : "0") : String(value));
36
+ }
37
+ }
38
+ function applyToElement(element, scope, options, isRoot) {
39
+ const repeat = element.getAttribute("data-fy-repeat");
40
+ if (repeat !== null) {
41
+ applyRepeat(element, repeat, scope, options);
42
+ return;
43
+ }
44
+ const condition = element.getAttribute("data-fy-if");
45
+ if (condition !== null) {
46
+ if (isRoot) {
47
+ throw new FrameyardError("BINDING_INVALID", "data-fy-if cannot be used on the composition root.");
48
+ }
49
+ if (!isTruthy(resolvePath(scope, condition, element, "data-fy-if", options))) {
50
+ element.remove();
51
+ return;
52
+ }
53
+ }
54
+ const text = element.getAttribute("data-fy-text");
55
+ if (text !== null) {
56
+ if (isRoot) {
57
+ throw new FrameyardError("BINDING_TARGET_INVALID", "data-fy-text cannot be used on the composition root.");
58
+ }
59
+ if (VOID_ELEMENTS.has(element.tagName.toLowerCase())) {
60
+ throw new FrameyardError("BINDING_TARGET_INVALID", `data-fy-text cannot be used on <${element.tagName.toLowerCase()}>.`);
61
+ }
62
+ const value = resolvePath(scope, text, element, "data-fy-text", options);
63
+ const coerced = coerceText(value);
64
+ if (coerced.invalid) {
65
+ warn(options, "BINDING_VALUE_INVALID", `data-fy-text references "${text}", which is not a primitive value.`, element, "data-fy-text", text);
66
+ }
67
+ element.textContent = coerced.value;
68
+ }
69
+ for (const attribute of Array.from(element.attributes)) {
70
+ if (attribute.name.startsWith("data-fy-attr-")) {
71
+ applyAttributeBinding(element, attribute.name, attribute.value, scope, options);
72
+ }
73
+ else if (attribute.name.startsWith("data-fy-class-")) {
74
+ applyClassBinding(element, attribute.name, attribute.value, scope, options);
75
+ }
76
+ }
77
+ for (const child of Array.from(element.children)) {
78
+ applyToElement(child, scope, options, false);
79
+ }
80
+ }
81
+ function applyRepeat(element, path, scope, options) {
82
+ if (!(element instanceof HTMLTemplateElement)) {
83
+ throw new FrameyardError("BINDING_REPEAT_INVALID", "data-fy-repeat must be used on a <template>.");
84
+ }
85
+ if (scope.repeat) {
86
+ throw new FrameyardError("BINDING_REPEAT_NESTED", "Nested data-fy-repeat is not supported; use a controller for nested data.");
87
+ }
88
+ const value = resolvePath(scope, path, element, "data-fy-repeat", options);
89
+ if (!Array.isArray(value)) {
90
+ throw new FrameyardError("BINDING_REPEAT_INVALID", `data-fy-repeat must reference an array; "${path}" is not.`);
91
+ }
92
+ const output = document.createDocumentFragment();
93
+ value.forEach((item, index) => {
94
+ const clone = element.content.cloneNode(true);
95
+ const repeatScope = { ...scope, repeat: { item, index } };
96
+ for (const child of Array.from(clone.children)) {
97
+ if (child instanceof HTMLElement || child instanceof SVGElement) {
98
+ child.style.setProperty("--fy-index", String(index));
99
+ }
100
+ applyToElement(child, repeatScope, options, false);
101
+ }
102
+ output.append(clone);
103
+ });
104
+ element.replaceWith(output);
105
+ }
106
+ function applyAttributeBinding(element, name, path, scope, options) {
107
+ const target = name.slice("data-fy-attr-".length);
108
+ if (target.length === 0) {
109
+ throw new FrameyardError("BINDING_INVALID", "data-fy-attr-* requires an attribute name.");
110
+ }
111
+ if (/^on/i.test(target)) {
112
+ throw new FrameyardError("EVENT_HANDLER_NOT_ALLOWED", `data-fy-attr-${target} would set an event handler, which is not allowed.`);
113
+ }
114
+ const value = resolvePath(scope, path, element, name, options);
115
+ const coerced = coerceAttribute(value);
116
+ if (coerced.invalid) {
117
+ warn(options, "BINDING_VALUE_INVALID", `${name} references "${path}", which is not a primitive value.`, element, name, path);
118
+ }
119
+ if (coerced.value === null) {
120
+ element.removeAttribute(target);
121
+ return;
122
+ }
123
+ if ((target === "href" || target === "src") && /^\s*javascript:/i.test(coerced.value)) {
124
+ throw new FrameyardError("URL_NOT_ALLOWED", `"javascript:" URLs are not allowed in a composition.`);
125
+ }
126
+ element.setAttribute(target, coerced.value);
127
+ }
128
+ function applyClassBinding(element, name, path, scope, options) {
129
+ const className = name.slice("data-fy-class-".length);
130
+ if (className.length === 0 || /\s/.test(className)) {
131
+ throw new FrameyardError("BINDING_INVALID", "data-fy-class-* requires one class name without whitespace.");
132
+ }
133
+ const value = resolvePath(scope, path, element, name, options);
134
+ const coerced = coerceClass(value);
135
+ if (coerced.invalid) {
136
+ warn(options, "BINDING_VALUE_INVALID", `${name} references "${path}", which is not a primitive value.`, element, name, path);
137
+ }
138
+ element.classList.toggle(className, coerced.value);
139
+ }
140
+ function resolvePath(scope, path, element, attribute, options) {
141
+ const validation = validateBindingPath(path);
142
+ if (!validation.ok) {
143
+ throw new FrameyardError("BINDING_INVALID", `Invalid ${attribute} path "${path}": ${validation.reason}`);
144
+ }
145
+ const resolved = resolveBindingPath(scope, path);
146
+ if (!resolved.found) {
147
+ warn(options, "BINDING_PATH_MISSING", `${attribute} references prop "${path}", which is not in the resolved props.`, element, attribute, path);
148
+ return undefined;
149
+ }
150
+ return resolved.value;
151
+ }
152
+ function warn(options, code, message, element, attribute, value) {
153
+ options.onDiagnostic?.({
154
+ severity: "warning",
155
+ code,
156
+ message,
157
+ details: {
158
+ element: element.tagName.toLowerCase(),
159
+ attribute,
160
+ ...(value !== undefined ? { value } : {}),
161
+ },
162
+ });
163
+ }
164
+ //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/runtime/bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type DiagnosticSink = (warning: string) => void;
2
+ export declare function withDiagnosticsSync<T>(scope: string, frame: number | null, diagnostics: DiagnosticSink | undefined, callback: () => T): T;
3
+ export declare function withDiagnosticsAsync<T>(scope: string, diagnostics: DiagnosticSink | undefined, callback: () => T | Promise<T>): Promise<T>;
4
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/runtime/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AA4EvD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,CAAC,GAChB,CAAC,CAiBH;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAiBZ"}