@mulmocast/slide 0.1.7 → 0.3.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 (119) hide show
  1. package/.claude/skills/extend/SKILL.md +120 -0
  2. package/.claude/skills/extend/references/extended-script-schema.md +153 -0
  3. package/.claude/skills/narrate/SKILL.md +145 -0
  4. package/.claude/skills/narrate/references/extended-script-schema.md +153 -0
  5. package/README.md +154 -0
  6. package/lib/actions/bundle.js +14 -20
  7. package/lib/actions/bundle.js.map +1 -1
  8. package/lib/actions/common.d.ts +1 -1
  9. package/lib/actions/common.d.ts.map +1 -1
  10. package/lib/actions/common.js +26 -66
  11. package/lib/actions/common.js.map +1 -1
  12. package/lib/actions/extend-init.d.ts +2 -0
  13. package/lib/actions/extend-init.d.ts.map +1 -0
  14. package/lib/actions/extend-init.js +49 -0
  15. package/lib/actions/extend-init.js.map +1 -0
  16. package/lib/actions/extend-validate.d.ts +2 -0
  17. package/lib/actions/extend-validate.d.ts.map +1 -0
  18. package/lib/actions/extend-validate.js +56 -0
  19. package/lib/actions/extend-validate.js.map +1 -0
  20. package/lib/actions/movie.js +14 -20
  21. package/lib/actions/movie.js.map +1 -1
  22. package/lib/actions/preview.d.ts.map +1 -1
  23. package/lib/actions/preview.js +19 -55
  24. package/lib/actions/preview.js.map +1 -1
  25. package/lib/actions/upload.js +5 -44
  26. package/lib/actions/upload.js.map +1 -1
  27. package/lib/cli.js +60 -73
  28. package/lib/cli.js.map +1 -1
  29. package/lib/convert/markdown-plugins/directive.d.ts +1 -1
  30. package/lib/convert/markdown-plugins/directive.d.ts.map +1 -1
  31. package/lib/convert/markdown-plugins/directive.js +2 -5
  32. package/lib/convert/markdown-plugins/directive.js.map +1 -1
  33. package/lib/convert/markdown-plugins/index.d.ts +2 -2
  34. package/lib/convert/markdown-plugins/index.d.ts.map +1 -1
  35. package/lib/convert/markdown-plugins/index.js +23 -30
  36. package/lib/convert/markdown-plugins/index.js.map +1 -1
  37. package/lib/convert/markdown-plugins/layout.d.ts +91 -0
  38. package/lib/convert/markdown-plugins/layout.d.ts.map +1 -0
  39. package/lib/convert/markdown-plugins/layout.js +251 -0
  40. package/lib/convert/markdown-plugins/layout.js.map +1 -0
  41. package/lib/convert/markdown-plugins/mermaid.d.ts +1 -1
  42. package/lib/convert/markdown-plugins/mermaid.d.ts.map +1 -1
  43. package/lib/convert/markdown-plugins/mermaid.js +2 -5
  44. package/lib/convert/markdown-plugins/mermaid.js.map +1 -1
  45. package/lib/convert/markdown-plugins/types.d.ts +2 -0
  46. package/lib/convert/markdown-plugins/types.d.ts.map +1 -1
  47. package/lib/convert/markdown-plugins/types.js +1 -2
  48. package/lib/convert/markdown-plugins/types.js.map +1 -1
  49. package/lib/convert/markdown-transform.d.ts +42 -0
  50. package/lib/convert/markdown-transform.d.ts.map +1 -0
  51. package/lib/convert/markdown-transform.js +58 -0
  52. package/lib/convert/markdown-transform.js.map +1 -0
  53. package/lib/convert/markdown-utils-common.d.ts +21 -0
  54. package/lib/convert/markdown-utils-common.d.ts.map +1 -0
  55. package/lib/convert/markdown-utils-common.js +51 -0
  56. package/lib/convert/markdown-utils-common.js.map +1 -0
  57. package/lib/convert/markdown-utils.d.ts +4 -17
  58. package/lib/convert/markdown-utils.d.ts.map +1 -1
  59. package/lib/convert/markdown-utils.js +10 -91
  60. package/lib/convert/markdown-utils.js.map +1 -1
  61. package/lib/convert/markdown.d.ts +1 -1
  62. package/lib/convert/markdown.d.ts.map +1 -1
  63. package/lib/convert/markdown.js +36 -88
  64. package/lib/convert/markdown.js.map +1 -1
  65. package/lib/convert/marp.d.ts +4 -11
  66. package/lib/convert/marp.d.ts.map +1 -1
  67. package/lib/convert/marp.js +25 -119
  68. package/lib/convert/marp.js.map +1 -1
  69. package/lib/convert/movie.d.ts +1 -1
  70. package/lib/convert/movie.d.ts.map +1 -1
  71. package/lib/convert/movie.js +26 -64
  72. package/lib/convert/movie.js.map +1 -1
  73. package/lib/convert/movie_bundle.js +5 -44
  74. package/lib/convert/movie_bundle.js.map +1 -1
  75. package/lib/convert/pdf.d.ts +2 -1
  76. package/lib/convert/pdf.d.ts.map +1 -1
  77. package/lib/convert/pdf.js +27 -56
  78. package/lib/convert/pdf.js.map +1 -1
  79. package/lib/convert/pptx.d.ts +1 -1
  80. package/lib/convert/pptx.d.ts.map +1 -1
  81. package/lib/convert/pptx.js +31 -68
  82. package/lib/convert/pptx.js.map +1 -1
  83. package/lib/index.browser.d.ts +13 -0
  84. package/lib/index.browser.d.ts.map +1 -0
  85. package/lib/index.browser.js +13 -0
  86. package/lib/index.browser.js.map +1 -0
  87. package/lib/index.common.d.ts +17 -0
  88. package/lib/index.common.d.ts.map +1 -0
  89. package/lib/index.common.js +18 -0
  90. package/lib/index.common.js.map +1 -0
  91. package/lib/index.node.d.ts +11 -0
  92. package/lib/index.node.d.ts.map +1 -0
  93. package/lib/index.node.js +13 -0
  94. package/lib/index.node.js.map +1 -0
  95. package/lib/utils/audio-save.js +8 -49
  96. package/lib/utils/audio-save.js.map +1 -1
  97. package/lib/utils/bundle-server.js +6 -45
  98. package/lib/utils/bundle-server.js.map +1 -1
  99. package/lib/utils/dependencies.js +6 -43
  100. package/lib/utils/dependencies.js.map +1 -1
  101. package/lib/utils/lang-common.d.ts +10 -0
  102. package/lib/utils/lang-common.d.ts.map +1 -0
  103. package/lib/utils/lang-common.js +11 -0
  104. package/lib/utils/lang-common.js.map +1 -0
  105. package/lib/utils/lang.d.ts +3 -4
  106. package/lib/utils/lang.d.ts.map +1 -1
  107. package/lib/utils/lang.js +11 -21
  108. package/lib/utils/lang.js.map +1 -1
  109. package/lib/utils/llm.d.ts +1 -1
  110. package/lib/utils/llm.d.ts.map +1 -1
  111. package/lib/utils/llm.js +6 -46
  112. package/lib/utils/llm.js.map +1 -1
  113. package/lib/utils/pdf.d.ts +1 -1
  114. package/lib/utils/pdf.d.ts.map +1 -1
  115. package/lib/utils/pdf.js +13 -52
  116. package/lib/utils/pdf.js.map +1 -1
  117. package/lib/vue/main.js +4 -9
  118. package/lib/vue/main.js.map +1 -1
  119. package/package.json +22 -9
@@ -1,44 +1,38 @@
1
1
  #!/usr/bin/env tsx
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.runMulmoMovie = runMulmoMovie;
8
- const mulmocast_1 = require("mulmocast");
9
- const yargs_1 = __importDefault(require("yargs"));
10
- const helpers_1 = require("yargs/helpers");
11
- const common_1 = require("./common");
12
- async function runMulmoMovie(mulmoScriptPath, outputDir, options = {}) {
2
+ import { audio, images, movie, translate, captions, MulmoStudioContextMethods } from "mulmocast";
3
+ import yargs from "yargs";
4
+ import { hideBin } from "yargs/helpers";
5
+ import { initializeContext, runAction } from "./common.js";
6
+ export async function runMulmoMovie(mulmoScriptPath, outputDir, options = {}) {
13
7
  console.log(`\nGenerating movie with mulmo...`);
14
8
  console.log(` Input: ${mulmoScriptPath}`);
15
9
  console.log(` Output: ${outputDir}`);
16
- const context = await (0, common_1.initializeContext)(mulmoScriptPath, outputDir, {
10
+ const context = await initializeContext(mulmoScriptPath, outputDir, {
17
11
  targetLang: options.targetLang,
18
12
  captionLang: options.captionLang,
19
13
  });
20
14
  const current = { context };
21
15
  // Translate if needed (checks targetLang and captionLang)
22
- if (mulmocast_1.MulmoStudioContextMethods.needTranslate(current.context, true)) {
16
+ if (MulmoStudioContextMethods.needTranslate(current.context, true)) {
23
17
  console.log(" Translating...");
24
- current.context = await (0, mulmocast_1.translate)(current.context);
18
+ current.context = await translate(current.context);
25
19
  }
26
20
  console.log(" Generating audio...");
27
- current.context = await (0, mulmocast_1.audio)(current.context);
21
+ current.context = await audio(current.context);
28
22
  console.log(" Generating images...");
29
- current.context = await (0, mulmocast_1.images)(current.context);
23
+ current.context = await images(current.context);
30
24
  if (options.captionLang) {
31
25
  console.log(` Generating captions (${options.captionLang})...`);
32
- current.context = await (0, mulmocast_1.captions)(current.context);
26
+ current.context = await captions(current.context);
33
27
  }
34
28
  console.log(" Creating movie...");
35
- const result = await (0, mulmocast_1.movie)(current.context);
29
+ const result = await movie(current.context);
36
30
  if (!result) {
37
31
  throw new Error("Movie generation failed");
38
32
  }
39
33
  }
40
34
  async function main() {
41
- const argv = await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
35
+ const argv = await yargs(hideBin(process.argv))
42
36
  .usage("Usage: $0 <presentation-file> [options]")
43
37
  .command("$0 <file>", "Generate movie from presentation", (yargs) => {
44
38
  return yargs.positional("file", {
@@ -77,7 +71,7 @@ async function main() {
77
71
  const captionLang = argv.c;
78
72
  // Create a runner that captures options
79
73
  const runner = (mulmoScriptPath, outputDir) => runMulmoMovie(mulmoScriptPath, outputDir, { targetLang, captionLang });
80
- await (0, common_1.runAction)("Movie", argv.file, runner, {
74
+ await runAction("Movie", argv.file, runner, {
81
75
  force: argv.f,
82
76
  generateText: argv.g,
83
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"movie.js","sourceRoot":"","sources":["../../src/actions/movie.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"movie.js","sourceRoot":"","sources":["../../src/actions/movie.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/actions/preview.ts"],"names":[],"mappings":";AAgCA,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAqB,GAAG,IAAI,CAiFpE"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/actions/preview.ts"],"names":[],"mappings":";AAoCA,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAqB,GAAG,IAAI,CAiFpE"}
@@ -1,63 +1,27 @@
1
1
  #!/usr/bin/env tsx
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
- exports.startPreviewServer = startPreviewServer;
41
- const http = __importStar(require("http"));
42
- const fs = __importStar(require("fs"));
43
- const path = __importStar(require("path"));
44
- const dotenv_1 = __importDefault(require("dotenv"));
45
- const audio_save_1 = require("../utils/audio-save");
46
- const bundle_server_1 = require("../utils/bundle-server");
2
+ import * as http from "http";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import { fileURLToPath } from "node:url";
6
+ import dotenv from "dotenv";
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ import { saveBeatText, transcribeAudio, parseRequestBody, } from "../utils/audio-save.js";
10
+ import { findBundles, getMimeType, isValidFile, createFileStream } from "../utils/bundle-server.js";
47
11
  // Load .env file
48
- dotenv_1.default.config();
12
+ dotenv.config();
49
13
  const DEFAULT_PORT = 3000;
50
14
  // Serve static file
51
15
  function serveFile(res, filePath) {
52
- if (!(0, bundle_server_1.isValidFile)(filePath)) {
16
+ if (!isValidFile(filePath)) {
53
17
  res.writeHead(404, { "Content-Type": "text/plain" });
54
18
  res.end("Not Found");
55
19
  return;
56
20
  }
57
- res.writeHead(200, { "Content-Type": (0, bundle_server_1.getMimeType)(filePath) });
58
- (0, bundle_server_1.createFileStream)(filePath).pipe(res);
21
+ res.writeHead(200, { "Content-Type": getMimeType(filePath) });
22
+ createFileStream(filePath).pipe(res);
59
23
  }
60
- function startPreviewServer(port = DEFAULT_PORT) {
24
+ export function startPreviewServer(port = DEFAULT_PORT) {
61
25
  const cwd = process.cwd();
62
26
  const outputDir = path.join(cwd, "output");
63
27
  // Find the Vue build directory
@@ -78,33 +42,33 @@ function startPreviewServer(port = DEFAULT_PORT) {
78
42
  const pathname = url.pathname;
79
43
  // API endpoint for bundles list
80
44
  if (pathname === "/api/bundles") {
81
- const bundles = (0, bundle_server_1.findBundles)(outputDir);
45
+ const bundles = findBundles(outputDir);
82
46
  res.writeHead(200, { "Content-Type": "application/json" });
83
47
  res.end(JSON.stringify(bundles));
84
48
  return;
85
49
  }
86
50
  // API endpoint for saving recorded audio
87
51
  if (pathname === "/api/save-beat-text" && req.method === "POST") {
88
- const body = await (0, audio_save_1.parseRequestBody)(req);
52
+ const body = await parseRequestBody(req);
89
53
  if (!body) {
90
54
  res.writeHead(400, { "Content-Type": "application/json" });
91
55
  res.end(JSON.stringify({ success: false, error: "Invalid request body" }));
92
56
  return;
93
57
  }
94
- const result = (0, audio_save_1.saveBeatText)(outputDir, body);
58
+ const result = saveBeatText(outputDir, body);
95
59
  res.writeHead(result.success ? 200 : 400, { "Content-Type": "application/json" });
96
60
  res.end(JSON.stringify(result));
97
61
  return;
98
62
  }
99
63
  // API endpoint for transcribing audio
100
64
  if (pathname === "/api/transcribe" && req.method === "POST") {
101
- const body = await (0, audio_save_1.parseRequestBody)(req);
65
+ const body = await parseRequestBody(req);
102
66
  if (!body) {
103
67
  res.writeHead(400, { "Content-Type": "application/json" });
104
68
  res.end(JSON.stringify({ success: false, error: "Invalid request body" }));
105
69
  return;
106
70
  }
107
- const result = await (0, audio_save_1.transcribeAudio)(body);
71
+ const result = await transcribeAudio(body);
108
72
  res.writeHead(result.success ? 200 : 400, { "Content-Type": "application/json" });
109
73
  res.end(JSON.stringify(result));
110
74
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/actions/preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/actions/preview.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,8 @@
1
1
  #!/usr/bin/env tsx
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
- exports.uploadBundleDir = uploadBundleDir;
41
- const dotenv_1 = __importDefault(require("dotenv"));
42
- const fs = __importStar(require("fs"));
43
- const path = __importStar(require("path"));
44
- dotenv_1.default.config({ quiet: true });
2
+ import dotenv from "dotenv";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ dotenv.config({ quiet: true });
45
6
  const API_BASE_URL = "https://mulmocast-app-dev.web.app/api/1.0";
46
7
  const MAX_RETRIES = 3;
47
8
  const INITIAL_DELAY_MS = 1000;
@@ -105,7 +66,7 @@ async function uploadFileToR2(sign, mediaDir) {
105
66
  }
106
67
  return false;
107
68
  }
108
- async function uploadBundleDir(bundleDir, apiKey) {
69
+ export async function uploadBundleDir(bundleDir, apiKey) {
109
70
  const jsonFilePath = path.join(bundleDir, "mulmo_view.json");
110
71
  if (!fs.existsSync(jsonFilePath)) {
111
72
  throw new Error(`mulmo_view.json not found in ${bundleDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/actions/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/actions/upload.ts"],"names":[],"mappings":"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"}
package/lib/cli.js CHANGED
@@ -1,60 +1,22 @@
1
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 markdown_1 = require("./convert/markdown");
44
- const pptx_1 = require("./convert/pptx");
45
- const pdf_1 = require("./convert/pdf");
46
- const movie_1 = require("./convert/movie");
47
- const child_process_1 = require("child_process");
48
- const path = __importStar(require("path"));
49
- const fs = __importStar(require("fs"));
50
- const lang_1 = require("./utils/lang");
51
- const common_1 = require("./actions/common");
52
- const movie_2 = require("./actions/movie");
53
- const bundle_1 = require("./actions/bundle");
54
- const preview_1 = require("./actions/preview");
2
+ import yargs from "yargs";
3
+ import { hideBin } from "yargs/helpers";
4
+ import { convertMarp } from "./convert/marp.js";
5
+ import { convertMarkdown } from "./convert/markdown.js";
6
+ import { convertPptx } from "./convert/pptx.js";
7
+ import { convertPdf } from "./convert/pdf.js";
8
+ import { convertMovie } from "./convert/movie.js";
9
+ import { execSync } from "child_process";
10
+ import * as path from "path";
11
+ import * as fs from "fs";
12
+ import { langOption } from "./utils/lang.js";
13
+ import { detectFileType, getBasename, convertToMulmoScript, getMulmoScriptPath, getKeynoteScriptPath, } from "./actions/common.js";
14
+ import { runMulmoMovie } from "./actions/movie.js";
15
+ import { runMulmoBundle } from "./actions/bundle.js";
16
+ import { startPreviewServer } from "./actions/preview.js";
55
17
  // Common options for conversion commands
56
18
  const convertOptions = {
57
- ...lang_1.langOption,
19
+ ...langOption,
58
20
  g: {
59
21
  alias: "generate-text",
60
22
  type: "boolean",
@@ -64,7 +26,7 @@ const convertOptions = {
64
26
  };
65
27
  // Options for action commands (movie, bundle)
66
28
  const actionOptions = {
67
- ...lang_1.langOption,
29
+ ...langOption,
68
30
  f: {
69
31
  alias: "force",
70
32
  type: "boolean",
@@ -134,6 +96,11 @@ const markdownOptions = {
134
96
  description: "Remove Marp-style directives (<!-- _class: ... -->)",
135
97
  default: false,
136
98
  },
99
+ layout: {
100
+ type: "boolean",
101
+ description: "Auto-detect layout based on content (row-2, 2x2)",
102
+ default: false,
103
+ },
137
104
  style: {
138
105
  type: "string",
139
106
  description: "Markdown slide style (e.g., corporate-blue, finance-green)",
@@ -161,7 +128,7 @@ async function runConvert(type, file, options) {
161
128
  }
162
129
  switch (type) {
163
130
  case "marp":
164
- await (0, marp_1.convertMarp)({
131
+ await convertMarp({
165
132
  inputPath,
166
133
  lang: options.lang,
167
134
  generateText: options.generateText,
@@ -170,32 +137,33 @@ async function runConvert(type, file, options) {
170
137
  });
171
138
  break;
172
139
  case "markdown":
173
- await (0, markdown_1.convertMarkdown)({
140
+ await convertMarkdown({
174
141
  inputPath,
175
142
  lang: options.lang,
176
143
  generateText: options.generateText,
177
144
  separator: options.separator,
178
145
  mermaid: options.mermaid,
179
146
  directive: options.directive,
147
+ layout: options.layout,
180
148
  style: options.style,
181
149
  });
182
150
  break;
183
151
  case "pptx":
184
- await (0, pptx_1.convertPptx)({
152
+ await convertPptx({
185
153
  inputPath,
186
154
  lang: options.lang,
187
155
  generateText: options.generateText,
188
156
  });
189
157
  break;
190
158
  case "pdf":
191
- await (0, pdf_1.convertPdf)({
159
+ await convertPdf({
192
160
  inputPath,
193
161
  lang: options.lang,
194
162
  generateText: options.generateText,
195
163
  });
196
164
  break;
197
165
  case "movie":
198
- await (0, movie_1.convertMovie)({
166
+ await convertMovie({
199
167
  inputPath,
200
168
  lang: options.lang,
201
169
  bundle: options.bundle,
@@ -203,8 +171,8 @@ async function runConvert(type, file, options) {
203
171
  });
204
172
  break;
205
173
  case "keynote": {
206
- const scriptPath = (0, common_1.getKeynoteScriptPath)();
207
- (0, child_process_1.execSync)(`osascript "${scriptPath}" "${inputPath}"`, {
174
+ const scriptPath = getKeynoteScriptPath();
175
+ execSync(`osascript "${scriptPath}" "${inputPath}"`, {
208
176
  stdio: "inherit",
209
177
  cwd: process.cwd(),
210
178
  });
@@ -218,18 +186,18 @@ async function runAction(action, file, options) {
218
186
  console.error(`File not found: ${inputPath}`);
219
187
  process.exit(1);
220
188
  }
221
- const fileType = (0, common_1.detectFileType)(inputPath);
222
- const basename = (0, common_1.getBasename)(inputPath);
189
+ const fileType = detectFileType(inputPath);
190
+ const basename = getBasename(inputPath);
223
191
  const outputDir = path.join("output", basename);
224
192
  if (!fs.existsSync(outputDir)) {
225
193
  fs.mkdirSync(outputDir, { recursive: true });
226
194
  }
227
- const mulmoScriptPath = (0, common_1.getMulmoScriptPath)(basename);
195
+ const mulmoScriptPath = getMulmoScriptPath(basename);
228
196
  if (!options.force && fs.existsSync(mulmoScriptPath)) {
229
197
  console.log(`\n✓ Using existing MulmoScript: ${mulmoScriptPath}`);
230
198
  }
231
199
  else {
232
- await (0, common_1.convertToMulmoScript)(inputPath, fileType, {
200
+ await convertToMulmoScript(inputPath, fileType, {
233
201
  generateText: options.generateText,
234
202
  lang: options.lang,
235
203
  });
@@ -239,19 +207,19 @@ async function runAction(action, file, options) {
239
207
  console.log(`\n✓ MulmoScript generated: ${mulmoScriptPath}`);
240
208
  }
241
209
  if (action === "movie") {
242
- await (0, movie_2.runMulmoMovie)(mulmoScriptPath, outputDir, {
210
+ await runMulmoMovie(mulmoScriptPath, outputDir, {
243
211
  targetLang: options.targetLang,
244
212
  captionLang: options.captionLang,
245
213
  });
246
214
  }
247
215
  else {
248
- await (0, bundle_1.runMulmoBundle)(mulmoScriptPath, outputDir);
216
+ await runMulmoBundle(mulmoScriptPath, outputDir);
249
217
  }
250
218
  console.log(`\n✓ ${action === "movie" ? "Movie" : "Bundle"} generation complete!`);
251
219
  console.log(` Output directory: ${outputDir}`);
252
220
  }
253
221
  async function runUpload(basename) {
254
- const dotenv = await Promise.resolve().then(() => __importStar(require("dotenv")));
222
+ const dotenv = await import("dotenv");
255
223
  dotenv.config();
256
224
  const apiKey = process.env.MULMO_MEDIA_API_KEY;
257
225
  if (!apiKey) {
@@ -272,12 +240,12 @@ async function runUpload(basename) {
272
240
  }
273
241
  const bundleDir = path.join(outputDir, bundleEntry.name);
274
242
  // Dynamic import to avoid loading upload code unnecessarily
275
- const { uploadBundleDir } = await Promise.resolve().then(() => __importStar(require("./actions/upload")));
243
+ const { uploadBundleDir } = await import("./actions/upload.js");
276
244
  const result = await uploadBundleDir(bundleDir, apiKey);
277
245
  console.log(`\n✓ Upload complete!`);
278
246
  console.log(` Upload path: ${result.uploadPath}`);
279
247
  }
280
- (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
248
+ yargs(hideBin(process.argv))
281
249
  .scriptName("mulmo-slide")
282
250
  .usage("$0 <command> [options]")
283
251
  .command("marp <file>", "Convert Marp markdown to MulmoScript", (yargs) => {
@@ -311,6 +279,7 @@ async function runUpload(basename) {
311
279
  separator: argv.s,
312
280
  mermaid: argv.mermaid,
313
281
  directive: argv.directive,
282
+ layout: argv.layout,
314
283
  style: argv.style,
315
284
  });
316
285
  })
@@ -365,7 +334,7 @@ async function runUpload(basename) {
365
334
  console.error(`File not found: ${inputPath}`);
366
335
  process.exit(1);
367
336
  }
368
- const fileType = (0, common_1.detectFileType)(inputPath);
337
+ const fileType = detectFileType(inputPath);
369
338
  const targetLangsStr = argv["target-langs"];
370
339
  await runConvert(fileType, argv.file, {
371
340
  lang: argv.l,
@@ -436,6 +405,24 @@ async function runUpload(basename) {
436
405
  }, async (argv) => {
437
406
  await runUpload(argv.basename);
438
407
  })
408
+ .command("extend", "Manage /extend Claude Code skill", (yargs) => {
409
+ return yargs
410
+ .command("init", "Install /extend skill into current project (.claude/skills/extend/)", () => { }, async () => {
411
+ const { runExtendInit } = await import("./actions/extend-init.js");
412
+ runExtendInit();
413
+ })
414
+ .command("validate <file>", "Validate an ExtendedScript JSON file against the schema", (yargs) => {
415
+ return yargs.positional("file", {
416
+ describe: "ExtendedScript JSON file to validate",
417
+ type: "string",
418
+ demandOption: true,
419
+ });
420
+ }, async (argv) => {
421
+ const { runExtendValidate } = await import("./actions/extend-validate.js");
422
+ runExtendValidate(argv.file);
423
+ })
424
+ .demandCommand(1, "Use 'mulmo-slide extend init' or 'mulmo-slide extend validate <file>'");
425
+ }, () => { })
439
426
  .command("preview [port]", "Start MulmoViewer preview server", (yargs) => {
440
427
  return yargs.positional("port", {
441
428
  describe: "Port number for the server",
@@ -443,7 +430,7 @@ async function runUpload(basename) {
443
430
  default: 3000,
444
431
  });
445
432
  }, (argv) => {
446
- (0, preview_1.startPreviewServer)(argv.port);
433
+ startPreviewServer(argv.port);
447
434
  })
448
435
  .demandCommand(1, "You need to specify a command")
449
436
  .strict()