@lwc/ssr-runtime 8.1.1 → 8.1.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.
- package/README.md +3 -0
- package/dist/index.cjs.js +163 -10
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +60 -9
- package/dist/index.js +163 -11
- package/dist/index.js.map +1 -1
- package/dist/validate-style-text-contents.d.ts +21 -0
- package/package.json +1 -1
package/README.md
ADDED
package/dist/index.cjs.js
CHANGED
@@ -5,12 +5,67 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
+
/*
|
9
|
+
* Copyright (c) 2024, Salesforce, Inc.
|
10
|
+
* All rights reserved.
|
11
|
+
* SPDX-License-Identifier: MIT
|
12
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
13
|
+
*/
|
14
|
+
/**
|
15
|
+
* Per the HTML spec on restrictions for "raw text elements" like `<style>`:
|
16
|
+
*
|
17
|
+
* > The text in raw text and escapable raw text elements must not contain any occurrences of the string
|
18
|
+
* > "</" (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that case-insensitively match the tag name of
|
19
|
+
* > the element followed by one of:
|
20
|
+
* > - U+0009 CHARACTER TABULATION (tab)
|
21
|
+
* > - U+000A LINE FEED (LF)
|
22
|
+
* > - U+000C FORM FEED (FF)
|
23
|
+
* > - U+000D CARRIAGE RETURN (CR)
|
24
|
+
* > - U+0020 SPACE
|
25
|
+
* > - U+003E GREATER-THAN SIGN (>), or
|
26
|
+
* > - U+002F SOLIDUS (/)
|
27
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#cdata-rcdata-restrictions
|
28
|
+
*/
|
29
|
+
const INVALID_STYLE_CONTENT = /<\/style[\t\n\f\r >/]/i;
|
30
|
+
/**
|
31
|
+
* The text content inside `<style>` is a special case. It is _only_ rendered by the LWC engine itself; `<style>` tags
|
32
|
+
* are disallowed inside of HTML templates.
|
33
|
+
*
|
34
|
+
* The `<style>` tag is unusual in how it's defined in HTML. Like `<script>`, it is considered a "raw text element,"
|
35
|
+
* which means that it is parsed as raw text, but certain character sequences are disallowed, namely to avoid XSS
|
36
|
+
* attacks like `</style><script>alert("pwned")</script>`.
|
37
|
+
*
|
38
|
+
* This also means that we cannot use "normal" HTML escaping inside `<style>` tags, e.g. we cannot use `<`,
|
39
|
+
* `>`, etc., because these are treated as-is by the HTML parser.
|
40
|
+
*
|
41
|
+
*
|
42
|
+
* @param contents CSS source to validate
|
43
|
+
* @throws Throws if the contents provided are not valid.
|
44
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#raw-text-elements
|
45
|
+
* @see https://github.com/salesforce/lwc/issues/3439
|
46
|
+
* @example
|
47
|
+
* validateStyleTextContents('div { color: red }') // Ok
|
48
|
+
* validateStyleTextContents('</style><script>alert("pwned")</script>') // Throws
|
49
|
+
*/
|
50
|
+
function validateStyleTextContents(contents) {
|
51
|
+
if (INVALID_STYLE_CONTENT.test(contents)) {
|
52
|
+
throw new Error('CSS contains unsafe characters and cannot be serialized inside a style element');
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
8
56
|
/*
|
9
57
|
* Copyright (c) 2024, salesforce.com, inc.
|
10
58
|
* All rights reserved.
|
11
59
|
* SPDX-License-Identifier: MIT
|
12
60
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
13
61
|
*/
|
62
|
+
// At runtime, we don't have access to the DOM, so we don't want TypeScript to allow accessing DOM
|
63
|
+
// globals. However, we're mimicking DOM functionality here, so we *do* want access to DOM types.
|
64
|
+
// To access the real DOM types when writing new code, uncomment the line below and comment out the
|
65
|
+
// stub types. Switch them back when you're done to validate that you're not accidentally using
|
66
|
+
// DOM globals. IMPORTANT: The comment below is a "triple slash directive", it must start with ///
|
67
|
+
// and be located before import statements.
|
68
|
+
// /// <reference lib="dom" />
|
14
69
|
const MULTI_SPACE = /\s+/g;
|
15
70
|
class ClassList {
|
16
71
|
constructor(el) {
|
@@ -61,6 +116,24 @@ class ClassList {
|
|
61
116
|
this.el.className = Array.from(set).join(' ');
|
62
117
|
return set.has(classNameToToggle);
|
63
118
|
}
|
119
|
+
get value() {
|
120
|
+
return this.el.className;
|
121
|
+
}
|
122
|
+
toString() {
|
123
|
+
return this.el.className;
|
124
|
+
}
|
125
|
+
item(_index) {
|
126
|
+
throw new Error('Method "item" not implemented.');
|
127
|
+
}
|
128
|
+
supports(_token) {
|
129
|
+
throw new Error('Method "supports" not implemented.');
|
130
|
+
}
|
131
|
+
forEach(_callbackfn, _thisArg) {
|
132
|
+
throw new Error('Method "forEach" not implemented.');
|
133
|
+
}
|
134
|
+
get length() {
|
135
|
+
throw new Error('Property "length" not implemented.');
|
136
|
+
}
|
64
137
|
}
|
65
138
|
class LightningElement {
|
66
139
|
constructor(propsAvailableAtConstruction) {
|
@@ -103,8 +176,89 @@ class LightningElement {
|
|
103
176
|
return (this.__classList = new ClassList(this));
|
104
177
|
}
|
105
178
|
getAttribute(attrName) {
|
106
|
-
|
107
|
-
|
179
|
+
return this.__attrs[attrName] ?? null;
|
180
|
+
}
|
181
|
+
setAttribute(attrName, value) {
|
182
|
+
this.__attrs[attrName] = String(value);
|
183
|
+
}
|
184
|
+
hasAttribute(attrName) {
|
185
|
+
return Boolean(this.__attrs && attrName in this.__attrs);
|
186
|
+
}
|
187
|
+
removeAttribute(attrName) {
|
188
|
+
this.__attrs[attrName] = null;
|
189
|
+
}
|
190
|
+
addEventListener(_type, _listener, _options) {
|
191
|
+
// noop
|
192
|
+
}
|
193
|
+
removeEventListener(_type, _listener, _options) {
|
194
|
+
// noop
|
195
|
+
}
|
196
|
+
// ----------------------------------------------------------- //
|
197
|
+
// Props/methods explicitly not available in this environment //
|
198
|
+
// Getters are named "get*" for parity with @lwc/engine-server //
|
199
|
+
// ----------------------------------------------------------- //
|
200
|
+
get children() {
|
201
|
+
throw new TypeError('"getChildren" is not supported in this environment');
|
202
|
+
}
|
203
|
+
get childNodes() {
|
204
|
+
throw new TypeError('"getChildNodes" is not supported in this environment');
|
205
|
+
}
|
206
|
+
get firstChild() {
|
207
|
+
throw new TypeError('"getFirstChild" is not supported in this environment');
|
208
|
+
}
|
209
|
+
get firstElementChild() {
|
210
|
+
throw new TypeError('"getFirstElementChild" is not supported in this environment');
|
211
|
+
}
|
212
|
+
get hostElement() {
|
213
|
+
// Intentionally different to match @lwc/engine-*core*
|
214
|
+
throw new TypeError('this.hostElement is not supported in this environment');
|
215
|
+
}
|
216
|
+
get lastChild() {
|
217
|
+
throw new TypeError('"getLastChild" is not supported in this environment');
|
218
|
+
}
|
219
|
+
get lastElementChild() {
|
220
|
+
throw new TypeError('"getLastElementChild" is not supported in this environment');
|
221
|
+
}
|
222
|
+
get ownerDocument() {
|
223
|
+
// Intentionally not "get*" to match @lwc/engine-server
|
224
|
+
throw new TypeError('"ownerDocument" is not supported in this environment');
|
225
|
+
}
|
226
|
+
get style() {
|
227
|
+
// Intentionally not "get*" to match @lwc/engine-server
|
228
|
+
throw new TypeError('"style" is not supported in this environment');
|
229
|
+
}
|
230
|
+
attachInternals() {
|
231
|
+
throw new TypeError('"attachInternals" is not supported in this environment');
|
232
|
+
}
|
233
|
+
dispatchEvent(_event) {
|
234
|
+
throw new TypeError('"dispatchEvent" is not supported in this environment');
|
235
|
+
}
|
236
|
+
getBoundingClientRect() {
|
237
|
+
throw new TypeError('"getBoundingClientRect" is not supported in this environment');
|
238
|
+
}
|
239
|
+
getElementsByClassName(_classNames) {
|
240
|
+
throw new TypeError('"getElementsByClassName" is not supported in this environment');
|
241
|
+
}
|
242
|
+
getElementsByTagName(_qualifiedName) {
|
243
|
+
throw new TypeError('"getElementsByTagName" is not supported in this environment');
|
244
|
+
}
|
245
|
+
querySelector(_selectors) {
|
246
|
+
throw new TypeError('"querySelector" is not supported in this environment');
|
247
|
+
}
|
248
|
+
querySelectorAll(_selectors) {
|
249
|
+
throw new TypeError('"querySelectorAll" is not supported in this environment');
|
250
|
+
}
|
251
|
+
getAttributeNS(_namespace, _localName) {
|
252
|
+
throw new Error('Method "getAttributeNS" not implemented.');
|
253
|
+
}
|
254
|
+
hasAttributeNS(_namespace, _localName) {
|
255
|
+
throw new Error('Method "hasAttributeNS" not implemented.');
|
256
|
+
}
|
257
|
+
removeAttributeNS(_namespace, _localName) {
|
258
|
+
throw new Error('Method "removeAttributeNS" not implemented.');
|
259
|
+
}
|
260
|
+
setAttributeNS(_namespace, _qualifiedName, _value) {
|
261
|
+
throw new Error('Method "setAttributeNS" not implemented.');
|
108
262
|
}
|
109
263
|
}
|
110
264
|
const escapeAttrVal = (attrVal) => attrVal.replaceAll('&', '&').replaceAll('"', '"');
|
@@ -113,13 +267,11 @@ function* renderAttrs(attrs) {
|
|
113
267
|
return;
|
114
268
|
}
|
115
269
|
for (const [key, val] of Object.entries(attrs)) {
|
116
|
-
if (val) {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
yield ` ${key}`;
|
122
|
-
}
|
270
|
+
if (typeof val === 'string') {
|
271
|
+
yield val === '' ? ` ${key}` : ` ${key}="${escapeAttrVal(val)}"`;
|
272
|
+
}
|
273
|
+
else if (val === null) {
|
274
|
+
return '';
|
123
275
|
}
|
124
276
|
}
|
125
277
|
}
|
@@ -140,5 +292,6 @@ exports.LightningElement = LightningElement;
|
|
140
292
|
exports.fallbackTmpl = fallbackTmpl;
|
141
293
|
exports.renderAttrs = renderAttrs;
|
142
294
|
exports.serverSideRenderComponent = serverSideRenderComponent;
|
143
|
-
|
295
|
+
exports.validateStyleTextContents = validateStyleTextContents;
|
296
|
+
/** version: 8.1.3 */
|
144
297
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/validate-style-text-contents.ts","../src/index.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
-
|
1
|
+
export { validateStyleTextContents } from './validate-style-text-contents';
|
2
|
+
type DOMTokenList = object;
|
3
|
+
type EventListenerOrEventListenerObject = unknown;
|
4
|
+
type AddEventListenerOptions = unknown;
|
5
|
+
type EventListenerOptions = unknown;
|
6
|
+
type ShadowRoot = unknown;
|
7
|
+
type Attributes = Record<string, string | null>;
|
2
8
|
type LightningElementConstructor = typeof LightningElement;
|
3
|
-
declare class ClassList {
|
9
|
+
declare class ClassList implements DOMTokenList {
|
4
10
|
el: LightningElement;
|
5
11
|
constructor(el: LightningElement);
|
6
12
|
add(...newClassNames: string[]): void;
|
@@ -8,20 +14,65 @@ declare class ClassList {
|
|
8
14
|
remove(...classNamesToRemove: string[]): void;
|
9
15
|
replace(oldClassName: string, newClassName: string): boolean;
|
10
16
|
toggle(classNameToToggle: string, force?: boolean): boolean;
|
17
|
+
get value(): string;
|
18
|
+
toString(): string;
|
19
|
+
[index: number]: never;
|
20
|
+
item(_index: number): string | null;
|
21
|
+
supports(_token: string): boolean;
|
22
|
+
forEach(_callbackfn: (value: string, key: number, parent: DOMTokenList) => void, _thisArg?: any): void;
|
23
|
+
get length(): number;
|
11
24
|
}
|
12
|
-
|
25
|
+
interface PropsAvailableAtConstruction {
|
26
|
+
tagName: string;
|
27
|
+
}
|
28
|
+
export declare class LightningElement implements PropsAvailableAtConstruction {
|
13
29
|
static renderMode?: 'light' | 'shadow';
|
14
30
|
isConnected: boolean;
|
15
31
|
className: string;
|
16
|
-
__attrs
|
17
|
-
__classList
|
18
|
-
|
19
|
-
|
32
|
+
private __attrs;
|
33
|
+
private __classList;
|
34
|
+
tagName: string;
|
35
|
+
constructor(propsAvailableAtConstruction: PropsAvailableAtConstruction & Record<string, unknown>);
|
36
|
+
private __internal__setState;
|
20
37
|
get classList(): ClassList;
|
21
38
|
getAttribute(attrName: string): string | null;
|
39
|
+
setAttribute(attrName: string, value: string | null): void;
|
40
|
+
hasAttribute(attrName: string): boolean;
|
41
|
+
removeAttribute(attrName: string): void;
|
42
|
+
addEventListener(_type: string, _listener: EventListenerOrEventListenerObject, _options?: boolean | AddEventListenerOptions): void;
|
43
|
+
removeEventListener(_type: string, _listener: EventListenerOrEventListenerObject, _options?: boolean | EventListenerOptions): void;
|
44
|
+
get children(): never;
|
45
|
+
get childNodes(): never;
|
46
|
+
get firstChild(): never;
|
47
|
+
get firstElementChild(): never;
|
48
|
+
get hostElement(): never;
|
49
|
+
get lastChild(): never;
|
50
|
+
get lastElementChild(): never;
|
51
|
+
get ownerDocument(): never;
|
52
|
+
get style(): never;
|
53
|
+
attachInternals(): never;
|
54
|
+
dispatchEvent(_event: Event): never;
|
55
|
+
getBoundingClientRect(): never;
|
56
|
+
getElementsByClassName(_classNames: string): never;
|
57
|
+
getElementsByTagName(_qualifiedName: unknown): never;
|
58
|
+
querySelector(_selectors: string): never;
|
59
|
+
querySelectorAll(_selectors: string): never;
|
60
|
+
accessKey?: string;
|
61
|
+
dir?: string;
|
62
|
+
draggable?: boolean;
|
63
|
+
hidden?: boolean;
|
64
|
+
id?: string;
|
65
|
+
lang?: string;
|
66
|
+
shadowRoot?: ShadowRoot | null;
|
67
|
+
spellcheck?: boolean;
|
68
|
+
tabIndex?: number;
|
69
|
+
title?: string;
|
70
|
+
getAttributeNS(_namespace: string | null, _localName: string): string | null;
|
71
|
+
hasAttributeNS(_namespace: string | null, _localName: string): boolean;
|
72
|
+
removeAttributeNS(_namespace: string | null, _localName: string): void;
|
73
|
+
setAttributeNS(_namespace: string | null, _qualifiedName: string, _value: string): void;
|
22
74
|
}
|
23
|
-
export declare function renderAttrs(attrs: Attributes): Generator<string,
|
75
|
+
export declare function renderAttrs(attrs: Attributes): Generator<string, "" | undefined, unknown>;
|
24
76
|
export declare function fallbackTmpl(_props: unknown, _attrs: unknown, _slotted: unknown, Cmp: LightningElementConstructor, _instance: unknown): Generator<string, void, unknown>;
|
25
77
|
export type GenerateMarkupFn = (tagName: string, props: Record<string, any> | null, attrs: Attributes | null, slotted: Record<number | string, AsyncGenerator<string>> | null) => AsyncGenerator<string>;
|
26
78
|
export declare function serverSideRenderComponent(tagName: string, compiledGenerateMarkup: GenerateMarkupFn, props: Record<string, any>): Promise<string>;
|
27
|
-
export {};
|
package/dist/index.js
CHANGED
@@ -1,12 +1,67 @@
|
|
1
1
|
/**
|
2
2
|
* Copyright (c) 2024 Salesforce, Inc.
|
3
3
|
*/
|
4
|
+
/*
|
5
|
+
* Copyright (c) 2024, Salesforce, Inc.
|
6
|
+
* All rights reserved.
|
7
|
+
* SPDX-License-Identifier: MIT
|
8
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
9
|
+
*/
|
10
|
+
/**
|
11
|
+
* Per the HTML spec on restrictions for "raw text elements" like `<style>`:
|
12
|
+
*
|
13
|
+
* > The text in raw text and escapable raw text elements must not contain any occurrences of the string
|
14
|
+
* > "</" (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that case-insensitively match the tag name of
|
15
|
+
* > the element followed by one of:
|
16
|
+
* > - U+0009 CHARACTER TABULATION (tab)
|
17
|
+
* > - U+000A LINE FEED (LF)
|
18
|
+
* > - U+000C FORM FEED (FF)
|
19
|
+
* > - U+000D CARRIAGE RETURN (CR)
|
20
|
+
* > - U+0020 SPACE
|
21
|
+
* > - U+003E GREATER-THAN SIGN (>), or
|
22
|
+
* > - U+002F SOLIDUS (/)
|
23
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#cdata-rcdata-restrictions
|
24
|
+
*/
|
25
|
+
const INVALID_STYLE_CONTENT = /<\/style[\t\n\f\r >/]/i;
|
26
|
+
/**
|
27
|
+
* The text content inside `<style>` is a special case. It is _only_ rendered by the LWC engine itself; `<style>` tags
|
28
|
+
* are disallowed inside of HTML templates.
|
29
|
+
*
|
30
|
+
* The `<style>` tag is unusual in how it's defined in HTML. Like `<script>`, it is considered a "raw text element,"
|
31
|
+
* which means that it is parsed as raw text, but certain character sequences are disallowed, namely to avoid XSS
|
32
|
+
* attacks like `</style><script>alert("pwned")</script>`.
|
33
|
+
*
|
34
|
+
* This also means that we cannot use "normal" HTML escaping inside `<style>` tags, e.g. we cannot use `<`,
|
35
|
+
* `>`, etc., because these are treated as-is by the HTML parser.
|
36
|
+
*
|
37
|
+
*
|
38
|
+
* @param contents CSS source to validate
|
39
|
+
* @throws Throws if the contents provided are not valid.
|
40
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#raw-text-elements
|
41
|
+
* @see https://github.com/salesforce/lwc/issues/3439
|
42
|
+
* @example
|
43
|
+
* validateStyleTextContents('div { color: red }') // Ok
|
44
|
+
* validateStyleTextContents('</style><script>alert("pwned")</script>') // Throws
|
45
|
+
*/
|
46
|
+
function validateStyleTextContents(contents) {
|
47
|
+
if (INVALID_STYLE_CONTENT.test(contents)) {
|
48
|
+
throw new Error('CSS contains unsafe characters and cannot be serialized inside a style element');
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
4
52
|
/*
|
5
53
|
* Copyright (c) 2024, salesforce.com, inc.
|
6
54
|
* All rights reserved.
|
7
55
|
* SPDX-License-Identifier: MIT
|
8
56
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
9
57
|
*/
|
58
|
+
// At runtime, we don't have access to the DOM, so we don't want TypeScript to allow accessing DOM
|
59
|
+
// globals. However, we're mimicking DOM functionality here, so we *do* want access to DOM types.
|
60
|
+
// To access the real DOM types when writing new code, uncomment the line below and comment out the
|
61
|
+
// stub types. Switch them back when you're done to validate that you're not accidentally using
|
62
|
+
// DOM globals. IMPORTANT: The comment below is a "triple slash directive", it must start with ///
|
63
|
+
// and be located before import statements.
|
64
|
+
// /// <reference lib="dom" />
|
10
65
|
const MULTI_SPACE = /\s+/g;
|
11
66
|
class ClassList {
|
12
67
|
constructor(el) {
|
@@ -57,6 +112,24 @@ class ClassList {
|
|
57
112
|
this.el.className = Array.from(set).join(' ');
|
58
113
|
return set.has(classNameToToggle);
|
59
114
|
}
|
115
|
+
get value() {
|
116
|
+
return this.el.className;
|
117
|
+
}
|
118
|
+
toString() {
|
119
|
+
return this.el.className;
|
120
|
+
}
|
121
|
+
item(_index) {
|
122
|
+
throw new Error('Method "item" not implemented.');
|
123
|
+
}
|
124
|
+
supports(_token) {
|
125
|
+
throw new Error('Method "supports" not implemented.');
|
126
|
+
}
|
127
|
+
forEach(_callbackfn, _thisArg) {
|
128
|
+
throw new Error('Method "forEach" not implemented.');
|
129
|
+
}
|
130
|
+
get length() {
|
131
|
+
throw new Error('Property "length" not implemented.');
|
132
|
+
}
|
60
133
|
}
|
61
134
|
class LightningElement {
|
62
135
|
constructor(propsAvailableAtConstruction) {
|
@@ -99,8 +172,89 @@ class LightningElement {
|
|
99
172
|
return (this.__classList = new ClassList(this));
|
100
173
|
}
|
101
174
|
getAttribute(attrName) {
|
102
|
-
|
103
|
-
|
175
|
+
return this.__attrs[attrName] ?? null;
|
176
|
+
}
|
177
|
+
setAttribute(attrName, value) {
|
178
|
+
this.__attrs[attrName] = String(value);
|
179
|
+
}
|
180
|
+
hasAttribute(attrName) {
|
181
|
+
return Boolean(this.__attrs && attrName in this.__attrs);
|
182
|
+
}
|
183
|
+
removeAttribute(attrName) {
|
184
|
+
this.__attrs[attrName] = null;
|
185
|
+
}
|
186
|
+
addEventListener(_type, _listener, _options) {
|
187
|
+
// noop
|
188
|
+
}
|
189
|
+
removeEventListener(_type, _listener, _options) {
|
190
|
+
// noop
|
191
|
+
}
|
192
|
+
// ----------------------------------------------------------- //
|
193
|
+
// Props/methods explicitly not available in this environment //
|
194
|
+
// Getters are named "get*" for parity with @lwc/engine-server //
|
195
|
+
// ----------------------------------------------------------- //
|
196
|
+
get children() {
|
197
|
+
throw new TypeError('"getChildren" is not supported in this environment');
|
198
|
+
}
|
199
|
+
get childNodes() {
|
200
|
+
throw new TypeError('"getChildNodes" is not supported in this environment');
|
201
|
+
}
|
202
|
+
get firstChild() {
|
203
|
+
throw new TypeError('"getFirstChild" is not supported in this environment');
|
204
|
+
}
|
205
|
+
get firstElementChild() {
|
206
|
+
throw new TypeError('"getFirstElementChild" is not supported in this environment');
|
207
|
+
}
|
208
|
+
get hostElement() {
|
209
|
+
// Intentionally different to match @lwc/engine-*core*
|
210
|
+
throw new TypeError('this.hostElement is not supported in this environment');
|
211
|
+
}
|
212
|
+
get lastChild() {
|
213
|
+
throw new TypeError('"getLastChild" is not supported in this environment');
|
214
|
+
}
|
215
|
+
get lastElementChild() {
|
216
|
+
throw new TypeError('"getLastElementChild" is not supported in this environment');
|
217
|
+
}
|
218
|
+
get ownerDocument() {
|
219
|
+
// Intentionally not "get*" to match @lwc/engine-server
|
220
|
+
throw new TypeError('"ownerDocument" is not supported in this environment');
|
221
|
+
}
|
222
|
+
get style() {
|
223
|
+
// Intentionally not "get*" to match @lwc/engine-server
|
224
|
+
throw new TypeError('"style" is not supported in this environment');
|
225
|
+
}
|
226
|
+
attachInternals() {
|
227
|
+
throw new TypeError('"attachInternals" is not supported in this environment');
|
228
|
+
}
|
229
|
+
dispatchEvent(_event) {
|
230
|
+
throw new TypeError('"dispatchEvent" is not supported in this environment');
|
231
|
+
}
|
232
|
+
getBoundingClientRect() {
|
233
|
+
throw new TypeError('"getBoundingClientRect" is not supported in this environment');
|
234
|
+
}
|
235
|
+
getElementsByClassName(_classNames) {
|
236
|
+
throw new TypeError('"getElementsByClassName" is not supported in this environment');
|
237
|
+
}
|
238
|
+
getElementsByTagName(_qualifiedName) {
|
239
|
+
throw new TypeError('"getElementsByTagName" is not supported in this environment');
|
240
|
+
}
|
241
|
+
querySelector(_selectors) {
|
242
|
+
throw new TypeError('"querySelector" is not supported in this environment');
|
243
|
+
}
|
244
|
+
querySelectorAll(_selectors) {
|
245
|
+
throw new TypeError('"querySelectorAll" is not supported in this environment');
|
246
|
+
}
|
247
|
+
getAttributeNS(_namespace, _localName) {
|
248
|
+
throw new Error('Method "getAttributeNS" not implemented.');
|
249
|
+
}
|
250
|
+
hasAttributeNS(_namespace, _localName) {
|
251
|
+
throw new Error('Method "hasAttributeNS" not implemented.');
|
252
|
+
}
|
253
|
+
removeAttributeNS(_namespace, _localName) {
|
254
|
+
throw new Error('Method "removeAttributeNS" not implemented.');
|
255
|
+
}
|
256
|
+
setAttributeNS(_namespace, _qualifiedName, _value) {
|
257
|
+
throw new Error('Method "setAttributeNS" not implemented.');
|
104
258
|
}
|
105
259
|
}
|
106
260
|
const escapeAttrVal = (attrVal) => attrVal.replaceAll('&', '&').replaceAll('"', '"');
|
@@ -109,13 +263,11 @@ function* renderAttrs(attrs) {
|
|
109
263
|
return;
|
110
264
|
}
|
111
265
|
for (const [key, val] of Object.entries(attrs)) {
|
112
|
-
if (val) {
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
yield ` ${key}`;
|
118
|
-
}
|
266
|
+
if (typeof val === 'string') {
|
267
|
+
yield val === '' ? ` ${key}` : ` ${key}="${escapeAttrVal(val)}"`;
|
268
|
+
}
|
269
|
+
else if (val === null) {
|
270
|
+
return '';
|
119
271
|
}
|
120
272
|
}
|
121
273
|
}
|
@@ -132,6 +284,6 @@ async function serverSideRenderComponent(tagName, compiledGenerateMarkup, props)
|
|
132
284
|
return markup;
|
133
285
|
}
|
134
286
|
|
135
|
-
export { LightningElement, fallbackTmpl, renderAttrs, serverSideRenderComponent };
|
136
|
-
/** version: 8.1.
|
287
|
+
export { LightningElement, fallbackTmpl, renderAttrs, serverSideRenderComponent, validateStyleTextContents };
|
288
|
+
/** version: 8.1.3 */
|
137
289
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/validate-style-text-contents.ts","../src/index.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/**
|
2
|
+
* The text content inside `<style>` is a special case. It is _only_ rendered by the LWC engine itself; `<style>` tags
|
3
|
+
* are disallowed inside of HTML templates.
|
4
|
+
*
|
5
|
+
* The `<style>` tag is unusual in how it's defined in HTML. Like `<script>`, it is considered a "raw text element,"
|
6
|
+
* which means that it is parsed as raw text, but certain character sequences are disallowed, namely to avoid XSS
|
7
|
+
* attacks like `</style><script>alert("pwned")</script>`.
|
8
|
+
*
|
9
|
+
* This also means that we cannot use "normal" HTML escaping inside `<style>` tags, e.g. we cannot use `<`,
|
10
|
+
* `>`, etc., because these are treated as-is by the HTML parser.
|
11
|
+
*
|
12
|
+
*
|
13
|
+
* @param contents CSS source to validate
|
14
|
+
* @throws Throws if the contents provided are not valid.
|
15
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#raw-text-elements
|
16
|
+
* @see https://github.com/salesforce/lwc/issues/3439
|
17
|
+
* @example
|
18
|
+
* validateStyleTextContents('div { color: red }') // Ok
|
19
|
+
* validateStyleTextContents('</style><script>alert("pwned")</script>') // Throws
|
20
|
+
*/
|
21
|
+
export declare function validateStyleTextContents(contents: string): void;
|
package/package.json
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
"You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
|
5
5
|
],
|
6
6
|
"name": "@lwc/ssr-runtime",
|
7
|
-
"version": "8.1.
|
7
|
+
"version": "8.1.3",
|
8
8
|
"description": "Runtime complement to @lwc/ssr-compiler",
|
9
9
|
"keywords": [
|
10
10
|
"lwc",
|