frameyard 0.7.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 +164 -7
- package/GLOSSARY.md +152 -18
- package/README.md +328 -285
- 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 +1705 -106
- package/dist/cli.js.map +1 -1
- package/dist/composition/descriptor.d.ts +17 -3
- package/dist/composition/descriptor.d.ts.map +1 -1
- package/dist/composition/descriptor.js +51 -28
- package/dist/composition/descriptor.js.map +1 -1
- package/dist/composition/format.d.ts +12 -0
- package/dist/composition/format.d.ts.map +1 -0
- package/dist/composition/format.js +28 -0
- package/dist/composition/format.js.map +1 -0
- package/dist/composition/index.d.ts +2 -1
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +1 -0
- package/dist/composition/index.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 +80 -6
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +3 -0
- 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/document-adapter.d.ts +3 -3
- package/dist/html/document-adapter.d.ts.map +1 -1
- package/dist/html/document-adapter.js +1 -1
- package/dist/html/document-adapter.js.map +1 -1
- package/dist/html/index.d.ts +1 -1
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/parse.d.ts +10 -2
- package/dist/html/parse.d.ts.map +1 -1
- package/dist/html/parse.js +14 -5
- package/dist/html/parse.js.map +1 -1
- package/dist/html/validate.d.ts +12 -1
- package/dist/html/validate.d.ts.map +1 -1
- package/dist/html/validate.js +292 -61
- package/dist/html/validate.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- 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/main.d.ts +2 -2
- package/dist/preview/main.d.ts.map +1 -1
- package/dist/preview/main.js +35 -14
- package/dist/preview/main.js.map +1 -1
- package/dist/preview/timeline-data.d.ts +17 -65
- 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 +73 -38
- 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 -3
- package/dist/preview/timeline-main.js.map +1 -1
- package/dist/project.d.ts +13 -8
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +20 -17
- package/dist/project.js.map +1 -1
- package/dist/renderer/browser.d.ts +2 -2
- package/dist/renderer/browser.d.ts.map +1 -1
- package/dist/renderer/browser.js +10 -4
- package/dist/renderer/browser.js.map +1 -1
- package/dist/renderer/ffmpeg.d.ts +44 -1
- package/dist/renderer/ffmpeg.d.ts.map +1 -1
- package/dist/renderer/ffmpeg.js +371 -73
- package/dist/renderer/ffmpeg.js.map +1 -1
- package/dist/renderer/index.d.ts +40 -4
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +100 -25
- 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 +168 -106
- package/dist/renderer/timeline.js.map +1 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/host.js +159 -31
- 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 -317
- package/dist/scaffold.js.map +1 -1
- package/dist/server/composition-html.d.ts +15 -7
- package/dist/server/composition-html.d.ts.map +1 -1
- package/dist/server/composition-html.js +72 -16
- package/dist/server/composition-html.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +56 -6
- 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 -23
- 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 +20 -3
- 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 +16 -3
- package/dist/timeline/resolve.d.ts.map +1 -1
- package/dist/timeline/resolve.js +119 -13
- 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 +38 -0
- package/dist/timeline/schema.d.ts.map +1 -1
- package/dist/timeline/schema.js +290 -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 +2 -2
- package/docs/adr/0008-share-the-composition-document-grammar.md +1 -1
- package/docs/adr/0010-make-timelines-the-render-unit.md +3 -2
- package/docs/adr/0011-compose-timeline-frames-in-a-live-browser-host.md +1 -1
- package/docs/adr/0012-render-timelines-with-segmented-lossless-clip-intermediates.md +1 -1
- package/docs/adr/0014-compose-timeline-clips-with-css-blend-modes.md +38 -0
- package/docs/adr/0015-inherit-composition-format-from-the-project.md +28 -0
- package/docs/adr/0016-author-compositions-as-html-fragments.md +32 -0
- package/docs/adr/0017-render-timeless-compositions-as-stills.md +99 -0
- 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 +5 -3
- package/docs/migration-0.8.md +163 -0
- package/docs/preview-testing.md +23 -3
- package/docs/{v0.1-design.md → v0.x-design.md} +86 -53
- package/examples/blend/README.md +106 -0
- package/examples/blend/assets/ink.mp4 +0 -0
- package/examples/blend/compositions/aurora.html +55 -0
- package/examples/blend/compositions/backdrop.html +74 -0
- package/examples/blend/compositions/labels.html +149 -0
- package/examples/blend/fy.config.js +11 -0
- package/examples/blend/scripts/make-ink.sh +26 -0
- package/examples/blend/timelines/blend.timeline.json +155 -0
- package/examples/demo/README.md +2 -2
- package/examples/demo/compositions/demo.html +243 -251
- 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 +17 -0
- package/examples/static/compositions/still.html +37 -0
- package/examples/static/fy.config.js +9 -0
- package/examples/static/timelines/still.timeline.json +13 -0
- 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/video/compositions/video-mp4.html +349 -357
- package/examples/video/compositions/video-overlay.html +337 -345
- package/examples/video/compositions/video.html +349 -357
- package/examples/webgl/README.md +1 -1
- package/examples/webgl/compositions/webgl.html +205 -213
- package/package.json +13 -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 -59
- package/skills/frameyard/references/audio-assets.md +32 -3
- package/skills/frameyard/references/common-mistakes.md +81 -7
- package/skills/frameyard/references/controllers.md +5 -4
- package/skills/frameyard/references/deterministic-authoring.md +49 -37
- package/skills/frameyard/references/diagnostics.md +42 -4
- package/skills/frameyard/references/failure-recovery.md +56 -10
- package/skills/frameyard/references/fonts.md +132 -0
- package/skills/frameyard/references/json-results.md +165 -10
- package/skills/frameyard/references/quick-reference.md +222 -0
- package/skills/frameyard/references/timelines.md +109 -15
- /package/examples/demo/{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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CompositionFormat, DeclaredCompositionMetadata, ResolvedCompositionMetadata } from "../contracts.js";
|
|
2
|
+
export declare const COMPOSITION_FORMAT_UNRESOLVED_MESSAGE = "The composition does not declare width and height, and no project format is available. Declare them on <fy-composition> or add format { width, height, fps } to fy.config.js.";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves declared composition metadata against a project format. Declared
|
|
5
|
+
* values always win; the project format only fills what the fragment omits.
|
|
6
|
+
* A composition that declares neither `duration-in-frames` nor `fps` is
|
|
7
|
+
* static: it keeps width/height but has no frame clock or duration.
|
|
8
|
+
* Returns null when a required value is neither declared nor available from
|
|
9
|
+
* the project, which makes the composition unrenderable in that context.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveCompositionMetadata(declared: DeclaredCompositionMetadata, format: CompositionFormat | null | undefined): ResolvedCompositionMetadata | null;
|
|
12
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/composition/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEnH,eAAO,MAAM,qCAAqC,kLAC+H,CAAC;AAElL;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,2BAA2B,EACrC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC3C,2BAA2B,GAAG,IAAI,CAqBpC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const COMPOSITION_FORMAT_UNRESOLVED_MESSAGE = "The composition does not declare width and height, and no project format is available. Declare them on <fy-composition> or add format { width, height, fps } to fy.config.js.";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves declared composition metadata against a project format. Declared
|
|
4
|
+
* values always win; the project format only fills what the fragment omits.
|
|
5
|
+
* A composition that declares neither `duration-in-frames` nor `fps` is
|
|
6
|
+
* static: it keeps width/height but has no frame clock or duration.
|
|
7
|
+
* Returns null when a required value is neither declared nor available from
|
|
8
|
+
* the project, which makes the composition unrenderable in that context.
|
|
9
|
+
*/
|
|
10
|
+
export function resolveCompositionMetadata(declared, format) {
|
|
11
|
+
const width = declared.format.width ?? format?.width ?? null;
|
|
12
|
+
const height = declared.format.height ?? format?.height ?? null;
|
|
13
|
+
if (width === null || height === null) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (declared.durationInFrames === null) {
|
|
17
|
+
if (declared.format.fps !== null) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return { width, height, static: true };
|
|
21
|
+
}
|
|
22
|
+
const fps = declared.format.fps ?? format?.fps ?? null;
|
|
23
|
+
if (fps === null) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return { width, height, fps, durationInFrames: declared.durationInFrames };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/composition/format.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qCAAqC,GAChD,+KAA+K,CAAC;AAElL;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAqC,EACrC,MAA4C;IAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;IAEhE,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC;IACvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;AAC7E,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { readCompositionDescriptor } from "./descriptor.js";
|
|
2
|
-
export type { CompositionDescriptor, CompositionDescriptorResult, ReadCompositionDescriptorOptions, } from "./descriptor.js";
|
|
2
|
+
export type { CompositionDescriptor, CompositionDescriptorResult, CompositionRootScope, ReadCompositionDescriptorOptions, } from "./descriptor.js";
|
|
3
|
+
export { COMPOSITION_FORMAT_UNRESOLVED_MESSAGE, resolveCompositionMetadata } from "./format.js";
|
|
3
4
|
export { readAnimationDeclarations } from "./animation.js";
|
|
4
5
|
export type { AnimationDeclaration, AnimationDeclarations, ReadAnimationDeclarationsOptions } from "./animation.js";
|
|
5
6
|
export { readMediaDeclarations, readMediaSpec } from "./media.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EACV,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qCAAqC,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EACV,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { readCompositionDescriptor } from "./descriptor.js";
|
|
2
|
+
export { COMPOSITION_FORMAT_UNRESOLVED_MESSAGE, resolveCompositionMetadata } from "./format.js";
|
|
2
3
|
export { readAnimationDeclarations } from "./animation.js";
|
|
3
4
|
export { readMediaDeclarations, readMediaSpec } from "./media.js";
|
|
4
5
|
export { readTranscriptDeclarations } from "./transcripts.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAO5D,OAAO,EAAE,qCAAqC,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAM9D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ResolvedCompositionMetadata } from "./contracts.js";
|
|
2
|
+
import { type LoadedResourcePolicy, type PolicyDescription } from "./policy.js";
|
|
3
|
+
import type { Project } from "./project.js";
|
|
4
|
+
import { type FontSummary } from "./fonts/summary.js";
|
|
5
|
+
export interface ContextProp {
|
|
6
|
+
path: string;
|
|
7
|
+
type: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ContextDiagnosticSummary {
|
|
10
|
+
errors: number;
|
|
11
|
+
warnings: number;
|
|
12
|
+
codes: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ContextController {
|
|
15
|
+
kind: "inline" | "external";
|
|
16
|
+
src?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ContextComposition {
|
|
19
|
+
id: string;
|
|
20
|
+
entry: string;
|
|
21
|
+
kind: "static" | "animated" | "invalid";
|
|
22
|
+
metadata?: ResolvedCompositionMetadata;
|
|
23
|
+
controller: ContextController | null;
|
|
24
|
+
props: ContextProp[];
|
|
25
|
+
diagnostics: ContextDiagnosticSummary;
|
|
26
|
+
}
|
|
27
|
+
export interface ContextTimelineClip {
|
|
28
|
+
id: string;
|
|
29
|
+
track: string;
|
|
30
|
+
kind: "composition" | "timeline" | "video" | "image" | "audio";
|
|
31
|
+
source: string;
|
|
32
|
+
start: number;
|
|
33
|
+
duration: number;
|
|
34
|
+
end: number;
|
|
35
|
+
}
|
|
36
|
+
export interface ContextTimeline {
|
|
37
|
+
id: string;
|
|
38
|
+
entry: string;
|
|
39
|
+
durationInFrames?: number;
|
|
40
|
+
durationSeconds?: number;
|
|
41
|
+
tracks?: number;
|
|
42
|
+
clips?: ContextTimelineClip[];
|
|
43
|
+
transitions?: number;
|
|
44
|
+
audio?: number;
|
|
45
|
+
transcripts?: number;
|
|
46
|
+
diagnostics: ContextDiagnosticSummary;
|
|
47
|
+
}
|
|
48
|
+
export interface ContextAsset {
|
|
49
|
+
path: string;
|
|
50
|
+
kind: "video" | "image" | "audio" | "transcript";
|
|
51
|
+
durationSeconds?: number;
|
|
52
|
+
width?: number;
|
|
53
|
+
height?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ProjectContext {
|
|
56
|
+
root: string;
|
|
57
|
+
format?: {
|
|
58
|
+
width: number;
|
|
59
|
+
height: number;
|
|
60
|
+
fps: number;
|
|
61
|
+
};
|
|
62
|
+
policy: PolicyDescription;
|
|
63
|
+
compositions: ContextComposition[];
|
|
64
|
+
timelines: ContextTimeline[];
|
|
65
|
+
assets: ContextAsset[];
|
|
66
|
+
fonts: FontSummary[];
|
|
67
|
+
next: string[];
|
|
68
|
+
truncated: {
|
|
69
|
+
clips: boolean;
|
|
70
|
+
assets: boolean;
|
|
71
|
+
fonts: boolean;
|
|
72
|
+
props: boolean;
|
|
73
|
+
};
|
|
74
|
+
elapsedMs: number;
|
|
75
|
+
}
|
|
76
|
+
/** Builds a compact, read-only digest of a project for agents and humans. */
|
|
77
|
+
export declare function buildProjectContext(options: {
|
|
78
|
+
project: Project;
|
|
79
|
+
policy: LoadedResourcePolicy;
|
|
80
|
+
signal?: AbortSignal;
|
|
81
|
+
}): Promise<ProjectContext>;
|
|
82
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { validateHtmlComposition } from "./html/validate.js";
|
|
2
|
+
import { policyDetails } from "./policy.js";
|
|
3
|
+
import { summarizeFont } from "./fonts/summary.js";
|
|
4
|
+
import { fontStatuses, verifyFontManifest } from "./fonts/verify.js";
|
|
5
|
+
import { resolveProjectTimeline } from "./timeline/resolve.js";
|
|
6
|
+
const MAX_CONTEXT_CLIPS = 80;
|
|
7
|
+
const MAX_CONTEXT_ASSETS = 50;
|
|
8
|
+
const MAX_CONTEXT_FONTS = 20;
|
|
9
|
+
const MAX_CONTEXT_PROPS = 40;
|
|
10
|
+
const MAX_CONTEXT_CODES = 12;
|
|
11
|
+
function propType(value) {
|
|
12
|
+
if (value === null) {
|
|
13
|
+
return "null";
|
|
14
|
+
}
|
|
15
|
+
if (Array.isArray(value)) {
|
|
16
|
+
return "array";
|
|
17
|
+
}
|
|
18
|
+
return typeof value;
|
|
19
|
+
}
|
|
20
|
+
function describeProps(props) {
|
|
21
|
+
return Object.entries(props)
|
|
22
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
23
|
+
.slice(0, MAX_CONTEXT_PROPS)
|
|
24
|
+
.map(([path, value]) => ({ path, type: propType(value) }));
|
|
25
|
+
}
|
|
26
|
+
function publicController(controller) {
|
|
27
|
+
if (controller === null) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
kind: controller.kind,
|
|
32
|
+
...(controller.src !== undefined ? { src: controller.src } : {}),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function summarizeDiagnostics(diagnostics) {
|
|
36
|
+
const errors = diagnostics.filter((diagnostic) => diagnostic.severity === "error").length;
|
|
37
|
+
const warnings = diagnostics.length - errors;
|
|
38
|
+
const codes = [...new Set(diagnostics.map((diagnostic) => diagnostic.code))].slice(0, MAX_CONTEXT_CODES);
|
|
39
|
+
return { errors, warnings, codes };
|
|
40
|
+
}
|
|
41
|
+
function diagnosticsWithFormat(diagnostics, formatUnresolved) {
|
|
42
|
+
const summary = summarizeDiagnostics(diagnostics);
|
|
43
|
+
if (!formatUnresolved) {
|
|
44
|
+
return summary;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
errors: summary.errors + 1,
|
|
48
|
+
warnings: summary.warnings,
|
|
49
|
+
codes: [...new Set([...summary.codes, "COMPOSITION_FORMAT_UNRESOLVED"])].slice(0, MAX_CONTEXT_CODES),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function clipSourceLabel(source) {
|
|
53
|
+
switch (source.kind) {
|
|
54
|
+
case "composition":
|
|
55
|
+
return { kind: "composition", value: source.id };
|
|
56
|
+
case "timeline":
|
|
57
|
+
return { kind: "timeline", value: source.id };
|
|
58
|
+
case "video":
|
|
59
|
+
case "image":
|
|
60
|
+
case "audio":
|
|
61
|
+
return { kind: source.kind, value: source.src };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function addAsset(assets, asset) {
|
|
65
|
+
if (assets.size >= MAX_CONTEXT_ASSETS && !assets.has(asset.path)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const existing = assets.get(asset.path);
|
|
69
|
+
if (existing === undefined) {
|
|
70
|
+
assets.set(asset.path, asset);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (existing.durationSeconds === undefined && asset.durationSeconds !== undefined) {
|
|
74
|
+
existing.durationSeconds = asset.durationSeconds;
|
|
75
|
+
}
|
|
76
|
+
if (existing.width === undefined && asset.width !== undefined) {
|
|
77
|
+
existing.width = asset.width;
|
|
78
|
+
}
|
|
79
|
+
if (existing.height === undefined && asset.height !== undefined) {
|
|
80
|
+
existing.height = asset.height;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function addAudioAssets(assets, clips) {
|
|
84
|
+
for (const clip of clips) {
|
|
85
|
+
addAsset(assets, { path: clip.src, kind: "audio" });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function collectTimelineAssets(timeline, assets) {
|
|
89
|
+
const fps = timeline.format.fps;
|
|
90
|
+
for (const clip of timeline.clips) {
|
|
91
|
+
const source = clip.source;
|
|
92
|
+
if (source.kind === "video" || source.kind === "image" || source.kind === "audio") {
|
|
93
|
+
addAsset(assets, {
|
|
94
|
+
path: source.src,
|
|
95
|
+
kind: source.kind,
|
|
96
|
+
...(source.durationInFrames !== undefined ? { durationSeconds: source.durationInFrames / fps } : {}),
|
|
97
|
+
...(source.width !== undefined ? { width: source.width } : {}),
|
|
98
|
+
...(source.height !== undefined ? { height: source.height } : {}),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
else if (source.kind === "composition") {
|
|
102
|
+
addAudioAssets(assets, source.audioClips);
|
|
103
|
+
for (const transcript of source.transcriptClips) {
|
|
104
|
+
addAsset(assets, { path: transcript.src, kind: "transcript" });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (source.kind === "timeline") {
|
|
108
|
+
collectTimelineAssets(source.timeline, assets);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function countAudio(timeline) {
|
|
113
|
+
let count = 0;
|
|
114
|
+
for (const clip of timeline.clips) {
|
|
115
|
+
if (clip.source.kind === "audio") {
|
|
116
|
+
count += 1;
|
|
117
|
+
}
|
|
118
|
+
else if (clip.source.kind === "composition") {
|
|
119
|
+
count += clip.source.audioClips.length;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return count;
|
|
123
|
+
}
|
|
124
|
+
function countTranscripts(timeline) {
|
|
125
|
+
let count = 0;
|
|
126
|
+
for (const clip of timeline.clips) {
|
|
127
|
+
if (clip.source.kind === "composition") {
|
|
128
|
+
count += clip.source.transcriptClips.length;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return count;
|
|
132
|
+
}
|
|
133
|
+
function timelineClips(timeline) {
|
|
134
|
+
const clips = timeline.clips.slice(0, MAX_CONTEXT_CLIPS).map((clip) => {
|
|
135
|
+
const source = clipSourceLabel(clip.source);
|
|
136
|
+
return {
|
|
137
|
+
id: clip.id,
|
|
138
|
+
track: clip.track,
|
|
139
|
+
kind: source.kind,
|
|
140
|
+
source: source.value,
|
|
141
|
+
start: clip.start,
|
|
142
|
+
duration: clip.duration,
|
|
143
|
+
end: clip.end,
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
return { clips, truncated: timeline.clips.length > MAX_CONTEXT_CLIPS };
|
|
147
|
+
}
|
|
148
|
+
function nextCommands(context) {
|
|
149
|
+
const target = context.timelines.find((timeline) => timeline.durationInFrames !== undefined)?.id ?? context.compositions[0]?.id;
|
|
150
|
+
if (target === undefined) {
|
|
151
|
+
return ["npx frameyard init <directory>"];
|
|
152
|
+
}
|
|
153
|
+
const hasErrors = context.compositions.some((composition) => composition.diagnostics.errors > 0) ||
|
|
154
|
+
context.timelines.some((timeline) => timeline.diagnostics.errors > 0);
|
|
155
|
+
if (hasErrors) {
|
|
156
|
+
return [`npx frameyard lint ${target} --json`];
|
|
157
|
+
}
|
|
158
|
+
const commands = [`npx frameyard lint ${target} --json`];
|
|
159
|
+
if (context.policy.policy !== "light") {
|
|
160
|
+
commands.push(`npx frameyard check ${target} --json`);
|
|
161
|
+
}
|
|
162
|
+
commands.push(`npx frameyard still ${target} --frame 0 --json`);
|
|
163
|
+
commands.push(context.policy.policy === "full"
|
|
164
|
+
? `npx frameyard render ${target} --json`
|
|
165
|
+
: `npx frameyard render ${target} --dry-run --json`);
|
|
166
|
+
return commands.slice(0, 4);
|
|
167
|
+
}
|
|
168
|
+
/** Builds a compact, read-only digest of a project for agents and humans. */
|
|
169
|
+
export async function buildProjectContext(options) {
|
|
170
|
+
const startedAt = performance.now();
|
|
171
|
+
const assets = new Map();
|
|
172
|
+
const truncated = { clips: false, assets: false, fonts: false, props: false };
|
|
173
|
+
const compositions = [];
|
|
174
|
+
for (const composition of [...options.project.compositions.values()].sort((left, right) => left.id.localeCompare(right.id))) {
|
|
175
|
+
const validation = await validateHtmlComposition({
|
|
176
|
+
projectRoot: options.project.root,
|
|
177
|
+
entry: composition.entry,
|
|
178
|
+
...(options.project.format ? { format: options.project.format } : {}),
|
|
179
|
+
});
|
|
180
|
+
const info = validation.info;
|
|
181
|
+
if (info) {
|
|
182
|
+
addAudioAssets(assets, info.audioClips);
|
|
183
|
+
for (const transcript of info.transcriptClips) {
|
|
184
|
+
addAsset(assets, { path: transcript.src, kind: "transcript" });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (info !== null && info.defaultProps !== undefined) {
|
|
188
|
+
if (Object.keys(info.defaultProps).length > MAX_CONTEXT_PROPS) {
|
|
189
|
+
truncated.props = true;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
compositions.push({
|
|
193
|
+
id: composition.id,
|
|
194
|
+
entry: composition.entry,
|
|
195
|
+
kind: validation.formatUnresolved || info === null
|
|
196
|
+
? "invalid"
|
|
197
|
+
: info.metadata.static === true
|
|
198
|
+
? "static"
|
|
199
|
+
: "animated",
|
|
200
|
+
...(info !== null ? { metadata: info.metadata } : {}),
|
|
201
|
+
controller: publicController(info?.controller ?? null),
|
|
202
|
+
props: info !== null ? describeProps(info.defaultProps) : [],
|
|
203
|
+
diagnostics: diagnosticsWithFormat(validation.diagnostics, validation.formatUnresolved),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
const timelines = [];
|
|
207
|
+
for (const projectTimeline of [...options.project.timelines.values()].sort((left, right) => left.id.localeCompare(right.id))) {
|
|
208
|
+
const resolved = await resolveProjectTimeline({
|
|
209
|
+
project: options.project,
|
|
210
|
+
timeline: projectTimeline,
|
|
211
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
212
|
+
});
|
|
213
|
+
const diagnostics = summarizeDiagnostics(resolved.diagnostics);
|
|
214
|
+
if (resolved.timeline === null) {
|
|
215
|
+
timelines.push({
|
|
216
|
+
id: projectTimeline.id,
|
|
217
|
+
entry: projectTimeline.entry,
|
|
218
|
+
diagnostics,
|
|
219
|
+
});
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
collectTimelineAssets(resolved.timeline, assets);
|
|
223
|
+
const summarized = timelineClips(resolved.timeline);
|
|
224
|
+
if (summarized.truncated) {
|
|
225
|
+
truncated.clips = true;
|
|
226
|
+
}
|
|
227
|
+
timelines.push({
|
|
228
|
+
id: projectTimeline.id,
|
|
229
|
+
entry: projectTimeline.entry,
|
|
230
|
+
durationInFrames: resolved.timeline.durationInFrames,
|
|
231
|
+
durationSeconds: resolved.timeline.durationInFrames / resolved.timeline.format.fps,
|
|
232
|
+
tracks: resolved.timeline.tracks.length,
|
|
233
|
+
clips: summarized.clips,
|
|
234
|
+
transitions: resolved.timeline.transitions.length,
|
|
235
|
+
audio: countAudio(resolved.timeline),
|
|
236
|
+
transcripts: countTranscripts(resolved.timeline),
|
|
237
|
+
diagnostics,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
if (assets.size >= MAX_CONTEXT_ASSETS) {
|
|
241
|
+
truncated.assets = true;
|
|
242
|
+
}
|
|
243
|
+
const fontVerification = options.project.fonts === undefined
|
|
244
|
+
? undefined
|
|
245
|
+
: await verifyFontManifest({
|
|
246
|
+
projectRoot: options.project.root,
|
|
247
|
+
manifest: options.project.fonts,
|
|
248
|
+
hashes: false,
|
|
249
|
+
licenses: false,
|
|
250
|
+
orphans: false,
|
|
251
|
+
});
|
|
252
|
+
const statuses = fontVerification === undefined ? new Map() : fontStatuses(fontVerification);
|
|
253
|
+
const fonts = (options.project.fonts?.fonts ?? [])
|
|
254
|
+
.slice()
|
|
255
|
+
.sort((left, right) => left.family.localeCompare(right.family))
|
|
256
|
+
.map((font) => summarizeFont(font, statuses.get(font.id) ?? "ok"));
|
|
257
|
+
if (fonts.length > MAX_CONTEXT_FONTS) {
|
|
258
|
+
truncated.fonts = true;
|
|
259
|
+
}
|
|
260
|
+
const context = {
|
|
261
|
+
root: options.project.root,
|
|
262
|
+
...(options.project.format ? { format: options.project.format } : {}),
|
|
263
|
+
policy: policyDetails(options.policy),
|
|
264
|
+
compositions,
|
|
265
|
+
timelines,
|
|
266
|
+
assets: [...assets.values()]
|
|
267
|
+
.slice(0, MAX_CONTEXT_ASSETS)
|
|
268
|
+
.sort((left, right) => left.path.localeCompare(right.path)),
|
|
269
|
+
fonts: fonts.slice(0, MAX_CONTEXT_FONTS),
|
|
270
|
+
next: [],
|
|
271
|
+
truncated,
|
|
272
|
+
elapsedMs: performance.now() - startedAt,
|
|
273
|
+
};
|
|
274
|
+
context.next = nextCommands(context);
|
|
275
|
+
return context;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.d.ts
CHANGED
|
@@ -6,16 +6,59 @@ export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
|
6
6
|
export type Props = {
|
|
7
7
|
[key: string]: JsonValue;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
/** Output width, height, and frame rate fixed for a project. */
|
|
10
|
+
export interface CompositionFormat {
|
|
10
11
|
/** Output width in CSS pixels. */
|
|
11
12
|
width: number;
|
|
12
13
|
/** Output height in CSS pixels. */
|
|
13
14
|
height: number;
|
|
14
15
|
/** Frames per second. Frame time is always derived from frame / fps. */
|
|
15
16
|
fps: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Format values a composition declares on its root. A null value is inherited
|
|
20
|
+
* from the project format; declarations always win over inheritance.
|
|
21
|
+
*/
|
|
22
|
+
export interface DeclaredFormat {
|
|
23
|
+
width: number | null;
|
|
24
|
+
height: number | null;
|
|
25
|
+
fps: number | null;
|
|
26
|
+
}
|
|
27
|
+
/** The fixed facts a composition fragment declares before format resolution. */
|
|
28
|
+
export interface DeclaredCompositionMetadata {
|
|
29
|
+
format: DeclaredFormat;
|
|
30
|
+
/**
|
|
31
|
+
* Positive integer number of frames in the composition. Null when the
|
|
32
|
+
* fragment declares neither `duration-in-frames` nor `fps`, making it a
|
|
33
|
+
* static (timeless) composition.
|
|
34
|
+
*/
|
|
35
|
+
durationInFrames: number | null;
|
|
36
|
+
}
|
|
37
|
+
/** Output dimensions shared by animated and static compositions. */
|
|
38
|
+
export interface CompositionDimensions {
|
|
39
|
+
/** Output width in CSS pixels. */
|
|
40
|
+
width: number;
|
|
41
|
+
/** Output height in CSS pixels. */
|
|
42
|
+
height: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A static composition has no time base. It is captured once in its initial
|
|
46
|
+
* state and cannot be seeked or encoded as video.
|
|
47
|
+
*/
|
|
48
|
+
export interface StaticCompositionMetadata extends CompositionDimensions {
|
|
49
|
+
readonly static: true;
|
|
50
|
+
}
|
|
51
|
+
/** A composition with a frame clock. Frame time is always frame / fps. */
|
|
52
|
+
export interface CompositionMetadata extends CompositionDimensions {
|
|
53
|
+
readonly static?: false;
|
|
54
|
+
/** Frames per second. Frame time is always derived from frame / fps. */
|
|
55
|
+
fps: number;
|
|
16
56
|
/** Positive integer number of frames in the composition. */
|
|
17
57
|
durationInFrames: number;
|
|
18
58
|
}
|
|
59
|
+
/** Metadata resolved against the project format. */
|
|
60
|
+
export type ResolvedCompositionMetadata = CompositionMetadata | StaticCompositionMetadata;
|
|
61
|
+
export declare function isStaticCompositionMetadata(metadata: ResolvedCompositionMetadata | null | undefined): metadata is StaticCompositionMetadata;
|
|
19
62
|
export interface AudioClip {
|
|
20
63
|
/** Project-relative path to a local audio file. */
|
|
21
64
|
src: string;
|
|
@@ -28,12 +71,25 @@ export interface AudioClip {
|
|
|
28
71
|
/** Linear volume from 0 to 1. Defaults to 1. */
|
|
29
72
|
volume?: number;
|
|
30
73
|
}
|
|
74
|
+
/** One multiplicative gain ramp applied over an absolute timeline frame window. */
|
|
75
|
+
export interface AudioVolumeEnvelope {
|
|
76
|
+
/** Inclusive first timeline frame. */
|
|
77
|
+
startFrame: number;
|
|
78
|
+
/** Exclusive last timeline frame. */
|
|
79
|
+
endFrame: number;
|
|
80
|
+
/** CSS timing function applied before the equal-power mapping. Defaults to `linear`. */
|
|
81
|
+
easing?: string;
|
|
82
|
+
/** `in` ramps 0→1 and `out` ramps 1→0. */
|
|
83
|
+
role: "in" | "out";
|
|
84
|
+
}
|
|
31
85
|
export interface ResolvedAudioClip {
|
|
32
86
|
src: string;
|
|
33
87
|
startFrame: number;
|
|
34
88
|
trimStart: number;
|
|
35
89
|
trimDuration?: number;
|
|
36
90
|
volume: number;
|
|
91
|
+
/** Gain ramps multiplied into `volume`, evaluated at absolute timeline frames. */
|
|
92
|
+
envelopes?: AudioVolumeEnvelope[];
|
|
37
93
|
}
|
|
38
94
|
export interface TranscriptClip {
|
|
39
95
|
/** Project-relative path to a canonical Frameyard transcript JSON document. */
|
|
@@ -63,13 +119,25 @@ export interface CompositionDiagnosticDetails {
|
|
|
63
119
|
timeline?: string;
|
|
64
120
|
track?: string;
|
|
65
121
|
clip?: string;
|
|
122
|
+
/** Timeline keyframe channel when the diagnostic targets one. */
|
|
123
|
+
channel?: string;
|
|
124
|
+
/** Zero-based keyframe index when the diagnostic targets one. */
|
|
125
|
+
keyframe?: number;
|
|
66
126
|
/** JSON Pointer-like path such as `$.clips[2].duration`. */
|
|
67
127
|
jsonPath?: string;
|
|
68
128
|
composition?: string;
|
|
69
129
|
nestedTimeline?: string;
|
|
70
130
|
media?: string;
|
|
131
|
+
/** Remote asset URL for diagnostics such as FONT_REMOTE. */
|
|
132
|
+
url?: string;
|
|
133
|
+
/** Font family or manifest id for font diagnostics. */
|
|
134
|
+
font?: string;
|
|
71
135
|
timelineFrame?: number;
|
|
72
136
|
sourceFrame?: number;
|
|
137
|
+
/** Transition source clip ID when the diagnostic targets a transition. */
|
|
138
|
+
from?: string;
|
|
139
|
+
/** Transition target clip ID when the diagnostic targets a transition. */
|
|
140
|
+
to?: string;
|
|
73
141
|
/** Clip IDs from outermost to innermost for diagnostics inside nested timelines. */
|
|
74
142
|
nesting?: string[];
|
|
75
143
|
controller?: {
|
|
@@ -88,17 +156,23 @@ export interface ControllerDeclaration {
|
|
|
88
156
|
kind: "inline" | "external";
|
|
89
157
|
/** Project-relative path for external controllers. */
|
|
90
158
|
src?: string;
|
|
91
|
-
/** Authoring value for external controllers, relative to the composition
|
|
159
|
+
/** Authoring value for external controllers, relative to the composition URL. */
|
|
92
160
|
rawSrc?: string;
|
|
93
161
|
/** Inline source for inline controllers. */
|
|
94
162
|
source?: string;
|
|
95
|
-
/** One-based line of the controller block in the composition
|
|
163
|
+
/** One-based line of the controller block in the composition fragment. */
|
|
96
164
|
line?: number;
|
|
97
|
-
/** One-based column of the controller block in the composition
|
|
165
|
+
/** One-based column of the controller block in the composition fragment. */
|
|
98
166
|
column?: number;
|
|
99
167
|
}
|
|
100
168
|
export interface CompositionSourceInfo {
|
|
101
|
-
|
|
169
|
+
/** Metadata resolved against the project format. */
|
|
170
|
+
metadata: ResolvedCompositionMetadata;
|
|
171
|
+
/**
|
|
172
|
+
* The format values the fragment declares. Missing values were inherited
|
|
173
|
+
* from the project format to produce `metadata`.
|
|
174
|
+
*/
|
|
175
|
+
declaredFormat: DeclaredFormat;
|
|
102
176
|
defaultProps: Readonly<Props>;
|
|
103
177
|
controller: ControllerDeclaration | null;
|
|
104
178
|
audioClips: readonly ResolvedAudioClip[];
|
|
@@ -108,7 +182,7 @@ export interface CompositionSourceInfo {
|
|
|
108
182
|
/** The browser host API exposed as window.__fy. */
|
|
109
183
|
export interface FrameyardHost {
|
|
110
184
|
readonly ready: Promise<void>;
|
|
111
|
-
readonly metadata:
|
|
185
|
+
readonly metadata: ResolvedCompositionMetadata;
|
|
112
186
|
readonly defaultProps: Readonly<Props>;
|
|
113
187
|
readonly props: Readonly<Props>;
|
|
114
188
|
readonly controller: {
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACnF,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.js
CHANGED