mulmocast 2.6.18 → 2.6.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/lib/methods/mulmo_presentation_style.d.ts +18 -0
  2. package/lib/methods/mulmo_presentation_style.js +23 -0
  3. package/lib/types/schema.d.ts +468 -0
  4. package/lib/utils/context.d.ts +52 -0
  5. package/lib/utils/image_plugins/slide.js +7 -4
  6. package/package.json +5 -5
  7. package/scripts/test/cinematic_showcase.json +0 -1356
  8. package/scripts/test/golden_age_of_discovery.json +0 -270
  9. package/scripts/test/image-2.png +0 -0
  10. package/scripts/test/img_detector.png +0 -0
  11. package/scripts/test/img_higgs.png +0 -0
  12. package/scripts/test/img_lhc.png +0 -0
  13. package/scripts/test/macoro_anime_proto.json +0 -120
  14. package/scripts/test/minimum_beats_completed.json +0 -45
  15. package/scripts/test/test_all_elevenlabs_tts_model.json +0 -111
  16. package/scripts/test/test_all_gemini_tts_model.json +0 -433
  17. package/scripts/test/test_all_image.json +0 -49
  18. package/scripts/test/test_all_movie.json +0 -33
  19. package/scripts/test/test_captions_2.json +0 -31
  20. package/scripts/test/test_genai2.json +0 -25
  21. package/scripts/test/test_lipsync5.json +0 -66
  22. package/scripts/test/test_reference.json +0 -0
  23. package/scripts/test/test_slide_image_ref_gemini_en.json +0 -289
  24. package/scripts/test/test_slide_showcase_corporate.json +0 -497
  25. package/scripts/test/test_slide_showcase_creative.json +0 -545
  26. package/scripts/test/test_slide_showcase_minimal.json +0 -501
  27. package/scripts/test/test_slide_showcase_pop.json +0 -547
  28. package/scripts/test/test_slide_showcase_warm.json +0 -486
  29. package/scripts/test/test_wipe_simple.json +0 -37
  30. package/scripts/test/zenn_combined_example.json +0 -39
  31. package/scripts/test/zenn_layout_samples.json +0 -92
  32. package/scripts/test/zenn_markdown_demo.json +0 -79
@@ -516,6 +516,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
516
516
  density?: "default" | "compact" | undefined;
517
517
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
518
518
  subtitleSize?: "default" | "big" | "lead" | undefined;
519
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
520
+ staggerMs?: number | undefined;
519
521
  } | {
520
522
  title: string;
521
523
  columns: {
@@ -714,6 +716,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
714
716
  density?: "default" | "compact" | undefined;
715
717
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
716
718
  subtitleSize?: "default" | "big" | "lead" | undefined;
719
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
720
+ staggerMs?: number | undefined;
717
721
  } | {
718
722
  title: string;
719
723
  left: {
@@ -1075,6 +1079,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1075
1079
  density?: "default" | "compact" | undefined;
1076
1080
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1077
1081
  subtitleSize?: "default" | "big" | "lead" | undefined;
1082
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1083
+ staggerMs?: number | undefined;
1078
1084
  } | {
1079
1085
  title: string;
1080
1086
  items: {
@@ -1264,6 +1270,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1264
1270
  density?: "default" | "compact" | undefined;
1265
1271
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1266
1272
  subtitleSize?: "default" | "big" | "lead" | undefined;
1273
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1274
+ staggerMs?: number | undefined;
1267
1275
  } | {
1268
1276
  quote: string;
1269
1277
  layout: "bigQuote";
@@ -1284,6 +1292,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1284
1292
  density?: "default" | "compact" | undefined;
1285
1293
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1286
1294
  subtitleSize?: "default" | "big" | "lead" | undefined;
1295
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1296
+ staggerMs?: number | undefined;
1287
1297
  } | {
1288
1298
  title: string;
1289
1299
  stats: {
@@ -1318,6 +1328,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1318
1328
  density?: "default" | "compact" | undefined;
1319
1329
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1320
1330
  subtitleSize?: "default" | "big" | "lead" | undefined;
1331
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1332
+ staggerMs?: number | undefined;
1321
1333
  } | {
1322
1334
  title: string;
1323
1335
  items: {
@@ -1346,6 +1358,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1346
1358
  density?: "default" | "compact" | undefined;
1347
1359
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1348
1360
  subtitleSize?: "default" | "big" | "lead" | undefined;
1361
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1362
+ staggerMs?: number | undefined;
1349
1363
  } | {
1350
1364
  layout: "split";
1351
1365
  left?: {
@@ -1703,6 +1717,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1703
1717
  density?: "default" | "compact" | undefined;
1704
1718
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1705
1719
  subtitleSize?: "default" | "big" | "lead" | undefined;
1720
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1721
+ staggerMs?: number | undefined;
1706
1722
  } | {
1707
1723
  title: string;
1708
1724
  cells: {
@@ -1900,6 +1916,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1900
1916
  density?: "default" | "compact" | undefined;
1901
1917
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1902
1918
  subtitleSize?: "default" | "big" | "lead" | undefined;
1919
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1920
+ staggerMs?: number | undefined;
1903
1921
  } | {
1904
1922
  title: string;
1905
1923
  headers: string[];
@@ -1936,6 +1954,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1936
1954
  density?: "default" | "compact" | undefined;
1937
1955
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1938
1956
  subtitleSize?: "default" | "big" | "lead" | undefined;
1957
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1958
+ staggerMs?: number | undefined;
1939
1959
  } | {
1940
1960
  title: string;
1941
1961
  stages: {
@@ -1969,6 +1989,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
1969
1989
  density?: "default" | "compact" | undefined;
1970
1990
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
1971
1991
  subtitleSize?: "default" | "big" | "lead" | undefined;
1992
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
1993
+ staggerMs?: number | undefined;
1972
1994
  } | {
1973
1995
  title: string;
1974
1996
  items: {
@@ -2003,6 +2025,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
2003
2025
  density?: "default" | "compact" | undefined;
2004
2026
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
2005
2027
  subtitleSize?: "default" | "big" | "lead" | undefined;
2028
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
2029
+ staggerMs?: number | undefined;
2006
2030
  } | {
2007
2031
  title: string;
2008
2032
  items: {
@@ -2036,6 +2060,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
2036
2060
  density?: "default" | "compact" | undefined;
2037
2061
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
2038
2062
  subtitleSize?: "default" | "big" | "lead" | undefined;
2063
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
2064
+ staggerMs?: number | undefined;
2039
2065
  };
2040
2066
  theme?: {
2041
2067
  colors: {
@@ -3026,6 +3052,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3026
3052
  density?: "default" | "compact" | undefined;
3027
3053
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3028
3054
  subtitleSize?: "default" | "big" | "lead" | undefined;
3055
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3056
+ staggerMs?: number | undefined;
3029
3057
  } | {
3030
3058
  title: string;
3031
3059
  columns: {
@@ -3224,6 +3252,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3224
3252
  density?: "default" | "compact" | undefined;
3225
3253
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3226
3254
  subtitleSize?: "default" | "big" | "lead" | undefined;
3255
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3256
+ staggerMs?: number | undefined;
3227
3257
  } | {
3228
3258
  title: string;
3229
3259
  left: {
@@ -3585,6 +3615,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3585
3615
  density?: "default" | "compact" | undefined;
3586
3616
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3587
3617
  subtitleSize?: "default" | "big" | "lead" | undefined;
3618
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3619
+ staggerMs?: number | undefined;
3588
3620
  } | {
3589
3621
  title: string;
3590
3622
  items: {
@@ -3774,6 +3806,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3774
3806
  density?: "default" | "compact" | undefined;
3775
3807
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3776
3808
  subtitleSize?: "default" | "big" | "lead" | undefined;
3809
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3810
+ staggerMs?: number | undefined;
3777
3811
  } | {
3778
3812
  quote: string;
3779
3813
  layout: "bigQuote";
@@ -3794,6 +3828,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3794
3828
  density?: "default" | "compact" | undefined;
3795
3829
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3796
3830
  subtitleSize?: "default" | "big" | "lead" | undefined;
3831
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3832
+ staggerMs?: number | undefined;
3797
3833
  } | {
3798
3834
  title: string;
3799
3835
  stats: {
@@ -3828,6 +3864,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3828
3864
  density?: "default" | "compact" | undefined;
3829
3865
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3830
3866
  subtitleSize?: "default" | "big" | "lead" | undefined;
3867
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3868
+ staggerMs?: number | undefined;
3831
3869
  } | {
3832
3870
  title: string;
3833
3871
  items: {
@@ -3856,6 +3894,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
3856
3894
  density?: "default" | "compact" | undefined;
3857
3895
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
3858
3896
  subtitleSize?: "default" | "big" | "lead" | undefined;
3897
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
3898
+ staggerMs?: number | undefined;
3859
3899
  } | {
3860
3900
  layout: "split";
3861
3901
  left?: {
@@ -4213,6 +4253,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4213
4253
  density?: "default" | "compact" | undefined;
4214
4254
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4215
4255
  subtitleSize?: "default" | "big" | "lead" | undefined;
4256
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4257
+ staggerMs?: number | undefined;
4216
4258
  } | {
4217
4259
  title: string;
4218
4260
  cells: {
@@ -4410,6 +4452,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4410
4452
  density?: "default" | "compact" | undefined;
4411
4453
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4412
4454
  subtitleSize?: "default" | "big" | "lead" | undefined;
4455
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4456
+ staggerMs?: number | undefined;
4413
4457
  } | {
4414
4458
  title: string;
4415
4459
  headers: string[];
@@ -4446,6 +4490,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4446
4490
  density?: "default" | "compact" | undefined;
4447
4491
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4448
4492
  subtitleSize?: "default" | "big" | "lead" | undefined;
4493
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4494
+ staggerMs?: number | undefined;
4449
4495
  } | {
4450
4496
  title: string;
4451
4497
  stages: {
@@ -4479,6 +4525,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4479
4525
  density?: "default" | "compact" | undefined;
4480
4526
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4481
4527
  subtitleSize?: "default" | "big" | "lead" | undefined;
4528
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4529
+ staggerMs?: number | undefined;
4482
4530
  } | {
4483
4531
  title: string;
4484
4532
  items: {
@@ -4513,6 +4561,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4513
4561
  density?: "default" | "compact" | undefined;
4514
4562
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4515
4563
  subtitleSize?: "default" | "big" | "lead" | undefined;
4564
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4565
+ staggerMs?: number | undefined;
4516
4566
  } | {
4517
4567
  title: string;
4518
4568
  items: {
@@ -4546,6 +4596,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
4546
4596
  density?: "default" | "compact" | undefined;
4547
4597
  titleSize?: "default" | "small" | "large" | "hero" | undefined;
4548
4598
  subtitleSize?: "default" | "big" | "lead" | undefined;
4599
+ intro?: "fade" | "fade-up" | "fade-down" | "slide-left" | "slide-right" | "zoom-in" | undefined;
4600
+ staggerMs?: number | undefined;
4549
4601
  };
4550
4602
  theme?: {
4551
4603
  colors: {
@@ -1,11 +1,11 @@
1
1
  import nodePath from "node:path";
2
2
  import { pathToFileURL } from "node:url";
3
3
  import { generateSlideHTML } from "@mulmocast/deck";
4
- import { slideThemes } from "../../data/slideThemes.js";
5
4
  import { renderHTMLToImage } from "../html_render.js";
6
5
  import { parrotingImagePath } from "./utils.js";
7
6
  import { pathToDataUrl } from "../../methods/mulmo_media_source.js";
8
7
  import { MulmoMediaSourceMethods } from "../../methods/mulmo_media_source.js";
8
+ import { MulmoPresentationStyleMethods } from "../../methods/mulmo_presentation_style.js";
9
9
  import { imageAction, imageFileTarget, unknownMediaType } from "../error_cause.js";
10
10
  export const imageType = "slide";
11
11
  const slideImageRefError = (refKey) => ({
@@ -95,9 +95,12 @@ const resolveTheme = (params) => {
95
95
  if (!beat.image || beat.image.type !== imageType) {
96
96
  throw new Error("resolveTheme called on non-slide beat");
97
97
  }
98
- const defaultTheme = context.presentationStyle.slideParams?.theme;
99
- const theme = beat.image.theme ?? defaultTheme ?? slideThemes.corporate;
100
- return theme;
98
+ // Single source of truth for the priority — the same method is now
99
+ // exposed via `MulmoPresentationStyleMethods` for browser callers
100
+ // (editor preview) so the deck-web preview and the PDF/movie
101
+ // render reach the same theme. See the docblock there for the
102
+ // priority spelled out.
103
+ return MulmoPresentationStyleMethods.getResolvedSlideTheme(context.presentationStyle, beat);
101
104
  };
102
105
  const resolveSlide = (params, converter = pathToDataUrl) => {
103
106
  const { beat, imageRefs } = params;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mulmocast",
3
- "version": "2.6.18",
3
+ "version": "2.6.20",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "lib/index.node.js",
@@ -104,14 +104,14 @@
104
104
  "@modelcontextprotocol/sdk": "^1.29.0",
105
105
  "@modernized/fluent-ffmpeg": "^1.0.0",
106
106
  "@mozilla/readability": "^0.6.0",
107
- "@mulmocast/deck": "^0.7.0",
107
+ "@mulmocast/deck": "^1.1.0",
108
108
  "@tavily/core": "^0.7.3",
109
109
  "archiver": "^7.0.1",
110
110
  "clipboardy": "^5.3.1",
111
111
  "dotenv": "^17.4.2",
112
- "graphai": "^2.0.17",
112
+ "graphai": "^2.0.18",
113
113
  "jsdom": "^29.1.1",
114
- "marked": "^18.0.4",
114
+ "marked": "^18.0.5",
115
115
  "mulmocast-vision": "^1.0.10",
116
116
  "ora": "^9.4.0",
117
117
  "puppeteer": "^25.1.0",
@@ -136,7 +136,7 @@
136
136
  "prettier": "^3.8.3",
137
137
  "tsx": "^4.22.4",
138
138
  "typescript": "6.0.3",
139
- "typescript-eslint": "^8.60.0"
139
+ "typescript-eslint": "^8.60.1"
140
140
  },
141
141
  "engines": {
142
142
  "node": ">=22.0.0"