abstract-document 16.0.36 → 16.0.38

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 (26) hide show
  1. package/lib/abstract-document-exporters/shared/to-base-64.d.ts +3 -0
  2. package/lib/abstract-document-exporters/shared/to-base-64.d.ts.map +1 -0
  3. package/lib/abstract-document-exporters/shared/to-base-64.js +19 -0
  4. package/lib/abstract-document-exporters/shared/to-base-64.js.map +1 -0
  5. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +15 -0
  6. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
  7. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +26 -0
  8. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
  9. package/package.json +2 -2
  10. package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +44 -1
  11. package/lib/abstract-document-xml/handlebars-xml/helpers.d.ts +0 -2
  12. package/lib/abstract-document-xml/handlebars-xml/helpers.d.ts.map +0 -1
  13. package/lib/abstract-document-xml/handlebars-xml/helpers.js +0 -93
  14. package/lib/abstract-document-xml/handlebars-xml/helpers.js.map +0 -1
  15. package/lib/abstract-document-xml/handlebars-xml/index.d.ts +0 -3
  16. package/lib/abstract-document-xml/handlebars-xml/index.d.ts.map +0 -1
  17. package/lib/abstract-document-xml/handlebars-xml/index.js +0 -19
  18. package/lib/abstract-document-xml/handlebars-xml/index.js.map +0 -1
  19. package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.d.ts +0 -21
  20. package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.d.ts.map +0 -1
  21. package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.js +0 -148
  22. package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.js.map +0 -1
  23. package/lib/abstract-document-xml/handlebars-xml/validate-mustache-xml.d.ts +0 -21
  24. package/lib/abstract-document-xml/handlebars-xml/validate-mustache-xml.d.ts.map +0 -1
  25. package/lib/abstract-document-xml/handlebars-xml/validate-mustache-xml.js +0 -195
  26. package/lib/abstract-document-xml/handlebars-xml/validate-mustache-xml.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ export declare function toBase64String(u8: Uint8Array): string;
2
+ export declare const rawSvgPrefix = "data:image/svg+xml,";
3
+ //# sourceMappingURL=to-base-64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-base-64.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/shared/to-base-64.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAarD;AAED,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rawSvgPrefix = void 0;
4
+ exports.toBase64String = toBase64String;
5
+ function toBase64String(u8) {
6
+ const imageFormat = u8[0] === 0xff && u8[1] === 0xd8 ? "image/jpeg" : "image/png";
7
+ // Node
8
+ if (typeof Buffer !== "undefined") {
9
+ return `data:${imageFormat};base64,${Buffer.from(u8).toString("base64")}`;
10
+ }
11
+ // Browser
12
+ let bin = "";
13
+ for (const e of u8) {
14
+ bin += String.fromCharCode(e);
15
+ }
16
+ return `data:${imageFormat};base64,${btoa(bin)}`;
17
+ }
18
+ exports.rawSvgPrefix = "data:image/svg+xml,";
19
+ //# sourceMappingURL=to-base-64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-base-64.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/shared/to-base-64.ts"],"names":[],"mappings":";;;AAAA,wCAaC;AAbD,SAAgB,cAAc,CAAC,EAAc;IAC3C,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAClF,OAAO;IACP,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,QAAQ,WAAW,WAAW,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,UAAU;IACV,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,QAAQ,WAAW,WAAW,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,CAAC;AAEY,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
@@ -1,3 +1,18 @@
1
1
  import { AbstractDoc } from "../../abstract-document/index.js";
2
+ import { Resources } from "../../abstract-document/resources.js";
3
+ export type TemplateInput = {
4
+ readonly template: string;
5
+ readonly data: any;
6
+ readonly partials: Record<string, string>;
7
+ };
8
+ export type AbstractDoxXmlsResult = {
9
+ readonly type: "Ok";
10
+ readonly value: Blob;
11
+ } | {
12
+ readonly type: "Err";
13
+ readonly error: string;
14
+ };
15
+ export type Format = "PDF" | "DOCX";
16
+ export declare function abstractDocsXml(templateInputs: ReadonlyArray<TemplateInput>, format: Format, pdfKit: PDFKit.PDFDocument, getResources: (imageUrls: Record<string, true>, fontFamilies: Record<string, true>) => Promise<Resources>): Promise<AbstractDoxXmlsResult>;
2
17
  export declare function abstractDocXml(template: string, data: any, partials: Record<string, string>, rendered?: "Mustache" | "Handlebars"): readonly [AbstractDoc.AbstractDoc, imageUrls: Record<string, true>, fontFamilies: Record<string, true>];
3
18
  //# sourceMappingURL=abstract-doc-of-xml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-doc-of-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAI/D,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,UAAU,GAAG,YAA2B,GACjD,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAKzG"}
1
+ {"version":3,"file":"abstract-doc-of-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAIjE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpC,wBAAsB,eAAe,CACnC,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,GACxG,OAAO,CAAC,qBAAqB,CAAC,CAoBhC;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,UAAU,GAAG,YAA2B,GACjD,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAKzG"}
@@ -1,8 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.abstractDocsXml = abstractDocsXml;
3
4
  exports.abstractDocXml = abstractDocXml;
5
+ const render_js_1 = require("../../abstract-document-exporters/docx2/render.js");
6
+ const render_js_2 = require("../../abstract-document-exporters/pdf/render.js");
7
+ const abstract_doc_js_1 = require("../../abstract-document/abstract-doc.js");
4
8
  const creator_js_1 = require("./creator.js");
5
9
  const handlebars_xml_1 = require("handlebars-xml");
10
+ async function abstractDocsXml(templateInputs, format, pdfKit, getResources) {
11
+ try {
12
+ const abstractDocs = Array();
13
+ let imageUrls = {};
14
+ let fontFamilies = {};
15
+ for (const r of templateInputs) {
16
+ const [ad, newImageUrls, newFontFamilies] = abstractDocXml(r.template, r.data, r.partials, "Handlebars");
17
+ abstractDocs.push(ad);
18
+ imageUrls = { ...imageUrls, ...newImageUrls };
19
+ fontFamilies = { ...fontFamilies, ...newFontFamilies };
20
+ }
21
+ const resources = await getResources(imageUrls, fontFamilies);
22
+ const combinedReport = (0, abstract_doc_js_1.addResources)((0, abstract_doc_js_1.merge)(...abstractDocs), resources);
23
+ return {
24
+ type: "Ok",
25
+ value: format === "PDF" ? await (0, render_js_2.exportToHTML5Blob)(pdfKit, combinedReport) : await (0, render_js_1.exportToHTML5Blob)(combinedReport),
26
+ };
27
+ }
28
+ catch (e) {
29
+ return { type: "Err", error: typeof e === "string" ? e : e.message };
30
+ }
31
+ }
6
32
  function abstractDocXml(template, data, partials, rendered = "Handlebars") {
7
33
  const xml = rendered === "Mustache" ? (0, handlebars_xml_1.parseMustacheXml)(template, data, partials) : (0, handlebars_xml_1.parseHandlebarsXml)(template, data, partials);
8
34
  const [imageUrls, fontFamilies, styleNames] = extractImageFontsStyleNames(xml);
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-doc-of-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-doc-of-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-document",
3
- "version": "16.0.36",
3
+ "version": "16.0.38",
4
4
  "description": "Dynamically create documents using code or JSX and render to any format",
5
5
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-document",
6
6
  "main": "lib/index.js",
@@ -48,5 +48,5 @@
48
48
  "vite": "^6.0.1",
49
49
  "vitest": "^2.1.6"
50
50
  },
51
- "gitHead": "be91668b1cef7bf6944910322f284e49cc4148c3"
51
+ "gitHead": "82dfc92c859674a6e3e011787e360e11753b9a2f"
52
52
  }
@@ -1,7 +1,50 @@
1
+ import { exportToHTML5Blob as docxBlob } from "../../abstract-document-exporters/docx2/render.js";
2
+ import { exportToHTML5Blob as pdfBlob } from "../../abstract-document-exporters/pdf/render.js";
3
+ import { addResources, merge } from "../../abstract-document/abstract-doc.js";
1
4
  import { AbstractDoc } from "../../abstract-document/index.js";
5
+ import { Resources } from "../../abstract-document/resources.js";
2
6
  import { ADCreatorFn, creators, propsCreators } from "./creator.js";
3
7
  import { parseHandlebarsXml, parseMustacheXml, type XmlElement } from "handlebars-xml";
4
8
 
9
+ export type TemplateInput = {
10
+ readonly template: string;
11
+ readonly data: any;
12
+ readonly partials: Record<string, string>;
13
+ };
14
+
15
+ export type AbstractDoxXmlsResult =
16
+ | { readonly type: "Ok"; readonly value: Blob }
17
+ | { readonly type: "Err"; readonly error: string };
18
+
19
+ export type Format = "PDF" | "DOCX";
20
+
21
+ export async function abstractDocsXml(
22
+ templateInputs: ReadonlyArray<TemplateInput>,
23
+ format: Format,
24
+ pdfKit: PDFKit.PDFDocument,
25
+ getResources: (imageUrls: Record<string, true>, fontFamilies: Record<string, true>) => Promise<Resources>
26
+ ): Promise<AbstractDoxXmlsResult> {
27
+ try {
28
+ const abstractDocs = Array<AbstractDoc.AbstractDoc>();
29
+ let imageUrls: Record<string, true> = {};
30
+ let fontFamilies: Record<string, true> = {};
31
+ for (const r of templateInputs) {
32
+ const [ad, newImageUrls, newFontFamilies] = abstractDocXml(r.template, r.data, r.partials, "Handlebars");
33
+ abstractDocs.push(ad);
34
+ imageUrls = { ...imageUrls, ...newImageUrls };
35
+ fontFamilies = { ...fontFamilies, ...newFontFamilies };
36
+ }
37
+ const resources = await getResources(imageUrls, fontFamilies);
38
+ const combinedReport = addResources(merge(...abstractDocs), resources);
39
+ return {
40
+ type: "Ok",
41
+ value: format === "PDF" ? await pdfBlob(pdfKit, combinedReport) : await docxBlob(combinedReport),
42
+ };
43
+ } catch (e) {
44
+ return { type: "Err", error: typeof e === "string" ? e : e.message };
45
+ }
46
+ }
47
+
5
48
  export function abstractDocXml(
6
49
  template: string,
7
50
  data: any,
@@ -39,7 +82,7 @@ function abstractDocXmlRecursive(
39
82
  const arrayedElements = ["header", "footer", "headerRows"];
40
83
  const childrenOnly = arrayedElements.findIndex((e) => e === childName) !== -1;
41
84
  const differentFirstPage = childElement.attributes.differentFirstPage;
42
- if(differentFirstPage === "true" && childName === "header") {
85
+ if (differentFirstPage === "true" && childName === "header") {
43
86
  props.frontHeader = abstractDocXmlRecursive(creators, childElement, childrenOnly);
44
87
  } else if (differentFirstPage === "true" && childName === "footer") {
45
88
  props.frontFooter = abstractDocXmlRecursive(creators, childElement, childrenOnly);
@@ -1,2 +0,0 @@
1
- export declare function registerHelpers(): void;
2
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/helpers.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,IAAI,IAAI,CAatC"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.registerHelpers = registerHelpers;
7
- const handlebars_1 = __importDefault(require("handlebars"));
8
- // import moment from "moment";
9
- function registerHelpers() {
10
- // sortOnPathHelper();
11
- equalHelper();
12
- lessThanHelper();
13
- greaterThanHelper();
14
- lessThanOrEqualHelper();
15
- greaterThanEqualHelper();
16
- add();
17
- subtract();
18
- multiply();
19
- divide();
20
- // formatDateHelper();
21
- // currentDateHelper();
22
- }
23
- // function sortOnPathHelper(): void {
24
- // Handlebars.registerHelper("sortOnPath", function (array, key) {
25
- // const path = key.split(".");
26
- // const extractPath = (obj: Record<string, any>, path: ReadonlyArray<string>): any => {
27
- // const [first, ...rest] = path;
28
- // if (first === undefined) {
29
- // return obj;
30
- // }
31
- // return extractPath(obj[first], rest);
32
- // };
33
- // return array.toSorted(
34
- // (a: Record<string, any>, b: Record<string, any>) => extractPath(a, path) - extractPath(b, path)
35
- // );
36
- // });
37
- // }
38
- function add() {
39
- handlebars_1.default.registerHelper("add", function (a, b) {
40
- return a + b;
41
- });
42
- }
43
- function subtract() {
44
- handlebars_1.default.registerHelper("subtract", function (a, b) {
45
- return a - b;
46
- });
47
- }
48
- function multiply() {
49
- handlebars_1.default.registerHelper("multiply", function (a, b) {
50
- return a * b;
51
- });
52
- }
53
- function divide() {
54
- handlebars_1.default.registerHelper("divide", function (a, b) {
55
- return a / b;
56
- });
57
- }
58
- function equalHelper() {
59
- handlebars_1.default.registerHelper("equal", function (a, b) {
60
- return a === b;
61
- });
62
- }
63
- function lessThanHelper() {
64
- handlebars_1.default.registerHelper("lessThan", function (a, b) {
65
- return a < b;
66
- });
67
- }
68
- function greaterThanHelper() {
69
- handlebars_1.default.registerHelper("greaterThan", function (a, b) {
70
- return a > b;
71
- });
72
- }
73
- function lessThanOrEqualHelper() {
74
- handlebars_1.default.registerHelper("lessThanEqual", function (a, b) {
75
- return a <= b;
76
- });
77
- }
78
- function greaterThanEqualHelper() {
79
- handlebars_1.default.registerHelper("greaterThanEqual", function (a, b) {
80
- return a >= b;
81
- });
82
- }
83
- // function formatDateHelper(): void {
84
- // Handlebars.registerHelper("formatDate", function (date, format) {
85
- // return moment(date).format(format);
86
- // });
87
- // }
88
- // function currentDateHelper(): void {
89
- // Handlebars.registerHelper("currentDate", function (format) {
90
- // return moment().format(format);
91
- // });
92
- // }
93
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/helpers.ts"],"names":[],"mappings":";;;;;AAGA,0CAaC;AAhBD,4DAAoC;AACpC,+BAA+B;AAE/B,SAAgB,eAAe;IAC7B,sBAAsB;IACtB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,CAAC;IACxB,sBAAsB,EAAE,CAAC;IACzB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,sBAAsB;IACtB,uBAAuB;AACzB,CAAC;AAeD,sCAAsC;AACtC,oEAAoE;AACpE,mCAAmC;AAEnC,4FAA4F;AAC5F,uCAAuC;AACvC,mCAAmC;AACnC,sBAAsB;AACtB,UAAU;AACV,8CAA8C;AAC9C,SAAS;AAET,6BAA6B;AAC7B,wGAAwG;AACxG,SAAS;AACT,QAAQ;AACR,IAAI;AAEJ,SAAS,GAAG;IACV,oBAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACf,oBAAU,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACf,oBAAU,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM;IACb,oBAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,oBAAU,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc;IACrB,oBAAU,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB;IACxB,oBAAU,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB;IAC5B,oBAAU,CAAC,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC7B,oBAAU,CAAC,cAAc,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,sEAAsE;AACtE,0CAA0C;AAC1C,QAAQ;AACR,IAAI;AAEJ,uCAAuC;AACvC,iEAAiE;AACjE,sCAAsC;AACtC,QAAQ;AACR,IAAI"}
@@ -1,3 +0,0 @@
1
- export * from "./validate-mustache-xml.js";
2
- export * from "./parse-mustache-xml.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC"}
@@ -1,19 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./validate-mustache-xml.js"), exports);
18
- __exportStar(require("./parse-mustache-xml.js"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,0DAAwC"}
@@ -1,21 +0,0 @@
1
- import { X2jOptions } from "fast-xml-parser";
2
- import Mustache from "mustache";
3
- export type XmlElement = {
4
- readonly tagName: string;
5
- readonly attributes: Record<string, string>;
6
- readonly children: ReadonlyArray<XmlElement>;
7
- readonly textContent?: string;
8
- };
9
- export declare enum TemplateMethod {
10
- Mustache = 0,
11
- Handlebars = 1
12
- }
13
- export declare const parseMustacheXml: (template: string, data: any, partials: Record<string, string>, method?: TemplateMethod) => ReadonlyArray<XmlElement>;
14
- export declare const renderMustache: typeof Mustache.render;
15
- export declare const renderHandlebars: (template: string, data: any, partials: Record<string, string>) => string;
16
- export declare function parseXmlCustom(text: string, options: Partial<X2jOptions>): ReadonlyArray<XmlElement>;
17
- export declare const parseXml: (text: string) => ReadonlyArray<XmlElement>;
18
- export declare const parseXsd: (text: string) => ReadonlyArray<XmlElement>;
19
- export declare function findElement(elements: ReadonlyArray<XmlElement>, elementName: string | undefined): XmlElement | undefined;
20
- export declare function getChildren(elements: ReadonlyArray<XmlElement>): ReadonlyArray<XmlElement>;
21
- //# sourceMappingURL=parse-mustache-xml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-mustache-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAExD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,oBAAY,cAAc;IACxB,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;AAED,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,MAAM,GAAG,EACT,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAQ,cAA0C,KACjD,aAAa,CAAC,UAAU,CAU1B,CAAC;AAEF,eAAO,MAAM,cAAc,wBAAkB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,MAAM,GAAG,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAIhG,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAKpG;AACD,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,UAAU,CAAwC,CAAC;AACzG,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,UAAU,CACP,CAAC;AAgC1D,wBAAgB,WAAW,CACzB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,UAAU,GAAG,SAAS,CAqBxB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAc1F"}
@@ -1,148 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseXsd = exports.parseXml = exports.renderHandlebars = exports.renderMustache = exports.parseMustacheXml = exports.TemplateMethod = void 0;
7
- exports.parseXmlCustom = parseXmlCustom;
8
- exports.findElement = findElement;
9
- exports.getChildren = getChildren;
10
- const fast_xml_parser_1 = require("fast-xml-parser");
11
- const handlebars_1 = __importDefault(require("handlebars"));
12
- const mustache_1 = __importDefault(require("mustache"));
13
- const helpers_1 = require("./helpers");
14
- var TemplateMethod;
15
- (function (TemplateMethod) {
16
- TemplateMethod[TemplateMethod["Mustache"] = 0] = "Mustache";
17
- TemplateMethod[TemplateMethod["Handlebars"] = 1] = "Handlebars";
18
- })(TemplateMethod || (exports.TemplateMethod = TemplateMethod = {}));
19
- const parseMustacheXml = (template, data, partials, method = TemplateMethod.Handlebars) => {
20
- switch (method) {
21
- case TemplateMethod.Handlebars: {
22
- return (0, exports.parseXml)((0, exports.renderHandlebars)(template, data, partials));
23
- }
24
- case TemplateMethod.Mustache:
25
- default: {
26
- return (0, exports.parseXml)((0, exports.renderMustache)(template, data, partials));
27
- }
28
- }
29
- };
30
- exports.parseMustacheXml = parseMustacheXml;
31
- exports.renderMustache = mustache_1.default.render;
32
- const renderHandlebars = (template, data, partials) => {
33
- (0, helpers_1.registerHelpers)();
34
- Object.entries(partials).forEach(([name, partial]) => handlebars_1.default.registerPartial(name, partial));
35
- return handlebars_1.default.compile(template, { compat: true, preventIndent: true })(data);
36
- };
37
- exports.renderHandlebars = renderHandlebars;
38
- function parseXmlCustom(text, options) {
39
- const parser = new fast_xml_parser_1.XMLParser(options);
40
- parser.addEntity("#x2F", "/");
41
- parser.addEntity("#x3D", "=");
42
- return transformFXP(parser.parse(text));
43
- }
44
- const parseXml = (text) => transformFXP(xmlParser.parse(text));
45
- exports.parseXml = parseXml;
46
- const parseXsd = (text) => transformFXP(xsdParser.parse(text.replace(/xs:/g, "")));
47
- exports.parseXsd = parseXsd;
48
- // Transforms fast-xml-parser format to a format that is much easier to work with
49
- function transformFXP(parsedXml) {
50
- return parsedXml.flatMap((element) => {
51
- const key = Object.keys(element).find((k) => k !== ":@" && k !== "#text");
52
- if (key === "?xml") {
53
- return [];
54
- }
55
- const children = (element[key] || []).filter((c) => {
56
- const key = Object.keys(c)[0];
57
- return key !== "#text" && key !== ":@";
58
- });
59
- const attributes = element[":@"] || {};
60
- const textChilds = (element[key] || [])
61
- .filter((c) => {
62
- const key = Object.keys(c)[0];
63
- return key === "#text";
64
- })
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- .flatMap((t) => t["#text"]);
67
- const textContents = textChilds.flatMap((text) => {
68
- const cleaned = text.replace(/\n/g, "").replace(/\t/g, "").trim();
69
- return cleaned ? [text] : [];
70
- });
71
- const textContent = textContents.join("\n");
72
- return { tagName: key, attributes: attributes, children: transformFXP(children), textContent: textContent };
73
- });
74
- }
75
- function findElement(elements, elementName) {
76
- if (!elementName) {
77
- return undefined;
78
- }
79
- for (const elem of elements) {
80
- if (elem.tagName === "annotation" || elem.tagName === "attribute") {
81
- continue;
82
- }
83
- if (shouldSkipLevel(elem)) {
84
- const childElement = findElement(Array.from(elem.children), elementName);
85
- if (childElement) {
86
- return shouldSkipLevel(childElement)
87
- ? findElement(Array.from(childElement.children), elementName)
88
- : childElement;
89
- }
90
- }
91
- if (elem.attributes.name === elementName) {
92
- return elem;
93
- }
94
- }
95
- return undefined;
96
- }
97
- function getChildren(elements) {
98
- for (const elem of elements) {
99
- if (elem.tagName === "annotation" || elem.tagName === "attribute") {
100
- continue;
101
- }
102
- if (shouldSkipLevel(elem)) {
103
- const child = getChildren(Array.from(elem.children));
104
- if (child.length > 0) {
105
- return child.flatMap((c) => (shouldSkipLevel(c) ? getChildren(Array.from(c.children)) : c));
106
- }
107
- }
108
- return elements;
109
- }
110
- return [];
111
- }
112
- function shouldSkipLevel(tag) {
113
- return (tag.tagName === "all" || tag.tagName === "sequence" || tag.tagName === "choice" || tag.attributes.name === undefined);
114
- }
115
- const xmlParser = new fast_xml_parser_1.XMLParser({
116
- preserveOrder: true,
117
- ignoreAttributes: false,
118
- attributeNamePrefix: "",
119
- allowBooleanAttributes: true,
120
- trimValues: false,
121
- ignoreDeclaration: true,
122
- processEntities: true,
123
- htmlEntities: true,
124
- attributeValueProcessor: (_name, value) => {
125
- if (!value?.trim()) {
126
- return value;
127
- }
128
- const nValue = Number(value);
129
- if (!Number.isNaN(nValue)) {
130
- return nValue;
131
- }
132
- return value;
133
- },
134
- });
135
- xmlParser.addEntity("#x2F", "/");
136
- xmlParser.addEntity("#x3D", "=");
137
- const xsdParser = new fast_xml_parser_1.XMLParser({
138
- preserveOrder: true,
139
- ignoreAttributes: false,
140
- attributeNamePrefix: "",
141
- allowBooleanAttributes: true,
142
- trimValues: false,
143
- ignoreDeclaration: true,
144
- stopNodes: ["*.documentation"],
145
- });
146
- xsdParser.addEntity("#x2F", "/");
147
- xsdParser.addEntity("#x3D", "=");
148
- //# sourceMappingURL=parse-mustache-xml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-mustache-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { XmlElement } from "./parse-mustache-xml.js";
2
- type Range = {
3
- readonly startLineNumber: number;
4
- readonly startColumn: number;
5
- readonly endLineNumber: number;
6
- readonly endColumn: number;
7
- };
8
- type ErrorObject = {
9
- readonly range: Range;
10
- readonly options: ErrorOptions;
11
- };
12
- type ErrorOptions = {
13
- readonly className: string;
14
- readonly hoverMessage: Array<{
15
- readonly value: string;
16
- }>;
17
- };
18
- export declare function validateXml(fullXml: string, xsdSchema: ReadonlyArray<XmlElement>): Array<ErrorObject>;
19
- export declare function errorToReadableText(errors: ReadonlyArray<ErrorObject>, templateName?: string): string;
20
- export {};
21
- //# sourceMappingURL=validate-mustache-xml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-mustache-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/validate-mustache-xml.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAyB,MAAM,yBAAyB,CAAC;AAO5E,KAAK,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,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC,CAAC;AAEF,KAAK,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,CAgErG;AAoJD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM,CAYzG"}
@@ -1,195 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateXml = validateXml;
4
- exports.errorToReadableText = errorToReadableText;
5
- const fast_xml_parser_1 = require("fast-xml-parser");
6
- const parse_mustache_xml_js_1 = require("./parse-mustache-xml.js");
7
- var ErrorType;
8
- (function (ErrorType) {
9
- ErrorType[ErrorType["warning"] = 0] = "warning";
10
- ErrorType[ErrorType["error"] = 1] = "error";
11
- })(ErrorType || (ErrorType = {}));
12
- // eslint-disable-next-line functional/prefer-readonly-type
13
- function validateXml(fullXml, xsdSchema) {
14
- const errors = [];
15
- // ignore all mustache brackets
16
- const matchMustacheBrackets = /{{.*}}(?!([\S]))/g;
17
- // Ignore xml comments
18
- const xmlComments = /<!--[^>]*-->/g;
19
- // Replace matches with spaces of same length
20
- let cleanedXml = fullXml.replace(matchMustacheBrackets, (m) => " ".repeat(m.length));
21
- cleanedXml = cleanedXml.replace(xmlComments, (m) => {
22
- const x = (m.match(/^.*$/gm) || []).map((m2) => " ".repeat(m2.length));
23
- return x.join("\n");
24
- });
25
- const xml = `<xml>\n${cleanedXml}\n</xml>`;
26
- if (xml) {
27
- try {
28
- const result = fast_xml_parser_1.XMLValidator.validate(xml, {
29
- allowBooleanAttributes: true,
30
- });
31
- if (result !== true) {
32
- errors.push(getErrorFromException(result, xml));
33
- }
34
- const entryPointXml = (0, parse_mustache_xml_js_1.parseXml)(xml)[0];
35
- const entryPointSchema = xsdSchema[0];
36
- let pos = 0;
37
- const lines = cleanedXml.split("\n");
38
- const getRangeOfElement = (text, incrementPosition = true) => {
39
- if (text === undefined) {
40
- const monacoPosition = getPositionFromIndex(lines, pos);
41
- return toRange(monacoPosition.lineNumber, monacoPosition.column, monacoPosition.lineNumber, monacoPosition.column + 5);
42
- }
43
- const position = cleanedXml.indexOf(text, pos);
44
- if (incrementPosition) {
45
- pos = position >= pos ? position + text.length : pos;
46
- }
47
- const monacoPosition = getPositionFromIndex(lines, position);
48
- return toRange(monacoPosition.lineNumber, monacoPosition.column, monacoPosition.lineNumber, monacoPosition.column + text.length);
49
- };
50
- const validationErrors = entryPointXml.children.flatMap((child) => validateElements(child, undefined, entryPointSchema, getRangeOfElement));
51
- errors.push(...validationErrors);
52
- }
53
- catch (e) {
54
- errors.push(createError(e.message, ErrorType.error, toRange(1, 1, 1, 100)));
55
- }
56
- }
57
- return errors.map((e) => getDecorationsFromError(e));
58
- }
59
- function validateElements(element, schemaElement, completeSchema, getRangeOfElement) {
60
- const errors = [];
61
- // Validate element name
62
- const tagName = element.tagName;
63
- const range = getRangeOfElement(tagName);
64
- const slashPosition = getRangeOfElement("/", false);
65
- const closingTagPosition = getRangeOfElement(">", false);
66
- const isClosed = rangeLessThan(slashPosition, closingTagPosition);
67
- const validElements = Object.values(completeSchema.children);
68
- const schemaName = schemaElement?.attributes.type || tagName;
69
- const foundSchemaElement = (0, parse_mustache_xml_js_1.findElement)(validElements, schemaName);
70
- if (!foundSchemaElement) {
71
- return [createError(`"${tagName}" is not a valid element`, ErrorType.error, range)];
72
- }
73
- const possibleAttributes = Array.from(foundSchemaElement.children).flatMap((c) => c.tagName === "attribute" ? c : []);
74
- // Validate required attributes
75
- for (const possibleAttribute of possibleAttributes) {
76
- const attributeName = possibleAttribute.attributes.name;
77
- const isRequired = possibleAttribute.attributes.use;
78
- if (attributeName && isRequired && isRequired === "required") {
79
- if (element.attributes[attributeName] === undefined) {
80
- errors.push(createError(`"${attributeName}" is a required attribute on "${tagName}"`, ErrorType.error, range));
81
- }
82
- }
83
- }
84
- // Validate existing attributes
85
- for (const [attrKey, attrVal] of Object.entries(element.attributes)) {
86
- const possibleAttrNames = possibleAttributes.flatMap((p) => p.attributes.name || []);
87
- const attrText = typeof attrVal === "string" ? `${attrKey}="${attrVal}"` : attrKey;
88
- const attrRange = getRangeOfElement(attrText, false);
89
- if (!possibleAttrNames.includes(attrKey)) {
90
- errors.push(createError(`"${attrKey}" is a not a valid attribute on "${tagName}"`, ErrorType.error, attrRange));
91
- }
92
- }
93
- // Validate that the children are allowed as a child of current element
94
- // and then validate the children themselves
95
- const schemaChildren = Object.values(foundSchemaElement.children);
96
- for (const child of element.children) {
97
- const childName = child.tagName;
98
- if (!childName) {
99
- continue;
100
- }
101
- const foundChild = (0, parse_mustache_xml_js_1.findElement)(schemaChildren, childName);
102
- if (!foundChild) {
103
- const childRange = getRangeOfElement(childName, false);
104
- if (childRange) {
105
- errors.push(createError(`"${childName}" is not a valid child of "${tagName}"`, ErrorType.error, childRange));
106
- }
107
- }
108
- const elementErrors = validateElements(child, foundChild, completeSchema, getRangeOfElement);
109
- errors.push(...elementErrors);
110
- }
111
- if (!isClosed) {
112
- // Increment position to after closing tag
113
- getRangeOfElement(`</${tagName}`, true);
114
- }
115
- return errors;
116
- }
117
- function getDecorationsFromError(error) {
118
- return {
119
- range: error.range,
120
- options: {
121
- className: getErrorClassNames(error),
122
- hoverMessage: [{ value: getErrorType(error) }, { value: getErrorMessage(error) }],
123
- },
124
- };
125
- }
126
- function getErrorFromException(result, xml) {
127
- const { col, line, msg } = result.err;
128
- const startLine = line - 1;
129
- const lines = xml.split("\n");
130
- const rowText = lines[startLine] || "";
131
- const length = rowText.indexOf(">") - rowText.indexOf("<") || 4;
132
- const range = toRange(startLine, col, startLine, col + length);
133
- return createError(msg, ErrorType.error, range);
134
- }
135
- function getErrorClassNames(error) {
136
- switch (error.type) {
137
- case ErrorType.warning:
138
- return "xml-lint xml-lint--warning";
139
- case ErrorType.error:
140
- return "xml-lint xml-lint--error";
141
- default:
142
- return "";
143
- }
144
- }
145
- function getErrorType(error) {
146
- switch (error.type) {
147
- case ErrorType.warning:
148
- return "**Warning**";
149
- case ErrorType.error:
150
- return "**Error**";
151
- default:
152
- return "";
153
- }
154
- }
155
- const getErrorMessage = (error) => error.message.split(/[\t\n]/g)[1] ?? error.message;
156
- const createError = (message, type, range) => ({ message, type, range });
157
- function getPositionFromIndex(lines, index) {
158
- let totalLength = 0;
159
- for (const [lineNumber, line] of lines.entries()) {
160
- totalLength += line.length;
161
- if (totalLength >= index - lineNumber) {
162
- return {
163
- lineNumber: lineNumber + 1,
164
- column: 1 + index - (totalLength - line.length) - lineNumber || 1, // "- lineNumber" because of \n characters
165
- };
166
- }
167
- }
168
- return { lineNumber: lines.length, column: 1 };
169
- }
170
- const toRange = (startLineNumber, startColumn, endLineNumber, endColumn) => ({
171
- startLineNumber,
172
- startColumn,
173
- endLineNumber,
174
- endColumn,
175
- });
176
- function errorToReadableText(errors, templateName = "") {
177
- const errorLines = [];
178
- if (templateName) {
179
- errorLines.push(`Error in template ${templateName} \n`);
180
- }
181
- for (const error of errors) {
182
- const hoverErrors = error.options.hoverMessage.map((e) => e.value.replace(/\*/g, ""));
183
- errorLines.push(`${hoverErrors.join("\n")}`);
184
- errorLines.push(`On line ${error.range.startLineNumber}, column ${error.range.startColumn}\n`);
185
- }
186
- return errorLines.join("\n");
187
- }
188
- function rangeLessThan(range1, range2) {
189
- return range1.startLineNumber < range2.startLineNumber
190
- ? true
191
- : range1.startLineNumber > range2.startLineNumber
192
- ? false
193
- : range1.startColumn < range2.startColumn;
194
- }
195
- //# sourceMappingURL=validate-mustache-xml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-mustache-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/validate-mustache-xml.ts"],"names":[],"mappings":"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"}