docxmlater 0.28.0 → 0.29.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 (100) hide show
  1. package/README.md +330 -4
  2. package/dist/core/Document.d.ts +66 -28
  3. package/dist/core/Document.d.ts.map +1 -1
  4. package/dist/core/Document.js +590 -90
  5. package/dist/core/Document.js.map +1 -1
  6. package/dist/core/DocumentGenerator.d.ts +15 -13
  7. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  8. package/dist/core/DocumentGenerator.js +74 -13
  9. package/dist/core/DocumentGenerator.js.map +1 -1
  10. package/dist/core/DocumentParser.d.ts +40 -13
  11. package/dist/core/DocumentParser.d.ts.map +1 -1
  12. package/dist/core/DocumentParser.js +800 -316
  13. package/dist/core/DocumentParser.js.map +1 -1
  14. package/dist/core/DocumentValidator.d.ts +2 -1
  15. package/dist/core/DocumentValidator.d.ts.map +1 -1
  16. package/dist/core/DocumentValidator.js.map +1 -1
  17. package/dist/elements/Bookmark.d.ts +1 -0
  18. package/dist/elements/Bookmark.d.ts.map +1 -1
  19. package/dist/elements/Bookmark.js +1 -1
  20. package/dist/elements/Bookmark.js.map +1 -1
  21. package/dist/elements/Hyperlink.d.ts +1 -0
  22. package/dist/elements/Hyperlink.d.ts.map +1 -1
  23. package/dist/elements/Hyperlink.js +23 -0
  24. package/dist/elements/Hyperlink.js.map +1 -1
  25. package/dist/elements/ImageManager.d.ts +2 -0
  26. package/dist/elements/ImageManager.d.ts.map +1 -1
  27. package/dist/elements/ImageManager.js +22 -0
  28. package/dist/elements/ImageManager.js.map +1 -1
  29. package/dist/elements/ImageRun.d.ts +10 -0
  30. package/dist/elements/ImageRun.d.ts.map +1 -0
  31. package/dist/elements/ImageRun.js +23 -0
  32. package/dist/elements/ImageRun.js.map +1 -0
  33. package/dist/elements/Paragraph.d.ts +16 -1
  34. package/dist/elements/Paragraph.d.ts.map +1 -1
  35. package/dist/elements/Paragraph.js +146 -2
  36. package/dist/elements/Paragraph.js.map +1 -1
  37. package/dist/elements/Run.d.ts +4 -0
  38. package/dist/elements/Run.d.ts.map +1 -1
  39. package/dist/elements/Run.js +27 -1
  40. package/dist/elements/Run.js.map +1 -1
  41. package/dist/elements/Section.d.ts.map +1 -1
  42. package/dist/elements/Section.js +3 -8
  43. package/dist/elements/Section.js.map +1 -1
  44. package/dist/elements/StructuredDocumentTag.d.ts +32 -0
  45. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -0
  46. package/dist/elements/StructuredDocumentTag.js +94 -0
  47. package/dist/elements/StructuredDocumentTag.js.map +1 -0
  48. package/dist/elements/Table.d.ts +24 -0
  49. package/dist/elements/Table.d.ts.map +1 -1
  50. package/dist/elements/Table.js +177 -3
  51. package/dist/elements/Table.js.map +1 -1
  52. package/dist/elements/TableOfContents.d.ts +33 -0
  53. package/dist/elements/TableOfContents.d.ts.map +1 -1
  54. package/dist/elements/TableOfContents.js +129 -1
  55. package/dist/elements/TableOfContents.js.map +1 -1
  56. package/dist/elements/TableRow.d.ts.map +1 -1
  57. package/dist/elements/TableRow.js +11 -1
  58. package/dist/elements/TableRow.js.map +1 -1
  59. package/dist/formatting/AbstractNumbering.d.ts +1 -0
  60. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  61. package/dist/formatting/AbstractNumbering.js +30 -0
  62. package/dist/formatting/AbstractNumbering.js.map +1 -1
  63. package/dist/formatting/NumberingInstance.d.ts +1 -0
  64. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  65. package/dist/formatting/NumberingInstance.js +16 -0
  66. package/dist/formatting/NumberingInstance.js.map +1 -1
  67. package/dist/formatting/NumberingLevel.d.ts +1 -0
  68. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  69. package/dist/formatting/NumberingLevel.js +59 -0
  70. package/dist/formatting/NumberingLevel.js.map +1 -1
  71. package/dist/formatting/NumberingManager.d.ts +11 -0
  72. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  73. package/dist/formatting/NumberingManager.js +92 -0
  74. package/dist/formatting/NumberingManager.js.map +1 -1
  75. package/dist/formatting/Style.d.ts +2 -0
  76. package/dist/formatting/Style.d.ts.map +1 -1
  77. package/dist/formatting/Style.js +49 -0
  78. package/dist/formatting/Style.js.map +1 -1
  79. package/dist/index.d.ts +2 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +6 -2
  82. package/dist/index.js.map +1 -1
  83. package/dist/xml/XMLBuilder.d.ts +4 -1
  84. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  85. package/dist/xml/XMLBuilder.js +134 -31
  86. package/dist/xml/XMLBuilder.js.map +1 -1
  87. package/dist/xml/XMLParser.d.ts +1 -0
  88. package/dist/xml/XMLParser.d.ts.map +1 -1
  89. package/dist/xml/XMLParser.js +75 -42
  90. package/dist/xml/XMLParser.js.map +1 -1
  91. package/dist/zip/ZipHandler.d.ts.map +1 -1
  92. package/dist/zip/ZipHandler.js +6 -1
  93. package/dist/zip/ZipHandler.js.map +1 -1
  94. package/dist/zip/ZipReader.d.ts.map +1 -1
  95. package/dist/zip/ZipReader.js +2 -2
  96. package/dist/zip/ZipReader.js.map +1 -1
  97. package/dist/zip/ZipWriter.d.ts.map +1 -1
  98. package/dist/zip/ZipWriter.js +13 -8
  99. package/dist/zip/ZipWriter.js.map +1 -1
  100. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pointsToCm = exports.pointsToInches = exports.pointsToEmus = exports.pointsToTwips = exports.emusToPixels = exports.emusToPoints = exports.emusToCm = exports.emusToInches = exports.emusToTwips = exports.twipsToEmus = exports.twipsToCm = exports.twipsToInches = exports.twipsToPoints = exports.COMMON_MARGINS = exports.PAGE_SIZES = exports.UNITS = exports.STANDARD_DPI = exports.looksCorrupted = exports.suggestFix = exports.detectCorruptionInText = exports.detectCorruptionInDocument = exports.validateRunText = exports.cleanXmlFromText = exports.detectXmlInText = exports.validateEmus = exports.validatePercentage = exports.validateNonEmptyString = exports.validateFontSize = exports.validateAlignment = exports.validateLevel = exports.validateNumberingId = exports.validateHexColor = exports.validateColor = exports.validateTwips = exports.isTextContent = exports.isValidZipBuffer = exports.normalizePath = exports.isBinaryFile = exports.validateDocxStructure = exports.FileOperationError = exports.MissingRequiredFileError = exports.CorruptedArchiveError = exports.InvalidDocxError = exports.DocxNotFoundError = exports.DocxError = exports.DOCX_PATHS = exports.REQUIRED_DOCX_FILES = exports.ZipWriter = exports.ZipReader = exports.ZipHandler = void 0;
4
- exports.CommentManager = exports.Comment = exports.RevisionManager = exports.Revision = exports.BookmarkManager = exports.Bookmark = exports.TableOfContentsElement = exports.TableOfContents = exports.Hyperlink = exports.HeaderFooterManager = exports.Footer = exports.Header = exports.Field = exports.FontManager = exports.ImageManager = exports.Image = exports.TableCell = exports.TableRow = exports.Table = exports.Section = exports.Run = exports.Paragraph = exports.NumberingManager = exports.NumberingInstance = exports.AbstractNumbering = exports.NumberingLevel = exports.StylesManager = exports.Style = exports.DocumentValidator = exports.DocumentGenerator = exports.DocumentParser = exports.RelationshipManager = exports.RelationshipType = exports.Relationship = exports.Document = exports.pixelsToPoints = exports.pixelsToCm = exports.pixelsToTwips = exports.pixelsToInches = exports.pixelsToEmus = exports.cmToPixels = exports.cmToPoints = exports.cmToInches = exports.cmToEmus = exports.cmToTwips = exports.inchesToPixels = exports.inchesToCm = exports.inchesToPoints = exports.inchesToEmus = exports.inchesToTwips = void 0;
5
- exports.LIMITS = exports.getErrorMessage = exports.wrapError = exports.toError = exports.isError = exports.createScopedLogger = exports.defaultLogger = exports.CollectingLogger = exports.SilentLogger = exports.ConsoleLogger = exports.LogLevel = exports.XMLParser = exports.XMLBuilder = exports.EndnoteManager = exports.EndnoteType = exports.Endnote = exports.FootnoteManager = exports.FootnoteType = exports.Footnote = void 0;
4
+ exports.RevisionManager = exports.Revision = exports.StructuredDocumentTag = exports.BookmarkManager = exports.Bookmark = exports.TableOfContentsElement = exports.TableOfContents = exports.Hyperlink = exports.HeaderFooterManager = exports.Footer = exports.Header = exports.Field = exports.FontManager = exports.ImageRun = exports.ImageManager = exports.Image = exports.TableCell = exports.TableRow = exports.Table = exports.Section = exports.Run = exports.Paragraph = exports.NumberingManager = exports.NumberingInstance = exports.AbstractNumbering = exports.NumberingLevel = exports.StylesManager = exports.Style = exports.DocumentValidator = exports.DocumentGenerator = exports.DocumentParser = exports.RelationshipManager = exports.RelationshipType = exports.Relationship = exports.Document = exports.pixelsToPoints = exports.pixelsToCm = exports.pixelsToTwips = exports.pixelsToInches = exports.pixelsToEmus = exports.cmToPixels = exports.cmToPoints = exports.cmToInches = exports.cmToEmus = exports.cmToTwips = exports.inchesToPixels = exports.inchesToCm = exports.inchesToPoints = exports.inchesToEmus = exports.inchesToTwips = void 0;
5
+ exports.LIMITS = exports.getErrorMessage = exports.wrapError = exports.toError = exports.isError = exports.createScopedLogger = exports.defaultLogger = exports.CollectingLogger = exports.SilentLogger = exports.ConsoleLogger = exports.LogLevel = exports.XMLParser = exports.XMLBuilder = exports.EndnoteManager = exports.EndnoteType = exports.Endnote = exports.FootnoteManager = exports.FootnoteType = exports.Footnote = exports.CommentManager = exports.Comment = void 0;
6
6
  var ZipHandler_1 = require("./zip/ZipHandler");
7
7
  Object.defineProperty(exports, "ZipHandler", { enumerable: true, get: function () { return ZipHandler_1.ZipHandler; } });
8
8
  var ZipReader_1 = require("./zip/ZipReader");
@@ -117,6 +117,8 @@ var Image_1 = require("./elements/Image");
117
117
  Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return Image_1.Image; } });
118
118
  var ImageManager_1 = require("./elements/ImageManager");
119
119
  Object.defineProperty(exports, "ImageManager", { enumerable: true, get: function () { return ImageManager_1.ImageManager; } });
120
+ var ImageRun_1 = require("./elements/ImageRun");
121
+ Object.defineProperty(exports, "ImageRun", { enumerable: true, get: function () { return ImageRun_1.ImageRun; } });
120
122
  var FontManager_1 = require("./elements/FontManager");
121
123
  Object.defineProperty(exports, "FontManager", { enumerable: true, get: function () { return FontManager_1.FontManager; } });
122
124
  var Field_1 = require("./elements/Field");
@@ -137,6 +139,8 @@ var Bookmark_1 = require("./elements/Bookmark");
137
139
  Object.defineProperty(exports, "Bookmark", { enumerable: true, get: function () { return Bookmark_1.Bookmark; } });
138
140
  var BookmarkManager_1 = require("./elements/BookmarkManager");
139
141
  Object.defineProperty(exports, "BookmarkManager", { enumerable: true, get: function () { return BookmarkManager_1.BookmarkManager; } });
142
+ var StructuredDocumentTag_1 = require("./elements/StructuredDocumentTag");
143
+ Object.defineProperty(exports, "StructuredDocumentTag", { enumerable: true, get: function () { return StructuredDocumentTag_1.StructuredDocumentTag; } });
140
144
  var Revision_1 = require("./elements/Revision");
141
145
  Object.defineProperty(exports, "Revision", { enumerable: true, get: function () { return Revision_1.Revision; } });
142
146
  var RevisionManager_1 = require("./elements/RevisionManager");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,12 @@ export declare class XMLBuilder {
16
16
  static escapeXmlText(text: string): string;
17
17
  static escapeXmlAttribute(value: string): string;
18
18
  static unescapeXml(text: string): string;
19
+ static sanitizeXmlContent(text: string): string;
19
20
  static createNamespaces(): Record<string, string>;
20
21
  static w(name: string, attributes?: Record<string, string | number | boolean | undefined>, children?: (XMLElement | string)[]): XMLElement;
21
22
  static wSelf(name: string, attributes?: Record<string, string | number | boolean | undefined>): XMLElement;
22
- static createDocument(bodyContent: XMLElement[]): string;
23
+ static createDocument(bodyContent: XMLElement[], namespaces?: Record<string, string>): string;
24
+ static buildObject(obj: any, rootName: string): string;
25
+ private static objectToElement;
23
26
  }
24
27
  //# sourceMappingURL=XMLBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XMLBuilder.d.ts","sourceRoot":"","sources":["../../src/xml/XMLBuilder.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAKD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAA+B;IAS/C,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAClE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACjC,UAAU;IAeb,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,UAAU;IAcb,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAU9B,KAAK,CAAC,kBAAkB,UAAQ,GAAG,MAAM;IAczC,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IA2CvB,OAAO,CAAC,SAAS;IAYjB,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAa1C,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAchD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYxC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBjD,MAAM,CAAC,CAAC,CACN,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAClE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACjC,UAAU;IAcb,MAAM,CAAC,KAAK,CACV,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,UAAU;IAab,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM;CASzD"}
1
+ {"version":3,"file":"XMLBuilder.d.ts","sourceRoot":"","sources":["../../src/xml/XMLBuilder.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAKD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAA+B;IAS/C,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAClE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACjC,UAAU;IAgBb,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,UAAU;IAuBb,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAU9B,KAAK,CAAC,kBAAkB,UAAQ,GAAG,MAAM;IAczC,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IA+DvB,OAAO,CAAC,SAAS;IAajB,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU1C,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAchD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmBxC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAiB/C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAoCjD,MAAM,CAAC,CAAC,CACN,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAClE,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACjC,UAAU;IAcb,MAAM,CAAC,KAAK,CACV,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjE,UAAU;IAab,MAAM,CAAC,cAAc,CACnB,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACtC,MAAM;IAgBT,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiBtD,OAAO,CAAC,MAAM,CAAC,eAAe;CAyD/B"}
@@ -12,6 +12,10 @@ class XMLBuilder {
12
12
  return this;
13
13
  }
14
14
  selfClosingElement(name, attributes) {
15
+ if (name === 'w:t' || name === 't') {
16
+ throw new Error('Text elements (<w:t>) cannot be self-closing per ECMA-376. ' +
17
+ 'Use element() with empty text content instead: XMLBuilder.w("t", attrs, [""])');
18
+ }
15
19
  this.elements.push({
16
20
  name,
17
21
  attributes,
@@ -24,7 +28,7 @@ class XMLBuilder {
24
28
  return this;
25
29
  }
26
30
  build(includeDeclaration = false) {
27
- let xml = '';
31
+ let xml = "";
28
32
  if (includeDeclaration) {
29
33
  xml += '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n';
30
34
  }
@@ -32,9 +36,9 @@ class XMLBuilder {
32
36
  return xml;
33
37
  }
34
38
  elementsToString(elements) {
35
- let xml = '';
39
+ let xml = "";
36
40
  for (const element of elements) {
37
- if (typeof element === 'string') {
41
+ if (typeof element === "string") {
38
42
  xml += this.escapeXml(element);
39
43
  }
40
44
  else {
@@ -49,20 +53,38 @@ class XMLBuilder {
49
53
  for (const [key, value] of Object.entries(element.attributes)) {
50
54
  if (value !== undefined && value !== null && value !== false) {
51
55
  const attrValue = value === true ? key : String(value);
52
- xml += ` ${key}="${this.escapeXml(attrValue)}"`;
56
+ xml += ` ${key}="${XMLBuilder.escapeXmlAttribute(attrValue)}"`;
53
57
  }
54
58
  }
55
59
  }
56
60
  if (element.selfClosing) {
57
- if (element.name === 'w:t') {
58
- throw new Error('CRITICAL: Text elements (w:t) cannot be self-closing. ' +
59
- 'This would cause text content loss in the document. ' +
60
- 'Use XMLBuilder.w("t", attrs, [text]) instead of XMLBuilder.wSelf("t", attrs).');
61
+ const CANNOT_SELF_CLOSE = [
62
+ "w:t",
63
+ "w:r",
64
+ "w:p",
65
+ "w:tbl",
66
+ "w:tr",
67
+ "w:tc",
68
+ "w:body",
69
+ "w:document",
70
+ "w:hyperlink",
71
+ "w:sdt",
72
+ "w:sdtContent",
73
+ "w:sdtPr",
74
+ "w:pPr",
75
+ "w:rPr",
76
+ "w:sectPr",
77
+ "w:bookmarkStart",
78
+ "w:bookmarkEnd",
79
+ ];
80
+ if (CANNOT_SELF_CLOSE.includes(element.name)) {
81
+ xml += "></" + element.name + ">";
82
+ return xml;
61
83
  }
62
- xml += '/>';
84
+ xml += "/>";
63
85
  return xml;
64
86
  }
65
- xml += '>';
87
+ xml += ">";
66
88
  if (element.children && element.children.length > 0) {
67
89
  xml += this.elementsToString(element.children);
68
90
  }
@@ -70,37 +92,54 @@ class XMLBuilder {
70
92
  return xml;
71
93
  }
72
94
  escapeXml(text) {
73
- return XMLBuilder.escapeXmlAttribute(text);
95
+ return XMLBuilder.escapeXmlText(text);
74
96
  }
75
97
  static escapeXmlText(text) {
76
- return text
77
- .replace(/&/g, '&amp;')
78
- .replace(/</g, '&lt;')
79
- .replace(/>/g, '&gt;');
98
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
80
99
  }
81
100
  static escapeXmlAttribute(value) {
82
101
  return value
83
- .replace(/&/g, '&amp;')
84
- .replace(/</g, '&lt;')
85
- .replace(/>/g, '&gt;')
86
- .replace(/"/g, '&quot;')
87
- .replace(/'/g, '&apos;');
102
+ .replace(/&/g, "&amp;")
103
+ .replace(/</g, "&lt;")
104
+ .replace(/>/g, "&gt;")
105
+ .replace(/"/g, "&quot;")
106
+ .replace(/'/g, "&apos;");
88
107
  }
89
108
  static unescapeXml(text) {
90
109
  return text
91
- .replace(/&lt;/g, '<')
92
- .replace(/&gt;/g, '>')
110
+ .replace(/&lt;/g, "<")
111
+ .replace(/&gt;/g, ">")
93
112
  .replace(/&quot;/g, '"')
94
113
  .replace(/&apos;/g, "'")
95
- .replace(/&amp;/g, '&');
114
+ .replace(/&amp;/g, "&");
115
+ }
116
+ static sanitizeXmlContent(text) {
117
+ return (text
118
+ .replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "")
119
+ .replace(/\]\]>/g, "]]&gt;")
120
+ .replace(/&/g, "&amp;")
121
+ .replace(/</g, "&lt;")
122
+ .replace(/>/g, "&gt;"));
96
123
  }
97
124
  static createNamespaces() {
98
125
  return {
99
- 'xmlns:w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
100
- 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
101
- 'xmlns:wp': 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',
102
- 'xmlns:a': 'http://schemas.openxmlformats.org/drawingml/2006/main',
103
- 'xmlns:pic': 'http://schemas.openxmlformats.org/drawingml/2006/picture',
126
+ "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
127
+ "xmlns:r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
128
+ "xmlns:wp": "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
129
+ "xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
130
+ "xmlns:pic": "http://schemas.openxmlformats.org/drawingml/2006/picture",
131
+ "xmlns:w14": "http://schemas.microsoft.com/office/word/2010/wordml",
132
+ "xmlns:wpc": "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
133
+ "xmlns:mc": "http://schemas.openxmlformats.org/markup-compatibility/2006",
134
+ "xmlns:o": "urn:schemas-microsoft-com:office:office",
135
+ "xmlns:v": "urn:schemas-microsoft-com:vml",
136
+ "xmlns:wp14": "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing",
137
+ "xmlns:w10": "urn:schemas-microsoft-com:office:word",
138
+ "xmlns:w15": "http://schemas.microsoft.com/office/word/2012/wordml",
139
+ "xmlns:wpg": "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup",
140
+ "xmlns:wpi": "http://schemas.microsoft.com/office/word/2010/wordprocessingInk",
141
+ "xmlns:wne": "http://schemas.microsoft.com/office/word/2006/wordml",
142
+ "xmlns:wps": "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
104
143
  };
105
144
  }
106
145
  static w(name, attributes, children) {
@@ -117,13 +156,77 @@ class XMLBuilder {
117
156
  selfClosing: true,
118
157
  };
119
158
  }
120
- static createDocument(bodyContent) {
159
+ static createDocument(bodyContent, namespaces = {}) {
121
160
  const builder = new XMLBuilder();
122
- builder.element('w:document', XMLBuilder.createNamespaces(), [
123
- XMLBuilder.w('body', undefined, bodyContent),
161
+ const allNamespaces = { ...XMLBuilder.createNamespaces(), ...namespaces };
162
+ builder.element("w:document", allNamespaces, [
163
+ XMLBuilder.w("body", undefined, bodyContent),
124
164
  ]);
125
165
  return builder.build(true);
126
166
  }
167
+ static buildObject(obj, rootName) {
168
+ const builder = new XMLBuilder();
169
+ const element = XMLBuilder.objectToElement(obj, rootName);
170
+ if (element) {
171
+ if (typeof element === "string") {
172
+ builder.text(element);
173
+ }
174
+ else {
175
+ builder.elements.push(element);
176
+ }
177
+ }
178
+ return builder.build();
179
+ }
180
+ static objectToElement(obj, name) {
181
+ if (obj === null || obj === undefined) {
182
+ return null;
183
+ }
184
+ if (typeof obj !== "object" || obj === null) {
185
+ return String(obj);
186
+ }
187
+ const attributes = {};
188
+ const children = [];
189
+ if (obj["#text"] && Object.keys(obj).length === 1) {
190
+ return String(obj["#text"]);
191
+ }
192
+ for (const key in obj) {
193
+ if (key.startsWith("@_")) {
194
+ attributes[key.substring(2)] = obj[key];
195
+ }
196
+ else if (key === "#text") {
197
+ children.push(String(obj[key]));
198
+ }
199
+ else {
200
+ const childObj = obj[key];
201
+ if (Array.isArray(childObj)) {
202
+ childObj.forEach((item) => {
203
+ const childElement = XMLBuilder.objectToElement(item, key);
204
+ if (childElement) {
205
+ children.push(childElement);
206
+ }
207
+ });
208
+ }
209
+ else {
210
+ const childElement = XMLBuilder.objectToElement(childObj, key);
211
+ if (childElement) {
212
+ children.push(childElement);
213
+ }
214
+ }
215
+ }
216
+ }
217
+ const element = {
218
+ name,
219
+ attributes,
220
+ children: children.length > 0 ? children : undefined,
221
+ };
222
+ if (!element.children || element.children.length === 0) {
223
+ const CANNOT_SELF_CLOSE = ["w:t", "w:p", "w:r", "w:document", "w:body"];
224
+ if (!CANNOT_SELF_CLOSE.includes(name)) {
225
+ element.selfClosing = true;
226
+ }
227
+ }
228
+ return element;
229
+ }
127
230
  }
128
231
  exports.XMLBuilder = XMLBuilder;
129
232
  //# sourceMappingURL=XMLBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XMLBuilder.js","sourceRoot":"","sources":["../../src/xml/XMLBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XMLBuilder.js","sourceRoot":"","sources":["../../src/xml/XMLBuilder.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class XMLParser {
16
16
  static extractElements(xml: string, tagName: string): string[];
17
17
  static extractAttribute(xml: string, attributeName: string): string | undefined;
18
18
  static hasSelfClosingTag(xml: string, tagName: string): boolean;
19
+ static hasBooleanProperty(xml: string, tagName: string): boolean;
19
20
  static extractText(xml: string): string;
20
21
  static validateSize(xml: string, maxSize?: number): void;
21
22
  static extractBetweenTags(xml: string, startTag: string, endTag: string): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"XMLParser.d.ts","sourceRoot":"","sources":["../../src/xml/XMLParser.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,eAAe,GACf,eAAe,EAAE,GACjB,IAAI,GACJ,SAAS,CAAC;AAKd,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/B;AAcD,qBAAa,SAAS;IAMpB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAyB1C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAwF9D,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAmB/E,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAU/D,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAkCvC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,IAAI;IAiB1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkC5F,MAAM,CAAC,aAAa,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,eAAe;IA+BlB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmKnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA0FvC,OAAO,CAAC,MAAM,CAAC,cAAc;IA0C7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiC/B,OAAO,CAAC,MAAM,CAAC,UAAU;CAiB1B"}
1
+ {"version":3,"file":"XMLParser.d.ts","sourceRoot":"","sources":["../../src/xml/XMLParser.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,eAAe,GACf,eAAe,EAAE,GACjB,IAAI,GACJ,SAAS,CAAC;AAKd,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/B;AAcD,qBAAa,SAAS;IAMpB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAyB1C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAyG9D,MAAM,CAAC,gBAAgB,CACrB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS;IAmBrB,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAoB/D,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAwBhE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAkCvC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,IAAI;IAqB1E,MAAM,CAAC,kBAAkB,CACvB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS;IAkCrB,MAAM,CAAC,aAAa,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,eAAe;IA+BlB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAiLnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA6FvC,OAAO,CAAC,MAAM,CAAC,cAAc;IAuD7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAkC/B,OAAO,CAAC,MAAM,CAAC,UAAU;CAiB1B"}
@@ -3,35 +3,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XMLParser = void 0;
4
4
  class XMLParser {
5
5
  static extractBody(docXml) {
6
- const startTag = '<w:body';
7
- const endTag = '</w:body>';
6
+ const startTag = "<w:body";
7
+ const endTag = "</w:body>";
8
8
  const startIdx = docXml.indexOf(startTag);
9
9
  if (startIdx === -1)
10
- return '';
11
- const openEnd = docXml.indexOf('>', startIdx);
10
+ return "";
11
+ const openEnd = docXml.indexOf(">", startIdx);
12
12
  if (openEnd === -1)
13
- return '';
13
+ return "";
14
14
  const endIdx = docXml.indexOf(endTag, openEnd);
15
15
  if (endIdx === -1)
16
- return '';
16
+ return "";
17
17
  return docXml.substring(openEnd + 1, endIdx);
18
18
  }
19
19
  static extractElements(xml, tagName) {
20
20
  const elements = [];
21
21
  const openTag = `<${tagName}`;
22
22
  const closeTag = `</${tagName}>`;
23
- const selfClosingEnd = '/>';
23
+ const selfClosingEnd = "/>";
24
24
  let pos = 0;
25
25
  while (pos < xml.length) {
26
26
  const startIdx = xml.indexOf(openTag, pos);
27
27
  if (startIdx === -1)
28
28
  break;
29
29
  const charAfterTag = xml[startIdx + openTag.length];
30
- if (charAfterTag && charAfterTag !== '>' && charAfterTag !== '/' && charAfterTag !== ' ' && charAfterTag !== '\t' && charAfterTag !== '\n' && charAfterTag !== '\r') {
30
+ if (charAfterTag &&
31
+ charAfterTag !== ">" &&
32
+ charAfterTag !== "/" &&
33
+ charAfterTag !== " " &&
34
+ charAfterTag !== "\t" &&
35
+ charAfterTag !== "\n" &&
36
+ charAfterTag !== "\r" &&
37
+ charAfterTag !== "=") {
31
38
  pos = startIdx + openTag.length;
32
39
  continue;
33
40
  }
34
- const openEnd = xml.indexOf('>', startIdx);
41
+ const openEnd = xml.indexOf(">", startIdx);
35
42
  if (openEnd === -1)
36
43
  break;
37
44
  if (xml.substring(openEnd - 1, openEnd + 1) === selfClosingEnd) {
@@ -50,7 +57,13 @@ class XMLParser {
50
57
  break;
51
58
  }
52
59
  const charAfter = xml[candidateOpen + openTag.length];
53
- if (charAfter && charAfter !== '>' && charAfter !== '/' && charAfter !== ' ' && charAfter !== '\t' && charAfter !== '\n' && charAfter !== '\r') {
60
+ if (charAfter &&
61
+ charAfter !== ">" &&
62
+ charAfter !== "/" &&
63
+ charAfter !== " " &&
64
+ charAfter !== "\t" &&
65
+ charAfter !== "\n" &&
66
+ charAfter !== "\r") {
54
67
  openSearchPos = candidateOpen + openTag.length;
55
68
  continue;
56
69
  }
@@ -95,16 +108,26 @@ class XMLParser {
95
108
  static hasSelfClosingTag(xml, tagName) {
96
109
  return xml.includes(`<${tagName}/>`) || xml.includes(`<${tagName} `);
97
110
  }
111
+ static hasBooleanProperty(xml, tagName) {
112
+ if (xml.includes(`<${tagName} w:val="1"`) ||
113
+ xml.includes(`<${tagName} w:val="true"`)) {
114
+ return true;
115
+ }
116
+ if (xml.includes(`<${tagName}/>`)) {
117
+ return true;
118
+ }
119
+ return false;
120
+ }
98
121
  static extractText(xml) {
99
122
  const texts = [];
100
- const openTag = '<w:t';
101
- const closeTag = '</w:t>';
123
+ const openTag = "<w:t";
124
+ const closeTag = "</w:t>";
102
125
  let pos = 0;
103
126
  while (pos < xml.length) {
104
127
  const startIdx = xml.indexOf(openTag, pos);
105
128
  if (startIdx === -1)
106
129
  break;
107
- const openEnd = xml.indexOf('>', startIdx);
130
+ const openEnd = xml.indexOf(">", startIdx);
108
131
  if (openEnd === -1)
109
132
  break;
110
133
  const closeIdx = xml.indexOf(closeTag, openEnd);
@@ -114,11 +137,13 @@ class XMLParser {
114
137
  texts.push(text);
115
138
  pos = closeIdx + closeTag.length;
116
139
  }
117
- return texts.join('');
140
+ return texts.join("");
118
141
  }
119
142
  static validateSize(xml, maxSize = 10 * 1024 * 1024) {
120
143
  if (xml.length > maxSize) {
121
- throw new Error(`XML content too large for parsing (${(xml.length / 1024 / 1024).toFixed(1)}MB). ` +
144
+ throw new Error(`XML content too large for parsing (${(xml.length /
145
+ 1024 /
146
+ 1024).toFixed(1)}MB). ` +
122
147
  `Maximum allowed: ${(maxSize / 1024 / 1024).toFixed(0)}MB`);
123
148
  }
124
149
  }
@@ -126,7 +151,7 @@ class XMLParser {
126
151
  const startIdx = xml.indexOf(startTag);
127
152
  if (startIdx === -1)
128
153
  return undefined;
129
- const openEnd = xml.indexOf('>', startIdx);
154
+ const openEnd = xml.indexOf(">", startIdx);
130
155
  if (openEnd === -1)
131
156
  return undefined;
132
157
  const endIdx = xml.indexOf(endTag, openEnd);
@@ -137,15 +162,15 @@ class XMLParser {
137
162
  static parseToObject(xml, options) {
138
163
  const opts = {
139
164
  ignoreAttributes: options?.ignoreAttributes ?? false,
140
- attributeNamePrefix: options?.attributeNamePrefix ?? '@_',
141
- textNodeName: options?.textNodeName ?? '#text',
165
+ attributeNamePrefix: options?.attributeNamePrefix ?? "@_",
166
+ textNodeName: options?.textNodeName ?? "#text",
142
167
  ignoreNamespace: options?.ignoreNamespace ?? false,
143
168
  parseAttributeValue: options?.parseAttributeValue ?? true,
144
169
  trimValues: options?.trimValues ?? true,
145
170
  alwaysArray: options?.alwaysArray ?? false,
146
171
  };
147
172
  XMLParser.validateSize(xml);
148
- xml = xml.replace(/<\?xml[^>]*\?>\s*/g, '').trim();
173
+ xml = xml.replace(/<\?xml[^>]*\?>\s*/g, "").trim();
149
174
  if (!xml) {
150
175
  return {};
151
176
  }
@@ -153,33 +178,35 @@ class XMLParser {
153
178
  return result.value;
154
179
  }
155
180
  static parseElementToObject(xml, startPos, options) {
156
- const openTagStart = xml.indexOf('<', startPos);
181
+ const openTagStart = xml.indexOf("<", startPos);
157
182
  if (openTagStart === -1) {
158
183
  return { value: {}, endPos: xml.length };
159
184
  }
160
- if (xml.substring(openTagStart, openTagStart + 4) === '<!--') {
161
- const commentEnd = xml.indexOf('-->', openTagStart + 4);
185
+ if (xml.substring(openTagStart, openTagStart + 4) === "<!--") {
186
+ const commentEnd = xml.indexOf("-->", openTagStart + 4);
162
187
  if (commentEnd !== -1) {
163
188
  return XMLParser.parseElementToObject(xml, commentEnd + 3, options);
164
189
  }
165
190
  return { value: {}, endPos: xml.length };
166
191
  }
167
- const nameMatch = xml.substring(openTagStart + 1).match(/^([a-zA-Z0-9:_-]+)/);
192
+ const nameMatch = xml
193
+ .substring(openTagStart + 1)
194
+ .match(/^([a-zA-Z0-9:_-]+)/);
168
195
  if (!nameMatch) {
169
196
  return { value: {}, endPos: openTagStart + 1 };
170
197
  }
171
- const originalElementName = nameMatch[1] || '';
198
+ const originalElementName = nameMatch[1] || "";
172
199
  let elementName = originalElementName;
173
- const tagHeaderEnd = xml.indexOf('>', openTagStart);
200
+ const tagHeaderEnd = xml.indexOf(">", openTagStart);
174
201
  if (tagHeaderEnd === -1) {
175
202
  return { value: {}, endPos: xml.length };
176
203
  }
177
- if (options.ignoreNamespace && elementName.includes(':')) {
178
- elementName = elementName.split(':')[1] || elementName;
204
+ if (options.ignoreNamespace && elementName.includes(":")) {
205
+ elementName = elementName.split(":")[1] || elementName;
179
206
  }
180
207
  const tagHeader = xml.substring(openTagStart + 1 + originalElementName.length, tagHeaderEnd);
181
208
  const attributes = XMLParser.extractAttributesFromTag(tagHeader, options);
182
- const isSelfClosing = tagHeader.trim().endsWith('/') || xml[tagHeaderEnd - 1] === '/';
209
+ const isSelfClosing = tagHeader.trim().endsWith("/") || xml[tagHeaderEnd - 1] === "/";
183
210
  if (isSelfClosing) {
184
211
  const elementValue = { ...attributes };
185
212
  return {
@@ -198,10 +225,10 @@ class XMLParser {
198
225
  }
199
226
  const content = xml.substring(contentStart, closingTagPos);
200
227
  const children = [];
201
- let textContent = '';
228
+ let textContent = "";
202
229
  let pos = 0;
203
230
  while (pos < content.length) {
204
- const nextTag = content.indexOf('<', pos);
231
+ const nextTag = content.indexOf("<", pos);
205
232
  if (nextTag === -1) {
206
233
  const text = content.substring(pos);
207
234
  if (text.trim()) {
@@ -233,7 +260,7 @@ class XMLParser {
233
260
  }
234
261
  if (textContent.trim()) {
235
262
  const text = options.trimValues ? textContent.trim() : textContent;
236
- if (typeof elementValue === 'object' && !Array.isArray(elementValue)) {
263
+ if (typeof elementValue === "object" && !Array.isArray(elementValue)) {
237
264
  if (Object.keys(elementValue).length === 0) {
238
265
  elementValue = text;
239
266
  }
@@ -244,14 +271,14 @@ class XMLParser {
244
271
  }
245
272
  if (children.length > 0) {
246
273
  const coalescedChildren = XMLParser.coalesceChildren(children, options);
247
- if (typeof elementValue === 'object' && !Array.isArray(elementValue)) {
274
+ if (typeof elementValue === "object" && !Array.isArray(elementValue)) {
248
275
  elementValue = { ...elementValue, ...coalescedChildren };
249
276
  }
250
277
  else {
251
278
  elementValue = coalescedChildren;
252
279
  }
253
280
  }
254
- if (typeof elementValue === 'object' &&
281
+ if (typeof elementValue === "object" &&
255
282
  !Array.isArray(elementValue) &&
256
283
  Object.keys(elementValue).length === 0) {
257
284
  elementValue = {};
@@ -277,7 +304,7 @@ class XMLParser {
277
304
  break;
278
305
  }
279
306
  }
280
- if (pos >= tagHeader.length || tagHeader[pos] === '/') {
307
+ if (pos >= tagHeader.length || tagHeader[pos] === "/") {
281
308
  break;
282
309
  }
283
310
  const nameStart = pos;
@@ -303,8 +330,9 @@ class XMLParser {
303
330
  break;
304
331
  }
305
332
  }
306
- let attrValue = '';
307
- if (pos < tagHeader.length && (tagHeader[pos] === '"' || tagHeader[pos] === "'")) {
333
+ let attrValue = "";
334
+ if (pos < tagHeader.length &&
335
+ (tagHeader[pos] === '"' || tagHeader[pos] === "'")) {
308
336
  const quote = tagHeader[pos];
309
337
  pos++;
310
338
  const valueStart = pos;
@@ -314,8 +342,8 @@ class XMLParser {
314
342
  attrValue = tagHeader.substring(valueStart, pos);
315
343
  pos++;
316
344
  }
317
- if (options.ignoreNamespace && attrName.includes(':')) {
318
- attrName = attrName.split(':')[1] || attrName;
345
+ if (options.ignoreNamespace && attrName.includes(":")) {
346
+ attrName = attrName.split(":")[1] || attrName;
319
347
  }
320
348
  const prefixedName = options.attributeNamePrefix + attrName;
321
349
  attributes[prefixedName] = options.parseAttributeValue
@@ -338,11 +366,16 @@ class XMLParser {
338
366
  let isRealOpen = false;
339
367
  if (nextOpen !== -1 && nextOpen < nextClose) {
340
368
  const charAfter = xml[nextOpen + openTag.length];
341
- if (charAfter === '>' || charAfter === ' ' || charAfter === '/' || charAfter === '\t' || charAfter === '\n' || charAfter === '\r') {
369
+ if (charAfter === ">" ||
370
+ charAfter === " " ||
371
+ charAfter === "/" ||
372
+ charAfter === "\t" ||
373
+ charAfter === "\n" ||
374
+ charAfter === "\r") {
342
375
  isRealOpen = true;
343
376
  }
344
377
  }
345
- if (isRealOpen && nextOpen < nextClose) {
378
+ if (isRealOpen) {
346
379
  depth++;
347
380
  pos = nextOpen + openTag.length;
348
381
  }
@@ -377,9 +410,9 @@ class XMLParser {
377
410
  return result;
378
411
  }
379
412
  static parseValue(value) {
380
- if (value === 'true')
413
+ if (value === "true")
381
414
  return true;
382
- if (value === 'false')
415
+ if (value === "false")
383
416
  return false;
384
417
  if (/^-?\d+$/.test(value)) {
385
418
  const num = parseInt(value, 10);