@koda-sl/baker-cli 0.275.0-dev.1f1c09c80 → 0.276.0-dev.1f1c09c80
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/dist/cli.js +12 -4
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -31002,7 +31002,7 @@ function classifyReelFindings(json) {
|
|
|
31002
31002
|
if (!r.brand_mark_visible) {
|
|
31003
31003
|
findings.push({
|
|
31004
31004
|
severity: "warning",
|
|
31005
|
-
what: "No brand mark is visible in any frame.
|
|
31005
|
+
what: "No brand mark is visible in any frame. THIS IS NOT A RE-RENDER: the mark is drawn by the caption composition as an ordinary `<img>`, never generated as a picture \u2014 so fix the mark itself (a bad path, or an SVG whose geometry clips its own wordmark) or the `.brand-mark` / `.endcard-logo` rules in `<composition>/index.html`, then re-run. Every clip comes back from the cache and only the composition pass renders again, so it costs seconds and no generation."
|
|
31006
31006
|
});
|
|
31007
31007
|
}
|
|
31008
31008
|
if (!r.shows_more_than_a_face) {
|
|
@@ -31429,7 +31429,7 @@ ${describeRewrites(healed.rewrites)}
|
|
|
31429
31429
|
`Reviewed the finished video and found ${review.length} thing${review.length === 1 ? "" : "s"} to fix. Show the user what is wrong before you show them the ad.`,
|
|
31430
31430
|
...review.map((f) => `${f.severity === "blocking" ? "MUST FIX" : "SHOULD FIX"} \u2014 ${f.what}`),
|
|
31431
31431
|
...review.some((f) => f.scene) ? [
|
|
31432
|
-
`Fix them, then re-run: edit the \`show\` of the scene files named above \u2014 a shot with a person handling equipment is where limbs and objects go wrong, so widen it, move the hands out of frame, or drop the person from that beat. Re-running re-renders ONLY the scenes you edited; everything else comes from the cache (this run: ${result.stats?.cached_nodes ?? 0} of ${result.stats?.total_nodes ?? 0} nodes were cached).`
|
|
31432
|
+
`Anything about the MARK or the closing card is a composition fix, not a re-render: both are drawn as HTML by the caption composition, so editing it and re-running re-renders only that pass \u2014 the clips are cached and no generation is paid for again. Fix them, then re-run: edit the \`show\` of the scene files named above \u2014 a shot with a person handling equipment is where limbs and objects go wrong, so widen it, move the hands out of frame, or drop the person from that beat. Re-running re-renders ONLY the scenes you edited; everything else comes from the cache (this run: ${result.stats?.cached_nodes ?? 0} of ${result.stats?.total_nodes ?? 0} nodes were cached).`
|
|
31433
31433
|
] : []
|
|
31434
31434
|
] : [];
|
|
31435
31435
|
if (poster) {
|
|
@@ -32864,6 +32864,7 @@ function adSpecToBlueprint(spec) {
|
|
|
32864
32864
|
}
|
|
32865
32865
|
|
|
32866
32866
|
// src/engine/scaffold/ad-brand-overlay.ts
|
|
32867
|
+
var markFallback = (name) => name.trim() ? ` onerror="this.replaceWith(Object.assign(document.createElement('span'),{className:this.className+' brand-wordmark',textContent:${JSON.stringify(name.trim())}}))"` : "";
|
|
32867
32868
|
var escapeHtml2 = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
32868
32869
|
function firstHex(palette) {
|
|
32869
32870
|
const hex = (palette ?? []).find((h) => /^#?[0-9a-fA-F]{6}$/.test(h.trim()));
|
|
@@ -32883,12 +32884,14 @@ function buildAdBrandOverlay(opts) {
|
|
|
32883
32884
|
];
|
|
32884
32885
|
if (logo) {
|
|
32885
32886
|
parts.push(
|
|
32886
|
-
`<img class="clip brand-mark" src="${escapeHtml2(logo.file)}" alt="${escapeHtml2(logo.alt)}" data-start="0" data-dur="${totalS}" />`
|
|
32887
|
+
`<img class="clip brand-mark" src="${escapeHtml2(logo.file)}" alt="${escapeHtml2(logo.alt)}" data-start="0" data-dur="${totalS}"${markFallback(logo.alt)} />`
|
|
32887
32888
|
);
|
|
32888
32889
|
}
|
|
32889
32890
|
const cardBits = [];
|
|
32890
32891
|
if (logo) {
|
|
32891
|
-
cardBits.push(
|
|
32892
|
+
cardBits.push(
|
|
32893
|
+
`<img class="endcard-logo" src="${escapeHtml2(logo.file)}" alt="${escapeHtml2(logo.alt)}"${markFallback(logo.alt)} />`
|
|
32894
|
+
);
|
|
32892
32895
|
}
|
|
32893
32896
|
if (cta?.trim()) {
|
|
32894
32897
|
const style = accent ? ` style="background:${escapeHtml2(accent)}"` : "";
|
|
@@ -32959,6 +32962,11 @@ function adBrandOverlayCss() {
|
|
|
32959
32962
|
" .endcard-logo { width: 62%; height: auto; max-height: 300px; object-fit: contain;",
|
|
32960
32963
|
" padding: 46px 56px; border-radius: 40px; background: rgba(255,255,255,0.96);",
|
|
32961
32964
|
" box-shadow: 0 10px 40px rgba(0,0,0,0.28); }",
|
|
32965
|
+
" /* The name, when the mark itself could not be drawn. */",
|
|
32966
|
+
" .brand-wordmark { display: inline-block; font-family: 'Arial Black', 'Helvetica Neue', Arial, sans-serif;",
|
|
32967
|
+
" font-weight: 900; color: #14231b; letter-spacing: -0.01em; }",
|
|
32968
|
+
" .brand-mark.brand-wordmark { font-size: 34px; line-height: 1; height: auto; }",
|
|
32969
|
+
" .endcard-logo.brand-wordmark { font-size: 96px; line-height: 1; width: auto; }",
|
|
32962
32970
|
" /* Capped and wrapping, not sized to its content: measured in a real browser,",
|
|
32963
32971
|
" `GET YOUR FREE QUOTE` renders 948px wide against a 1080px canvas, so the next",
|
|
32964
32972
|
" slightly longer call to action runs off the frame. Two lines beat an edge. */",
|