@vue/server-renderer 3.5.22 → 3.5.34

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @vue/server-renderer
2
2
 
3
- **Note: as of 3.2.13+, this package is included as a dependency of the main `vue` package and can be accessed as `vue/server-renderer`. This means you no longer need to explicitly install this package and ensure its version match that of `vue`'s. Just use the `vue/server-renderer` deep import instead.**
3
+ **Note: as of 3.2.13+, this package is included as a dependency of the main `vue` package and can be accessed as `vue/server-renderer`. This means you no longer need to explicitly install this package and ensure its version matches that of `vue`'s. Just use the `vue/server-renderer` deep import instead.**
4
4
 
5
5
  ## Basic API
6
6
 
@@ -165,7 +165,7 @@ renderToSimpleStream(
165
165
  push(chunk) {
166
166
  if (chunk === null) {
167
167
  // done
168
- console(`render complete: ${res}`)
168
+ console.log(`render complete: ${res}`)
169
169
  } else {
170
170
  res += chunk
171
171
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/server-renderer v3.5.22
2
+ * @vue/server-renderer v3.5.34
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -29,17 +29,21 @@ const shouldIgnoreProp = /* @__PURE__ */ shared.makeMap(
29
29
  );
30
30
  function ssrRenderAttrs(props, tag) {
31
31
  let ret = "";
32
- for (const key in props) {
33
- if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value") {
32
+ for (let key in props) {
33
+ if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR)
34
+ key.startsWith(".")) {
34
35
  continue;
35
36
  }
36
37
  const value = props[key];
38
+ if (key.startsWith("^")) key = key.slice(1);
37
39
  if (key === "class") {
38
40
  ret += ` class="${ssrRenderClass(value)}"`;
39
41
  } else if (key === "style") {
40
42
  ret += ` style="${ssrRenderStyle(value)}"`;
41
43
  } else if (key === "className") {
42
- ret += ` class="${String(value)}"`;
44
+ if (value != null) {
45
+ ret += ` class="${shared.escapeHtml(String(value))}"`;
46
+ }
43
47
  } else {
44
48
  ret += ssrRenderDynamicAttr(key, value, tag);
45
49
  }
@@ -216,11 +220,13 @@ function ssrInterpolate(value) {
216
220
  return shared.escapeHtml(shared.toDisplayString(value));
217
221
  }
218
222
 
223
+ // @__NO_SIDE_EFFECTS__
219
224
  function toRaw(observed) {
220
225
  const raw = observed && observed["__v_raw"];
221
- return raw ? toRaw(raw) : observed;
226
+ return raw ? /* @__PURE__ */ toRaw(raw) : observed;
222
227
  }
223
228
 
229
+ // @__NO_SIDE_EFFECTS__
224
230
  function isRef(r) {
225
231
  return r ? r["__v_isRef"] === true : false;
226
232
  }
@@ -456,7 +462,7 @@ function formatComponentName(instance, Component, isRoot = false) {
456
462
  name = match[1];
457
463
  }
458
464
  }
459
- if (!name && instance && instance.parent) {
465
+ if (!name && instance) {
460
466
  const inferFromRegistry = (registry) => {
461
467
  for (const key in registry) {
462
468
  if (registry[key] === Component) {
@@ -464,8 +470,8 @@ function formatComponentName(instance, Component, isRoot = false) {
464
470
  }
465
471
  }
466
472
  };
467
- name = inferFromRegistry(
468
- instance.components || instance.parent.type.components
473
+ name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(
474
+ instance.parent.type.components
469
475
  ) || inferFromRegistry(instance.appContext.components);
470
476
  }
471
477
  return name ? classify(name) : isRoot ? `App` : `Anonymous`;
@@ -479,8 +485,10 @@ function ssrRenderList(source, renderItem) {
479
485
  renderItem(source[i], i);
480
486
  }
481
487
  } else if (typeof source === "number") {
482
- if (!Number.isInteger(source)) {
483
- warn(`The v-for range expect an integer value but got ${source}.`);
488
+ if (!Number.isInteger(source) || source < 0) {
489
+ warn(
490
+ `The v-for range expects a positive integer value but got ${source}.`
491
+ );
484
492
  return;
485
493
  }
486
494
  for (let i = 0; i < source; i++) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/server-renderer v3.5.22
2
+ * @vue/server-renderer v3.5.34
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -29,17 +29,21 @@ const shouldIgnoreProp = /* @__PURE__ */ shared.makeMap(
29
29
  );
30
30
  function ssrRenderAttrs(props, tag) {
31
31
  let ret = "";
32
- for (const key in props) {
33
- if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value") {
32
+ for (let key in props) {
33
+ if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR)
34
+ key.startsWith(".")) {
34
35
  continue;
35
36
  }
36
37
  const value = props[key];
38
+ if (key.startsWith("^")) key = key.slice(1);
37
39
  if (key === "class") {
38
40
  ret += ` class="${ssrRenderClass(value)}"`;
39
41
  } else if (key === "style") {
40
42
  ret += ` style="${ssrRenderStyle(value)}"`;
41
43
  } else if (key === "className") {
42
- ret += ` class="${String(value)}"`;
44
+ if (value != null) {
45
+ ret += ` class="${shared.escapeHtml(String(value))}"`;
46
+ }
43
47
  } else {
44
48
  ret += ssrRenderDynamicAttr(key, value, tag);
45
49
  }
@@ -1,5 +1,5 @@
1
1
  import { VNode, ComponentInternalInstance, App, Slots, Component, ComponentPublicInstance, Directive } from 'vue';
2
- import { Readable, Writable } from 'node:stream';
2
+ import { Writable, Readable } from 'node:stream';
3
3
  export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared';
4
4
 
5
5
  type SSRBuffer = SSRBufferItem[] & {