@mulmocast/slide 0.1.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.
Files changed (47) hide show
  1. package/README.md +458 -0
  2. package/lib/actions/bundle.d.ts +3 -0
  3. package/lib/actions/bundle.d.ts.map +1 -0
  4. package/lib/actions/bundle.js +60 -0
  5. package/lib/actions/bundle.js.map +1 -0
  6. package/lib/actions/common.d.ts +21 -0
  7. package/lib/actions/common.d.ts.map +1 -0
  8. package/lib/actions/common.js +159 -0
  9. package/lib/actions/common.js.map +1 -0
  10. package/lib/actions/movie.d.ts +3 -0
  11. package/lib/actions/movie.d.ts.map +1 -0
  12. package/lib/actions/movie.js +58 -0
  13. package/lib/actions/movie.js.map +1 -0
  14. package/lib/actions/upload.d.ts +6 -0
  15. package/lib/actions/upload.d.ts.map +1 -0
  16. package/lib/actions/upload.js +172 -0
  17. package/lib/actions/upload.js.map +1 -0
  18. package/lib/cli.d.ts +3 -0
  19. package/lib/cli.d.ts.map +1 -0
  20. package/lib/cli.js +301 -0
  21. package/lib/cli.js.map +1 -0
  22. package/lib/convert/marp.d.ts +22 -0
  23. package/lib/convert/marp.d.ts.map +1 -0
  24. package/lib/convert/marp.js +375 -0
  25. package/lib/convert/marp.js.map +1 -0
  26. package/lib/convert/pdf.d.ts +14 -0
  27. package/lib/convert/pdf.d.ts.map +1 -0
  28. package/lib/convert/pdf.js +130 -0
  29. package/lib/convert/pdf.js.map +1 -0
  30. package/lib/convert/pptx.d.ts +13 -0
  31. package/lib/convert/pptx.d.ts.map +1 -0
  32. package/lib/convert/pptx.js +138 -0
  33. package/lib/convert/pptx.js.map +1 -0
  34. package/lib/utils/lang.d.ts +16 -0
  35. package/lib/utils/lang.d.ts.map +1 -0
  36. package/lib/utils/lang.js +37 -0
  37. package/lib/utils/lang.js.map +1 -0
  38. package/lib/utils/llm.d.ts +21 -0
  39. package/lib/utils/llm.d.ts.map +1 -0
  40. package/lib/utils/llm.js +200 -0
  41. package/lib/utils/llm.js.map +1 -0
  42. package/lib/utils/pdf.d.ts +37 -0
  43. package/lib/utils/pdf.d.ts.map +1 -0
  44. package/lib/utils/pdf.js +142 -0
  45. package/lib/utils/pdf.js.map +1 -0
  46. package/package.json +67 -0
  47. package/tools/keynote/extract.scpt +195 -0
package/lib/cli.js ADDED
@@ -0,0 +1,301 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const yargs_1 = __importDefault(require("yargs"));
41
+ const helpers_1 = require("yargs/helpers");
42
+ const marp_1 = require("./convert/marp");
43
+ const pptx_1 = require("./convert/pptx");
44
+ const pdf_1 = require("./convert/pdf");
45
+ const child_process_1 = require("child_process");
46
+ const path = __importStar(require("path"));
47
+ const fs = __importStar(require("fs"));
48
+ const mulmocast_1 = require("mulmocast");
49
+ const lang_1 = require("./utils/lang");
50
+ const common_1 = require("./actions/common");
51
+ // Common options for conversion commands
52
+ const convertOptions = {
53
+ ...lang_1.langOption,
54
+ g: {
55
+ alias: "generate-text",
56
+ type: "boolean",
57
+ description: "Generate narration text using LLM",
58
+ default: false,
59
+ },
60
+ };
61
+ // Options for action commands (movie, bundle)
62
+ const actionOptions = {
63
+ ...lang_1.langOption,
64
+ f: {
65
+ alias: "force",
66
+ type: "boolean",
67
+ description: "Force regenerate MulmoScript",
68
+ default: false,
69
+ },
70
+ g: {
71
+ alias: "generate-text",
72
+ type: "boolean",
73
+ description: "Generate narration text using LLM (only when generating)",
74
+ default: false,
75
+ },
76
+ };
77
+ // Marp-specific options
78
+ const marpOptions = {
79
+ ...convertOptions,
80
+ theme: {
81
+ type: "string",
82
+ description: "Path to custom theme CSS file",
83
+ },
84
+ "allow-local-files": {
85
+ type: "boolean",
86
+ description: "Allow local file access in Marp",
87
+ default: false,
88
+ },
89
+ };
90
+ async function runConvert(type, file, options) {
91
+ const inputPath = path.resolve(file);
92
+ if (!fs.existsSync(inputPath)) {
93
+ console.error(`File not found: ${inputPath}`);
94
+ process.exit(1);
95
+ }
96
+ switch (type) {
97
+ case "marp":
98
+ await (0, marp_1.convertMarp)({
99
+ inputPath,
100
+ lang: options.lang,
101
+ generateText: options.generateText,
102
+ themePath: options.theme,
103
+ allowLocalFiles: options.allowLocalFiles,
104
+ });
105
+ break;
106
+ case "pptx":
107
+ await (0, pptx_1.convertPptx)({
108
+ inputPath,
109
+ lang: options.lang,
110
+ generateText: options.generateText,
111
+ });
112
+ break;
113
+ case "pdf":
114
+ await (0, pdf_1.convertPdf)({
115
+ inputPath,
116
+ lang: options.lang,
117
+ generateText: options.generateText,
118
+ });
119
+ break;
120
+ case "keynote": {
121
+ const scriptPath = (0, common_1.getKeynoteScriptPath)();
122
+ (0, child_process_1.execSync)(`osascript "${scriptPath}" "${inputPath}"`, {
123
+ stdio: "inherit",
124
+ cwd: process.cwd(),
125
+ });
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ async function runAction(action, file, options) {
131
+ const inputPath = path.resolve(file);
132
+ if (!fs.existsSync(inputPath)) {
133
+ console.error(`File not found: ${inputPath}`);
134
+ process.exit(1);
135
+ }
136
+ const fileType = (0, common_1.detectFileType)(inputPath);
137
+ const basename = (0, common_1.getBasename)(inputPath);
138
+ const outputDir = path.join("output", basename);
139
+ if (!fs.existsSync(outputDir)) {
140
+ fs.mkdirSync(outputDir, { recursive: true });
141
+ }
142
+ const mulmoScriptPath = (0, common_1.getMulmoScriptPath)(basename);
143
+ if (!options.force && fs.existsSync(mulmoScriptPath)) {
144
+ console.log(`\n✓ Using existing MulmoScript: ${mulmoScriptPath}`);
145
+ }
146
+ else {
147
+ await (0, common_1.convertToMulmoScript)(inputPath, fileType, {
148
+ generateText: options.generateText,
149
+ lang: options.lang,
150
+ });
151
+ if (!fs.existsSync(mulmoScriptPath)) {
152
+ throw new Error(`MulmoScript not generated: ${mulmoScriptPath}`);
153
+ }
154
+ console.log(`\n✓ MulmoScript generated: ${mulmoScriptPath}`);
155
+ }
156
+ const context = await (0, common_1.initializeContext)(mulmoScriptPath, outputDir);
157
+ if (action === "movie") {
158
+ console.log("Generating audio...");
159
+ const audioContext = await (0, mulmocast_1.audio)(context);
160
+ console.log("Generating images...");
161
+ const imageContext = await (0, mulmocast_1.images)(audioContext);
162
+ console.log("Creating movie...");
163
+ const result = await (0, mulmocast_1.movie)(imageContext);
164
+ if (!result) {
165
+ throw new Error("Movie generation failed");
166
+ }
167
+ }
168
+ else {
169
+ console.log("Generating bundle...");
170
+ await (0, mulmocast_1.mulmoViewerBundle)(context, { skipZip: true });
171
+ }
172
+ console.log(`\n✓ ${action === "movie" ? "Movie" : "Bundle"} generation complete!`);
173
+ console.log(` Output directory: ${outputDir}`);
174
+ }
175
+ async function runUpload(basename) {
176
+ const dotenv = await Promise.resolve().then(() => __importStar(require("dotenv")));
177
+ dotenv.config();
178
+ const apiKey = process.env.MULMO_MEDIA_API_KEY;
179
+ if (!apiKey) {
180
+ console.error("Error: MULMO_MEDIA_API_KEY environment variable is not set");
181
+ process.exit(1);
182
+ }
183
+ const outputDir = path.join("output", basename);
184
+ if (!fs.existsSync(outputDir)) {
185
+ console.error(`Output directory not found: ${outputDir}`);
186
+ process.exit(1);
187
+ }
188
+ // Find bundle directory containing mulmo_view.json
189
+ const entries = fs.readdirSync(outputDir, { withFileTypes: true });
190
+ const bundleEntry = entries.find((entry) => entry.isDirectory() && fs.existsSync(path.join(outputDir, entry.name, "mulmo_view.json")));
191
+ if (!bundleEntry) {
192
+ console.error(`mulmo_view.json not found in ${outputDir}`);
193
+ process.exit(1);
194
+ }
195
+ const bundleDir = path.join(outputDir, bundleEntry.name);
196
+ // Dynamic import to avoid loading upload code unnecessarily
197
+ const { uploadBundleDir } = await Promise.resolve().then(() => __importStar(require("./actions/upload")));
198
+ const result = await uploadBundleDir(bundleDir, apiKey);
199
+ console.log(`\n✓ Upload complete!`);
200
+ console.log(` Upload path: ${result.uploadPath}`);
201
+ }
202
+ (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
203
+ .scriptName("mulmo-slide")
204
+ .usage("$0 <command> [options]")
205
+ .command("marp <file>", "Convert Marp markdown to MulmoScript", (yargs) => {
206
+ return yargs
207
+ .positional("file", {
208
+ describe: "Marp markdown file to convert",
209
+ type: "string",
210
+ demandOption: true,
211
+ })
212
+ .options(marpOptions);
213
+ }, async (argv) => {
214
+ await runConvert("marp", argv.file, {
215
+ lang: argv.l,
216
+ generateText: argv.g,
217
+ theme: argv.theme,
218
+ allowLocalFiles: argv["allow-local-files"],
219
+ });
220
+ })
221
+ .command("pptx <file>", "Convert PowerPoint to MulmoScript", (yargs) => {
222
+ return yargs
223
+ .positional("file", {
224
+ describe: "PPTX file to convert",
225
+ type: "string",
226
+ demandOption: true,
227
+ })
228
+ .options(convertOptions);
229
+ }, async (argv) => {
230
+ await runConvert("pptx", argv.file, {
231
+ lang: argv.l,
232
+ generateText: argv.g,
233
+ });
234
+ })
235
+ .command("pdf <file>", "Convert PDF to MulmoScript", (yargs) => {
236
+ return yargs
237
+ .positional("file", {
238
+ describe: "PDF file to convert",
239
+ type: "string",
240
+ demandOption: true,
241
+ })
242
+ .options(convertOptions);
243
+ }, async (argv) => {
244
+ await runConvert("pdf", argv.file, {
245
+ lang: argv.l,
246
+ generateText: argv.g,
247
+ });
248
+ })
249
+ .command("keynote <file>", "Convert Keynote to MulmoScript (macOS only)", (yargs) => {
250
+ return yargs.positional("file", {
251
+ describe: "Keynote file to convert",
252
+ type: "string",
253
+ demandOption: true,
254
+ });
255
+ }, async (argv) => {
256
+ await runConvert("keynote", argv.file, {});
257
+ })
258
+ .command("movie <file>", "Generate movie from presentation", (yargs) => {
259
+ return yargs
260
+ .positional("file", {
261
+ describe: "Presentation file (.pptx, .md, .key, .pdf)",
262
+ type: "string",
263
+ demandOption: true,
264
+ })
265
+ .options(actionOptions);
266
+ }, async (argv) => {
267
+ await runAction("movie", argv.file, {
268
+ force: argv.f,
269
+ generateText: argv.g,
270
+ lang: argv.l,
271
+ });
272
+ })
273
+ .command("bundle <file>", "Generate MulmoViewer bundle from presentation", (yargs) => {
274
+ return yargs
275
+ .positional("file", {
276
+ describe: "Presentation file (.pptx, .md, .key, .pdf)",
277
+ type: "string",
278
+ demandOption: true,
279
+ })
280
+ .options(actionOptions);
281
+ }, async (argv) => {
282
+ await runAction("bundle", argv.file, {
283
+ force: argv.f,
284
+ generateText: argv.g,
285
+ lang: argv.l,
286
+ });
287
+ })
288
+ .command("upload <basename>", "Upload bundle to MulmoCast server", (yargs) => {
289
+ return yargs.positional("basename", {
290
+ describe: "Basename of the bundle to upload",
291
+ type: "string",
292
+ demandOption: true,
293
+ });
294
+ }, async (argv) => {
295
+ await runUpload(argv.basename);
296
+ })
297
+ .demandCommand(1, "You need to specify a command")
298
+ .strict()
299
+ .help()
300
+ .parse();
301
+ //# sourceMappingURL=cli.js.map
package/lib/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env tsx
2
+ import { type SupportedLang } from "../utils/lang";
3
+ export interface ConvertMarpOptions {
4
+ inputPath: string;
5
+ outputDir?: string;
6
+ themePath?: string;
7
+ allowLocalFiles?: boolean;
8
+ lang?: SupportedLang;
9
+ generateText?: boolean;
10
+ }
11
+ export interface ConvertMarpResult {
12
+ mulmoScriptPath: string;
13
+ markdownScriptPath: string;
14
+ slideCount: number;
15
+ }
16
+ export declare function parseSlides(content: string): string[];
17
+ export declare function extractNotesFromSlide(slideContent: string): string;
18
+ export declare function extractNotesFromSlides(slides: string[]): string[];
19
+ export declare function extractMarkdownFromSlide(slideContent: string): string[];
20
+ export declare function extractMarkdownFromSlides(slides: string[]): string[][];
21
+ export declare function convertMarp(options: ConvertMarpOptions): Promise<ConvertMarpResult>;
22
+ //# sourceMappingURL=marp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marp.d.ts","sourceRoot":"","sources":["../../src/convert/marp.ts"],"names":[],"mappings":";AAWA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAUrD;AAGD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIlE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASjE;AAGD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvE;AAGD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAQtE;AAyMD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4FzF"}