file2md 1.1.9 → 1.1.10

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.
@@ -2,12 +2,14 @@ import type { Buffer } from 'node:buffer';
2
2
  import type { ImageExtractor } from '../utils/image-extractor.js';
3
3
  import type { ChartExtractor } from '../utils/chart-extractor.js';
4
4
  import { type SlideRenderOptions } from '../utils/slide-renderer.js';
5
+ import { type SlideLayout } from '../utils/pptx-visual-parser.js';
5
6
  import type { ImageData, ChartData } from '../types/interfaces.js';
6
7
  export interface PptxParseOptions {
7
8
  readonly preserveLayout?: boolean;
8
9
  readonly extractImages?: boolean;
9
10
  readonly extractCharts?: boolean;
10
11
  readonly useSlideScreenshots?: boolean;
12
+ readonly useVisualParser?: boolean;
11
13
  readonly slideRenderOptions?: SlideRenderOptions;
12
14
  readonly outputDir?: string;
13
15
  }
@@ -17,6 +19,7 @@ export interface PptxParseResult {
17
19
  readonly charts: readonly ChartData[];
18
20
  readonly slideCount: number;
19
21
  readonly metadata: Record<string, unknown>;
22
+ readonly visualLayouts?: readonly SlideLayout[];
20
23
  }
21
24
  /**
22
25
  * Parse PPTX buffer and convert to markdown with layout preservation
@@ -1 +1 @@
1
- {"version":3,"file":"pptx-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAOD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAuB1B"}
1
+ {"version":3,"file":"pptx-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACjD;AAOD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAuB1B"}
@@ -2,6 +2,7 @@ import JSZip from 'jszip';
2
2
  import { parseStringPromise } from 'xml2js';
3
3
  import path from 'node:path';
4
4
  import { SlideRenderer } from '../utils/slide-renderer.js';
5
+ import { PptxVisualParser } from '../utils/pptx-visual-parser.js';
5
6
  import { ParseError } from '../types/errors.js';
6
7
  /**
7
8
  * Parse PPTX buffer and convert to markdown with layout preservation
@@ -27,12 +28,26 @@ async function parsePptxWithSlideScreenshots(buffer, imageExtractor, chartExtrac
27
28
  const outputDir = options.outputDir || './images';
28
29
  const slideRenderer = new SlideRenderer(outputDir);
29
30
  try {
31
+ // Enhanced visual parsing if requested
32
+ let visualLayouts;
33
+ if (options.useVisualParser !== false) {
34
+ try {
35
+ const visualParser = new PptxVisualParser();
36
+ visualLayouts = await visualParser.parseVisualElements(buffer);
37
+ console.log(`Visual parser extracted ${visualLayouts.length} slide layouts`);
38
+ }
39
+ catch (visualError) {
40
+ console.warn('Visual parsing failed, continuing with standard processing:', visualError);
41
+ }
42
+ }
30
43
  // Convert PPTX to slide images
31
44
  const renderResult = await slideRenderer.renderSlidesToImages(buffer, options.slideRenderOptions);
32
45
  // Extract title from PPTX metadata for better markdown generation
33
46
  const title = await extractPptxTitle(buffer);
34
- // Generate markdown with slide images
35
- const markdown = slideRenderer.generateSlideMarkdown(renderResult.slideImages, title);
47
+ // Generate enhanced markdown with visual layouts if available
48
+ const markdown = visualLayouts
49
+ ? generateEnhancedMarkdownWithLayouts(renderResult.slideImages, visualLayouts, title)
50
+ : slideRenderer.generateSlideMarkdown(renderResult.slideImages, title);
36
51
  // Still extract charts if requested (need to load zip for chart extraction)
37
52
  let extractedCharts = [];
38
53
  if (options.extractCharts !== false) {
@@ -49,11 +64,13 @@ async function parsePptxWithSlideScreenshots(buffer, imageExtractor, chartExtrac
49
64
  images: renderResult.slideImages,
50
65
  charts: extractedCharts.map(chart => chart.data),
51
66
  slideCount: renderResult.slideCount,
67
+ visualLayouts,
52
68
  metadata: {
53
69
  totalSlides: renderResult.slideCount,
54
70
  hasImages: renderResult.slideImages.length > 0,
55
71
  hasCharts: extractedCharts.length > 0,
56
72
  renderMethod: 'slide-screenshots',
73
+ hasVisualLayouts: visualLayouts !== undefined,
57
74
  ...renderResult.metadata
58
75
  }
59
76
  };
@@ -201,4 +218,67 @@ async function extractLegacySlideContent(xmlContent, imageExtractor, extractedIm
201
218
  throw new ParseError('PPTX', `Failed to extract legacy content from slide: ${message}`, error);
202
219
  }
203
220
  }
221
+ /**
222
+ * Generate enhanced markdown with visual layout information
223
+ */
224
+ function generateEnhancedMarkdownWithLayouts(slideImages, visualLayouts, title) {
225
+ let markdown = '';
226
+ if (title) {
227
+ markdown += `# ${title}\n\n`;
228
+ }
229
+ for (let i = 0; i < slideImages.length; i++) {
230
+ const slide = slideImages[i];
231
+ const layout = visualLayouts[i];
232
+ const slideNumber = i + 1;
233
+ // Generate slide header with enhanced information
234
+ if (layout?.title) {
235
+ markdown += `## Slide ${slideNumber}: ${layout.title}\n\n`;
236
+ }
237
+ else {
238
+ markdown += `## Slide ${slideNumber}\n\n`;
239
+ }
240
+ // Use relative path for markdown image reference
241
+ const relativePath = path.relative(process.cwd(), slide.savedPath)
242
+ .replace(/\\/g, '/'); // Ensure forward slashes for markdown
243
+ markdown += `![Slide ${slideNumber}](${relativePath})\n\n`;
244
+ // Add layout information if available
245
+ if (layout && layout.elements.length > 0) {
246
+ markdown += `### Slide Content Summary\n\n`;
247
+ // Categorize elements
248
+ const textElements = layout.elements.filter(e => e.type === 'text');
249
+ const imageElements = layout.elements.filter(e => e.type === 'image');
250
+ const chartElements = layout.elements.filter(e => e.type === 'chart');
251
+ const tableElements = layout.elements.filter(e => e.type === 'table');
252
+ const shapeElements = layout.elements.filter(e => e.type === 'shape');
253
+ // Add text content
254
+ if (textElements.length > 0) {
255
+ markdown += `**Text Elements (${textElements.length}):**\n`;
256
+ textElements.forEach((element, index) => {
257
+ if (element.type === 'text' && element.content?.text) {
258
+ const textContent = element.content.text.trim();
259
+ if (textContent) {
260
+ markdown += `${index + 1}. ${textContent.substring(0, 100)}${textContent.length > 100 ? '...' : ''}\n`;
261
+ }
262
+ }
263
+ });
264
+ markdown += '\n';
265
+ }
266
+ // Add visual element counts
267
+ if (imageElements.length > 0) {
268
+ markdown += `**Images:** ${imageElements.length} embedded image(s)\n`;
269
+ }
270
+ if (chartElements.length > 0) {
271
+ markdown += `**Charts:** ${chartElements.length} chart(s)\n`;
272
+ }
273
+ if (tableElements.length > 0) {
274
+ markdown += `**Tables:** ${tableElements.length} table(s)\n`;
275
+ }
276
+ if (shapeElements.length > 0) {
277
+ markdown += `**Shapes:** ${shapeElements.length} shape(s)\n`;
278
+ }
279
+ markdown += '\n';
280
+ }
281
+ }
282
+ return markdown.trim();
283
+ }
204
284
  //# sourceMappingURL=pptx-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { EventEmitter } from 'events';
2
+ export interface ConversionOptions {
3
+ quality?: 'low' | 'medium' | 'high' | 'maximum';
4
+ timeout?: number;
5
+ outputFormat?: string;
6
+ additionalArgs?: string[];
7
+ }
8
+ export interface ConversionProgress {
9
+ stage: 'starting' | 'converting' | 'completed' | 'error';
10
+ percentage?: number;
11
+ message?: string;
12
+ }
13
+ export declare class LibreOfficeConverter extends EventEmitter {
14
+ private readonly detector;
15
+ constructor();
16
+ /**
17
+ * Convert PPTX to PDF with enhanced options
18
+ */
19
+ convertToPdf(inputBuffer: Buffer, options?: ConversionOptions): Promise<Buffer>;
20
+ /**
21
+ * Get PDF filter string based on quality setting
22
+ */
23
+ private getPdfFilter;
24
+ /**
25
+ * Execute LibreOffice conversion with timeout and progress tracking
26
+ */
27
+ private executeConversion;
28
+ /**
29
+ * Convert with progress callback
30
+ */
31
+ convertWithProgress(inputBuffer: Buffer, options?: ConversionOptions, onProgress?: (progress: ConversionProgress) => void): Promise<Buffer>;
32
+ }
33
+ //# sourceMappingURL=libreoffice-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libreoffice-converter.d.ts","sourceRoot":"","sources":["../../src/utils/libreoffice-converter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;;IAO/C;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC;IA0ElB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwEzB;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,EAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC;CAanB"}
@@ -0,0 +1,169 @@
1
+ import { spawn } from 'child_process';
2
+ import path from 'path';
3
+ import fs from 'fs/promises';
4
+ import { tmpdir } from 'os';
5
+ import { randomBytes } from 'crypto';
6
+ import { EventEmitter } from 'events';
7
+ import { LibreOfficeDetector } from './libreoffice-detector.js';
8
+ export class LibreOfficeConverter extends EventEmitter {
9
+ detector;
10
+ constructor() {
11
+ super();
12
+ this.detector = LibreOfficeDetector.getInstance();
13
+ }
14
+ /**
15
+ * Convert PPTX to PDF with enhanced options
16
+ */
17
+ async convertToPdf(inputBuffer, options = {}) {
18
+ const { quality = 'maximum', timeout = 30000, additionalArgs = [] } = options;
19
+ // Check LibreOffice installation
20
+ const info = await this.detector.checkLibreOfficeInstallation();
21
+ if (!info.installed || !info.path) {
22
+ throw new Error('LibreOffice is not installed');
23
+ }
24
+ // Create temporary files
25
+ const tempId = randomBytes(8).toString('hex');
26
+ const tempDir = path.join(tmpdir(), `libreoffice-${tempId}`);
27
+ const inputPath = path.join(tempDir, 'input.pptx');
28
+ const outputDir = tempDir;
29
+ try {
30
+ // Create temp directory and save input file
31
+ await fs.mkdir(tempDir, { recursive: true });
32
+ await fs.writeFile(inputPath, inputBuffer);
33
+ this.emit('progress', {
34
+ stage: 'starting',
35
+ percentage: 0,
36
+ message: 'Initializing LibreOffice conversion...'
37
+ });
38
+ // Build conversion arguments
39
+ const args = [
40
+ '--headless',
41
+ '--invisible',
42
+ '--nodefault',
43
+ '--nolockcheck',
44
+ '--nologo',
45
+ '--norestore',
46
+ '--convert-to',
47
+ this.getPdfFilter(quality),
48
+ '--outdir',
49
+ outputDir,
50
+ ...additionalArgs,
51
+ inputPath
52
+ ];
53
+ // Execute conversion
54
+ const outputPath = await this.executeConversion(info.path, args, timeout);
55
+ // Read the output PDF
56
+ const pdfBuffer = await fs.readFile(outputPath);
57
+ this.emit('progress', {
58
+ stage: 'completed',
59
+ percentage: 100,
60
+ message: 'Conversion completed successfully'
61
+ });
62
+ return pdfBuffer;
63
+ }
64
+ finally {
65
+ // Cleanup temporary files
66
+ try {
67
+ await fs.rm(tempDir, { recursive: true, force: true });
68
+ }
69
+ catch {
70
+ // Ignore cleanup errors
71
+ }
72
+ }
73
+ }
74
+ /**
75
+ * Get PDF filter string based on quality setting
76
+ */
77
+ getPdfFilter(quality) {
78
+ switch (quality) {
79
+ case 'maximum':
80
+ return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"300"},"UseTaggedPDF":{"type":"boolean","value":"true"},"SelectPdfVersion":{"type":"long","value":"0"},"Quality":{"type":"long","value":"100"}}';
81
+ case 'high':
82
+ return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"200"},"Quality":{"type":"long","value":"90"}}';
83
+ case 'medium':
84
+ return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"150"},"Quality":{"type":"long","value":"80"}}';
85
+ case 'low':
86
+ return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"100"},"Quality":{"type":"long","value":"70"}}';
87
+ default:
88
+ return 'pdf:writer_pdf_Export';
89
+ }
90
+ }
91
+ /**
92
+ * Execute LibreOffice conversion with timeout and progress tracking
93
+ */
94
+ executeConversion(sofficePath, args, timeout) {
95
+ return new Promise((resolve, reject) => {
96
+ const process = spawn(sofficePath, args);
97
+ let outputPath = null;
98
+ let stderr = '';
99
+ let timedOut = false;
100
+ // Set up timeout
101
+ const timeoutHandle = setTimeout(() => {
102
+ timedOut = true;
103
+ process.kill('SIGTERM');
104
+ reject(new Error(`Conversion timed out after ${timeout}ms`));
105
+ }, timeout);
106
+ // Track progress
107
+ const progressInterval = setInterval(() => {
108
+ if (!timedOut && outputPath === null) {
109
+ this.emit('progress', {
110
+ stage: 'converting',
111
+ percentage: 50,
112
+ message: 'Converting document...'
113
+ });
114
+ }
115
+ }, 1000);
116
+ process.stderr.on('data', (data) => {
117
+ stderr += data.toString();
118
+ });
119
+ process.on('close', async (code) => {
120
+ clearTimeout(timeoutHandle);
121
+ clearInterval(progressInterval);
122
+ if (timedOut) {
123
+ return; // Already rejected
124
+ }
125
+ if (code !== 0) {
126
+ reject(new Error(`LibreOffice exited with code ${code}: ${stderr}`));
127
+ return;
128
+ }
129
+ // Find the output file
130
+ try {
131
+ const tempDir = path.dirname(args[args.length - 1]);
132
+ const files = await fs.readdir(tempDir);
133
+ const pdfFile = files.find(f => f.endsWith('.pdf'));
134
+ if (!pdfFile) {
135
+ reject(new Error('No PDF output file found'));
136
+ return;
137
+ }
138
+ outputPath = path.join(tempDir, pdfFile);
139
+ resolve(outputPath);
140
+ }
141
+ catch (error) {
142
+ reject(error);
143
+ }
144
+ });
145
+ process.on('error', (error) => {
146
+ clearTimeout(timeoutHandle);
147
+ clearInterval(progressInterval);
148
+ reject(error);
149
+ });
150
+ });
151
+ }
152
+ /**
153
+ * Convert with progress callback
154
+ */
155
+ async convertWithProgress(inputBuffer, options = {}, onProgress) {
156
+ if (onProgress) {
157
+ this.on('progress', onProgress);
158
+ }
159
+ try {
160
+ return await this.convertToPdf(inputBuffer, options);
161
+ }
162
+ finally {
163
+ if (onProgress) {
164
+ this.removeListener('progress', onProgress);
165
+ }
166
+ }
167
+ }
168
+ }
169
+ //# sourceMappingURL=libreoffice-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libreoffice-converter.js","sourceRoot":"","sources":["../../src/utils/libreoffice-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export interface LibreOfficeInfo {
2
+ installed: boolean;
3
+ path?: string;
4
+ version?: string;
5
+ error?: string;
6
+ }
7
+ export declare class LibreOfficeDetector {
8
+ private static instance;
9
+ private cachedInfo?;
10
+ private constructor();
11
+ static getInstance(): LibreOfficeDetector;
12
+ /**
13
+ * Check if LibreOffice is installed and get its information
14
+ */
15
+ checkLibreOfficeInstallation(): Promise<LibreOfficeInfo>;
16
+ /**
17
+ * Detect LibreOffice based on platform
18
+ */
19
+ private detectLibreOffice;
20
+ /**
21
+ * Detect LibreOffice on Windows
22
+ */
23
+ private detectWindows;
24
+ /**
25
+ * Detect LibreOffice on macOS
26
+ */
27
+ private detectMacOS;
28
+ /**
29
+ * Detect LibreOffice on Linux
30
+ */
31
+ private detectLinux;
32
+ /**
33
+ * Get LibreOffice version
34
+ */
35
+ private getVersion;
36
+ /**
37
+ * Check if file exists
38
+ */
39
+ private fileExists;
40
+ /**
41
+ * Check if LibreOffice version meets minimum requirement
42
+ */
43
+ isVersionSupported(version?: string): boolean;
44
+ /**
45
+ * Get installation instructions for current platform
46
+ */
47
+ getInstallationInstructions(): string;
48
+ /**
49
+ * Get download URL for current platform
50
+ */
51
+ getDownloadUrl(): string;
52
+ /**
53
+ * Clear cached LibreOffice info
54
+ */
55
+ clearCache(): void;
56
+ }
57
+ //# sourceMappingURL=libreoffice-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libreoffice-detector.d.ts","sourceRoot":"","sources":["../../src/utils/libreoffice-detector.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,eAAe,CAAC;IAmB9D;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;YACW,aAAa;IA0C3B;;OAEG;YACW,WAAW;IAyCzB;;OAEG;YACW,WAAW;IA0CzB;;OAEG;YACW,UAAU;IAUxB;;OAEG;YACW,UAAU;IASxB;;OAEG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAW7C;;OAEG;IACH,2BAA2B,IAAI,MAAM;IAoDrC;;OAEG;IACH,cAAc,IAAI,MAAM;IAuBxB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}