docxmlater 8.0.0 → 8.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 (117) hide show
  1. package/README.md +51 -3
  2. package/dist/core/Document.d.ts +55 -1
  3. package/dist/core/Document.d.ts.map +1 -1
  4. package/dist/core/Document.js +199 -0
  5. package/dist/core/Document.js.map +1 -1
  6. package/dist/core/DocumentParser.d.ts +3 -0
  7. package/dist/core/DocumentParser.d.ts.map +1 -1
  8. package/dist/core/DocumentParser.js +380 -72
  9. package/dist/core/DocumentParser.js.map +1 -1
  10. package/dist/elements/Comment.d.ts +5 -0
  11. package/dist/elements/Comment.d.ts.map +1 -1
  12. package/dist/elements/Comment.js +16 -0
  13. package/dist/elements/Comment.js.map +1 -1
  14. package/dist/elements/CommentManager.d.ts +6 -0
  15. package/dist/elements/CommentManager.d.ts.map +1 -1
  16. package/dist/elements/CommentManager.js +41 -0
  17. package/dist/elements/CommentManager.js.map +1 -1
  18. package/dist/elements/Paragraph.d.ts.map +1 -1
  19. package/dist/elements/Paragraph.js +95 -1
  20. package/dist/elements/Paragraph.js.map +1 -1
  21. package/dist/elements/PropertyChangeTypes.d.ts +37 -0
  22. package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
  23. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  24. package/dist/elements/Revision.d.ts +1 -1
  25. package/dist/elements/Revision.d.ts.map +1 -1
  26. package/dist/elements/Revision.js +11 -0
  27. package/dist/elements/Revision.js.map +1 -1
  28. package/dist/elements/Section.d.ts +11 -0
  29. package/dist/elements/Section.d.ts.map +1 -1
  30. package/dist/elements/Section.js +32 -0
  31. package/dist/elements/Section.js.map +1 -1
  32. package/dist/elements/StructuredDocumentTag.js +8 -8
  33. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  34. package/dist/elements/Table.d.ts +5 -0
  35. package/dist/elements/Table.d.ts.map +1 -1
  36. package/dist/elements/Table.js +37 -10
  37. package/dist/elements/Table.js.map +1 -1
  38. package/dist/elements/TableCell.d.ts +5 -0
  39. package/dist/elements/TableCell.d.ts.map +1 -1
  40. package/dist/elements/TableCell.js +42 -0
  41. package/dist/elements/TableCell.js.map +1 -1
  42. package/dist/formatting/Style.d.ts +1 -0
  43. package/dist/formatting/Style.d.ts.map +1 -1
  44. package/dist/formatting/Style.js +10 -0
  45. package/dist/formatting/Style.js.map +1 -1
  46. package/dist/index.d.ts +5 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +13 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/ms-doc/cfb/CFBReader.d.ts +35 -0
  51. package/dist/ms-doc/cfb/CFBReader.d.ts.map +1 -0
  52. package/dist/ms-doc/cfb/CFBReader.js +360 -0
  53. package/dist/ms-doc/cfb/CFBReader.js.map +1 -0
  54. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +55 -0
  55. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +1 -0
  56. package/dist/ms-doc/converter/DocToDocxConverter.js +316 -0
  57. package/dist/ms-doc/converter/DocToDocxConverter.js.map +1 -0
  58. package/dist/ms-doc/fib/FIB.d.ts +18 -0
  59. package/dist/ms-doc/fib/FIB.d.ts.map +1 -0
  60. package/dist/ms-doc/fib/FIB.js +342 -0
  61. package/dist/ms-doc/fib/FIB.js.map +1 -0
  62. package/dist/ms-doc/fields/FieldParser.d.ts +31 -0
  63. package/dist/ms-doc/fields/FieldParser.d.ts.map +1 -0
  64. package/dist/ms-doc/fields/FieldParser.js +266 -0
  65. package/dist/ms-doc/fields/FieldParser.js.map +1 -0
  66. package/dist/ms-doc/images/PictureExtractor.d.ts +22 -0
  67. package/dist/ms-doc/images/PictureExtractor.d.ts.map +1 -0
  68. package/dist/ms-doc/images/PictureExtractor.js +231 -0
  69. package/dist/ms-doc/images/PictureExtractor.js.map +1 -0
  70. package/dist/ms-doc/index.d.ts +20 -0
  71. package/dist/ms-doc/index.d.ts.map +1 -0
  72. package/dist/ms-doc/index.js +59 -0
  73. package/dist/ms-doc/index.js.map +1 -0
  74. package/dist/ms-doc/properties/SPRM.d.ts +210 -0
  75. package/dist/ms-doc/properties/SPRM.d.ts.map +1 -0
  76. package/dist/ms-doc/properties/SPRM.js +632 -0
  77. package/dist/ms-doc/properties/SPRM.js.map +1 -0
  78. package/dist/ms-doc/sections/SectionParser.d.ts +25 -0
  79. package/dist/ms-doc/sections/SectionParser.d.ts.map +1 -0
  80. package/dist/ms-doc/sections/SectionParser.js +214 -0
  81. package/dist/ms-doc/sections/SectionParser.js.map +1 -0
  82. package/dist/ms-doc/styles/StyleSheet.d.ts +23 -0
  83. package/dist/ms-doc/styles/StyleSheet.d.ts.map +1 -0
  84. package/dist/ms-doc/styles/StyleSheet.js +265 -0
  85. package/dist/ms-doc/styles/StyleSheet.js.map +1 -0
  86. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +61 -0
  87. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +1 -0
  88. package/dist/ms-doc/subdocuments/SubdocumentParser.js +208 -0
  89. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +1 -0
  90. package/dist/ms-doc/tables/TableParser.d.ts +29 -0
  91. package/dist/ms-doc/tables/TableParser.d.ts.map +1 -0
  92. package/dist/ms-doc/tables/TableParser.js +176 -0
  93. package/dist/ms-doc/tables/TableParser.js.map +1 -0
  94. package/dist/ms-doc/text/PieceTable.d.ts +21 -0
  95. package/dist/ms-doc/text/PieceTable.d.ts.map +1 -0
  96. package/dist/ms-doc/text/PieceTable.js +171 -0
  97. package/dist/ms-doc/text/PieceTable.js.map +1 -0
  98. package/dist/ms-doc/types/Constants.d.ts +99 -0
  99. package/dist/ms-doc/types/Constants.d.ts.map +1 -0
  100. package/dist/ms-doc/types/Constants.js +102 -0
  101. package/dist/ms-doc/types/Constants.js.map +1 -0
  102. package/dist/ms-doc/types/DocTypes.d.ts +368 -0
  103. package/dist/ms-doc/types/DocTypes.d.ts.map +1 -0
  104. package/dist/ms-doc/types/DocTypes.js +3 -0
  105. package/dist/ms-doc/types/DocTypes.js.map +1 -0
  106. package/dist/utils/parsingHelpers.d.ts +6 -0
  107. package/dist/utils/parsingHelpers.d.ts.map +1 -0
  108. package/dist/utils/parsingHelpers.js +63 -0
  109. package/dist/utils/parsingHelpers.js.map +1 -0
  110. package/dist/utils/xmlSanitization.d.ts +23 -0
  111. package/dist/utils/xmlSanitization.d.ts.map +1 -0
  112. package/dist/utils/xmlSanitization.js +60 -0
  113. package/dist/utils/xmlSanitization.js.map +1 -0
  114. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  115. package/dist/xml/XMLBuilder.js +7 -4
  116. package/dist/xml/XMLBuilder.js.map +1 -1
  117. package/package.json +4 -3
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DocToDocxConverter = exports.DocConversionError = void 0;
37
+ exports.convertDocToDocx = convertDocToDocx;
38
+ exports.parseDocFile = parseDocFile;
39
+ const CFBReader_1 = require("../cfb/CFBReader");
40
+ const FIB_1 = require("../fib/FIB");
41
+ const PieceTable_1 = require("../text/PieceTable");
42
+ const StyleSheet_1 = require("../styles/StyleSheet");
43
+ const TableParser_1 = require("../tables/TableParser");
44
+ const PictureExtractor_1 = require("../images/PictureExtractor");
45
+ const SectionParser_1 = require("../sections/SectionParser");
46
+ const SubdocumentParser_1 = require("../subdocuments/SubdocumentParser");
47
+ const FieldParser_1 = require("../fields/FieldParser");
48
+ const Constants_1 = require("../types/Constants");
49
+ class DocConversionError extends Error {
50
+ cause;
51
+ constructor(message, cause) {
52
+ super(message);
53
+ this.cause = cause;
54
+ this.name = 'DocConversionError';
55
+ }
56
+ }
57
+ exports.DocConversionError = DocConversionError;
58
+ class DocToDocxConverter {
59
+ options;
60
+ constructor(options = {}) {
61
+ this.options = {
62
+ includeImages: true,
63
+ includeHeadersFooters: true,
64
+ preserveFields: true,
65
+ includeNotes: true,
66
+ ...options,
67
+ };
68
+ }
69
+ async parse(docBuffer) {
70
+ const data = docBuffer instanceof Buffer ? new Uint8Array(docBuffer) : docBuffer;
71
+ let cfb;
72
+ try {
73
+ cfb = CFBReader_1.CFBReader.parse(data);
74
+ }
75
+ catch (error) {
76
+ if (error instanceof CFBReader_1.CFBParseError) {
77
+ throw new DocConversionError(`Invalid .doc file: ${error.message}`, error);
78
+ }
79
+ throw error;
80
+ }
81
+ const cfbReader = new CFBReader_1.CFBReader(data);
82
+ cfbReader.parse();
83
+ const wordDocStream = cfbReader.getStream(Constants_1.DOC_STREAM_NAMES.WORD_DOCUMENT);
84
+ if (!wordDocStream) {
85
+ throw new DocConversionError('WordDocument stream not found');
86
+ }
87
+ let fib;
88
+ try {
89
+ fib = FIB_1.FIBParser.parse(wordDocStream.data);
90
+ }
91
+ catch (error) {
92
+ if (error instanceof FIB_1.FIBParseError) {
93
+ throw new DocConversionError(`Invalid FIB: ${error.message}`, error);
94
+ }
95
+ throw error;
96
+ }
97
+ const tableStream = cfbReader.getStream(fib.tableStreamName);
98
+ if (!tableStream) {
99
+ throw new DocConversionError(`Table stream '${fib.tableStreamName}' not found`);
100
+ }
101
+ let textRanges = [];
102
+ let fullText = '';
103
+ if (fib.rgFcLcb.fcClx && fib.rgFcLcb.lcbClx && fib.rgFcLcb.lcbClx > 0) {
104
+ const clxData = tableStream.data.slice(fib.rgFcLcb.fcClx, fib.rgFcLcb.fcClx + fib.rgFcLcb.lcbClx);
105
+ try {
106
+ const pieceTableParser = new PieceTable_1.PieceTableParser(clxData, wordDocStream.data);
107
+ textRanges = pieceTableParser.extractText();
108
+ fullText = pieceTableParser.getFullText();
109
+ }
110
+ catch (error) {
111
+ if (error instanceof PieceTable_1.PieceTableError) {
112
+ throw new DocConversionError(`Piece table error: ${error.message}`, error);
113
+ }
114
+ throw error;
115
+ }
116
+ }
117
+ const paragraphs = this.parseTextIntoParagraphs(fullText);
118
+ const styles = new Map();
119
+ if (fib.rgFcLcb.fcStshf && fib.rgFcLcb.lcbStshf && fib.rgFcLcb.lcbStshf > 0) {
120
+ try {
121
+ const stshData = tableStream.data.slice(fib.rgFcLcb.fcStshf, fib.rgFcLcb.fcStshf + fib.rgFcLcb.lcbStshf);
122
+ const styleSheet = StyleSheet_1.StyleSheetParser.parse(stshData);
123
+ for (const [index, style] of styleSheet.styles) {
124
+ styles.set(index, style);
125
+ }
126
+ }
127
+ catch {
128
+ }
129
+ }
130
+ const tables = [];
131
+ if (TableParser_1.TableParser.hasTableContent(fullText)) {
132
+ try {
133
+ const tableParser = new TableParser_1.TableParser(fullText);
134
+ tables.push(...tableParser.parseAllTables());
135
+ }
136
+ catch {
137
+ }
138
+ }
139
+ let images = [];
140
+ const dataStream = cfbReader.getStream('Data');
141
+ if (dataStream && this.options.includeImages) {
142
+ try {
143
+ images = PictureExtractor_1.PictureExtractor.extractAll(dataStream.data);
144
+ }
145
+ catch {
146
+ }
147
+ }
148
+ let sections = [];
149
+ if (fib.rgFcLcb.fcPlcfSed && fib.rgFcLcb.lcbPlcfSed && fib.rgFcLcb.lcbPlcfSed > 0) {
150
+ try {
151
+ const plcfSedData = tableStream.data.slice(fib.rgFcLcb.fcPlcfSed, fib.rgFcLcb.fcPlcfSed + fib.rgFcLcb.lcbPlcfSed);
152
+ sections = SectionParser_1.SectionParser.parse(plcfSedData, wordDocStream.data, tableStream.data);
153
+ }
154
+ catch {
155
+ }
156
+ }
157
+ let subdocuments = [];
158
+ if (this.options.includeHeadersFooters || this.options.includeNotes) {
159
+ try {
160
+ subdocuments = SubdocumentParser_1.SubdocumentParser.parse(fib, fullText);
161
+ }
162
+ catch {
163
+ }
164
+ }
165
+ let fields = [];
166
+ if (this.options.preserveFields && FieldParser_1.FieldParser.hasFields(fullText)) {
167
+ try {
168
+ fields = FieldParser_1.FieldParser.parse(fullText);
169
+ }
170
+ catch {
171
+ }
172
+ }
173
+ return {
174
+ cfb,
175
+ fib,
176
+ textRanges,
177
+ fullText,
178
+ paragraphs,
179
+ styles,
180
+ tables,
181
+ images,
182
+ sections,
183
+ subdocuments,
184
+ fields,
185
+ };
186
+ }
187
+ parseTextIntoParagraphs(text) {
188
+ const paragraphs = [];
189
+ const paraTexts = text.split(/[\r\x0D]/);
190
+ for (const paraText of paraTexts) {
191
+ if (paraText.length === 0)
192
+ continue;
193
+ const isTableCell = paraText.includes(String.fromCharCode(Constants_1.SPECIAL_CHARS.CELL));
194
+ const isTableRow = isTableCell;
195
+ let cleanText = paraText;
196
+ cleanText = cleanText.replace(/[\x07\x0B\x0C\x0D\x0E\x13\x14\x15]/g, '');
197
+ const para = {
198
+ text: cleanText,
199
+ paragraphProps: {},
200
+ runs: [
201
+ {
202
+ text: cleanText,
203
+ charProps: {},
204
+ },
205
+ ],
206
+ isTableCell,
207
+ isTableRow,
208
+ };
209
+ paragraphs.push(para);
210
+ }
211
+ return paragraphs;
212
+ }
213
+ async convert(docBuffer) {
214
+ const parsed = await this.parse(docBuffer);
215
+ const { Document } = await Promise.resolve().then(() => __importStar(require('../../index')));
216
+ const doc = Document.create();
217
+ for (const para of parsed.paragraphs) {
218
+ if (para.isTableCell)
219
+ continue;
220
+ const p = doc.createParagraph();
221
+ if (para.paragraphProps.justification) {
222
+ p.setAlignment(para.paragraphProps.justification);
223
+ }
224
+ if (para.paragraphProps.indentLeft) {
225
+ p.setLeftIndent(para.paragraphProps.indentLeft);
226
+ }
227
+ if (para.paragraphProps.indentRight) {
228
+ p.setRightIndent(para.paragraphProps.indentRight);
229
+ }
230
+ if (para.paragraphProps.indentFirstLine) {
231
+ p.setFirstLineIndent(para.paragraphProps.indentFirstLine);
232
+ }
233
+ if (para.paragraphProps.spaceBefore !== undefined) {
234
+ p.setSpaceBefore(para.paragraphProps.spaceBefore);
235
+ }
236
+ if (para.paragraphProps.spaceAfter !== undefined) {
237
+ p.setSpaceAfter(para.paragraphProps.spaceAfter);
238
+ }
239
+ for (const run of para.runs) {
240
+ if (run.text.length === 0)
241
+ continue;
242
+ const formatting = {};
243
+ if (run.charProps.bold)
244
+ formatting.bold = true;
245
+ if (run.charProps.italic)
246
+ formatting.italic = true;
247
+ if (run.charProps.strikethrough)
248
+ formatting.strikethrough = true;
249
+ if (run.charProps.underline && run.charProps.underline !== 'none') {
250
+ formatting.underline = run.charProps.underline;
251
+ }
252
+ if (run.charProps.fontSize) {
253
+ formatting.size = run.charProps.fontSize / 2;
254
+ }
255
+ if (run.charProps.fontName) {
256
+ formatting.font = run.charProps.fontName;
257
+ }
258
+ if (run.charProps.color) {
259
+ formatting.color = run.charProps.color;
260
+ }
261
+ if (run.charProps.highlight) {
262
+ formatting.highlight = run.charProps.highlight;
263
+ }
264
+ if (run.charProps.smallCaps)
265
+ formatting.smallCaps = true;
266
+ if (run.charProps.allCaps)
267
+ formatting.allCaps = true;
268
+ if (run.charProps.subscript)
269
+ formatting.subscript = true;
270
+ if (run.charProps.superscript)
271
+ formatting.superscript = true;
272
+ p.addText(run.text, formatting);
273
+ }
274
+ }
275
+ return await doc.toBuffer();
276
+ }
277
+ static isDocFile(data) {
278
+ const bytes = data instanceof Buffer ? new Uint8Array(data) : data;
279
+ return CFBReader_1.CFBReader.isValidCFB(bytes);
280
+ }
281
+ static async getDocumentInfo(data) {
282
+ try {
283
+ const bytes = data instanceof Buffer ? new Uint8Array(data) : data;
284
+ if (!CFBReader_1.CFBReader.isValidCFB(bytes)) {
285
+ return { isValid: false };
286
+ }
287
+ const cfbReader = new CFBReader_1.CFBReader(bytes);
288
+ cfbReader.parse();
289
+ const wordDocStream = cfbReader.getStream(Constants_1.DOC_STREAM_NAMES.WORD_DOCUMENT);
290
+ if (!wordDocStream) {
291
+ return { isValid: false };
292
+ }
293
+ const fib = FIB_1.FIBParser.parse(wordDocStream.data);
294
+ return {
295
+ isValid: true,
296
+ wordVersion: FIB_1.FIBParser.getWordVersion(fib.base.nFib),
297
+ characterCount: fib.rgLw97.ccpText,
298
+ hasImages: cfbReader.hasStream('Data'),
299
+ hasTables: fib.rgLw97.ccpText > 0,
300
+ };
301
+ }
302
+ catch {
303
+ return { isValid: false };
304
+ }
305
+ }
306
+ }
307
+ exports.DocToDocxConverter = DocToDocxConverter;
308
+ async function convertDocToDocx(docBuffer, options) {
309
+ const converter = new DocToDocxConverter(options);
310
+ return converter.convert(docBuffer);
311
+ }
312
+ async function parseDocFile(docBuffer) {
313
+ const converter = new DocToDocxConverter();
314
+ return converter.parse(docBuffer);
315
+ }
316
+ //# sourceMappingURL=DocToDocxConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocToDocxConverter.js","sourceRoot":"","sources":["../../../src/ms-doc/converter/DocToDocxConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { FIB } from '../types/DocTypes';
2
+ export declare class FIBParseError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare class FIBParser {
6
+ private data;
7
+ private view;
8
+ constructor(wordDocumentStream: Uint8Array);
9
+ parse(): FIB;
10
+ private validateFIB;
11
+ private parseFibBase;
12
+ private parseFibRgW97;
13
+ private parseFibRgLw97;
14
+ private parseFibRgFcLcb;
15
+ static getWordVersion(nFib: number): string;
16
+ static parse(wordDocumentStream: Uint8Array): FIB;
17
+ }
18
+ //# sourceMappingURL=FIB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FIB.d.ts","sourceRoot":"","sources":["../../../src/ms-doc/fib/FIB.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,GAAG,EAA4C,MAAM,mBAAmB,CAAC;AAKlF,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAuMD,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAW;gBAEX,kBAAkB,EAAE,UAAU;IAQ1C,KAAK,IAAI,GAAG;IAoBZ,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,eAAe;IAqCvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY3C,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,GAAG,GAAG;CAIlD"}