@lwc/template-compiler 2.19.0 → 2.19.1

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.
@@ -20,6 +20,13 @@ const rawContentElements = new Set([
20
20
  'NOFRAMES',
21
21
  'PLAINTEXT',
22
22
  ]);
23
+ /**
24
+ * Escape all the characters that could break a JavaScript template string literal: "`" (backtick),
25
+ * "${" (dollar + open curly) and "\" (backslash).
26
+ */
27
+ function templateStringEscape(str) {
28
+ return str.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
29
+ }
23
30
  function serializeAttrs(element) {
24
31
  /**
25
32
  * 0: styleToken in existing class attr
@@ -29,7 +36,7 @@ function serializeAttrs(element) {
29
36
  const attrs = [];
30
37
  let hasClassAttr = false;
31
38
  const collector = ({ name, value }) => {
32
- let v = value;
39
+ let v = typeof value === 'string' ? templateStringEscape(value) : value;
33
40
  if (name === 'class') {
34
41
  hasClassAttr = true;
35
42
  v += '${0}';
@@ -70,15 +77,10 @@ function serializeChildren(children, parentTagName, preserveComments) {
70
77
  html += serializeStaticElement(child, preserveComments);
71
78
  }
72
79
  else if ((0, ast_1.isText)(child)) {
73
- if (rawContentElements.has(parentTagName.toUpperCase())) {
74
- html += child.raw;
75
- }
76
- else {
77
- html += (0, shared_1.htmlEscape)(child.value.value);
78
- }
80
+ html += serializeTextNode(child, rawContentElements.has(parentTagName.toUpperCase()));
79
81
  }
80
82
  else if ((0, ast_1.isComment)(child)) {
81
- html += preserveComments ? `<!--${(0, shared_1.htmlEscape)(child.value)}-->` : '';
83
+ html += serializeCommentNode(child, preserveComments);
82
84
  }
83
85
  else {
84
86
  throw new TypeError('Unknown node found while serializing static content. Allowed nodes types are: Element, Text and Comment.');
@@ -86,6 +88,19 @@ function serializeChildren(children, parentTagName, preserveComments) {
86
88
  });
87
89
  return html;
88
90
  }
91
+ function serializeCommentNode(comment, preserveComment) {
92
+ return preserveComment ? `<!--${(0, shared_1.htmlEscape)(templateStringEscape(comment.value))}-->` : '';
93
+ }
94
+ function serializeTextNode(text, useRawContent) {
95
+ let content;
96
+ if (useRawContent) {
97
+ content = text.raw;
98
+ }
99
+ else {
100
+ content = (0, shared_1.htmlEscape)(text.value.value);
101
+ }
102
+ return templateStringEscape(content);
103
+ }
89
104
  function serializeStaticElement(element, preserveComments) {
90
105
  const tagName = element.name;
91
106
  let html = '<' + tagName + serializeAttrs(element) + '>';
@@ -1 +1 @@
1
- {"version":3,"file":"static-element-serializer.js","sourceRoot":"","sources":["../../../src/codegen/static-element-serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-element-serializer.js","sourceRoot":"","sources":["../../../src/codegen/static-element-serializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lwc/template-compiler",
3
- "version": "2.19.0",
3
+ "version": "2.19.1",
4
4
  "description": "Template compiler package",
5
5
  "homepage": "https://lwc.dev/",
6
6
  "repository": {
@@ -26,8 +26,8 @@
26
26
  },
27
27
  "//": "Currently can't upgrade estree-walker to v3.0.0 because it dropped CommonJS support: https://git.io/JXguS",
28
28
  "dependencies": {
29
- "@lwc/errors": "2.19.0",
30
- "@lwc/shared": "2.19.0",
29
+ "@lwc/errors": "2.19.1",
30
+ "@lwc/shared": "2.19.1",
31
31
  "acorn": "~8.7.1",
32
32
  "astring": "~1.8.3",
33
33
  "estree-walker": "~2.0.2",