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.
- package/lib/methods/mulmo_presentation_style.d.ts +18 -0
- package/lib/methods/mulmo_presentation_style.js +23 -0
- package/lib/types/schema.d.ts +468 -0
- package/lib/utils/context.d.ts +52 -0
- package/lib/utils/image_plugins/slide.js +7 -4
- package/package.json +5 -5
- package/scripts/test/cinematic_showcase.json +0 -1356
- package/scripts/test/golden_age_of_discovery.json +0 -270
- package/scripts/test/image-2.png +0 -0
- package/scripts/test/img_detector.png +0 -0
- package/scripts/test/img_higgs.png +0 -0
- package/scripts/test/img_lhc.png +0 -0
- package/scripts/test/macoro_anime_proto.json +0 -120
- package/scripts/test/minimum_beats_completed.json +0 -45
- package/scripts/test/test_all_elevenlabs_tts_model.json +0 -111
- package/scripts/test/test_all_gemini_tts_model.json +0 -433
- package/scripts/test/test_all_image.json +0 -49
- package/scripts/test/test_all_movie.json +0 -33
- package/scripts/test/test_captions_2.json +0 -31
- package/scripts/test/test_genai2.json +0 -25
- package/scripts/test/test_lipsync5.json +0 -66
- package/scripts/test/test_reference.json +0 -0
- package/scripts/test/test_slide_image_ref_gemini_en.json +0 -289
- package/scripts/test/test_slide_showcase_corporate.json +0 -497
- package/scripts/test/test_slide_showcase_creative.json +0 -545
- package/scripts/test/test_slide_showcase_minimal.json +0 -501
- package/scripts/test/test_slide_showcase_pop.json +0 -547
- package/scripts/test/test_slide_showcase_warm.json +0 -486
- package/scripts/test/test_wipe_simple.json +0 -37
- package/scripts/test/zenn_combined_example.json +0 -39
- package/scripts/test/zenn_layout_samples.json +0 -92
- package/scripts/test/zenn_markdown_demo.json +0 -79
package/lib/utils/context.d.ts
CHANGED
|
@@ -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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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.
|
|
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": "^
|
|
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.
|
|
112
|
+
"graphai": "^2.0.18",
|
|
113
113
|
"jsdom": "^29.1.1",
|
|
114
|
-
"marked": "^18.0.
|
|
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.
|
|
139
|
+
"typescript-eslint": "^8.60.1"
|
|
140
140
|
},
|
|
141
141
|
"engines": {
|
|
142
142
|
"node": ">=22.0.0"
|