@lwc/ssr-runtime 8.10.1 → 8.11.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -258,24 +258,44 @@ defineProperties,
258
258
  defineProperty,
259
259
  /** Detached {@linkcode Object.entries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries MDN Reference}. */
260
260
  entries,
261
+ /** Detached {@linkcode Object.freeze}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze MDN Reference}. */
262
+ freeze,
263
+ /** Detached {@linkcode Object.fromEntries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries MDN Reference}. */
264
+ fromEntries,
265
+ /** Detached {@linkcode Object.getOwnPropertyDescriptor}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor MDN Reference}. */
266
+ getOwnPropertyDescriptor: getOwnPropertyDescriptor$1,
267
+ /** Detached {@linkcode Object.getOwnPropertyDescriptors}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors MDN Reference}. */
268
+ getOwnPropertyDescriptors,
261
269
  /** Detached {@linkcode Object.getOwnPropertyNames}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames MDN Reference}. */
262
270
  getOwnPropertyNames: getOwnPropertyNames$1,
271
+ /** Detached {@linkcode Object.getOwnPropertySymbols}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols MDN Reference}. */
272
+ getOwnPropertySymbols: getOwnPropertySymbols$1,
273
+ /** Detached {@linkcode Object.getPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf MDN Reference}. */
274
+ getPrototypeOf: getPrototypeOf$1,
263
275
  /** Detached {@linkcode Object.hasOwnProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN Reference}. */
264
276
  hasOwnProperty: hasOwnProperty$1,
277
+ /** Detached {@linkcode Object.isFrozen}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen MDN Reference}. */
278
+ isFrozen,
265
279
  /** Detached {@linkcode Object.keys}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys MDN Reference}. */
266
- keys} = Object;
280
+ keys,
281
+ /** Detached {@linkcode Object.seal}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal MDN Reference}. */
282
+ seal,
283
+ /** Detached {@linkcode Object.setPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf MDN Reference}. */
284
+ setPrototypeOf, } = Object;
267
285
  const {
268
286
  /** Detached {@linkcode Array.isArray}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray MDN Reference}. */
269
- isArray: isArray$1} = Array;
287
+ isArray: isArray$1,
288
+ /** Detached {@linkcode Array.from}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN Reference}. */
289
+ from: ArrayFrom, } = Array;
270
290
  // For some reason, JSDoc don't get picked up for multiple renamed destructured constants (even
271
291
  // though it works fine for one, e.g. isArray), so comments for these are added to the export
272
292
  // statement, rather than this declaration.
273
- const { join: ArrayJoin, map: ArrayMap, forEach, // Weird anomaly!
293
+ const { concat: ArrayConcat$1, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush$1, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, // Weird anomaly!
274
294
  } = Array.prototype;
275
295
  /** Detached {@linkcode String.fromCharCode}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode MDN Reference}. */
276
296
  const { fromCharCode: StringFromCharCode } = String;
277
297
  // No JSDocs here - see comment for Array.prototype
278
- const { charCodeAt: StringCharCodeAt, replace: StringReplace, toLowerCase: StringToLowerCase} = String.prototype;
298
+ const { charAt: StringCharAt, charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, trim: StringTrim, } = String.prototype;
279
299
  /**
280
300
  * Determines whether the argument is `undefined`.
281
301
  * @param obj Value to test
@@ -567,18 +587,6 @@ function setHooks(hooks) {
567
587
  hooksAreSet = true;
568
588
  sanitizeHtmlContent = hooks.sanitizeHtmlContent;
569
589
  }
570
- function flattenStylesheets(stylesheets) {
571
- const list = [];
572
- for (const stylesheet of stylesheets) {
573
- if (!isArray$1(stylesheet)) {
574
- list.push(stylesheet);
575
- }
576
- else {
577
- list.push(...flattenStylesheets(stylesheet));
578
- }
579
- }
580
- return list;
581
- }
582
590
 
583
591
  /*
584
592
  * Copyright (c) 2024, Salesforce, Inc.
@@ -587,7 +595,7 @@ function flattenStylesheets(stylesheets) {
587
595
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
588
596
  */
589
597
  const DEFAULT_SSR_MODE = 'sync';
590
- /** version: 8.10.1 */
598
+ /** version: 8.11.0 */
591
599
 
592
600
  /*
593
601
  * Copyright (c) 2024, Salesforce, Inc.
@@ -1068,12 +1076,12 @@ function* renderAttrs(instance, attrs, hostScopeToken, scopeToken) {
1068
1076
  function renderAttrsNoYield(emit, instance, attrs, hostScopeToken, scopeToken) {
1069
1077
  emit(renderAttrsPrivate(instance, attrs, hostScopeToken, scopeToken));
1070
1078
  }
1071
- function* fallbackTmpl(_props, _attrs, _slotted, Cmp, _instance) {
1079
+ function* fallbackTmpl(_props, _attrs, _shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1072
1080
  if (Cmp.renderMode !== 'light') {
1073
1081
  yield '<template shadowrootmode="open"></template>';
1074
1082
  }
1075
1083
  }
1076
- function fallbackTmplNoYield(emit, _props, _attrs, _slotted, Cmp, _instance) {
1084
+ function fallbackTmplNoYield(emit, _props, _attrs, _shadowSlottedContent, _lightSlottedContent, Cmp, _instance) {
1077
1085
  if (Cmp.renderMode !== 'light') {
1078
1086
  emit('<template shadowrootmode="open"></template>');
1079
1087
  }
@@ -1082,22 +1090,21 @@ async function serverSideRenderComponent(tagName, Component, props = {}, mode =
1082
1090
  if (typeof tagName !== 'string') {
1083
1091
  throw new Error(`tagName must be a string, found: ${tagName}`);
1084
1092
  }
1085
- // TODO [#4726]: remove `generateMarkup` export
1086
- const generateMarkup = SYMBOL__GENERATE_MARKUP in Component ? Component[SYMBOL__GENERATE_MARKUP] : Component;
1093
+ const generateMarkup = Component[SYMBOL__GENERATE_MARKUP];
1087
1094
  let markup = '';
1088
1095
  const emit = (segment) => {
1089
1096
  markup += segment;
1090
1097
  };
1091
1098
  if (mode === 'asyncYield') {
1092
- for await (const segment of generateMarkup(tagName, props, null, null)) {
1099
+ for await (const segment of generateMarkup(tagName, props, null, null, null)) {
1093
1100
  markup += segment;
1094
1101
  }
1095
1102
  }
1096
1103
  else if (mode === 'async') {
1097
- await generateMarkup(emit, tagName, props, null, null);
1104
+ await generateMarkup(emit, tagName, props, null, null, null);
1098
1105
  }
1099
1106
  else if (mode === 'sync') {
1100
- generateMarkup(emit, tagName, props, null, null);
1107
+ generateMarkup(emit, tagName, props, null, null, null);
1101
1108
  }
1102
1109
  else {
1103
1110
  throw new Error(`Invalid mode: ${mode}`);
@@ -1159,27 +1166,41 @@ function validateStyleTextContents(contents) {
1159
1166
  * SPDX-License-Identifier: MIT
1160
1167
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
1161
1168
  */
1162
- function hasScopedStaticStylesheets(Component) {
1163
- const { stylesheets } = Component;
1164
- if (stylesheets) {
1165
- return flattenStylesheets(stylesheets).some((stylesheet) => stylesheet.$scoped$);
1169
+ // Traverse in the same order as `flattenStylesheets` but without creating unnecessary additional arrays
1170
+ function traverseStylesheets(stylesheets, callback) {
1171
+ if (isArray$1(stylesheets)) {
1172
+ for (let i = 0; i < stylesheets.length; i++) {
1173
+ traverseStylesheets(stylesheets[i], callback);
1174
+ }
1175
+ }
1176
+ else if (stylesheets) {
1177
+ callback(stylesheets);
1166
1178
  }
1167
- return false;
1168
1179
  }
1169
- function renderStylesheets(stylesheets, scopeToken, Component, hasScopedTemplateStyles) {
1180
+ function hasScopedStaticStylesheets(Component) {
1181
+ let scoped = false;
1182
+ traverseStylesheets(Component.stylesheets, (stylesheet) => {
1183
+ scoped ||= !!stylesheet.$scoped$;
1184
+ });
1185
+ return scoped;
1186
+ }
1187
+ function renderStylesheets(defaultStylesheets, defaultScopedStylesheets, staticStylesheets, scopeToken, Component, hasScopedTemplateStyles) {
1170
1188
  const hasAnyScopedStyles = hasScopedTemplateStyles || hasScopedStaticStylesheets(Component);
1189
+ const { renderMode } = Component;
1171
1190
  let result = '';
1172
- const truthyStylesheets = stylesheets.filter(Boolean);
1173
- for (const stylesheet of flattenStylesheets(truthyStylesheets)) {
1174
- // TODO [#2869]: `<style>`s should not have scope token classes
1175
- result += `<style${hasAnyScopedStyles ? ` class="${scopeToken}"` : ''} type="text/css">`;
1176
- const token = stylesheet.$scoped$ ? scopeToken : undefined;
1177
- const useActualHostSelector = !stylesheet.$scoped$ || Component.renderMode !== 'light';
1191
+ const renderStylesheet = (stylesheet) => {
1192
+ const { $scoped$: scoped } = stylesheet;
1193
+ const token = scoped ? scopeToken : undefined;
1194
+ const useActualHostSelector = !scoped || renderMode !== 'light';
1178
1195
  const useNativeDirPseudoclass = true;
1179
1196
  const styleContents = stylesheet(token, useActualHostSelector, useNativeDirPseudoclass);
1180
1197
  validateStyleTextContents(styleContents);
1181
- result += styleContents + '</style>';
1182
- }
1198
+ // TODO [#2869]: `<style>`s should not have scope token classes
1199
+ result += `<style${hasAnyScopedStyles ? ` class="${scopeToken}"` : ''} type="text/css">${styleContents}</style>`;
1200
+ };
1201
+ traverseStylesheets(defaultStylesheets, renderStylesheet);
1202
+ traverseStylesheets(defaultScopedStylesheets, renderStylesheet);
1203
+ traverseStylesheets(staticStylesheets, renderStylesheet);
1183
1204
  return result;
1184
1205
  }
1185
1206
 
@@ -1837,5 +1858,5 @@ function createContextProvider(adapter) {
1837
1858
  }
1838
1859
 
1839
1860
  export { ClassList, LightningElement, SYMBOL__DEFAULT_TEMPLATE, SYMBOL__GENERATE_MARKUP, SYMBOL__SET_INTERNALS, api, connectContext, createContextProvider, createElement, establishContextfulRelationship, fallbackTmpl, fallbackTmplNoYield, filterProperties, freezeTemplate, getComponentDef, getReadOnlyProxy, hasScopedStaticStylesheets, hot, htmlEscape, isComponentConstructor, mutationTracker, parseFragment, parseSVGFragment, readonly, registerComponent, registerDecorators, registerTemplate, renderAttrs, renderAttrsNoYield, serverSideRenderComponent as renderComponent, renderStylesheets, renderer, sanitizeAttribute, sanitizeHtmlContent, serverSideRenderComponent, setFeatureFlag, setFeatureFlagForTest, setHooks, swapComponent, swapStyle, swapTemplate, toIteratorDirective, track, unwrap$1 as unwrap, validateStyleTextContents, wire };
1840
- /** version: 8.10.1 */
1861
+ /** version: 8.11.0 */
1841
1862
  //# sourceMappingURL=index.js.map