@lwc/ssr-runtime 8.12.4 → 8.12.5

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/dist/index.cjs.js CHANGED
@@ -631,7 +631,7 @@ function setHooks(hooks) {
631
631
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
632
632
  */
633
633
  const DEFAULT_SSR_MODE = 'sync';
634
- /** version: 8.12.4 */
634
+ /** version: 8.12.5 */
635
635
 
636
636
  /*
637
637
  * Copyright (c) 2024, Salesforce, Inc.
@@ -1488,7 +1488,6 @@ defineProperties(LightningElement.prototype, descriptors);
1488
1488
  * SPDX-License-Identifier: MIT
1489
1489
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
1490
1490
  */
1491
- const escapeAttrVal = (attrValue) => attrValue.replaceAll('&', '&').replaceAll('"', '"');
1492
1491
  function renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken) {
1493
1492
  // The scopeToken is e.g. `lwc-xyz123` which is the token our parent gives us.
1494
1493
  // The hostScopeToken is e.g. `lwc-abc456-host` which is the token for our own component.
@@ -1522,7 +1521,8 @@ function renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken) {
1522
1521
  hasClassAttribute = true;
1523
1522
  }
1524
1523
  }
1525
- result += attrValue === '' ? ` ${attrName}` : ` ${attrName}="${escapeAttrVal(attrValue)}"`;
1524
+ result +=
1525
+ attrValue === '' ? ` ${attrName}` : ` ${attrName}="${htmlEscape(attrValue, true)}"`;
1526
1526
  }
1527
1527
  // If we didn't render any `class` attribute, render one for the scope token(s)
1528
1528
  if (!hasClassAttribute && combinedScopeToken) {
@@ -1541,12 +1541,12 @@ function* renderAttrs(instance, attrs, hostScopeToken, scopeToken) {
1541
1541
  function renderAttrsNoYield(emit, instance, attrs, hostScopeToken, scopeToken) {
1542
1542
  emit(renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken));
1543
1543
  }
1544
- function* fallbackTmpl(_shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1544
+ function* fallbackTmpl(_shadowSlottedContent, _lightSlottedContent, _scopedSlottedContent, Cmp, _instance) {
1545
1545
  if (Cmp.renderMode !== 'light') {
1546
1546
  yield '<template shadowrootmode="open"></template>';
1547
1547
  }
1548
1548
  }
1549
- function fallbackTmplNoYield(emit, _shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1549
+ function fallbackTmplNoYield(emit, _shadowSlottedContent, _lightSlottedContent, _scopedSlottedContent, Cmp, _instance) {
1550
1550
  if (Cmp.renderMode !== 'light') {
1551
1551
  emit('<template shadowrootmode="open"></template>');
1552
1552
  }
@@ -1561,15 +1561,15 @@ async function serverSideRenderComponent(tagName, Component, props = {}, mode =
1561
1561
  markup += segment;
1562
1562
  };
1563
1563
  if (mode === 'asyncYield') {
1564
- for await (const segment of generateMarkup(tagName, props, null, null, null, null, null, null)) {
1564
+ for await (const segment of generateMarkup(tagName, props, null, null, null, null, null, null, null)) {
1565
1565
  markup += segment;
1566
1566
  }
1567
1567
  }
1568
1568
  else if (mode === 'async') {
1569
- await generateMarkup(emit, tagName, props, null, null, null, null, null, null);
1569
+ await generateMarkup(emit, tagName, props, null, null, null, null, null, null, null);
1570
1570
  }
1571
1571
  else if (mode === 'sync') {
1572
- generateMarkup(emit, tagName, props, null, null, null, null, null, null);
1572
+ generateMarkup(emit, tagName, props, null, null, null, null, null, null, null);
1573
1573
  }
1574
1574
  else {
1575
1575
  throw new Error(`Invalid mode: ${mode}`);
@@ -1839,5 +1839,5 @@ exports.track = track;
1839
1839
  exports.unwrap = unwrap$1;
1840
1840
  exports.validateStyleTextContents = validateStyleTextContents;
1841
1841
  exports.wire = wire;
1842
- /** version: 8.12.4 */
1842
+ /** version: 8.12.5 */
1843
1843
  //# sourceMappingURL=index.cjs.js.map
package/dist/index.js CHANGED
@@ -627,7 +627,7 @@ function setHooks(hooks) {
627
627
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
628
628
  */
629
629
  const DEFAULT_SSR_MODE = 'sync';
630
- /** version: 8.12.4 */
630
+ /** version: 8.12.5 */
631
631
 
632
632
  /*
633
633
  * Copyright (c) 2024, Salesforce, Inc.
@@ -1484,7 +1484,6 @@ defineProperties(LightningElement.prototype, descriptors);
1484
1484
  * SPDX-License-Identifier: MIT
1485
1485
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
1486
1486
  */
1487
- const escapeAttrVal = (attrValue) => attrValue.replaceAll('&', '&amp;').replaceAll('"', '&quot;');
1488
1487
  function renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken) {
1489
1488
  // The scopeToken is e.g. `lwc-xyz123` which is the token our parent gives us.
1490
1489
  // The hostScopeToken is e.g. `lwc-abc456-host` which is the token for our own component.
@@ -1518,7 +1517,8 @@ function renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken) {
1518
1517
  hasClassAttribute = true;
1519
1518
  }
1520
1519
  }
1521
- result += attrValue === '' ? ` ${attrName}` : ` ${attrName}="${escapeAttrVal(attrValue)}"`;
1520
+ result +=
1521
+ attrValue === '' ? ` ${attrName}` : ` ${attrName}="${htmlEscape(attrValue, true)}"`;
1522
1522
  }
1523
1523
  // If we didn't render any `class` attribute, render one for the scope token(s)
1524
1524
  if (!hasClassAttribute && combinedScopeToken) {
@@ -1537,12 +1537,12 @@ function* renderAttrs(instance, attrs, hostScopeToken, scopeToken) {
1537
1537
  function renderAttrsNoYield(emit, instance, attrs, hostScopeToken, scopeToken) {
1538
1538
  emit(renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken));
1539
1539
  }
1540
- function* fallbackTmpl(_shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1540
+ function* fallbackTmpl(_shadowSlottedContent, _lightSlottedContent, _scopedSlottedContent, Cmp, _instance) {
1541
1541
  if (Cmp.renderMode !== 'light') {
1542
1542
  yield '<template shadowrootmode="open"></template>';
1543
1543
  }
1544
1544
  }
1545
- function fallbackTmplNoYield(emit, _shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1545
+ function fallbackTmplNoYield(emit, _shadowSlottedContent, _lightSlottedContent, _scopedSlottedContent, Cmp, _instance) {
1546
1546
  if (Cmp.renderMode !== 'light') {
1547
1547
  emit('<template shadowrootmode="open"></template>');
1548
1548
  }
@@ -1557,15 +1557,15 @@ async function serverSideRenderComponent(tagName, Component, props = {}, mode =
1557
1557
  markup += segment;
1558
1558
  };
1559
1559
  if (mode === 'asyncYield') {
1560
- for await (const segment of generateMarkup(tagName, props, null, null, null, null, null, null)) {
1560
+ for await (const segment of generateMarkup(tagName, props, null, null, null, null, null, null, null)) {
1561
1561
  markup += segment;
1562
1562
  }
1563
1563
  }
1564
1564
  else if (mode === 'async') {
1565
- await generateMarkup(emit, tagName, props, null, null, null, null, null, null);
1565
+ await generateMarkup(emit, tagName, props, null, null, null, null, null, null, null);
1566
1566
  }
1567
1567
  else if (mode === 'sync') {
1568
- generateMarkup(emit, tagName, props, null, null, null, null, null, null);
1568
+ generateMarkup(emit, tagName, props, null, null, null, null, null, null, null);
1569
1569
  }
1570
1570
  else {
1571
1571
  throw new Error(`Invalid mode: ${mode}`);
@@ -1789,5 +1789,5 @@ function createContextProvider(adapter) {
1789
1789
  }
1790
1790
 
1791
1791
  export { ClassList, LightningElement, SYMBOL__DEFAULT_TEMPLATE, SYMBOL__GENERATE_MARKUP, SYMBOL__SET_INTERNALS, api, connectContext, createContextProvider, createElement, establishContextfulRelationship, fallbackTmpl, fallbackTmplNoYield, freezeTemplate, getComponentDef, getReadOnlyProxy, hasScopedStaticStylesheets, hot, htmlEscape, isComponentConstructor, mutationTracker, normalizeClass, normalizeTextContent, parseFragment, parseSVGFragment, readonly, registerComponent, registerDecorators, registerTemplate, renderAttrs, renderAttrsNoYield, serverSideRenderComponent as renderComponent, renderStylesheets, renderTextContent, renderer, sanitizeAttribute, sanitizeHtmlContent, serverSideRenderComponent, setFeatureFlag, setFeatureFlagForTest, setHooks, swapComponent, swapStyle, swapTemplate, toIteratorDirective, track, unwrap$1 as unwrap, validateStyleTextContents, wire };
1792
- /** version: 8.12.4 */
1792
+ /** version: 8.12.5 */
1793
1793
  //# sourceMappingURL=index.js.map
package/dist/render.d.ts CHANGED
@@ -3,11 +3,11 @@ import type { LightningElement, LightningElementConstructor } from './lightning-
3
3
  import type { Attributes, Properties } from './types';
4
4
  export declare function renderAttrs(instance: LightningElement, attrs: Attributes, hostScopeToken: string | undefined, scopeToken: string | undefined): Generator<string, void, unknown>;
5
5
  export declare function renderAttrsNoYield(emit: (segment: string) => void, instance: LightningElement, attrs: Attributes, hostScopeToken: string | undefined, scopeToken: string | undefined): void;
6
- export declare function fallbackTmpl(_shadowSlottedContent: unknown, _lightSlottedContent: unknown, Cmp: LightningElementConstructor, _instance: unknown): Generator<string, void, unknown>;
7
- export declare function fallbackTmplNoYield(emit: (segment: string) => void, _shadowSlottedContent: unknown, _lightSlottedContent: unknown, Cmp: LightningElementConstructor, _instance: unknown): void;
8
- export type GenerateMarkupFn = (tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => AsyncGenerator<string>;
9
- export type GenerateMarkupFnAsyncNoGen = (emit: (segment: string) => void, tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => Promise<void>;
10
- export type GenerateMarkupFnSyncNoGen = (emit: (segment: string) => void, tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => void;
6
+ export declare function fallbackTmpl(_shadowSlottedContent: unknown, _lightSlottedContent: unknown, _scopedSlottedContent: unknown, Cmp: LightningElementConstructor, _instance: unknown): Generator<string, void, unknown>;
7
+ export declare function fallbackTmplNoYield(emit: (segment: string) => void, _shadowSlottedContent: unknown, _lightSlottedContent: unknown, _scopedSlottedContent: unknown, Cmp: LightningElementConstructor, _instance: unknown): void;
8
+ export type GenerateMarkupFn = (tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, scopedSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => AsyncGenerator<string>;
9
+ export type GenerateMarkupFnAsyncNoGen = (emit: (segment: string) => void, tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, scopedSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => Promise<void>;
10
+ export type GenerateMarkupFnSyncNoGen = (emit: (segment: string) => void, tagName: string, props: Properties | null, attrs: Attributes | null, shadowSlottedContent: AsyncGenerator<string> | null, lightSlottedContent: Record<number | string, AsyncGenerator<string>> | null, scopedSlottedContent: Record<number | string, AsyncGenerator<string>> | null, parent: LightningElement | null, scopeToken: string | null, contextfulParent: LightningElement | null) => void;
11
11
  type GenerateMarkupFnVariants = GenerateMarkupFn | GenerateMarkupFnAsyncNoGen | GenerateMarkupFnSyncNoGen;
12
12
  interface ComponentWithGenerateMarkup {
13
13
  [SYMBOL__GENERATE_MARKUP]: GenerateMarkupFnVariants;
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.12.4",
7
+ "version": "8.12.5",
8
8
  "description": "Runtime complement to @lwc/ssr-compiler",
9
9
  "keywords": [
10
10
  "lwc",
@@ -48,8 +48,8 @@
48
48
  }
49
49
  },
50
50
  "devDependencies": {
51
- "@lwc/shared": "8.12.4",
52
- "@lwc/engine-core": "8.12.4",
51
+ "@lwc/shared": "8.12.5",
52
+ "@lwc/engine-core": "8.12.5",
53
53
  "observable-membrane": "2.0.0"
54
54
  }
55
55
  }