frameyard 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +110 -14
- package/GLOSSARY.md +112 -2
- package/README.md +302 -265
- package/dist/assets/integrations.d.ts +8 -4
- package/dist/assets/integrations.d.ts.map +1 -1
- package/dist/assets/integrations.js +8 -4
- package/dist/assets/integrations.js.map +1 -1
- package/dist/assets/provenance.d.ts +2 -2
- package/dist/assets/provenance.d.ts.map +1 -1
- package/dist/assets/provenance.js +5 -3
- package/dist/assets/provenance.js.map +1 -1
- package/dist/assets/tts-supertonic.d.ts +28 -0
- package/dist/assets/tts-supertonic.d.ts.map +1 -0
- package/dist/assets/tts-supertonic.js +156 -0
- package/dist/assets/tts-supertonic.js.map +1 -0
- package/dist/assets/tts.d.ts +18 -6
- package/dist/assets/tts.d.ts.map +1 -1
- package/dist/assets/tts.js +219 -97
- package/dist/assets/tts.js.map +1 -1
- package/dist/cli.js +1685 -93
- package/dist/cli.js.map +1 -1
- package/dist/composition/format.d.ts +1 -1
- package/dist/composition/format.d.ts.map +1 -1
- package/dist/composition/format.js +1 -1
- package/dist/composition/format.js.map +1 -1
- package/dist/context.d.ts +82 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +277 -0
- package/dist/context.js.map +1 -0
- package/dist/contracts.d.ts +25 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/doctor.d.ts +14 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +166 -7
- package/dist/doctor.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/fonts/add.d.ts +41 -0
- package/dist/fonts/add.d.ts.map +1 -0
- package/dist/fonts/add.js +259 -0
- package/dist/fonts/add.js.map +1 -0
- package/dist/fonts/binary.d.ts +4 -0
- package/dist/fonts/binary.d.ts.map +1 -0
- package/dist/fonts/binary.js +21 -0
- package/dist/fonts/binary.js.map +1 -0
- package/dist/fonts/css.d.ts +4 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/css.js +50 -0
- package/dist/fonts/css.js.map +1 -0
- package/dist/fonts/fontsource.d.ts +107 -0
- package/dist/fonts/fontsource.d.ts.map +1 -0
- package/dist/fonts/fontsource.js +565 -0
- package/dist/fonts/fontsource.js.map +1 -0
- package/dist/fonts/index.d.ts +11 -0
- package/dist/fonts/index.d.ts.map +1 -0
- package/dist/fonts/index.js +11 -0
- package/dist/fonts/index.js.map +1 -0
- package/dist/fonts/install.d.ts +24 -0
- package/dist/fonts/install.d.ts.map +1 -0
- package/dist/fonts/install.js +145 -0
- package/dist/fonts/install.js.map +1 -0
- package/dist/fonts/manifest.d.ts +21 -0
- package/dist/fonts/manifest.d.ts.map +1 -0
- package/dist/fonts/manifest.js +96 -0
- package/dist/fonts/manifest.js.map +1 -0
- package/dist/fonts/options.d.ts +9 -0
- package/dist/fonts/options.d.ts.map +1 -0
- package/dist/fonts/options.js +66 -0
- package/dist/fonts/options.js.map +1 -0
- package/dist/fonts/schema.d.ts +4 -0
- package/dist/fonts/schema.d.ts.map +1 -0
- package/dist/fonts/schema.js +316 -0
- package/dist/fonts/schema.js.map +1 -0
- package/dist/fonts/summary.d.ts +16 -0
- package/dist/fonts/summary.d.ts.map +1 -0
- package/dist/fonts/summary.js +22 -0
- package/dist/fonts/summary.js.map +1 -0
- package/dist/fonts/types.d.ts +56 -0
- package/dist/fonts/types.d.ts.map +1 -0
- package/dist/fonts/types.js +8 -0
- package/dist/fonts/types.js.map +1 -0
- package/dist/fonts/verify.d.ts +33 -0
- package/dist/fonts/verify.d.ts.map +1 -0
- package/dist/fonts/verify.js +200 -0
- package/dist/fonts/verify.js.map +1 -0
- package/dist/html/validate.d.ts.map +1 -1
- package/dist/html/validate.js +59 -0
- package/dist/html/validate.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +61 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +325 -0
- package/dist/inspect.js.map +1 -0
- package/dist/lint.d.ts +63 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +265 -0
- package/dist/lint.js.map +1 -0
- package/dist/policy.d.ts +69 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +361 -0
- package/dist/policy.js.map +1 -0
- package/dist/preview/timeline-data.d.ts +17 -69
- package/dist/preview/timeline-data.d.ts.map +1 -1
- package/dist/preview/timeline-host.d.ts.map +1 -1
- package/dist/preview/timeline-host.js +70 -45
- package/dist/preview/timeline-host.js.map +1 -1
- package/dist/preview/timeline-main.d.ts.map +1 -1
- package/dist/preview/timeline-main.js +47 -4
- package/dist/preview/timeline-main.js.map +1 -1
- package/dist/project.d.ts +10 -3
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +20 -17
- package/dist/project.js.map +1 -1
- package/dist/renderer/ffmpeg.d.ts +42 -2
- package/dist/renderer/ffmpeg.d.ts.map +1 -1
- package/dist/renderer/ffmpeg.js +254 -22
- package/dist/renderer/ffmpeg.js.map +1 -1
- package/dist/renderer/index.js +1 -1
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/keyframe-expressions.d.ts +39 -0
- package/dist/renderer/keyframe-expressions.d.ts.map +1 -0
- package/dist/renderer/keyframe-expressions.js +180 -0
- package/dist/renderer/keyframe-expressions.js.map +1 -0
- package/dist/renderer/timeline.d.ts +2 -0
- package/dist/renderer/timeline.d.ts.map +1 -1
- package/dist/renderer/timeline.js +89 -116
- package/dist/renderer/timeline.js.map +1 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/host.js +4 -0
- package/dist/runtime/host.js.map +1 -1
- package/dist/scaffold.d.ts +3 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +48 -320
- package/dist/scaffold.js.map +1 -1
- package/dist/server/composition-html.d.ts +2 -0
- package/dist/server/composition-html.d.ts.map +1 -1
- package/dist/server/composition-html.js +7 -0
- package/dist/server/composition-html.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +31 -1
- package/dist/server/server.js.map +1 -1
- package/dist/server/timeline-preview-data.d.ts.map +1 -1
- package/dist/server/timeline-preview-data.js +12 -34
- package/dist/server/timeline-preview-data.js.map +1 -1
- package/dist/server/timeline-preview-html.d.ts.map +1 -1
- package/dist/server/timeline-preview-html.js +18 -2
- package/dist/server/timeline-preview-html.js.map +1 -1
- package/dist/templates.d.ts +16 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +186 -0
- package/dist/templates.js.map +1 -0
- package/dist/timeline/easing.d.ts +36 -0
- package/dist/timeline/easing.d.ts.map +1 -0
- package/dist/timeline/easing.js +225 -0
- package/dist/timeline/easing.js.map +1 -0
- package/dist/timeline/keyframes.d.ts +23 -0
- package/dist/timeline/keyframes.d.ts.map +1 -0
- package/dist/timeline/keyframes.js +95 -0
- package/dist/timeline/keyframes.js.map +1 -0
- package/dist/timeline/plan.d.ts +6 -12
- package/dist/timeline/plan.d.ts.map +1 -1
- package/dist/timeline/plan.js +17 -30
- package/dist/timeline/plan.js.map +1 -1
- package/dist/timeline/resolve.d.ts +12 -0
- package/dist/timeline/resolve.d.ts.map +1 -1
- package/dist/timeline/resolve.js +105 -9
- package/dist/timeline/resolve.js.map +1 -1
- package/dist/timeline/scene.d.ts +126 -0
- package/dist/timeline/scene.d.ts.map +1 -0
- package/dist/timeline/scene.js +109 -0
- package/dist/timeline/scene.js.map +1 -0
- package/dist/timeline/schema.d.ts +31 -0
- package/dist/timeline/schema.d.ts.map +1 -1
- package/dist/timeline/schema.js +240 -9
- package/dist/timeline/schema.js.map +1 -1
- package/dist/timeline/transitions.d.ts +21 -0
- package/dist/timeline/transitions.d.ts.map +1 -0
- package/dist/timeline/transitions.js +23 -0
- package/dist/timeline/transitions.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/adr/0007-make-html-documents-the-composition-unit.md +1 -1
- package/docs/adr/0010-make-timelines-the-render-unit.md +3 -2
- package/docs/adr/0014-compose-timeline-clips-with-css-blend-modes.md +2 -1
- package/docs/adr/0015-inherit-composition-format-from-the-project.md +2 -2
- package/docs/adr/0016-author-compositions-as-html-fragments.md +1 -1
- package/docs/adr/0018-animate-timeline-clips-with-keyframes.md +35 -0
- package/docs/adr/0019-make-same-track-overlap-the-transition-window.md +36 -0
- package/docs/adr/0020-crossfade-audio-clips-on-audio-tracks.md +27 -0
- package/docs/adr/0021-project-timeline-scenes-once.md +32 -0
- package/docs/adr/0022-gate-heavy-operations-with-a-workspace-resource-policy.md +35 -0
- package/docs/adr/0023-pin-fonts-as-project-assets.md +98 -0
- package/docs/migration-0.4.md +2 -2
- package/docs/preview-testing.md +19 -6
- package/docs/{v0.1-design.md → v0.x-design.md} +55 -30
- package/examples/blend/README.md +3 -3
- package/examples/demo/README.md +2 -2
- package/examples/intro/README.md +71 -0
- package/examples/intro/assets/fonts/figtree/LICENSE.txt +93 -0
- package/examples/intro/assets/fonts/figtree/figtree-latin-wght-normal.woff2 +0 -0
- package/examples/intro/assets/fonts/instrument-serif/LICENSE.txt +93 -0
- package/examples/intro/assets/fonts/instrument-serif/instrument-serif-latin-400-italic.woff2 +0 -0
- package/examples/intro/assets/fonts/space-mono/LICENSE.txt +93 -0
- package/examples/intro/assets/fonts/space-mono/space-mono-latin-400-normal.woff2 +0 -0
- package/examples/intro/assets/fonts/space-mono/space-mono-latin-700-normal.woff2 +0 -0
- package/examples/intro/assets/grain.png +0 -0
- package/examples/intro/assets/score.ogg +0 -0
- package/examples/intro/compositions/brand.html +412 -0
- package/examples/intro/compositions/chrome.controller.js +63 -0
- package/examples/intro/compositions/chrome.html +256 -0
- package/examples/intro/compositions/lattice.controller.js +148 -0
- package/examples/intro/compositions/lattice.html +308 -0
- package/examples/intro/compositions/opening.html +504 -0
- package/examples/intro/compositions/studio.html +930 -0
- package/examples/intro/compositions/theme.css +218 -0
- package/examples/intro/fy.config.js +13 -0
- package/examples/intro/fy.fonts.json +100 -0
- package/examples/intro/scripts/make-grain.mjs +79 -0
- package/examples/intro/scripts/make-score.mjs +702 -0
- package/examples/intro/timelines/intro.timeline.json +60 -0
- package/examples/keyframes/README.md +76 -0
- package/examples/keyframes/compositions/backdrop.html +60 -0
- package/examples/keyframes/compositions/card.html +99 -0
- package/examples/keyframes/fy.config.js +10 -0
- package/examples/keyframes/timelines/keyframes.timeline.json +60 -0
- package/examples/nested/README.md +112 -0
- package/examples/nested/assets/pulse.wav +0 -0
- package/examples/nested/compositions/backdrop.html +84 -0
- package/examples/nested/compositions/card.html +275 -0
- package/examples/nested/compositions/overlay.html +307 -0
- package/examples/nested/fy.config.js +13 -0
- package/examples/nested/scripts/make-pulse.sh +20 -0
- package/examples/nested/timelines/chapter-a.timeline.json +39 -0
- package/examples/nested/timelines/chapter-b.timeline.json +39 -0
- package/examples/nested/timelines/nested-reel.timeline.json +52 -0
- package/examples/static/README.md +2 -2
- package/examples/transitions/README.md +128 -0
- package/examples/transitions/assets/alpha.wav +0 -0
- package/examples/transitions/assets/beta.wav +0 -0
- package/examples/transitions/assets/gamma.wav +0 -0
- package/examples/transitions/compositions/alpha.html +56 -0
- package/examples/transitions/compositions/beta.html +56 -0
- package/examples/transitions/compositions/gamma.html +56 -0
- package/examples/transitions/fy.config.js +12 -0
- package/examples/transitions/timelines/audio-crossfade.timeline.json +44 -0
- package/examples/transitions/timelines/transitions.timeline.json +31 -0
- package/examples/video/README.md +4 -4
- package/examples/webgl/README.md +1 -1
- package/package.json +12 -5
- package/scaffolds/init/AGENTS.md +131 -0
- package/scaffolds/init/README.md +56 -0
- package/scaffolds/init/compositions/hello.html +79 -0
- package/scaffolds/init/fy.config.js +9 -0
- package/scaffolds/init/gitignore.template +1 -0
- package/scaffolds/init/package.json +11 -0
- package/scaffolds/init/props/hello.json +4 -0
- package/scaffolds/init/props/main.json +6 -0
- package/scaffolds/init/timelines/main.timeline.json +20 -0
- package/scaffolds/local-models/LOCAL-MODELS.md +77 -0
- package/scaffolds/local-models/fy.policy.json +5 -0
- package/scaffolds/local-models/opencode/opencode.jsonc +17 -0
- package/scaffolds/local-models/pi/APPEND_SYSTEM.md +21 -0
- package/scaffolds/local-models/pi/sandbox.json +15 -0
- package/scaffolds/local-models/pi/settings.json +15 -0
- package/skills/frameyard/README.md +1 -0
- package/skills/frameyard/SKILL.md +59 -61
- package/skills/frameyard/references/audio-assets.md +32 -3
- package/skills/frameyard/references/common-mistakes.md +53 -2
- package/skills/frameyard/references/deterministic-authoring.md +10 -3
- package/skills/frameyard/references/diagnostics.md +31 -1
- package/skills/frameyard/references/failure-recovery.md +32 -6
- package/skills/frameyard/references/fonts.md +132 -0
- package/skills/frameyard/references/json-results.md +119 -6
- package/skills/frameyard/references/quick-reference.md +222 -0
- package/skills/frameyard/references/timelines.md +97 -7
- /package/examples/blend/{video.config.js → fy.config.js} +0 -0
- /package/examples/demo/{video.config.js → fy.config.js} +0 -0
- /package/examples/static/{video.config.js → fy.config.js} +0 -0
- /package/examples/video/{video.config.js → fy.config.js} +0 -0
- /package/examples/webgl/{video.config.js → fy.config.js} +0 -0
package/dist/timeline/resolve.js
CHANGED
|
@@ -218,7 +218,7 @@ async function resolveCompositionSource(options) {
|
|
|
218
218
|
nesting,
|
|
219
219
|
};
|
|
220
220
|
if (!composition) {
|
|
221
|
-
addError(diagnostics, "TIMELINE_REFERENCE_NOT_FOUND", `Composition "${sourceId}" is not listed in
|
|
221
|
+
addError(diagnostics, "TIMELINE_REFERENCE_NOT_FOUND", `Composition "${sourceId}" is not listed in fy.config.js.`, details);
|
|
222
222
|
return null;
|
|
223
223
|
}
|
|
224
224
|
const propsKey = JSON.stringify(clip.props ?? null);
|
|
@@ -277,7 +277,7 @@ async function resolveTimelineSource(options) {
|
|
|
277
277
|
nesting: context.nesting,
|
|
278
278
|
};
|
|
279
279
|
if (!nested) {
|
|
280
|
-
addError(diagnostics, "TIMELINE_REFERENCE_NOT_FOUND", `Timeline "${sourceId}" is not listed in
|
|
280
|
+
addError(diagnostics, "TIMELINE_REFERENCE_NOT_FOUND", `Timeline "${sourceId}" is not listed in fy.config.js.`, details);
|
|
281
281
|
return null;
|
|
282
282
|
}
|
|
283
283
|
if (context.stack.includes(sourceId)) {
|
|
@@ -410,6 +410,26 @@ function resolveClipDuration(clip, source, diagnostics, timelineId, nesting) {
|
|
|
410
410
|
}
|
|
411
411
|
return clip.duration;
|
|
412
412
|
}
|
|
413
|
+
function validateKeyframeBounds(options) {
|
|
414
|
+
const { clip, duration, clipIndex, timelineId, nesting, diagnostics } = options;
|
|
415
|
+
for (const [channel, track] of Object.entries(clip.keyframes ?? {})) {
|
|
416
|
+
for (const [keyIndex, key] of (track ?? []).entries()) {
|
|
417
|
+
if (key.frame > duration) {
|
|
418
|
+
addError(diagnostics, "TIMELINE_CLIP_OUT_OF_RANGE", `Clip "${clip.id}" keyframes.${channel}[${keyIndex}] uses frame ${key.frame}, beyond the clip duration ${duration}.`, {
|
|
419
|
+
timeline: timelineId,
|
|
420
|
+
clip: clip.id,
|
|
421
|
+
track: clip.track,
|
|
422
|
+
nesting,
|
|
423
|
+
channel,
|
|
424
|
+
keyframe: keyIndex,
|
|
425
|
+
frame: key.frame,
|
|
426
|
+
jsonPath: `$.clips[${clipIndex}].keyframes.${channel}[${keyIndex}].frame`,
|
|
427
|
+
suggestion: "Keyframe frames must stay within the clip's 0..duration range.",
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
413
433
|
async function resolveTimelineInternal(options) {
|
|
414
434
|
const { project, timeline, context, signal, probeCache, compositionCache, propsOverrides } = options;
|
|
415
435
|
const diagnostics = [];
|
|
@@ -427,7 +447,7 @@ async function resolveTimelineInternal(options) {
|
|
|
427
447
|
}
|
|
428
448
|
const clips = [];
|
|
429
449
|
const usedOverrides = new Set();
|
|
430
|
-
for (const rawClip of document.clips) {
|
|
450
|
+
for (const [clipIndex, rawClip] of document.clips.entries()) {
|
|
431
451
|
let clip = rawClip;
|
|
432
452
|
if (propsOverrides && rawClip.source.kind === "composition" && propsOverrides[rawClip.id] !== undefined) {
|
|
433
453
|
try {
|
|
@@ -458,6 +478,14 @@ async function resolveTimelineInternal(options) {
|
|
|
458
478
|
if (duration === null) {
|
|
459
479
|
continue;
|
|
460
480
|
}
|
|
481
|
+
validateKeyframeBounds({
|
|
482
|
+
clip,
|
|
483
|
+
duration,
|
|
484
|
+
clipIndex,
|
|
485
|
+
timelineId: context.timelineId,
|
|
486
|
+
nesting: context.nesting,
|
|
487
|
+
diagnostics,
|
|
488
|
+
});
|
|
461
489
|
clips.push({
|
|
462
490
|
...clip,
|
|
463
491
|
source,
|
|
@@ -477,18 +505,85 @@ async function resolveTimelineInternal(options) {
|
|
|
477
505
|
if (document.durationInFrames !== undefined && document.durationInFrames < maxEnd) {
|
|
478
506
|
addError(diagnostics, "TIMELINE_DURATION_INVALID", `Timeline durationInFrames ${document.durationInFrames} is shorter than the resolved clip end ${maxEnd}.`, { timeline: timeline.id, nesting: context.nesting, jsonPath: "$.durationInFrames" });
|
|
479
507
|
}
|
|
508
|
+
const clipById = new Map(clips.map((clip) => [clip.id, clip]));
|
|
509
|
+
const trackById = new Map(document.tracks.map((track) => [track.id, track]));
|
|
510
|
+
const transitions = [];
|
|
511
|
+
const declaredPairs = new Set();
|
|
512
|
+
for (const [index, transition] of (document.transitions ?? []).entries()) {
|
|
513
|
+
const jsonPath = `$.transitions[${index}]`;
|
|
514
|
+
const details = {
|
|
515
|
+
timeline: timeline.id,
|
|
516
|
+
nesting: context.nesting,
|
|
517
|
+
jsonPath,
|
|
518
|
+
from: transition.from,
|
|
519
|
+
to: transition.to,
|
|
520
|
+
};
|
|
521
|
+
const from = clipById.get(transition.from);
|
|
522
|
+
const to = clipById.get(transition.to);
|
|
523
|
+
if (!from || !to || from.id === to.id) {
|
|
524
|
+
addError(diagnostics, "TIMELINE_TRANSITION_UNKNOWN_CLIP", `Transition from "${transition.from}" to "${transition.to}" must reference two distinct clips in this timeline.`, details);
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
527
|
+
if (from.track !== to.track) {
|
|
528
|
+
addError(diagnostics, "TIMELINE_TRANSITION_WRONG_TRACK", `Transition "${from.id}" → "${to.id}" must keep both clips on one track; "${from.track}" and "${to.track}" differ.`, details);
|
|
529
|
+
continue;
|
|
530
|
+
}
|
|
531
|
+
const track = trackById.get(from.track);
|
|
532
|
+
if (!track) {
|
|
533
|
+
continue;
|
|
534
|
+
}
|
|
535
|
+
if (transition.kind === "dissolve" && track.kind !== "video") {
|
|
536
|
+
addError(diagnostics, "TIMELINE_TRANSITION_AUDIO_TRACK", `Dissolve "${from.id}" → "${to.id}" is on audio track "${from.track}"; use kind "crossfade" for audio clips.`, { ...details, track: from.track, suggestion: 'Use "kind": "crossfade".' });
|
|
537
|
+
continue;
|
|
538
|
+
}
|
|
539
|
+
if (transition.kind === "crossfade" && track.kind !== "audio") {
|
|
540
|
+
addError(diagnostics, "TIMELINE_TRANSITION_VIDEO_TRACK", `Crossfade "${from.id}" → "${to.id}" is on video track "${from.track}"; use kind "dissolve" for visual clips.`, { ...details, track: from.track, suggestion: 'Use "kind": "dissolve".' });
|
|
541
|
+
continue;
|
|
542
|
+
}
|
|
543
|
+
declaredPairs.add(`${from.track}\u0000${from.id}\u0000${to.id}`);
|
|
544
|
+
declaredPairs.add(`${from.track}\u0000${to.id}\u0000${from.id}`);
|
|
545
|
+
if (to.start <= from.start) {
|
|
546
|
+
addError(diagnostics, "TIMELINE_TRANSITION_GEOMETRY", `Transition "${from.id}" → "${to.id}" requires "${to.id}" to start after "${from.id}" starts.`, { ...details, track: from.track, suggestion: `Move "${to.id}" later or "${from.id}" earlier.` });
|
|
547
|
+
continue;
|
|
548
|
+
}
|
|
549
|
+
if (to.start >= from.end) {
|
|
550
|
+
addError(diagnostics, "TIMELINE_TRANSITION_NOT_OVERLAPPING", `Transition "${from.id}" → "${to.id}" declares no overlap: "${to.id}" starts at ${to.start}, after "${from.id}" ends at ${from.end}.`, { ...details, track: from.track, suggestion: `Start "${to.id}" before frame ${from.end}.` });
|
|
551
|
+
continue;
|
|
552
|
+
}
|
|
553
|
+
if (to.end <= from.end) {
|
|
554
|
+
addError(diagnostics, "TIMELINE_TRANSITION_GEOMETRY", `Transition "${from.id}" → "${to.id}" requires "${to.id}" to end after "${from.id}" ends at ${from.end}.`, { ...details, track: from.track, suggestion: `Extend "${to.id}" beyond frame ${from.end}.` });
|
|
555
|
+
continue;
|
|
556
|
+
}
|
|
557
|
+
transitions.push({
|
|
558
|
+
from: from.id,
|
|
559
|
+
to: to.id,
|
|
560
|
+
kind: transition.kind,
|
|
561
|
+
...(transition.easing !== undefined ? { easing: transition.easing } : {}),
|
|
562
|
+
track: from.track,
|
|
563
|
+
start: to.start,
|
|
564
|
+
end: from.end,
|
|
565
|
+
});
|
|
566
|
+
}
|
|
480
567
|
for (const track of document.tracks) {
|
|
481
|
-
const trackClips = clips
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
568
|
+
const trackClips = clips
|
|
569
|
+
.filter((clip) => clip.track === track.id)
|
|
570
|
+
.sort((left, right) => left.start - right.start || left.end - right.end);
|
|
571
|
+
for (let index = 0; index < trackClips.length; index += 1) {
|
|
572
|
+
const previous = trackClips[index];
|
|
573
|
+
for (let next = index + 1; next < trackClips.length; next += 1) {
|
|
574
|
+
const current = trackClips[next];
|
|
575
|
+
if (current.start >= previous.end) {
|
|
576
|
+
break;
|
|
577
|
+
}
|
|
578
|
+
if (declaredPairs.has(`${track.id}\u0000${previous.id}\u0000${current.id}`)) {
|
|
579
|
+
continue;
|
|
580
|
+
}
|
|
486
581
|
addError(diagnostics, "TIMELINE_CLIP_OVERLAP", `Clip "${current.id}" overlaps "${previous.id}" on track "${track.id}".`, {
|
|
487
582
|
timeline: timeline.id,
|
|
488
583
|
track: track.id,
|
|
489
584
|
clip: current.id,
|
|
490
585
|
nesting: context.nesting,
|
|
491
|
-
suggestion: "No two clips on one track may overlap
|
|
586
|
+
suggestion: "No two clips on one track may overlap without a declared transition.",
|
|
492
587
|
});
|
|
493
588
|
}
|
|
494
589
|
}
|
|
@@ -514,6 +609,7 @@ async function resolveTimelineInternal(options) {
|
|
|
514
609
|
durationInFrames,
|
|
515
610
|
tracks: document.tracks,
|
|
516
611
|
clips,
|
|
612
|
+
transitions,
|
|
517
613
|
},
|
|
518
614
|
diagnostics: uniqueDiagnostics,
|
|
519
615
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/timeline/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,OAAO,EAAE,UAAU,EAAc,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAA+B,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAoB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAgE,MAAM,aAAa,CAAC;AAmElH,MAAM,yBAAyB,GAAgD;IAC7E,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,SAAS,aAAa,CAAC,UAAiC;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA6C;IACtE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,UAAiC,EACjC,OAQC;IAED,MAAM,OAAO,GAAiC,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IACxE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC3E,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CACf,WAAoC,EACpC,IAAmC,EACnC,OAAe,EACf,OAAqC;IAErC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,UAAU,CACjB,WAAoC,EACpC,OAAe,EACf,OAAqC;IAErC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAc;IACvD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAC/C,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,OAAO,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAOD,KAAK,UAAU,gBAAgB,CAC7B,YAAoB,EACpB,KAAmC,EACnC,MAAoB;IAEpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,KAAK,YAAY,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChH,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAOjC;IACC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAiC;QAC5C,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,MAAM,CAAC,GAAG;KAClB,CAAC;IACF,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,wCAAwC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,8BAA8B,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,6BAA6B,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,IACE,aAAa;QACb,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,KAAK,OAAO,CAAC;YACrD,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAC7D,CAAC;QACD,QAAQ,CACN,WAAW,EACX,wBAAwB,EACxB,qBAAqB,MAAM,CAAC,IAAI,4CAA4C,MAAM,CAAC,GAAG,GAAG,EACzF,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,QAAQ,CACN,WAAW,EACX,wBAAwB,EACxB,2BAA2B,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,EAC3E,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,CAAC;IAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,qCAAqC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,qCAAqC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,qCAAqC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,UAAU,CAAC,WAAW,EAAE,SAAS,MAAM,CAAC,GAAG,gDAAgD,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,YAAY;YACZ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,QAAQ;YACR,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GACnB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;QACzC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,GAAG,OAAO;aACP,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aACvF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IACJ,IAAI,CAAC,eAAe,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,WAAW,EAAE,wBAAwB,EAAE,2CAA2C,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAClH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,MAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/F,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,YAAY;QACZ,gBAAgB;QAChB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAkB;IACzC,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,OAQvC;IACC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAiC;QAC5C,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,QAAQ;QACrB,OAAO;KACR,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,QAAQ,CACN,WAAW,EACX,8BAA8B,EAC9B,gBAAgB,QAAQ,qCAAqC,EAC7D,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,CAAC;IACzD,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,MAAM,uBAAuB,CAAC;YACzC,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAChD,WAAW,CAAC,IAAI,CACd,WAAW,CAAC,UAAU,EAAE;YACtB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,OAAO;SACR,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CACN,WAAW,EACX,uBAAuB,EACvB,gBAAgB,QAAQ,mCAAmC,IAAI,CAAC,EAAE,IAAI,EACtE,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;IACvD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAChE,QAAQ,CACN,WAAW,EACX,uBAAuB,EACvB,gBAAgB,QAAQ,aAAa,WAAW,mCAAmC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,EAC7G,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACxG,UAAU,CACR,WAAW,EACX,uBAAuB,QAAQ,2CAA2C,IAAI,CAAC,EAAE,gBAAgB,EACjG,OAAO,CACR,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU;QACtC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACpF,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU;QACtC,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,kBAAkB;QACtD,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe;KACjD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OASpC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACxG,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAiC;QAC5C,QAAQ,EAAE,OAAO,CAAC,UAAU;QAC5B,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CACN,WAAW,EACX,8BAA8B,EAC9B,aAAa,QAAQ,qCAAqC,EAC1D,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,QAAQ,CACN,WAAW,EACX,gBAAgB,EAChB,4BAA4B,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EACvE,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC;QACjD,OAAO;QACP,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE;YACP,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;SACvC;QACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,UAAU;QACV,gBAAgB;KACjB,CAAC,CAAC;IACH,KAAK,MAAM,UAAU,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3B,QAAQ,CACN,WAAW,EACX,uBAAuB,EACvB,oBAAoB,QAAQ,qCAAqC,IAAI,CAAC,EAAE,IAAI,EAC5E,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,gBAAgB,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB;QACxD,QAAQ,EAAE,YAAY,CAAC,QAAQ;KAChC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAQhC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3B,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,OAAO,wBAAwB,CAAC;YAC9B,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW;YACX,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;YAC3B,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW;YACX,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,UAAU;YACV,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI;QACJ,WAAW;QACX,UAAU;QACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,QAAyB,EACzB,WAAoC,EACpC,OAAuB;IAEvB,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,WAAW,EAAE,oBAAoB,EAAE,qCAAqC,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjG,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,QAAQ,CACN,WAAW,EACX,kBAAkB,EAClB,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1F;YACE,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAkB,EAClB,MAA8B,EAC9B,WAAoC,EACpC,UAAkB,EAClB,OAAiB;IAEjB,MAAM,OAAO,GAAiC;QAC5C,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO;QACP,QAAQ,EAAE,SAAS;KACpB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC5F,QAAQ,CACN,WAAW,EACX,4BAA4B,EAC5B,SAAS,IAAI,CAAC,EAAE,mBAAmB,IAAI,CAAC,QAAQ,6BAA6B,MAAM,CAAC,EAAE,gEAAgE,EACtJ,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;IAErF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,QAAQ,CACN,WAAW,EACX,4BAA4B,EAC5B,SAAS,IAAI,CAAC,EAAE,kEAAkE,EAClF,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,QAAQ,CACN,WAAW,EACX,4BAA4B,EAC5B,SAAS,IAAI,CAAC,EAAE,4BAA4B,IAAI,CAAC,QAAQ,gCAAgC,cAAc,GAAG,EAC1G,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,cAAc,EAAE,CAAC;QACnF,QAAQ,CACN,WAAW,EACX,4BAA4B,EAC5B,SAAS,IAAI,CAAC,EAAE,wBAAwB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,gCAAgC,cAAc,GAAG,EACxI,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAQtC;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrG,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,oDAAoD,EAAE;YAC9F,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YACxG,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAU,CAAC;gBAC9E,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACrC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CACN,WAAW,EACX,eAAe,EACf,4BAA4B,OAAO,CAAC,EAAE,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC/G,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC5F,CAAC;gBACF,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,eAAe,GAA4B,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,OAAO;YACP,IAAI;YACJ,WAAW,EAAE,eAAe;YAC5B,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,UAAU;YACV,gBAAgB;SACjB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,IAAI;YACP,MAAM;YACN,QAAQ;YACR,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CACN,WAAW,EACX,eAAe,EACf,2BAA2B,GAAG,sDAAsD,EACpF,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,MAAM,CAAC;IAC7D,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,gBAAgB,GAAG,MAAM,EAAE,CAAC;QAClF,QAAQ,CACN,WAAW,EACX,2BAA2B,EAC3B,6BAA6B,QAAQ,CAAC,gBAAgB,0CAA0C,MAAM,GAAG,EACzG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACnH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAyB,CAAC;YAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAyB,CAAC;YAC1D,IAAI,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjC,QAAQ,CACN,WAAW,EACX,uBAAuB,EACvB,SAAS,OAAO,CAAC,EAAE,eAAe,QAAQ,CAAC,EAAE,eAAe,KAAK,CAAC,EAAE,IAAI,EACxE;oBACE,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBACrB,KAAK,EAAE,KAAK,CAAC,EAAE;oBACf,IAAI,EAAE,OAAO,CAAC,EAAE;oBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,UAAU,EAAE,+CAA+C;iBAC5D,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,mCAAmC,EAAE;YAC7E,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB;YAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK;SACN;QACD,WAAW,EAAE,iBAAiB;KAC/B,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAM5C;IACC,OAAO,uBAAuB,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACvF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,gBAAgB,EAAE,IAAI,GAAG,EAAE;KAC5B,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/timeline/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { Props } from "../contracts.js";
|
|
2
|
+
import { type BlendMode, type TimelineClipAudio, type TimelineKeyframes, type TimelineTrack, type TimelineTransform, type TransitionKind } from "./schema.js";
|
|
3
|
+
import type { TransitionRole, TransitionWindow } from "./transitions.js";
|
|
4
|
+
/** The fixed dimensions and frame rate a timeline scene is projected against. */
|
|
5
|
+
export interface TimelineSceneFormat {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
fps: number;
|
|
9
|
+
}
|
|
10
|
+
/** The fields a timeline scene needs from a composition clip source. */
|
|
11
|
+
export interface TimelineSceneCompositionSource {
|
|
12
|
+
kind: "composition";
|
|
13
|
+
id: string;
|
|
14
|
+
metadata: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
fps?: number;
|
|
18
|
+
durationInFrames?: number;
|
|
19
|
+
static?: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** The fields a timeline scene needs from a nested-timeline clip source. */
|
|
23
|
+
export interface TimelineSceneNestedSource {
|
|
24
|
+
kind: "timeline";
|
|
25
|
+
id: string;
|
|
26
|
+
durationInFrames: number;
|
|
27
|
+
timeline: {
|
|
28
|
+
format: TimelineSceneFormat;
|
|
29
|
+
durationInFrames: number;
|
|
30
|
+
background?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** The fields a timeline scene needs from a media clip source. */
|
|
34
|
+
export interface TimelineSceneMediaSource {
|
|
35
|
+
kind: "video" | "image" | "audio";
|
|
36
|
+
src: string;
|
|
37
|
+
width?: number;
|
|
38
|
+
height?: number;
|
|
39
|
+
durationInFrames?: number;
|
|
40
|
+
hasAudio?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export type TimelineSceneSource = TimelineSceneCompositionSource | TimelineSceneNestedSource | TimelineSceneMediaSource;
|
|
43
|
+
/**
|
|
44
|
+
* A resolved timeline clip as the scene projection sees it. The preview payload
|
|
45
|
+
* is the same shape with a `url` added to each source, so both sides share one
|
|
46
|
+
* clip model instead of maintaining a second one.
|
|
47
|
+
*/
|
|
48
|
+
export interface TimelineSceneClip<S extends TimelineSceneSource = TimelineSceneSource> {
|
|
49
|
+
id: string;
|
|
50
|
+
track: string;
|
|
51
|
+
source: S;
|
|
52
|
+
start: number;
|
|
53
|
+
duration: number;
|
|
54
|
+
end: number;
|
|
55
|
+
sourceIn: number;
|
|
56
|
+
props?: Props;
|
|
57
|
+
transform?: TimelineTransform;
|
|
58
|
+
keyframes?: TimelineKeyframes;
|
|
59
|
+
blend?: BlendMode;
|
|
60
|
+
audio?: TimelineClipAudio;
|
|
61
|
+
}
|
|
62
|
+
export interface TimelineSceneTransition {
|
|
63
|
+
from: string;
|
|
64
|
+
to: string;
|
|
65
|
+
kind: TransitionKind;
|
|
66
|
+
easing?: string;
|
|
67
|
+
track: string;
|
|
68
|
+
start: number;
|
|
69
|
+
end: number;
|
|
70
|
+
}
|
|
71
|
+
/** The minimal resolved-timeline shape the scene projection reads. */
|
|
72
|
+
export interface TimelineSceneInput<S extends TimelineSceneSource = TimelineSceneSource> {
|
|
73
|
+
format: TimelineSceneFormat;
|
|
74
|
+
durationInFrames: number;
|
|
75
|
+
tracks: readonly TimelineTrack[];
|
|
76
|
+
clips: readonly TimelineSceneClip<S>[];
|
|
77
|
+
transitions: readonly TimelineSceneTransition[];
|
|
78
|
+
}
|
|
79
|
+
/** What the capture path does to turn a scene layer's source into pixels. */
|
|
80
|
+
export type TimelineCaptureMode = "frames" | "still" | "video" | "image" | "nested";
|
|
81
|
+
/**
|
|
82
|
+
* One active visual clip at a timeline frame or over a render range. Array order
|
|
83
|
+
* is composite order: later layers paint above earlier ones.
|
|
84
|
+
*/
|
|
85
|
+
export interface TimelineSceneLayer<S extends TimelineSceneSource = TimelineSceneSource> {
|
|
86
|
+
clip: TimelineSceneClip<S>;
|
|
87
|
+
capture: TimelineCaptureMode;
|
|
88
|
+
/** The source frame at the projected range's first timeline frame. */
|
|
89
|
+
sourceStart: number;
|
|
90
|
+
sourceWidth: number;
|
|
91
|
+
sourceHeight: number;
|
|
92
|
+
transform: TimelineTransform;
|
|
93
|
+
keyframes?: TimelineKeyframes;
|
|
94
|
+
blend: BlendMode;
|
|
95
|
+
transition?: {
|
|
96
|
+
window: TransitionWindow;
|
|
97
|
+
role: TransitionRole;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export interface TimelineScene<S extends TimelineSceneSource = TimelineSceneSource> {
|
|
101
|
+
timeline: TimelineSceneInput<S>;
|
|
102
|
+
/** Inclusive first timeline frame. */
|
|
103
|
+
start: number;
|
|
104
|
+
/** Exclusive last timeline frame. */
|
|
105
|
+
end: number;
|
|
106
|
+
/** Visual layers from bottom to top. */
|
|
107
|
+
layers: TimelineSceneLayer<S>[];
|
|
108
|
+
}
|
|
109
|
+
/** One side of a declared transition, in absolute timeline frames. */
|
|
110
|
+
export interface TimelineTransitionSpan extends TransitionWindow {
|
|
111
|
+
role: TransitionRole;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Pairs each transition with its outgoing and incoming clip. Visual scenes and
|
|
115
|
+
* timeline audio both consume this so the window and roles are defined once.
|
|
116
|
+
*/
|
|
117
|
+
export declare function transitionSpans(timeline: Pick<TimelineSceneInput, "transitions">): Map<string, TimelineTransitionSpan[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Projects a resolved timeline onto one render range. Every returned layer is
|
|
120
|
+
* active for the whole range; a single frame is a one-frame range. Nested
|
|
121
|
+
* timelines stay sources and are projected recursively when they are captured.
|
|
122
|
+
*/
|
|
123
|
+
export declare function projectScene<S extends TimelineSceneSource>(timeline: TimelineSceneInput<S>, start: number, end: number): TimelineScene<S>;
|
|
124
|
+
/** Projects one timeline frame. */
|
|
125
|
+
export declare function projectSceneAtFrame<S extends TimelineSceneSource>(timeline: TimelineSceneInput<S>, frame: number): TimelineScene<S>;
|
|
126
|
+
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/timeline/scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { FrameyardError } from "../errors.js";
|
|
2
|
+
import { DEFAULT_TIMELINE_TRANSFORM, } from "./schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Pairs each transition with its outgoing and incoming clip. Visual scenes and
|
|
5
|
+
* timeline audio both consume this so the window and roles are defined once.
|
|
6
|
+
*/
|
|
7
|
+
export function transitionSpans(timeline) {
|
|
8
|
+
const spans = new Map();
|
|
9
|
+
for (const transition of timeline.transitions) {
|
|
10
|
+
const window = {
|
|
11
|
+
start: transition.start,
|
|
12
|
+
end: transition.end,
|
|
13
|
+
...(transition.easing !== undefined ? { easing: transition.easing } : {}),
|
|
14
|
+
};
|
|
15
|
+
const outgoing = spans.get(transition.from) ?? [];
|
|
16
|
+
outgoing.push({ role: "out", ...window });
|
|
17
|
+
spans.set(transition.from, outgoing);
|
|
18
|
+
const incoming = spans.get(transition.to) ?? [];
|
|
19
|
+
incoming.push({ role: "in", ...window });
|
|
20
|
+
spans.set(transition.to, incoming);
|
|
21
|
+
}
|
|
22
|
+
return spans;
|
|
23
|
+
}
|
|
24
|
+
function projectLayer(clip, start, end, spans) {
|
|
25
|
+
const source = clip.source;
|
|
26
|
+
let capture;
|
|
27
|
+
let sourceWidth;
|
|
28
|
+
let sourceHeight;
|
|
29
|
+
switch (source.kind) {
|
|
30
|
+
case "composition":
|
|
31
|
+
capture = source.metadata.static === true ? "still" : "frames";
|
|
32
|
+
sourceWidth = source.metadata.width;
|
|
33
|
+
sourceHeight = source.metadata.height;
|
|
34
|
+
break;
|
|
35
|
+
case "timeline":
|
|
36
|
+
capture = "nested";
|
|
37
|
+
sourceWidth = source.timeline.format.width;
|
|
38
|
+
sourceHeight = source.timeline.format.height;
|
|
39
|
+
break;
|
|
40
|
+
case "video":
|
|
41
|
+
case "image":
|
|
42
|
+
if (source.width === undefined || source.height === undefined) {
|
|
43
|
+
throw new FrameyardError("TIMELINE_MEDIA_INVALID", `Media ${source.src} is missing width/height metadata for clip "${clip.id}".`);
|
|
44
|
+
}
|
|
45
|
+
capture = source.kind;
|
|
46
|
+
sourceWidth = source.width;
|
|
47
|
+
sourceHeight = source.height;
|
|
48
|
+
break;
|
|
49
|
+
case "audio":
|
|
50
|
+
throw new FrameyardError("INTERNAL", `Clip "${clip.id}" is audio-only and has no visual scene layer.`);
|
|
51
|
+
}
|
|
52
|
+
const span = (spans.get(clip.id) ?? []).find((candidate) => candidate.start < end && candidate.end > start);
|
|
53
|
+
return {
|
|
54
|
+
clip,
|
|
55
|
+
capture,
|
|
56
|
+
sourceStart: clip.sourceIn + (start - clip.start),
|
|
57
|
+
sourceWidth,
|
|
58
|
+
sourceHeight,
|
|
59
|
+
transform: clip.transform ?? { ...DEFAULT_TIMELINE_TRANSFORM },
|
|
60
|
+
...(clip.keyframes !== undefined ? { keyframes: clip.keyframes } : {}),
|
|
61
|
+
blend: clip.blend ?? "normal",
|
|
62
|
+
...(span !== undefined
|
|
63
|
+
? {
|
|
64
|
+
transition: {
|
|
65
|
+
window: {
|
|
66
|
+
start: span.start,
|
|
67
|
+
end: span.end,
|
|
68
|
+
...(span.easing !== undefined ? { easing: span.easing } : {}),
|
|
69
|
+
},
|
|
70
|
+
role: span.role,
|
|
71
|
+
},
|
|
72
|
+
}
|
|
73
|
+
: {}),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Projects a resolved timeline onto one render range. Every returned layer is
|
|
78
|
+
* active for the whole range; a single frame is a one-frame range. Nested
|
|
79
|
+
* timelines stay sources and are projected recursively when they are captured.
|
|
80
|
+
*/
|
|
81
|
+
export function projectScene(timeline, start, end) {
|
|
82
|
+
if (!Number.isInteger(start) ||
|
|
83
|
+
!Number.isInteger(end) ||
|
|
84
|
+
start < 0 ||
|
|
85
|
+
end > timeline.durationInFrames ||
|
|
86
|
+
end <= start) {
|
|
87
|
+
throw new FrameyardError("TIMELINE_INVALID", `Invalid timeline range ${start}..${end}.`);
|
|
88
|
+
}
|
|
89
|
+
const spans = transitionSpans(timeline);
|
|
90
|
+
const trackOrder = new Map(timeline.tracks.map((track, index) => [track.id, index]));
|
|
91
|
+
const videoTracks = new Set(timeline.tracks.filter((track) => track.kind === "video").map((track) => track.id));
|
|
92
|
+
const layers = timeline.clips
|
|
93
|
+
.filter((clip) => videoTracks.has(clip.track))
|
|
94
|
+
.filter((clip) => clip.start <= start && clip.end >= end)
|
|
95
|
+
.sort((left, right) => {
|
|
96
|
+
const leftOrder = trackOrder.get(left.track) ?? Number.MAX_SAFE_INTEGER;
|
|
97
|
+
const rightOrder = trackOrder.get(right.track) ?? Number.MAX_SAFE_INTEGER;
|
|
98
|
+
// Within one track, the later-starting clip composites above the
|
|
99
|
+
// outgoing clip during a transition overlap.
|
|
100
|
+
return leftOrder - rightOrder || left.start - right.start || left.end - right.end;
|
|
101
|
+
})
|
|
102
|
+
.map((clip) => projectLayer(clip, start, end, spans));
|
|
103
|
+
return { timeline, start, end, layers };
|
|
104
|
+
}
|
|
105
|
+
/** Projects one timeline frame. */
|
|
106
|
+
export function projectSceneAtFrame(timeline, frame) {
|
|
107
|
+
return projectScene(timeline, frame, frame + 1);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=scene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/timeline/scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,23 @@ export interface TimelineTransform {
|
|
|
38
38
|
rotation: number;
|
|
39
39
|
opacity: number;
|
|
40
40
|
}
|
|
41
|
+
/** The presentation defaults applied when a visual clip omits a transform. */
|
|
42
|
+
export declare const DEFAULT_TIMELINE_TRANSFORM: Readonly<TimelineTransform>;
|
|
41
43
|
export interface TimelineClipAudio {
|
|
42
44
|
muted: boolean;
|
|
43
45
|
gain: number;
|
|
44
46
|
}
|
|
47
|
+
export interface TimelineKeyframe {
|
|
48
|
+
/** Clip-local integer frame. `0` is the clip start; `duration` is the end boundary. */
|
|
49
|
+
frame: number;
|
|
50
|
+
value: number;
|
|
51
|
+
/** CSS timing function for the interval after this key. Defaults to `linear`. */
|
|
52
|
+
easing?: string;
|
|
53
|
+
}
|
|
54
|
+
export type TimelineKeyframeTrack = TimelineKeyframe[];
|
|
55
|
+
export declare const KEYFRAME_CHANNELS: readonly ["x", "y", "scale", "rotation", "opacity"];
|
|
56
|
+
export type TimelineKeyframeChannel = (typeof KEYFRAME_CHANNELS)[number];
|
|
57
|
+
export type TimelineKeyframes = Partial<Record<TimelineKeyframeChannel, TimelineKeyframeTrack>>;
|
|
45
58
|
export interface TimelineClip {
|
|
46
59
|
id: string;
|
|
47
60
|
track: string;
|
|
@@ -52,10 +65,27 @@ export interface TimelineClip {
|
|
|
52
65
|
sourceIn: number;
|
|
53
66
|
props?: Props;
|
|
54
67
|
transform?: TimelineTransform;
|
|
68
|
+
/** Per-channel presentation animation, evaluated in clip-local frames. */
|
|
69
|
+
keyframes?: TimelineKeyframes;
|
|
55
70
|
/** CSS blend mode against the accumulated backdrop. Defaults to `normal`. */
|
|
56
71
|
blend?: BlendMode;
|
|
57
72
|
audio?: TimelineClipAudio;
|
|
58
73
|
}
|
|
74
|
+
/** Transition kinds that both preview and production can reproduce exactly. */
|
|
75
|
+
export declare const TRANSITION_KINDS: readonly ["dissolve", "crossfade"];
|
|
76
|
+
export type TransitionKind = (typeof TRANSITION_KINDS)[number];
|
|
77
|
+
/**
|
|
78
|
+
* A transition across the overlap of two clips on one track. `dissolve` is a
|
|
79
|
+
* visual fade on a video track and also crossfades contributed audio;
|
|
80
|
+
* `crossfade` is an audio gain ramp between two audio-track clips.
|
|
81
|
+
*/
|
|
82
|
+
export interface TimelineTransition {
|
|
83
|
+
from: string;
|
|
84
|
+
to: string;
|
|
85
|
+
kind: TransitionKind;
|
|
86
|
+
/** CSS timing function for the progress. Defaults to `linear`. */
|
|
87
|
+
easing?: string;
|
|
88
|
+
}
|
|
59
89
|
export interface TimelineDocument {
|
|
60
90
|
version: 1;
|
|
61
91
|
name?: string;
|
|
@@ -63,6 +93,7 @@ export interface TimelineDocument {
|
|
|
63
93
|
background?: string;
|
|
64
94
|
tracks: TimelineTrack[];
|
|
65
95
|
clips: TimelineClip[];
|
|
96
|
+
transitions?: TimelineTransition[];
|
|
66
97
|
}
|
|
67
98
|
export interface ParseTimelineResult {
|
|
68
99
|
timeline: TimelineDocument | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/timeline/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAE1B,KAAK,KAAK,EACX,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/timeline/schema.ts"],"names":[],"mappings":"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"}
|