abstract-document 18.0.0 → 18.0.2

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 (49) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/lib/abstract-document/default-styles.js +1 -1
  3. package/lib/abstract-document/default-styles.js.map +1 -1
  4. package/lib/abstract-document/resources.js.map +1 -1
  5. package/lib/abstract-document/styles/table-cell-style.d.ts +2 -2
  6. package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
  7. package/lib/abstract-document/styles/table-cell-style.js +4 -6
  8. package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
  9. package/lib/abstract-document/styles/text-style.js +1 -1
  10. package/lib/abstract-document/styles/text-style.js.map +1 -1
  11. package/lib/abstract-document-exporters/docx2/render.js +18 -16
  12. package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
  13. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  14. package/lib/abstract-document-exporters/pdf/measure.js +3 -2
  15. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  16. package/lib/abstract-document-exporters/pdf/render.js +22 -20
  17. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  18. package/package.json +2 -2
  19. package/src/abstract-document/default-styles.ts +1 -1
  20. package/src/abstract-document/resources.ts +3 -3
  21. package/src/abstract-document/styles/table-cell-style.ts +8 -8
  22. package/src/abstract-document/styles/text-style.ts +20 -20
  23. package/src/abstract-document-exporters/docx2/render.ts +37 -34
  24. package/src/abstract-document-exporters/pdf/measure.ts +6 -5
  25. package/src/abstract-document-exporters/pdf/render.ts +23 -20
  26. package/lib/abstract-document-xml/mustache-xml/index.d.ts +0 -3
  27. package/lib/abstract-document-xml/mustache-xml/index.d.ts.map +0 -1
  28. package/lib/abstract-document-xml/mustache-xml/index.js +0 -19
  29. package/lib/abstract-document-xml/mustache-xml/index.js.map +0 -1
  30. package/lib/abstract-document-xml/mustache-xml/parse-mustache-xml.d.ts +0 -16
  31. package/lib/abstract-document-xml/mustache-xml/parse-mustache-xml.d.ts.map +0 -1
  32. package/lib/abstract-document-xml/mustache-xml/parse-mustache-xml.js +0 -158
  33. package/lib/abstract-document-xml/mustache-xml/parse-mustache-xml.js.map +0 -1
  34. package/lib/abstract-document-xml/mustache-xml/validate-mustache-xml.d.ts +0 -21
  35. package/lib/abstract-document-xml/mustache-xml/validate-mustache-xml.d.ts.map +0 -1
  36. package/lib/abstract-document-xml/mustache-xml/validate-mustache-xml.js +0 -228
  37. package/lib/abstract-document-xml/mustache-xml/validate-mustache-xml.js.map +0 -1
  38. package/lib/abstract-document-xml/parse-xml/index.d.ts +0 -3
  39. package/lib/abstract-document-xml/parse-xml/index.d.ts.map +0 -1
  40. package/lib/abstract-document-xml/parse-xml/index.js +0 -15
  41. package/lib/abstract-document-xml/parse-xml/index.js.map +0 -1
  42. package/lib/abstract-document-xml/parse-xml/parse-xml.d.ts +0 -22
  43. package/lib/abstract-document-xml/parse-xml/parse-xml.d.ts.map +0 -1
  44. package/lib/abstract-document-xml/parse-xml/parse-xml.js +0 -128
  45. package/lib/abstract-document-xml/parse-xml/parse-xml.js.map +0 -1
  46. package/lib/abstract-document-xml/parse-xml/validation.d.ts +0 -21
  47. package/lib/abstract-document-xml/parse-xml/validation.d.ts.map +0 -1
  48. package/lib/abstract-document-xml/parse-xml/validation.js +0 -205
  49. package/lib/abstract-document-xml/parse-xml/validation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/parse-xml/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAyB,MAAM,aAAa,CAAC;AAOhE,aAAK,KAAK,GAAG;IACX,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAMF,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC,CAAC;AAEF,aAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ,CAAC;AASF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAuErG;AAqJD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM,CAYzG"}
@@ -1,205 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorToReadableText = exports.validateXml = void 0;
4
- const fast_xml_parser_1 = require("fast-xml-parser");
5
- const parse_xml_1 = require("./parse-xml");
6
- var ErrorType;
7
- (function (ErrorType) {
8
- ErrorType[ErrorType["warning"] = 0] = "warning";
9
- ErrorType[ErrorType["error"] = 1] = "error";
10
- })(ErrorType || (ErrorType = {}));
11
- // eslint-disable-next-line functional/prefer-readonly-type
12
- function validateXml(fullXml, xsdSchema) {
13
- const errors = [];
14
- // ignore all mustache brackets
15
- const matchMustacheBrackets = /{{.*}}(?!([\S]))/g;
16
- // Ignore xml comments
17
- const xmlComments = /<!--[^>]*-->/g;
18
- // Replace matches with spaces of same length
19
- let cleanedXml = fullXml.replace(matchMustacheBrackets, (m) => " ".repeat(m.length));
20
- cleanedXml = cleanedXml.replace(xmlComments, (m) => {
21
- const x = (m.match(/^.*$/gm) || []).map((m2) => " ".repeat(m2.length));
22
- return x.join("\n");
23
- });
24
- const xml = `<xml>\n${cleanedXml}\n</xml>`;
25
- if (xml) {
26
- try {
27
- const result = fast_xml_parser_1.XMLValidator.validate(xml, {
28
- allowBooleanAttributes: true,
29
- });
30
- if (result !== true) {
31
- errors.push(getErrorFromException(result, xml));
32
- }
33
- const entryPointXml = (0, parse_xml_1.parseXml)(xml, {
34
- preserveOrder: true,
35
- ignoreAttributes: false,
36
- attributeNamePrefix: "",
37
- allowBooleanAttributes: true,
38
- trimValues: false,
39
- ignoreDeclaration: true,
40
- })[0];
41
- const entryPointSchema = xsdSchema[0];
42
- let pos = 0;
43
- const lines = cleanedXml.split("\n");
44
- const getRangeOfElement = (text, incrementPosition = true) => {
45
- if (text === undefined) {
46
- const monacoPosition = getPositionFromIndex(lines, pos);
47
- return toRange(monacoPosition.lineNumber, monacoPosition.column, monacoPosition.lineNumber, monacoPosition.column + 5);
48
- }
49
- const position = cleanedXml.indexOf(text, pos);
50
- if (incrementPosition) {
51
- pos = position >= pos ? position + text.length : pos;
52
- }
53
- const monacoPosition = getPositionFromIndex(lines, position);
54
- return toRange(monacoPosition.lineNumber, monacoPosition.column, monacoPosition.lineNumber, monacoPosition.column + text.length);
55
- };
56
- const validationErrors = entryPointXml.children.flatMap((child) => validateElements(child, undefined, entryPointSchema, getRangeOfElement));
57
- errors.push(...validationErrors);
58
- }
59
- catch (e) {
60
- errors.push(createError(e.message, ErrorType.error, toRange(1, 1, 1, 100)));
61
- }
62
- }
63
- return errors.map((e) => getDecorationsFromError(e));
64
- }
65
- exports.validateXml = validateXml;
66
- function validateElements(element, schemaElement, completeSchema, getRangeOfElement) {
67
- const errors = [];
68
- // Validate element name
69
- const tagName = element.tagName;
70
- const range = getRangeOfElement(tagName);
71
- const slashPosition = getRangeOfElement("/", false);
72
- const closingTagPosition = getRangeOfElement(">", false);
73
- const isClosed = rangeLessThan(slashPosition, closingTagPosition);
74
- const validElements = Object.values(completeSchema.children);
75
- const schemaName = (schemaElement === null || schemaElement === void 0 ? void 0 : schemaElement.attributes.type) || tagName;
76
- const foundSchemaElement = (0, parse_xml_1.findElement)(validElements, schemaName);
77
- if (!foundSchemaElement) {
78
- return [createError(`"${tagName}" is not a valid element`, ErrorType.error, range)];
79
- }
80
- const possibleAttributes = Array.from(foundSchemaElement.children).flatMap((c) => c.tagName === "attribute" ? c : []);
81
- // Validate required attributes
82
- for (const possibleAttribute of possibleAttributes) {
83
- const attributeName = possibleAttribute.attributes.name;
84
- const isRequired = possibleAttribute.attributes.use;
85
- if (attributeName && isRequired && isRequired === "required") {
86
- if (element.attributes[attributeName] === undefined) {
87
- errors.push(createError(`"${attributeName}" is a required attribute on "${tagName}"`, ErrorType.error, range));
88
- }
89
- }
90
- }
91
- // Validate existing attributes
92
- for (const [attrKey, attrVal] of Object.entries(element.attributes)) {
93
- const possibleAttrNames = possibleAttributes.flatMap((p) => p.attributes.name || []);
94
- const attrText = typeof attrVal === "string" ? `${attrKey}="${attrVal}"` : attrKey;
95
- const attrRange = getRangeOfElement(attrText, false);
96
- if (!possibleAttrNames.includes(attrKey)) {
97
- errors.push(createError(`"${attrKey}" is a not a valid attribute on "${tagName}"`, ErrorType.error, attrRange));
98
- }
99
- }
100
- // Validate that the children are allowed as a child of current element
101
- // and then validate the children themselves
102
- const schemaChildren = Object.values(foundSchemaElement.children);
103
- for (const child of element.children) {
104
- const childName = child.tagName;
105
- if (!childName) {
106
- continue;
107
- }
108
- const foundChild = (0, parse_xml_1.findElement)(schemaChildren, childName);
109
- if (!foundChild) {
110
- const childRange = getRangeOfElement(childName, false);
111
- if (childRange) {
112
- errors.push(createError(`"${childName}" is not a valid child of "${tagName}"`, ErrorType.error, childRange));
113
- }
114
- }
115
- const elementErrors = validateElements(child, foundChild, completeSchema, getRangeOfElement);
116
- errors.push(...elementErrors);
117
- }
118
- if (!isClosed) {
119
- // Increment position to after closing tag
120
- getRangeOfElement(`</${tagName}`, true);
121
- }
122
- return errors;
123
- }
124
- function getDecorationsFromError(error) {
125
- return {
126
- range: error.range,
127
- options: {
128
- className: getErrorClassNames(error),
129
- hoverMessage: [{ value: getErrorType(error) }, { value: getErrorMessage(error) }],
130
- },
131
- };
132
- }
133
- function getErrorFromException(result, xml) {
134
- const { col, line, msg } = result.err;
135
- const startLine = line - 1;
136
- const lines = xml.split("\n");
137
- const rowText = lines[startLine] || "";
138
- const length = rowText.indexOf(">") - rowText.indexOf("<") || 4;
139
- const range = toRange(startLine, col, startLine, col + length);
140
- return createError(msg, ErrorType.error, range);
141
- }
142
- function getErrorClassNames(error) {
143
- switch (error.type) {
144
- case ErrorType.warning:
145
- return "xml-lint xml-lint--warning";
146
- case ErrorType.error:
147
- return "xml-lint xml-lint--error";
148
- default:
149
- return "";
150
- }
151
- }
152
- function getErrorType(error) {
153
- switch (error.type) {
154
- case ErrorType.warning:
155
- return "**Warning**";
156
- case ErrorType.error:
157
- return "**Error**";
158
- default:
159
- return "";
160
- }
161
- }
162
- function getErrorMessage(error) {
163
- var _a;
164
- return (_a = error.message.split(/[\t\n]/g)[1]) !== null && _a !== void 0 ? _a : error.message;
165
- }
166
- function createError(message, type, range) {
167
- return { message, type, range };
168
- }
169
- function getPositionFromIndex(lines, index) {
170
- let totalLength = 0;
171
- for (const [lineNumber, line] of lines.entries()) {
172
- totalLength += line.length;
173
- if (totalLength >= index - lineNumber) {
174
- return {
175
- lineNumber: lineNumber + 1,
176
- column: 1 + index - (totalLength - line.length) - lineNumber || 1, // "- lineNumber" because of \n characters
177
- };
178
- }
179
- }
180
- return { lineNumber: lines.length, column: 1 };
181
- }
182
- function toRange(startLineNumber, startColumn, endLineNumber, endColumn) {
183
- return { startLineNumber, startColumn, endLineNumber, endColumn };
184
- }
185
- function errorToReadableText(errors, templateName = "") {
186
- const errorLines = [];
187
- if (templateName) {
188
- errorLines.push(`Error in template ${templateName} \n`);
189
- }
190
- for (const error of errors) {
191
- const hoverErrors = error.options.hoverMessage.map((e) => e.value.replace(/\*/g, ""));
192
- errorLines.push(`${hoverErrors.join("\n")}`);
193
- errorLines.push(`On line ${error.range.startLineNumber}, column ${error.range.startColumn}\n`);
194
- }
195
- return errorLines.join("\n");
196
- }
197
- exports.errorToReadableText = errorToReadableText;
198
- function rangeLessThan(range1, range2) {
199
- return range1.startLineNumber < range2.startLineNumber
200
- ? true
201
- : range1.startLineNumber > range2.startLineNumber
202
- ? false
203
- : range1.startColumn < range2.startColumn;
204
- }
205
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/parse-xml/validation.ts"],"names":[],"mappings":"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"}