@thasmorato/docx-parser
Version:
A modern JavaScript library for parsing and processing Microsoft Word DOCX documents with support for both buffer and stream operations. Features incremental parsing, checkbox detection, footnote support, and document validation.
1 lines • 84.7 kB
Source Map (JSON)
{"version":3,"sources":["../src/domain/types.ts","../src/infrastructure/adapters/stream-adapter.ts","../src/infrastructure/adapters/xml-adapter.ts","../src/infrastructure/adapters/zip-adapter.ts","../src/infrastructure/repositories/docx-repository.ts","../src/application/use-cases/parse-document.use-case.ts","../src/application/use-cases/extract-content.use-case.ts","../src/application/use-cases/validate-document.use-case.ts","../src/application/use-cases/parse-document-to-array.use-case.ts","../src/interfaces/docx-parser.ts","../src/index.ts"],"names":["ReadableStream","JSZip","createReadStream"],"mappings":"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","file":"index.cjs","sourcesContent":["export interface BaseElement {\n type: string;\n id?: string;\n position: { page: number; section: number; order: number };\n error?: {\n type: 'warning' | 'error';\n message: string;\n recoverable: boolean;\n };\n}\n\nexport interface MetadataElement extends BaseElement {\n type: 'metadata';\n content: {\n title?: string;\n author?: string;\n subject?: string;\n keywords?: string[];\n created?: Date;\n modified?: Date;\n pages?: number;\n words?: number;\n };\n}\n\nexport interface ParagraphElement extends BaseElement {\n type: 'paragraph';\n content: string;\n formatting?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n alignment?: 'left' | 'center' | 'right' | 'justify';\n indent?: number;\n lineSpacing?: number;\n };\n hyperlinks?: Array<{\n text: string;\n url: string;\n start: number;\n end: number;\n }>;\n}\n\nexport interface ImageElement extends BaseElement {\n type: 'image';\n content: Buffer;\n metadata: {\n filename?: string;\n format: 'png' | 'jpg' | 'gif' | 'svg' | 'wmf' | 'emf';\n width: number;\n height: number;\n dpi?: number;\n };\n positioning?: {\n inline: boolean;\n x?: number;\n y?: number;\n wrap?: 'square' | 'tight' | 'through' | 'topBottom';\n };\n}\n\nexport interface TableRow {\n cells: TableCell[];\n height?: number;\n isHeader?: boolean;\n}\n\nexport interface TableCell {\n content: string;\n colspan?: number;\n rowspan?: number;\n formatting?: {\n backgroundColor?: string;\n textAlign?: 'left' | 'center' | 'right';\n verticalAlign?: 'top' | 'middle' | 'bottom';\n };\n}\n\nexport interface TableElement extends BaseElement {\n type: 'table';\n content: TableRow[];\n formatting?: {\n borders?: boolean;\n borderStyle?: string;\n width?: number | 'auto';\n alignment?: 'left' | 'center' | 'right';\n };\n}\n\nexport interface ListElement extends BaseElement {\n type: 'list';\n content: string[];\n listType: 'bullet' | 'number';\n level: number;\n}\n\nexport interface HeaderElement extends BaseElement {\n type: 'header';\n content: string;\n level: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport interface FooterElement extends BaseElement {\n type: 'footer';\n content: string;\n}\n\nexport interface PageBreakElement extends BaseElement {\n type: 'pageBreak';\n content: null;\n}\n\nexport interface SectionElement extends BaseElement {\n type: 'section';\n content: string;\n sectionType: 'header' | 'footer' | 'body';\n}\n\nexport type DocumentElement =\n | MetadataElement\n | ParagraphElement\n | ImageElement\n | TableElement\n | ListElement\n | HeaderElement\n | FooterElement\n | PageBreakElement\n | SectionElement;\n\nexport interface ParseOptions {\n // Content filtering\n includeMetadata?: boolean; // default: true\n includeImages?: boolean; // default: true\n includeTables?: boolean; // default: true\n includeHeaders?: boolean; // default: false\n includeFooters?: boolean; // default: false\n\n // Image handling\n imageFormat?: 'buffer' | 'base64' | 'stream'; // default: 'buffer'\n maxImageSize?: number; // bytes, default: 10MB\n\n // Text processing\n preserveFormatting?: boolean; // default: true\n normalizeWhitespace?: boolean; // default: true\n\n // Performance\n chunkSize?: number; // for stream processing, default: 64KB\n concurrent?: boolean; // process elements concurrently, default: false\n}\n\nexport interface ValidationResult {\n isValid: boolean;\n errors: Array<{\n code: string;\n message: string;\n severity: 'error' | 'warning';\n position?: { line: number; column: number };\n }>;\n}\n\nexport class DocxParseError extends Error {\n constructor(\n message: string,\n public readonly position?: { line: number; column: number },\n public readonly code?: string\n ) {\n super(message);\n this.name = 'DocxParseError';\n }\n}\n","import type { ReadStream } from 'node:fs';\nimport type { Readable } from 'node:stream';\nimport { ReadableStream } from 'node:stream/web';\n\n/**\n * StreamAdapter - Class for converting normal ReadStream to web ReadableStream\n */\nexport class StreamAdapter {\n /**\n * Converts a Node.js ReadStream to web ReadableStream\n * @param readStream - Node.js read stream (fs.ReadStream)\n * @returns Web API ReadableStream\n */\n static toWebStream(readStream: ReadStream): ReadableStream<Uint8Array> {\n return new ReadableStream<Uint8Array>({\n start(controller) {\n readStream.on('data', (chunk: string | Buffer) => {\n // Efficiently converts Buffer to Uint8Array\n const buffer = chunk instanceof Buffer ? chunk : Buffer.from(chunk);\n const uint8Array = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\n controller.enqueue(uint8Array);\n });\n\n readStream.on('end', () => {\n controller.close();\n });\n\n readStream.on('error', (error) => {\n controller.error(error);\n });\n },\n\n cancel() {\n // Cleans up the stream if cancelled\n readStream.destroy();\n }\n });\n }\n\n /**\n * Checks if it's a Web ReadableStream\n */\n private static isWebReadableStream(stream: any): stream is ReadableStream<Uint8Array> {\n return stream && typeof stream.getReader === 'function';\n }\n\n /**\n * Checks if it's a Node.js Readable stream\n */\n private static isNodeReadableStream(stream: any): stream is Readable {\n return stream && typeof stream.read === 'function' && typeof stream.on === 'function';\n }\n\n /**\n * Converts Node.js Readable stream to Buffer\n */\n private static async nodeStreamToBuffer(stream: Readable): Promise<Buffer> {\n const chunks: Buffer[] = [];\n\n return new Promise((resolve, reject) => {\n stream.on('data', (chunk: Buffer) => {\n chunks.push(chunk);\n });\n\n stream.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n\n stream.on('error', (error) => {\n reject(error);\n });\n });\n }\n\n /**\n * Converts Web ReadableStream to Buffer\n */\n private static async webStreamToBuffer(stream: ReadableStream<Uint8Array>): Promise<Buffer> {\n const chunks: Uint8Array[] = [];\n const reader = stream.getReader();\n\n try {\n let done = false;\n while (!done) {\n const result = await reader.read();\n done = result.done;\n if (result.value) {\n chunks.push(result.value);\n }\n }\n } finally {\n reader.releaseLock();\n }\n\n return Buffer.concat(chunks);\n }\n\n /**\n * Converts ReadableStream (Web or Node.js) to Buffer\n * Automatically detects stream type and uses appropriate conversion\n * @param stream - Web ReadableStream or Node.js Readable stream\n * @returns Promise that resolves to Buffer\n */\n static async toBuffer(stream: ReadableStream<Uint8Array> | Readable): Promise<Buffer> {\n if (this.isWebReadableStream(stream)) {\n return this.webStreamToBuffer(stream);\n } else if (this.isNodeReadableStream(stream)) {\n return this.nodeStreamToBuffer(stream);\n } else {\n throw new Error('Stream type not supported. Expected Web ReadableStream or Node.js Readable stream.');\n }\n }\n\n /**\n * Creates a web ReadableStream from a Buffer\n * @param buffer - Buffer to be converted\n * @returns Web ReadableStream\n */\n static fromBuffer(buffer: Buffer): ReadableStream<Uint8Array> {\n let position = 0;\n const chunkSize = 64 * 1024; // 64KB chunks\n\n return new ReadableStream<Uint8Array>({\n pull(controller) {\n if (position >= buffer.length) {\n controller.close();\n return;\n }\n\n const chunk = buffer.subarray(position, Math.min(position + chunkSize, buffer.length));\n const uint8Array = new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n\n controller.enqueue(uint8Array);\n position += chunk.length;\n }\n });\n }\n\n /**\n * Converts Node.js Readable stream to Web ReadableStream\n * Useful for HTTP requests (axios, fetch, etc)\n * @param nodeStream - Node.js Readable stream\n * @returns Web API ReadableStream\n */\n static nodeToWebStream(nodeStream: Readable): ReadableStream<Uint8Array> {\n return new ReadableStream<Uint8Array>({\n start(controller) {\n nodeStream.on('data', (chunk: Buffer) => {\n const uint8Array = new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n controller.enqueue(uint8Array);\n });\n\n nodeStream.on('end', () => {\n controller.close();\n });\n\n nodeStream.on('error', (error) => {\n controller.error(error);\n });\n },\n\n cancel() {\n if (nodeStream.destroy) {\n nodeStream.destroy();\n }\n }\n });\n }\n}\n","import type { XmlRepository } from '../../domain/repositories';\nimport { DocxParseError } from '../../domain/types';\n\nexport class XmlAdapter implements XmlRepository {\n parseXml(xmlContent: string): globalThis.Document {\n // For now, we'll create a simple mock Document\n // In a real implementation, you'd use a proper XML parser like 'fast-xml-parser'\n console.log('XML content length:', xmlContent.length);\n throw new DocxParseError('XML parsing not implemented - use a proper XML parser library');\n }\n\n extractText(xmlDoc: globalThis.Document): string {\n console.log('XML doc:', xmlDoc);\n throw new DocxParseError('XML text extraction not implemented');\n }\n\n extractElements(xmlDoc: globalThis.Document, tagName: string): globalThis.Element[] {\n console.log('XML doc:', xmlDoc, 'Tag name:', tagName);\n throw new DocxParseError('XML element extraction not implemented');\n }\n\n // Simple regex-based text extraction for basic functionality\n extractTextFromXml(xmlContent: string): string {\n try {\n // Remove XML tags and extract text content\n const textContent = xmlContent\n .replace(/<[^>]*>/g, ' ') // Remove all XML tags\n .replace(/\\s+/g, ' ') // Normalize whitespace\n .trim();\n\n return textContent;\n } catch (error) {\n throw new DocxParseError(\n `Failed to extract text from XML: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n // Extract paragraph content using regex\n extractParagraphsFromXml(xmlContent: string): string[] {\n try {\n const paragraphs: string[] = [];\n const paragraphRegex = /<w:p[^>]*>(.*?)<\\/w:p>/gs;\n let match;\n\n while ((match = paragraphRegex.exec(xmlContent)) !== null) {\n const paragraphXml = match[1];\n if (paragraphXml) {\n const text = this.extractTextFromXml(paragraphXml);\n if (text.trim()) {\n paragraphs.push(text);\n }\n }\n }\n\n return paragraphs;\n } catch (error) {\n throw new DocxParseError(\n `Failed to extract paragraphs: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n // Extract paragraphs with style information to detect headers\n extractParagraphsWithStyleFromXml(xmlContent: string): Array<{ text: string; type: 'paragraph' | 'header'; level?: number }> {\n try {\n const elements: Array<{ text: string; type: 'paragraph' | 'header'; level?: number }> = [];\n const paragraphRegex = /<w:p[^>]*>(.*?)<\\/w:p>/gs;\n let match;\n\n while ((match = paragraphRegex.exec(xmlContent)) !== null) {\n const paragraphXml = match[1];\n if (paragraphXml) {\n const text = this.extractTextFromXml(paragraphXml);\n if (text.trim()) {\n // Check if it's a header based on style or formatting\n const styleInfo = this.analyzeStyleForHeader(paragraphXml);\n const element: { text: string; type: 'paragraph' | 'header'; level?: number } = {\n text: text.trim(),\n type: styleInfo.isHeader ? 'header' : 'paragraph'\n };\n\n if (styleInfo.level !== undefined) {\n element.level = styleInfo.level;\n }\n\n elements.push(element);\n }\n }\n }\n\n return elements;\n } catch (error) {\n throw new DocxParseError(\n `Failed to extract paragraphs with style: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n // Extract paragraphs with formatting information (including strike for checkboxes)\n extractParagraphsWithFormattingFromXml(xmlContent: string): Array<{\n text: string;\n type: 'paragraph' | 'header';\n level?: number;\n formatting?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strike?: boolean; // For checked checkboxes\n };\n }> {\n try {\n const elements: Array<{\n text: string;\n type: 'paragraph' | 'header';\n level?: number;\n formatting?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strike?: boolean;\n };\n }> = [];\n const paragraphRegex = /<w:p[^>]*>(.*?)<\\/w:p>/gs;\n let match;\n\n while ((match = paragraphRegex.exec(xmlContent)) !== null) {\n const paragraphXml = match[1];\n if (paragraphXml) {\n const text = this.extractTextFromXml(paragraphXml);\n if (text.trim()) {\n // Check if it's a header based on style or formatting\n const styleInfo = this.analyzeStyleForHeader(paragraphXml);\n const formattingInfo = this.extractFormattingInfo(paragraphXml);\n\n const element: {\n text: string;\n type: 'paragraph' | 'header';\n level?: number;\n formatting?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strike?: boolean;\n };\n } = {\n text: text.trim(),\n type: styleInfo.isHeader ? 'header' : 'paragraph'\n };\n\n if (styleInfo.level !== undefined) {\n element.level = styleInfo.level;\n }\n\n if (Object.keys(formattingInfo).length > 0) {\n element.formatting = formattingInfo;\n }\n\n elements.push(element);\n }\n }\n }\n\n return elements;\n } catch (error) {\n throw new DocxParseError(\n `Failed to extract paragraphs with formatting: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n // Extract formatting information from paragraph XML\n private extractFormattingInfo(paragraphXml: string): {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strike?: boolean;\n } {\n const formatting: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strike?: boolean;\n } = {};\n\n // Check for bold\n if (/<w:b\\b[^>]*\\/?>/.test(paragraphXml)) {\n formatting.bold = true;\n }\n\n // Check for italic\n if (/<w:i\\b[^>]*\\/?>/.test(paragraphXml)) {\n formatting.italic = true;\n }\n\n // Check for underline\n if (/<w:u\\b[^>]*\\/?>/.test(paragraphXml)) {\n formatting.underline = true;\n }\n\n // Check for strike (indicates checked checkbox)\n if (/<w:strike\\s+w:val=[\"']1[\"'][^>]*\\/?>/.test(paragraphXml)) {\n formatting.strike = true;\n }\n\n return formatting;\n }\n\n // Analyze paragraph style to determine if it's a header\n private analyzeStyleForHeader(paragraphXml: string): { isHeader: boolean; level?: number } {\n // Check for heading styles (w:pStyle with heading values)\n const headingStyleRegex = /<w:pStyle[^>]*w:val=[\"']([^\"']*heading[^\"']*)[\"'][^>]*>/i;\n const headingMatch = paragraphXml.match(headingStyleRegex);\n\n if (headingMatch && headingMatch[1]) {\n const style = headingMatch[1].toLowerCase();\n const levelMatch = style.match(/heading(\\d+)|h(\\d+)/);\n const level = levelMatch ? parseInt(levelMatch[1] || levelMatch[2] || '1') : 1;\n return { isHeader: true, level };\n }\n\n // Check for Title style\n const titleStyleRegex = /<w:pStyle[^>]*w:val=[\"']([^\"']*title[^\"']*)[\"'][^>]*>/i;\n if (titleStyleRegex.test(paragraphXml)) {\n return { isHeader: true, level: 1 };\n }\n\n // Check for subtitle style\n const subtitleStyleRegex = /<w:pStyle[^>]*w:val=[\"']([^\"']*subtitle[^\"']*)[\"'][^>]*>/i;\n if (subtitleStyleRegex.test(paragraphXml)) {\n return { isHeader: true, level: 2 };\n }\n\n // For now, we'll be very conservative and only detect explicitly styled headers\n // No heuristics - only official Word styles are detected as headers\n return { isHeader: false };\n }\n\n // Extract table content using regex\n extractTablesFromXml(xmlContent: string): Array<{ rows: Array<{ cells: string[] }> }> {\n try {\n const tables: Array<{ rows: Array<{ cells: string[] }> }> = [];\n const tableRegex = /<w:tbl[^>]*>(.*?)<\\/w:tbl>/gs;\n let tableMatch;\n\n while ((tableMatch = tableRegex.exec(xmlContent)) !== null) {\n const tableXml = tableMatch[1];\n if (!tableXml) continue;\n\n const rows: Array<{ cells: string[] }> = [];\n\n const rowRegex = /<w:tr[^>]*>(.*?)<\\/w:tr>/gs;\n let rowMatch;\n\n while ((rowMatch = rowRegex.exec(tableXml)) !== null) {\n const rowXml = rowMatch[1];\n if (!rowXml) continue;\n\n const cells: string[] = [];\n\n const cellRegex = /<w:tc[^>]*>(.*?)<\\/w:tc>/gs;\n let cellMatch;\n\n while ((cellMatch = cellRegex.exec(rowXml)) !== null) {\n