marhup 0.1.7 → 0.1.9

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 (130) hide show
  1. package/README.md +481 -4
  2. package/dist/cli.js +659 -78
  3. package/dist/cli.js.map +1 -1
  4. package/dist/errors.d.ts +29 -0
  5. package/dist/errors.d.ts.map +1 -0
  6. package/dist/errors.js +62 -0
  7. package/dist/errors.js.map +1 -0
  8. package/dist/generator/code.d.ts +4 -3
  9. package/dist/generator/code.d.ts.map +1 -1
  10. package/dist/generator/code.js +7 -7
  11. package/dist/generator/code.js.map +1 -1
  12. package/dist/generator/gen-animations.d.ts +13 -0
  13. package/dist/generator/gen-animations.d.ts.map +1 -0
  14. package/dist/generator/gen-animations.js +77 -0
  15. package/dist/generator/gen-animations.js.map +1 -0
  16. package/dist/generator/image.d.ts +4 -3
  17. package/dist/generator/image.d.ts.map +1 -1
  18. package/dist/generator/image.js +67 -80
  19. package/dist/generator/image.js.map +1 -1
  20. package/dist/generator/index.d.ts +2 -0
  21. package/dist/generator/index.d.ts.map +1 -1
  22. package/dist/generator/index.js +9 -18
  23. package/dist/generator/index.js.map +1 -1
  24. package/dist/generator/list.d.ts +4 -3
  25. package/dist/generator/list.d.ts.map +1 -1
  26. package/dist/generator/list.js +15 -17
  27. package/dist/generator/list.js.map +1 -1
  28. package/dist/generator/mermaid.d.ts +9 -4
  29. package/dist/generator/mermaid.d.ts.map +1 -1
  30. package/dist/generator/mermaid.js +120 -85
  31. package/dist/generator/mermaid.js.map +1 -1
  32. package/dist/generator/pptx.d.ts +1 -1
  33. package/dist/generator/pptx.d.ts.map +1 -1
  34. package/dist/generator/pptx.js +232 -60
  35. package/dist/generator/pptx.js.map +1 -1
  36. package/dist/generator/presentation.d.ts +149 -0
  37. package/dist/generator/presentation.d.ts.map +1 -0
  38. package/dist/generator/presentation.js +163 -0
  39. package/dist/generator/presentation.js.map +1 -0
  40. package/dist/generator/table.d.ts +4 -3
  41. package/dist/generator/table.d.ts.map +1 -1
  42. package/dist/generator/table.js +12 -33
  43. package/dist/generator/table.js.map +1 -1
  44. package/dist/generator/text.d.ts +5 -4
  45. package/dist/generator/text.d.ts.map +1 -1
  46. package/dist/generator/text.js +34 -20
  47. package/dist/generator/text.js.map +1 -1
  48. package/dist/generator/video.d.ts +18 -0
  49. package/dist/generator/video.d.ts.map +1 -0
  50. package/dist/generator/video.js +83 -0
  51. package/dist/generator/video.js.map +1 -0
  52. package/dist/index.d.ts +8 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +144 -55
  55. package/dist/index.js.map +1 -1
  56. package/dist/layout/auto.d.ts +14 -2
  57. package/dist/layout/auto.d.ts.map +1 -1
  58. package/dist/layout/auto.js +129 -37
  59. package/dist/layout/auto.js.map +1 -1
  60. package/dist/layout/engine.d.ts +1 -1
  61. package/dist/layout/engine.d.ts.map +1 -1
  62. package/dist/layout/engine.js +10 -12
  63. package/dist/layout/engine.js.map +1 -1
  64. package/dist/layout/index.d.ts +1 -1
  65. package/dist/layout/index.d.ts.map +1 -1
  66. package/dist/layout/index.js +2 -10
  67. package/dist/layout/index.js.map +1 -1
  68. package/dist/layout/types.d.ts +1 -0
  69. package/dist/layout/types.d.ts.map +1 -1
  70. package/dist/layout/types.js +1 -2
  71. package/dist/layout/types.js.map +1 -1
  72. package/dist/mcp-handlers.d.ts.map +1 -1
  73. package/dist/mcp-handlers.js +45 -54
  74. package/dist/mcp-handlers.js.map +1 -1
  75. package/dist/mcp.js +10 -12
  76. package/dist/mcp.js.map +1 -1
  77. package/dist/parser/frontmatter.d.ts.map +1 -1
  78. package/dist/parser/frontmatter.js +95 -16
  79. package/dist/parser/frontmatter.js.map +1 -1
  80. package/dist/parser/grid.d.ts +5 -7
  81. package/dist/parser/grid.d.ts.map +1 -1
  82. package/dist/parser/grid.js +217 -30
  83. package/dist/parser/grid.js.map +1 -1
  84. package/dist/parser/index.js +3 -13
  85. package/dist/parser/index.js.map +1 -1
  86. package/dist/parser/markdown.d.ts +1 -1
  87. package/dist/parser/markdown.d.ts.map +1 -1
  88. package/dist/parser/markdown.js +249 -137
  89. package/dist/parser/markdown.js.map +1 -1
  90. package/dist/theme/default.d.ts +1 -1
  91. package/dist/theme/default.d.ts.map +1 -1
  92. package/dist/theme/default.js +16 -8
  93. package/dist/theme/default.js.map +1 -1
  94. package/dist/theme/index.d.ts +11 -0
  95. package/dist/theme/index.d.ts.map +1 -1
  96. package/dist/theme/index.js +70 -7
  97. package/dist/theme/index.js.map +1 -1
  98. package/dist/types/index.d.ts +56 -2
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/types/index.js +4 -6
  101. package/dist/types/index.js.map +1 -1
  102. package/dist/types/plugin.d.ts +50 -0
  103. package/dist/types/plugin.d.ts.map +1 -0
  104. package/dist/types/plugin.js +5 -0
  105. package/dist/types/plugin.js.map +1 -0
  106. package/dist/utils/file-lock.d.ts +27 -0
  107. package/dist/utils/file-lock.d.ts.map +1 -0
  108. package/dist/utils/file-lock.js +118 -0
  109. package/dist/utils/file-lock.js.map +1 -0
  110. package/dist/utils/i18n.d.ts +5 -0
  111. package/dist/utils/i18n.d.ts.map +1 -0
  112. package/dist/utils/i18n.js +41 -0
  113. package/dist/utils/i18n.js.map +1 -0
  114. package/dist/utils/logger.d.ts +7 -0
  115. package/dist/utils/logger.d.ts.map +1 -0
  116. package/dist/utils/logger.js +43 -0
  117. package/dist/utils/logger.js.map +1 -0
  118. package/dist/utils/path-validation.d.ts +20 -0
  119. package/dist/utils/path-validation.d.ts.map +1 -0
  120. package/dist/utils/path-validation.js +39 -0
  121. package/dist/utils/path-validation.js.map +1 -0
  122. package/dist/utils/plugin-manager.d.ts +18 -0
  123. package/dist/utils/plugin-manager.d.ts.map +1 -0
  124. package/dist/utils/plugin-manager.js +108 -0
  125. package/dist/utils/plugin-manager.js.map +1 -0
  126. package/dist/utils/sanitizer.d.ts +14 -0
  127. package/dist/utils/sanitizer.d.ts.map +1 -0
  128. package/dist/utils/sanitizer.js +73 -0
  129. package/dist/utils/sanitizer.js.map +1 -0
  130. package/package.json +23 -8
@@ -1,90 +1,262 @@
1
- "use strict";
2
1
  /**
3
2
  * PPTX生成メインモジュール
4
3
  */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.generatePptx = generatePptx;
10
- const pptxgenjs_1 = __importDefault(require("pptxgenjs"));
11
- const index_1 = require("../layout/index");
12
- const index_2 = require("../parser/index");
13
- const index_3 = require("../theme/index");
14
- const text_1 = require("./text");
15
- const image_1 = require("./image");
16
- const table_1 = require("./table");
17
- const list_1 = require("./list");
18
- const code_1 = require("./code");
19
- const mermaid_1 = require("./mermaid");
20
- // スライドサイズ(インチ)- 16:9
21
- const SLIDE_SIZE = { width: 10, height: 5.625 };
4
+ import * as fs from 'fs';
5
+ import { layoutSlide, gridToCoordinates } from '../layout/index.js';
6
+ import { parseGridString } from '../parser/index.js';
7
+ import { resolveStyleClasses, resolveTheme } from '../theme/index.js';
8
+ import { addTextElement, addHeadingElement } from './text.js';
9
+ import { addImageElement } from './image.js';
10
+ import { addVideoElement } from './video.js';
11
+ import { addTableElement } from './table.js';
12
+ import { addListElement } from './list.js';
13
+ import { addCodeElement } from './code.js';
14
+ import { addMermaidElement, cleanupTempDir } from './mermaid.js';
15
+ import { GenerationError } from '../errors.js';
16
+ import { withFileLock } from '../utils/file-lock.js';
17
+ import { createPresentation } from './presentation.js';
18
+ import { pluginManager } from '../utils/plugin-manager.js';
19
+ import { sanitizeText, sanitizeElement } from '../utils/sanitizer.js';
20
+ import logger from '../utils/logger.js';
21
+ // スライドサイズ(インチ)- 16:10 for compatibility with PowerPoint 2007+
22
+ // PowerPoint 2007 only supports 4:3 and 16:10 layouts, not 16:9
23
+ const SLIDE_SIZE = { width: 10, height: 6.25 };
22
24
  const MARGIN = 0.5;
23
25
  /**
24
26
  * ParsedDocumentからPPTXを生成
25
27
  */
26
- async function generatePptx(document, outputPath, basePath) {
27
- const pptx = new pptxgenjs_1.default();
28
- // プレゼンテーション設定
29
- pptx.layout = 'LAYOUT_16x9';
30
- pptx.title = document.globalFrontmatter.title || 'Presentation';
31
- pptx.author = 'marhup';
32
- // グローバルグリッド設定
33
- const globalGridStr = document.globalFrontmatter.grid || '12x9';
34
- // 各スライドを生成
35
- for (const slide of document.slides) {
36
- const pptxSlide = pptx.addSlide();
37
- // スライドのグリッド設定
38
- const slideGridStr = slide.frontmatter.grid || globalGridStr;
39
- const slideGrid = (0, index_2.parseGridString)(slideGridStr);
40
- // レイアウト計算
41
- const layout = (0, index_1.layoutSlide)(slide, document.globalFrontmatter);
42
- // 要素を配置
43
- for (const element of layout.elements) {
44
- await addElement(pptxSlide, element, slideGrid, basePath);
28
+ export async function generatePptx(document, outputPath, basePath) {
29
+ logger.info('Starting PPTX generation', { outputPath, basePath, slideCount: document.slides.length });
30
+ return withFileLock(outputPath, async () => {
31
+ // 既存ファイルのバックアップ(プロセス固有の名前)
32
+ const timestamp = Date.now();
33
+ const randomId = Math.random().toString(36).substring(2, 15);
34
+ const backupPath = `${outputPath}.bak.${timestamp}.${randomId}`;
35
+ if (fs.existsSync(outputPath)) {
36
+ fs.renameSync(outputPath, backupPath);
37
+ logger.debug(`Created backup: ${backupPath}`);
45
38
  }
46
- }
47
- // ファイル保存
48
- await pptx.writeFile({ fileName: outputPath });
39
+ const tempFiles = [];
40
+ try {
41
+ const pptx = createPresentation({
42
+ layout: 'LAYOUT_16x10',
43
+ title: sanitizeText(document.globalFrontmatter.title || 'Presentation'),
44
+ author: 'marhup'
45
+ });
46
+ logger.debug('Created PPTX presentation', { title: document.globalFrontmatter.title });
47
+ // グローバルテーマを取得
48
+ const globalTheme = resolveTheme(document.globalFrontmatter.theme, basePath);
49
+ logger.debug('Resolved global theme', { theme: document.globalFrontmatter.theme });
50
+ // スライドマスターの設定(テーマが指定されている場合)
51
+ if (globalTheme.slideMaster) {
52
+ pptx.defineSlideMaster({
53
+ title: 'MASTER_SLIDE',
54
+ background: globalTheme.slideMaster.backgroundColor ? { color: globalTheme.slideMaster.backgroundColor } : undefined,
55
+ margin: globalTheme.slideMaster.margin ? [
56
+ globalTheme.slideMaster.margin.top,
57
+ globalTheme.slideMaster.margin.bottom,
58
+ globalTheme.slideMaster.margin.left,
59
+ globalTheme.slideMaster.margin.right
60
+ ] : undefined,
61
+ });
62
+ logger.debug('Defined slide master');
63
+ }
64
+ // グローバルグリッド設定
65
+ const globalGridStr = document.globalFrontmatter.grid || '12x9';
66
+ // すべての要素のcontentをサニタイズ
67
+ document.slides.forEach(slide => slide.elements.forEach(sanitizeElement));
68
+ // 各スライドを生成
69
+ for (const slide of document.slides) {
70
+ const slideIndex = document.slides.indexOf(slide) + 1;
71
+ logger.debug(`Processing slide ${slideIndex}/${document.slides.length}`, { elementCount: slide.elements.length });
72
+ // スライド遷移設定
73
+ const slideOptions = {};
74
+ // マスタースライドを使用(定義されている場合)
75
+ if (globalTheme.slideMaster) {
76
+ slideOptions.master = 'MASTER_SLIDE';
77
+ }
78
+ // スライド固有の遷移設定
79
+ if (slide.frontmatter?.transition) {
80
+ slideOptions.transition = {
81
+ type: slide.frontmatter.transition.type,
82
+ ...(slide.frontmatter.transition.duration && { duration: slide.frontmatter.transition.duration }),
83
+ ...(slide.frontmatter.transition.direction && { direction: slide.frontmatter.transition.direction }),
84
+ ...(slide.frontmatter.transition.speed && { speed: slide.frontmatter.transition.speed }),
85
+ };
86
+ logger.debug('Applied slide transition', { transition: slideOptions.transition });
87
+ }
88
+ const pptxSlide = pptx.addSlide(slideOptions);
89
+ // スライドのグリッド設定
90
+ const slideGridStr = slide.frontmatter?.grid || globalGridStr;
91
+ const slideGrid = parseGridString(slideGridStr);
92
+ // テーマ解決(スライド固有 > グローバル)
93
+ const theme = resolveTheme(slide.frontmatter.theme || document.globalFrontmatter.theme);
94
+ // スライド固有の背景グラデーションを適用
95
+ // Note: Gradient backgrounds are defined but temporarily disabled due to PptxGenJS compatibility issues
96
+ // if (theme.gradients?.background) {
97
+ // const gradient = theme.gradients.background;
98
+ // if (gradient.type === 'linear') {
99
+ // pptxSlide.background = {
100
+ // fill: {
101
+ // type: 'gradient',
102
+ // gradient: {
103
+ // type: 'linear',
104
+ // angle: gradient.angle || 0,
105
+ // stops: gradient.colors.map((color, index) => ({
106
+ // position: index / (gradient.colors.length - 1),
107
+ // color: color.replace('#', ''),
108
+ // })),
109
+ // },
110
+ // },
111
+ // };
112
+ // }
113
+ // }
114
+ // レイアウト計算
115
+ const layout = layoutSlide(slide, document.globalFrontmatter, slideIndex);
116
+ logger.debug(`Calculated layout for slide ${slideIndex}`, { elementCount: layout.elements.length });
117
+ // 要素を配置
118
+ for (const element of layout.elements) {
119
+ logger.debug(`Adding element to slide ${slideIndex}`, { type: element.type, position: element.position });
120
+ const temps = await addElement(pptxSlide, element, slideGrid, slide, theme, basePath);
121
+ tempFiles.push(...temps);
122
+ }
123
+ }
124
+ // ファイル保存
125
+ logger.debug('Writing PPTX file', { outputPath });
126
+ await pptx.writeFile({ fileName: outputPath });
127
+ logger.info('PPTX file written successfully');
128
+ // 一時ファイルをクリーンアップ
129
+ for (const file of tempFiles) {
130
+ try {
131
+ fs.unlinkSync(file);
132
+ logger.debug('Cleaned up temporary file', { file });
133
+ }
134
+ catch (error) {
135
+ logger.warn('Failed to clean up temporary file', { file, error: error instanceof Error ? error.message : String(error) });
136
+ }
137
+ }
138
+ // 成功したらバックアップを削除
139
+ if (fs.existsSync(backupPath)) {
140
+ fs.unlinkSync(backupPath);
141
+ logger.debug('Removed backup file');
142
+ }
143
+ }
144
+ catch (error) {
145
+ logger.error('PPTX generation failed', { outputPath, error: error instanceof Error ? error.message : String(error) });
146
+ // Clean up temporary files
147
+ for (const file of tempFiles) {
148
+ try {
149
+ fs.unlinkSync(file);
150
+ logger.debug('Cleaned up temporary file during error recovery', { file });
151
+ }
152
+ catch (cleanupError) {
153
+ logger.warn('Failed to clean up temporary file during error recovery', { file, error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError) });
154
+ }
155
+ }
156
+ // Restore backup if it exists
157
+ if (fs.existsSync(backupPath)) {
158
+ try {
159
+ fs.renameSync(backupPath, outputPath);
160
+ logger.info('Restored previous version from backup');
161
+ }
162
+ catch (restoreError) {
163
+ logger.error('Failed to restore backup', { backupPath, error: restoreError instanceof Error ? restoreError.message : String(restoreError) });
164
+ }
165
+ }
166
+ else {
167
+ // Remove partially generated file
168
+ if (fs.existsSync(outputPath)) {
169
+ try {
170
+ fs.unlinkSync(outputPath);
171
+ logger.debug('Removed partially generated file');
172
+ }
173
+ catch (deleteError) {
174
+ logger.warn('Failed to delete partial output file', { outputPath, error: deleteError instanceof Error ? deleteError.message : String(deleteError) });
175
+ }
176
+ }
177
+ }
178
+ // Throw a more descriptive error
179
+ if (error instanceof GenerationError) {
180
+ throw error;
181
+ }
182
+ throw new GenerationError(`PPTX generation failed: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, 'Check your markdown content, grid positions, and output permissions', outputPath);
183
+ }
184
+ finally {
185
+ // 一時ファイルをクリーンアップ
186
+ for (const file of tempFiles) {
187
+ try {
188
+ if (fs.existsSync(file)) {
189
+ fs.unlinkSync(file);
190
+ logger.debug('Cleaned up temporary file', { file });
191
+ }
192
+ }
193
+ catch (cleanupError) {
194
+ logger.warn('Failed to clean up temporary file', { file, error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError) });
195
+ }
196
+ }
197
+ // Mermaidの一時ディレクトリをクリーンアップ
198
+ cleanupTempDir();
199
+ }
200
+ });
49
201
  }
50
202
  /**
51
203
  * 要素をスライドに追加
52
204
  */
53
- async function addElement(slide, element, grid, basePath) {
205
+ async function addElement(slide, element, grid, slideData, theme, basePath) {
206
+ logger.debug('Adding element to slide', { type: element.type, position: element.position });
54
207
  // グリッド位置を座標に変換
55
- const coords = (0, index_1.gridToCoordinates)(element.position, grid, SLIDE_SIZE, MARGIN);
208
+ const coords = gridToCoordinates(element.position, grid, SLIDE_SIZE, MARGIN);
209
+ logger.debug('Converted grid position to coordinates', { position: element.position, coords });
56
210
  // スタイルを解決
57
211
  const styleProps = element.style?.classes
58
- ? (0, index_3.resolveStyleClasses)(element.style.classes)
212
+ ? resolveStyleClasses(element.style.classes, slideData.frontmatter.classes)
59
213
  : {};
214
+ logger.debug('Resolved style classes', { classes: element.style?.classes, styleProps });
215
+ // Check plugin generator first
216
+ const pluginGenerator = pluginManager.getElementGenerator(element.type);
217
+ if (pluginGenerator) {
218
+ const context = { grid, slideData, theme, basePath, coords, styleProps };
219
+ return await pluginGenerator(element, slide, context);
220
+ }
60
221
  // 要素タイプに応じて追加
61
222
  switch (element.type) {
62
223
  case 'heading':
63
- (0, text_1.addHeadingElement)(slide, element, coords, styleProps);
64
- break;
224
+ logger.debug('Adding heading element');
225
+ addHeadingElement(slide, element, coords, styleProps, theme, element.animation);
226
+ return [];
65
227
  case 'paragraph':
66
- (0, text_1.addTextElement)(slide, element, coords, styleProps);
67
- break;
228
+ logger.debug('Adding paragraph element');
229
+ addTextElement(slide, element, coords, styleProps, theme, element.animation);
230
+ return [];
68
231
  case 'list':
69
- (0, list_1.addListElement)(slide, element, coords, styleProps);
70
- break;
232
+ logger.debug('Adding list element');
233
+ addListElement(slide, element, coords, styleProps, theme, element.animation);
234
+ return [];
71
235
  case 'image':
72
- (0, image_1.addImageElement)(slide, element, coords, styleProps, basePath);
73
- break;
236
+ logger.debug('Adding image element');
237
+ addImageElement(slide, element, coords, styleProps, basePath, element.animation);
238
+ return [];
239
+ case 'video':
240
+ logger.debug('Adding video element');
241
+ addVideoElement(slide, element, coords, styleProps, basePath, element.animation);
242
+ return [];
74
243
  case 'table':
75
- (0, table_1.addTableElement)(slide, element, coords, styleProps);
76
- break;
244
+ logger.debug('Adding table element');
245
+ addTableElement(slide, element, coords, styleProps, theme, element.animation);
246
+ return [];
77
247
  case 'code':
78
- (0, code_1.addCodeElement)(slide, element, coords, styleProps);
79
- break;
248
+ logger.debug('Adding code element');
249
+ addCodeElement(slide, element, coords, styleProps, theme, element.animation);
250
+ return [];
80
251
  case 'blockquote':
81
- (0, text_1.addTextElement)(slide, element, coords, { ...styleProps, italic: true });
82
- break;
252
+ logger.debug('Adding blockquote element');
253
+ addTextElement(slide, element, coords, { ...styleProps, italic: true }, theme);
254
+ return [];
83
255
  case 'mermaid':
84
- await (0, mermaid_1.addMermaidElement)(slide, element, coords, styleProps);
85
- break;
256
+ logger.debug('Adding mermaid element');
257
+ return await addMermaidElement(slide, element, coords, styleProps, element.animation);
86
258
  default:
87
- console.warn('未対応の要素タイプ:', element.type);
259
+ throw new GenerationError(`Unsupported element type: ${element.type}`, undefined, 'Check your markdown content for valid element types');
88
260
  }
89
261
  }
90
262
  //# sourceMappingURL=pptx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pptx.js","sourceRoot":"","sources":["../../src/generator/pptx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pptx.js","sourceRoot":"","sources":["../../src/generator/pptx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Presentation abstraction layer to reduce dependency on external libraries
3
+ */
4
+ export interface PresentationOptions {
5
+ title?: string;
6
+ author?: string;
7
+ layout?: string;
8
+ }
9
+ export interface SlideOptions {
10
+ master?: string;
11
+ transition?: {
12
+ type?: string;
13
+ duration?: number;
14
+ direction?: string;
15
+ speed?: string;
16
+ };
17
+ }
18
+ export interface TextOptions {
19
+ fontSize?: number;
20
+ color?: string;
21
+ bold?: boolean;
22
+ italic?: boolean;
23
+ underline?: {
24
+ style?: 'none' | 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dbl' | 'dotDash' | 'dotDotDash' | 'dotDotDashHeavy' | 'dotted' | 'dottedHeavy' | 'heavy' | 'sng' | 'wavy' | 'wavyDbl' | 'wavyHeavy';
25
+ color?: string;
26
+ };
27
+ align?: 'left' | 'center' | 'right' | 'justify';
28
+ valign?: 'top' | 'middle' | 'bottom';
29
+ margin?: number;
30
+ bullet?: boolean;
31
+ indentLevel?: number;
32
+ fontFace?: string;
33
+ shadow?: {
34
+ type: 'none' | 'outer' | 'inner';
35
+ color: string;
36
+ blur: number;
37
+ offset: number;
38
+ angle: number;
39
+ };
40
+ animation?: {
41
+ type: string;
42
+ duration?: number;
43
+ delay?: number;
44
+ };
45
+ }
46
+ export interface ImageOptions {
47
+ sizing?: {
48
+ type: 'contain' | 'cover' | 'crop';
49
+ w: number;
50
+ h: number;
51
+ x?: number;
52
+ y?: number;
53
+ };
54
+ altText?: string;
55
+ animation?: {
56
+ type: string;
57
+ duration?: number;
58
+ delay?: number;
59
+ };
60
+ }
61
+ export interface TableOptions {
62
+ colW?: number[];
63
+ animation?: {
64
+ type: string;
65
+ duration?: number;
66
+ delay?: number;
67
+ };
68
+ }
69
+ export interface CodeOptions {
70
+ fontSize?: number;
71
+ color?: string;
72
+ backgroundColor?: string;
73
+ animation?: {
74
+ type: string;
75
+ duration?: number;
76
+ delay?: number;
77
+ };
78
+ }
79
+ export interface MediaOptions {
80
+ type: 'video' | 'audio';
81
+ animation?: {
82
+ type: string;
83
+ duration?: number;
84
+ delay?: number;
85
+ };
86
+ }
87
+ export interface ISlide {
88
+ addText(text: string, options: TextOptions & {
89
+ x: number;
90
+ y: number;
91
+ w: number;
92
+ h: number;
93
+ }): void;
94
+ addImage(path: string, options: ImageOptions & {
95
+ x: number;
96
+ y: number;
97
+ w: number;
98
+ h: number;
99
+ }): void;
100
+ addMedia(path: string, options: MediaOptions & {
101
+ x: number;
102
+ y: number;
103
+ w: number;
104
+ h: number;
105
+ }): void;
106
+ addTable(rows: string[][], options: TableOptions & {
107
+ x: number;
108
+ y: number;
109
+ w: number;
110
+ h: number;
111
+ }): void;
112
+ addShape(shape: string, options: {
113
+ x: number;
114
+ y: number;
115
+ w: number;
116
+ h: number;
117
+ fill?: string | {
118
+ color: string;
119
+ };
120
+ line?: string | {
121
+ color: string;
122
+ };
123
+ }): void;
124
+ setTransition(transition: {
125
+ type?: string;
126
+ duration?: number;
127
+ direction?: string;
128
+ speed?: string;
129
+ }): void;
130
+ }
131
+ export interface IPresentation {
132
+ addSlide(options?: SlideOptions): ISlide;
133
+ defineSlideMaster(options: {
134
+ title: string;
135
+ background?: {
136
+ color?: string;
137
+ };
138
+ margin?: [number, number, number, number];
139
+ }): void;
140
+ writeFile(options: {
141
+ fileName: string;
142
+ }): Promise<void>;
143
+ setTitle(title: string): void;
144
+ setAuthor(author: string): void;
145
+ setLayout(layout: string): void;
146
+ }
147
+ export declare function createPresentation(options?: PresentationOptions): IPresentation;
148
+ export declare function createSlide(presentation: IPresentation, options?: SlideOptions): ISlide;
149
+ //# sourceMappingURL=presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/generator/presentation.ts"],"names":[],"mappings":"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"}