@lwc/template-compiler 2.45.2 → 2.45.3

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 (105) hide show
  1. package/README.md +2 -2
  2. package/dist/index.cjs.js +5313 -0
  3. package/dist/index.cjs.js.map +1 -0
  4. package/dist/{types/index.d.ts → index.d.ts} +1 -0
  5. package/dist/index.js +5286 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +33 -30
  8. package/dist/commonjs/codegen/codegen.js +0 -330
  9. package/dist/commonjs/codegen/codegen.js.map +0 -1
  10. package/dist/commonjs/codegen/expression.js +0 -176
  11. package/dist/commonjs/codegen/expression.js.map +0 -1
  12. package/dist/commonjs/codegen/formatters/module.js +0 -91
  13. package/dist/commonjs/codegen/formatters/module.js.map +0 -1
  14. package/dist/commonjs/codegen/helpers.js +0 -233
  15. package/dist/commonjs/codegen/helpers.js.map +0 -1
  16. package/dist/commonjs/codegen/index.js +0 -549
  17. package/dist/commonjs/codegen/index.js.map +0 -1
  18. package/dist/commonjs/codegen/optimize.js +0 -119
  19. package/dist/commonjs/codegen/optimize.js.map +0 -1
  20. package/dist/commonjs/codegen/static-element-serializer.js +0 -122
  21. package/dist/commonjs/codegen/static-element-serializer.js.map +0 -1
  22. package/dist/commonjs/config.js +0 -78
  23. package/dist/commonjs/config.js.map +0 -1
  24. package/dist/commonjs/index.js +0 -66
  25. package/dist/commonjs/index.js.map +0 -1
  26. package/dist/commonjs/parser/attribute.js +0 -237
  27. package/dist/commonjs/parser/attribute.js.map +0 -1
  28. package/dist/commonjs/parser/constants.js +0 -155
  29. package/dist/commonjs/parser/constants.js.map +0 -1
  30. package/dist/commonjs/parser/expression-complex/html.js +0 -222
  31. package/dist/commonjs/parser/expression-complex/html.js.map +0 -1
  32. package/dist/commonjs/parser/expression-complex/index.js +0 -26
  33. package/dist/commonjs/parser/expression-complex/index.js.map +0 -1
  34. package/dist/commonjs/parser/expression-complex/types.js +0 -9
  35. package/dist/commonjs/parser/expression-complex/types.js.map +0 -1
  36. package/dist/commonjs/parser/expression-complex/validate.js +0 -141
  37. package/dist/commonjs/parser/expression-complex/validate.js.map +0 -1
  38. package/dist/commonjs/parser/expression.js +0 -130
  39. package/dist/commonjs/parser/expression.js.map +0 -1
  40. package/dist/commonjs/parser/html.js +0 -112
  41. package/dist/commonjs/parser/html.js.map +0 -1
  42. package/dist/commonjs/parser/index.js +0 -1181
  43. package/dist/commonjs/parser/index.js.map +0 -1
  44. package/dist/commonjs/parser/parse5Errors.js +0 -77
  45. package/dist/commonjs/parser/parse5Errors.js.map +0 -1
  46. package/dist/commonjs/parser/parser.js +0 -309
  47. package/dist/commonjs/parser/parser.js.map +0 -1
  48. package/dist/commonjs/parser/utils/html-element-attributes.js +0 -411
  49. package/dist/commonjs/parser/utils/html-element-attributes.js.map +0 -1
  50. package/dist/commonjs/parser/utils/html-elements.js +0 -141
  51. package/dist/commonjs/parser/utils/html-elements.js.map +0 -1
  52. package/dist/commonjs/parser/utils/javascript.js +0 -25
  53. package/dist/commonjs/parser/utils/javascript.js.map +0 -1
  54. package/dist/commonjs/parser/utils/svg-elements.js +0 -42
  55. package/dist/commonjs/parser/utils/svg-elements.js.map +0 -1
  56. package/dist/commonjs/shared/ast.js +0 -496
  57. package/dist/commonjs/shared/ast.js.map +0 -1
  58. package/dist/commonjs/shared/constants.js +0 -33
  59. package/dist/commonjs/shared/constants.js.map +0 -1
  60. package/dist/commonjs/shared/estree.js +0 -325
  61. package/dist/commonjs/shared/estree.js.map +0 -1
  62. package/dist/commonjs/shared/naming.js +0 -32
  63. package/dist/commonjs/shared/naming.js.map +0 -1
  64. package/dist/commonjs/shared/parse5.js +0 -20
  65. package/dist/commonjs/shared/parse5.js.map +0 -1
  66. package/dist/commonjs/shared/renderer-hooks.js +0 -55
  67. package/dist/commonjs/shared/renderer-hooks.js.map +0 -1
  68. package/dist/commonjs/shared/types.js +0 -49
  69. package/dist/commonjs/shared/types.js.map +0 -1
  70. package/dist/commonjs/shared/utils.js +0 -45
  71. package/dist/commonjs/shared/utils.js.map +0 -1
  72. package/dist/commonjs/state.js +0 -24
  73. package/dist/commonjs/state.js.map +0 -1
  74. /package/dist/{types/codegen → codegen}/codegen.d.ts +0 -0
  75. /package/dist/{types/codegen → codegen}/expression.d.ts +0 -0
  76. /package/dist/{types/codegen → codegen}/formatters/module.d.ts +0 -0
  77. /package/dist/{types/codegen → codegen}/helpers.d.ts +0 -0
  78. /package/dist/{types/codegen → codegen}/index.d.ts +0 -0
  79. /package/dist/{types/codegen → codegen}/optimize.d.ts +0 -0
  80. /package/dist/{types/codegen → codegen}/static-element-serializer.d.ts +0 -0
  81. /package/dist/{types/config.d.ts → config.d.ts} +0 -0
  82. /package/dist/{types/parser → parser}/attribute.d.ts +0 -0
  83. /package/dist/{types/parser → parser}/constants.d.ts +0 -0
  84. /package/dist/{types/parser → parser}/expression-complex/html.d.ts +0 -0
  85. /package/dist/{types/parser → parser}/expression-complex/index.d.ts +0 -0
  86. /package/dist/{types/parser → parser}/expression-complex/types.d.ts +0 -0
  87. /package/dist/{types/parser → parser}/expression-complex/validate.d.ts +0 -0
  88. /package/dist/{types/parser → parser}/expression.d.ts +0 -0
  89. /package/dist/{types/parser → parser}/html.d.ts +0 -0
  90. /package/dist/{types/parser → parser}/index.d.ts +0 -0
  91. /package/dist/{types/parser → parser}/parse5Errors.d.ts +0 -0
  92. /package/dist/{types/parser → parser}/parser.d.ts +0 -0
  93. /package/dist/{types/parser → parser}/utils/html-element-attributes.d.ts +0 -0
  94. /package/dist/{types/parser → parser}/utils/html-elements.d.ts +0 -0
  95. /package/dist/{types/parser → parser}/utils/javascript.d.ts +0 -0
  96. /package/dist/{types/parser → parser}/utils/svg-elements.d.ts +0 -0
  97. /package/dist/{types/shared → shared}/ast.d.ts +0 -0
  98. /package/dist/{types/shared → shared}/constants.d.ts +0 -0
  99. /package/dist/{types/shared → shared}/estree.d.ts +0 -0
  100. /package/dist/{types/shared → shared}/naming.d.ts +0 -0
  101. /package/dist/{types/shared → shared}/parse5.d.ts +0 -0
  102. /package/dist/{types/shared → shared}/renderer-hooks.d.ts +0 -0
  103. /package/dist/{types/shared → shared}/types.d.ts +0 -0
  104. /package/dist/{types/shared → shared}/utils.d.ts +0 -0
  105. /package/dist/{types/state.d.ts → state.d.ts} +0 -0
@@ -1,130 +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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.parseIdentifier = exports.parseExpression = exports.isPotentialExpression = exports.isExpression = exports.EXPRESSION_SYMBOL_END = exports.EXPRESSION_SYMBOL_START = void 0;
27
- /*
28
- * Copyright (c) 2018, salesforce.com, inc.
29
- * All rights reserved.
30
- * SPDX-License-Identifier: MIT
31
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
32
- */
33
- const acorn_1 = require("acorn");
34
- const errors_1 = require("@lwc/errors");
35
- const t = __importStar(require("../shared/estree"));
36
- const expression_complex_1 = require("./expression-complex");
37
- const javascript_1 = require("./utils/javascript");
38
- exports.EXPRESSION_SYMBOL_START = '{';
39
- exports.EXPRESSION_SYMBOL_END = '}';
40
- const POTENTIAL_EXPRESSION_RE = /^.?{.+}.*$/;
41
- const WHITESPACES_RE = /\s/;
42
- function isExpression(source) {
43
- // Issue #3418: Legacy behavior, previous regex treated "{}" attribute value as non expression
44
- return source[0] === '{' && source.slice(-1) === '}' && source.length > 2;
45
- }
46
- exports.isExpression = isExpression;
47
- function isPotentialExpression(source) {
48
- return !!source.match(POTENTIAL_EXPRESSION_RE);
49
- }
50
- exports.isPotentialExpression = isPotentialExpression;
51
- function validateExpression(node, config) {
52
- // TODO [#3370]: remove experimental template expression flag
53
- if (config.experimentalComplexExpressions) {
54
- return (0, expression_complex_1.validateExpressionAst)(node);
55
- }
56
- const isValidNode = t.isIdentifier(node) || t.isMemberExpression(node);
57
- (0, errors_1.invariant)(isValidNode, errors_1.ParserDiagnostics.INVALID_NODE, [node.type]);
58
- if (t.isMemberExpression(node)) {
59
- (0, errors_1.invariant)(config.experimentalComputedMemberExpression || !node.computed, errors_1.ParserDiagnostics.COMPUTED_PROPERTY_ACCESS_NOT_ALLOWED);
60
- const { object, property } = node;
61
- if (!t.isIdentifier(object)) {
62
- validateExpression(object, config);
63
- }
64
- if (!t.isIdentifier(property)) {
65
- validateExpression(property, config);
66
- }
67
- }
68
- }
69
- function validateSourceIsParsedExpression(source, parsedExpression) {
70
- if (parsedExpression.end === source.length - 1) {
71
- return;
72
- }
73
- let unclosedParenthesisCount = 0;
74
- for (let i = 0, n = parsedExpression.start; i < n; i++) {
75
- if (source[i] === '(') {
76
- unclosedParenthesisCount++;
77
- }
78
- }
79
- // source[source.length - 1] === '}', n = source.length - 1 is to avoid processing '}'.
80
- for (let i = parsedExpression.end, n = source.length - 1; i < n; i++) {
81
- const character = source[i];
82
- if (character === ')') {
83
- unclosedParenthesisCount--;
84
- }
85
- else if (character === ';') {
86
- // acorn parseExpressionAt will stop at the first ";", it may be that the expression is not
87
- // a multiple expression ({foo;}), but this is a case that we explicitly do not want to support.
88
- // in such case, let's fail with the same error as if it were a multiple expression.
89
- (0, errors_1.invariant)(false, errors_1.ParserDiagnostics.MULTIPLE_EXPRESSIONS);
90
- }
91
- else {
92
- (0, errors_1.invariant)(WHITESPACES_RE.test(character), errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['Unexpected end of expression']);
93
- }
94
- }
95
- (0, errors_1.invariant)(unclosedParenthesisCount === 0, errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, [
96
- 'Unexpected end of expression',
97
- ]);
98
- }
99
- function parseExpression(ctx, source, location) {
100
- const { ecmaVersion } = ctx;
101
- return ctx.withErrorWrapping(() => {
102
- const parsed = (0, acorn_1.parseExpressionAt)(source, 1, {
103
- ecmaVersion,
104
- // TODO [#3370]: remove experimental template expression flag
105
- allowAwaitOutsideFunction: ctx.config.experimentalComplexExpressions,
106
- });
107
- validateSourceIsParsedExpression(source, parsed);
108
- validateExpression(parsed, ctx.config);
109
- return { ...parsed, location };
110
- }, errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, location, (err) => `Invalid expression ${source} - ${err.message}`);
111
- }
112
- exports.parseExpression = parseExpression;
113
- function parseIdentifier(ctx, source, location) {
114
- let isValid = true;
115
- isValid = (0, acorn_1.isIdentifierStart)(source.charCodeAt(0));
116
- for (let i = 1; i < source.length && isValid; i++) {
117
- isValid = (0, acorn_1.isIdentifierChar)(source.charCodeAt(i));
118
- }
119
- if (isValid && !(0, javascript_1.isReservedES6Keyword)(source)) {
120
- return {
121
- ...t.identifier(source),
122
- location,
123
- };
124
- }
125
- else {
126
- ctx.throwAtLocation(errors_1.ParserDiagnostics.INVALID_IDENTIFIER, location, [source]);
127
- }
128
- }
129
- exports.parseIdentifier = parseIdentifier;
130
- //# sourceMappingURL=expression.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/parser/expression.ts"],"names":[],"mappings":"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"}
@@ -1,112 +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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.decodeTextContent = exports.cleanTextNode = exports.parseHTML = void 0;
27
- /*
28
- * Copyright (c) 2018, salesforce.com, inc.
29
- * All rights reserved.
30
- * SPDX-License-Identifier: MIT
31
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
32
- */
33
- const parse5 = __importStar(require("parse5"));
34
- const he = __importStar(require("he"));
35
- const errors_1 = require("@lwc/errors");
36
- const ast_1 = require("../shared/ast");
37
- const parse5Errors_1 = require("./parse5Errors");
38
- const expression_complex_1 = require("./expression-complex");
39
- function getLwcErrorFromParse5Error(code) {
40
- /* istanbul ignore else */
41
- if (parse5Errors_1.errorCodesToErrorOn.has(code)) {
42
- return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX;
43
- }
44
- else if (parse5Errors_1.errorCodesToWarnOn.has(code)) {
45
- return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;
46
- }
47
- else {
48
- // It should be impossible to reach here; we have a test in parser.spec.ts to ensure
49
- // all error codes are accounted for. But just to be safe, make it a warning.
50
- // TODO [#2650]: better system for handling unexpected parse5 errors
51
- // eslint-disable-next-line no-console
52
- console.warn('Found a Parse5 error that we do not know how to handle:', code);
53
- return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;
54
- }
55
- }
56
- function parseHTML(ctx, source) {
57
- const onParseError = (err) => {
58
- const { code, ...location } = err;
59
- const lwcError = getLwcErrorFromParse5Error(code);
60
- ctx.warnAtLocation(lwcError, (0, ast_1.sourceLocation)(location), [code]);
61
- };
62
- // TODO [#3370]: remove experimental template expression flag
63
- if (ctx.config.experimentalComplexExpressions) {
64
- return (0, expression_complex_1.parseFragment)(source, {
65
- ctx,
66
- sourceCodeLocationInfo: true,
67
- onParseError,
68
- });
69
- }
70
- return parse5.parseFragment(source, {
71
- sourceCodeLocationInfo: true,
72
- onParseError,
73
- });
74
- }
75
- exports.parseHTML = parseHTML;
76
- // https://github.com/babel/babel/blob/d33d02359474296402b1577ef53f20d94e9085c4/packages/babel-types/src/react.js#L9-L55
77
- function cleanTextNode(value) {
78
- const lines = value.split(/\r\n|\n|\r/);
79
- let lastNonEmptyLine = 0;
80
- for (let i = 0; i < lines.length; i++) {
81
- if (lines[i].match(/[^ \t]/)) {
82
- lastNonEmptyLine = i;
83
- }
84
- }
85
- let str = '';
86
- for (let i = 0; i < lines.length; i++) {
87
- const line = lines[i];
88
- const isFirstLine = i === 0;
89
- const isLastLine = i === lines.length - 1;
90
- const isLastNonEmptyLine = i === lastNonEmptyLine;
91
- let trimmedLine = line.replace(/\t/g, ' ');
92
- if (!isFirstLine) {
93
- trimmedLine = trimmedLine.replace(/^[ ]+/, '');
94
- }
95
- if (!isLastLine) {
96
- trimmedLine = trimmedLine.replace(/[ ]+$/, '');
97
- }
98
- if (trimmedLine) {
99
- if (!isLastNonEmptyLine) {
100
- trimmedLine += ' ';
101
- }
102
- str += trimmedLine;
103
- }
104
- }
105
- return str;
106
- }
107
- exports.cleanTextNode = cleanTextNode;
108
- function decodeTextContent(source) {
109
- return he.decode(source);
110
- }
111
- exports.decodeTextContent = decodeTextContent;
112
- //# sourceMappingURL=html.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/parser/html.ts"],"names":[],"mappings":"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"}