@lwc/ssr-runtime 8.1.2 → 8.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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":";;;;;;;AAAA;;;;;AAKG;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC;AAM3B,MAAM,SAAS,CAAA;AAGX,IAAA,WAAA,CAAY,EAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;IAED,GAAG,CAAC,GAAG,aAAuB,EAAA;AAC1B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,QAAA,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;AACtC,YAAA,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;AAED,IAAA,QAAQ,CAAC,SAAiB,EAAA;AACtB,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QAC9C,OAAO,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACrE;IAED,MAAM,CAAC,GAAG,kBAA4B,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,QAAA,KAAK,MAAM,YAAY,IAAI,kBAAkB,EAAE;AAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC5B;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;IAED,OAAO,CAAC,YAAoB,EAAE,YAAoB,EAAA;QAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AACpC,QAAA,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AACjC,YAAA,IAAI,KAAK,KAAK,YAAY,EAAE;gBACxB,gBAAgB,GAAG,IAAI,CAAC;AACxB,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;aACrC;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,OAAO,gBAAgB,CAAC;KAC3B;IAED,MAAM,CAAC,iBAAyB,EAAE,KAAe,EAAA;AAC7C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,KAAK,KAAK,EAAE;AAChD,YAAA,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SAC9B;aAAM,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE;AACrD,YAAA,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACjC;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACrC;AACJ,CAAA;
|
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",
|