@vue/server-renderer 3.5.38 → 3.5.40

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/server-renderer v3.5.38
2
+ * @vue/server-renderer v3.5.40
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -7,7 +7,7 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- var Vue = require('vue');
10
+ var Vue = require('@vue/runtime-dom');
11
11
  var shared = require('@vue/shared');
12
12
  var compilerSsr = require('@vue/compiler-ssr');
13
13
 
@@ -213,6 +213,9 @@ function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parent
213
213
  teleportContent = getBuffer();
214
214
  }
215
215
  targetBuffer.splice(bufferIndex, 0, teleportContent);
216
+ if (shared.isPromise(teleportContent) || shared.isArray(teleportContent) && teleportContent.hasAsync) {
217
+ targetBuffer.hasAsync = true;
218
+ }
216
219
  parentPush("<!--teleport end-->");
217
220
  }
218
221
 
@@ -220,265 +223,6 @@ function ssrInterpolate(value) {
220
223
  return shared.escapeHtml(shared.toDisplayString(value));
221
224
  }
222
225
 
223
- // @__NO_SIDE_EFFECTS__
224
- function toRaw(observed) {
225
- const raw = observed && observed["__v_raw"];
226
- return raw ? /* @__PURE__ */ toRaw(raw) : observed;
227
- }
228
-
229
- // @__NO_SIDE_EFFECTS__
230
- function isRef(r) {
231
- return r ? r["__v_isRef"] === true : false;
232
- }
233
-
234
- const stack = [];
235
- function pushWarningContext$1(vnode) {
236
- stack.push(vnode);
237
- }
238
- function popWarningContext$1() {
239
- stack.pop();
240
- }
241
- let isWarning = false;
242
- function warn$1(msg, ...args) {
243
- if (isWarning) return;
244
- isWarning = true;
245
- const instance = stack.length ? stack[stack.length - 1].component : null;
246
- const appWarnHandler = instance && instance.appContext.config.warnHandler;
247
- const trace = getComponentTrace();
248
- if (appWarnHandler) {
249
- callWithErrorHandling(
250
- appWarnHandler,
251
- instance,
252
- 11,
253
- [
254
- // eslint-disable-next-line no-restricted-syntax
255
- msg + args.map((a) => {
256
- var _a, _b;
257
- return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
258
- }).join(""),
259
- instance && instance.proxy,
260
- trace.map(
261
- ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
262
- ).join("\n"),
263
- trace
264
- ]
265
- );
266
- } else {
267
- const warnArgs = [`[Vue warn]: ${msg}`, ...args];
268
- if (trace.length && // avoid spamming console during tests
269
- true) {
270
- warnArgs.push(`
271
- `, ...formatTrace(trace));
272
- }
273
- console.warn(...warnArgs);
274
- }
275
- isWarning = false;
276
- }
277
- function getComponentTrace() {
278
- let currentVNode = stack[stack.length - 1];
279
- if (!currentVNode) {
280
- return [];
281
- }
282
- const normalizedStack = [];
283
- while (currentVNode) {
284
- const last = normalizedStack[0];
285
- if (last && last.vnode === currentVNode) {
286
- last.recurseCount++;
287
- } else {
288
- normalizedStack.push({
289
- vnode: currentVNode,
290
- recurseCount: 0
291
- });
292
- }
293
- const parentInstance = currentVNode.component && currentVNode.component.parent;
294
- currentVNode = parentInstance && parentInstance.vnode;
295
- }
296
- return normalizedStack;
297
- }
298
- function formatTrace(trace) {
299
- const logs = [];
300
- trace.forEach((entry, i) => {
301
- logs.push(...i === 0 ? [] : [`
302
- `], ...formatTraceEntry(entry));
303
- });
304
- return logs;
305
- }
306
- function formatTraceEntry({ vnode, recurseCount }) {
307
- const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
308
- const isRoot = vnode.component ? vnode.component.parent == null : false;
309
- const open = ` at <${formatComponentName(
310
- vnode.component,
311
- vnode.type,
312
- isRoot
313
- )}`;
314
- const close = `>` + postfix;
315
- return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
316
- }
317
- function formatProps(props) {
318
- const res = [];
319
- const keys = Object.keys(props);
320
- keys.slice(0, 3).forEach((key) => {
321
- res.push(...formatProp(key, props[key]));
322
- });
323
- if (keys.length > 3) {
324
- res.push(` ...`);
325
- }
326
- return res;
327
- }
328
- function formatProp(key, value, raw) {
329
- if (shared.isString(value)) {
330
- value = JSON.stringify(value);
331
- return raw ? value : [`${key}=${value}`];
332
- } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
333
- return raw ? value : [`${key}=${value}`];
334
- } else if (isRef(value)) {
335
- value = formatProp(key, toRaw(value.value), true);
336
- return raw ? value : [`${key}=Ref<`, value, `>`];
337
- } else if (shared.isFunction(value)) {
338
- return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
339
- } else {
340
- value = toRaw(value);
341
- return raw ? value : [`${key}=`, value];
342
- }
343
- }
344
-
345
- const ErrorTypeStrings = {
346
- ["sp"]: "serverPrefetch hook",
347
- ["bc"]: "beforeCreate hook",
348
- ["c"]: "created hook",
349
- ["bm"]: "beforeMount hook",
350
- ["m"]: "mounted hook",
351
- ["bu"]: "beforeUpdate hook",
352
- ["u"]: "updated",
353
- ["bum"]: "beforeUnmount hook",
354
- ["um"]: "unmounted hook",
355
- ["a"]: "activated hook",
356
- ["da"]: "deactivated hook",
357
- ["ec"]: "errorCaptured hook",
358
- ["rtc"]: "renderTracked hook",
359
- ["rtg"]: "renderTriggered hook",
360
- [0]: "setup function",
361
- [1]: "render function",
362
- [2]: "watcher getter",
363
- [3]: "watcher callback",
364
- [4]: "watcher cleanup function",
365
- [5]: "native event handler",
366
- [6]: "component event handler",
367
- [7]: "vnode hook",
368
- [8]: "directive hook",
369
- [9]: "transition hook",
370
- [10]: "app errorHandler",
371
- [11]: "app warnHandler",
372
- [12]: "ref function",
373
- [13]: "async component loader",
374
- [14]: "scheduler flush",
375
- [15]: "component update",
376
- [16]: "app unmount cleanup function"
377
- };
378
- function callWithErrorHandling(fn, instance, type, args) {
379
- try {
380
- return args ? fn(...args) : fn();
381
- } catch (err) {
382
- handleError(err, instance, type);
383
- }
384
- }
385
- function handleError(err, instance, type, throwInDev = true) {
386
- const contextVNode = instance ? instance.vnode : null;
387
- const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ;
388
- if (instance) {
389
- let cur = instance.parent;
390
- const exposedInstance = instance.proxy;
391
- const errorInfo = ErrorTypeStrings[type] ;
392
- while (cur) {
393
- const errorCapturedHooks = cur.ec;
394
- if (errorCapturedHooks) {
395
- for (let i = 0; i < errorCapturedHooks.length; i++) {
396
- if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
397
- return;
398
- }
399
- }
400
- }
401
- cur = cur.parent;
402
- }
403
- if (errorHandler) {
404
- callWithErrorHandling(errorHandler, null, 10, [
405
- err,
406
- exposedInstance,
407
- errorInfo
408
- ]);
409
- return;
410
- }
411
- }
412
- logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);
413
- }
414
- function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {
415
- {
416
- const info = ErrorTypeStrings[type];
417
- if (contextVNode) {
418
- pushWarningContext$1(contextVNode);
419
- }
420
- warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
421
- if (contextVNode) {
422
- popWarningContext$1();
423
- }
424
- if (throwInDev) {
425
- throw err;
426
- } else {
427
- console.error(err);
428
- }
429
- }
430
- }
431
-
432
- {
433
- const g = shared.getGlobalThis();
434
- const registerGlobalSetter = (key, setter) => {
435
- let setters;
436
- if (!(setters = g[key])) setters = g[key] = [];
437
- setters.push(setter);
438
- return (v) => {
439
- if (setters.length > 1) setters.forEach((set) => set(v));
440
- else setters[0](v);
441
- };
442
- };
443
- registerGlobalSetter(
444
- `__VUE_INSTANCE_SETTERS__`,
445
- (v) => v
446
- );
447
- registerGlobalSetter(
448
- `__VUE_SSR_SETTERS__`,
449
- (v) => v
450
- );
451
- }
452
- const classifyRE = /(?:^|[-_])\w/g;
453
- const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
454
- function getComponentName(Component, includeInferred = true) {
455
- return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
456
- }
457
- function formatComponentName(instance, Component, isRoot = false) {
458
- let name = getComponentName(Component);
459
- if (!name && Component.__file) {
460
- const match = Component.__file.match(/([^/\\]+)\.\w+$/);
461
- if (match) {
462
- name = match[1];
463
- }
464
- }
465
- if (!name && instance) {
466
- const inferFromRegistry = (registry) => {
467
- for (const key in registry) {
468
- if (registry[key] === Component) {
469
- return key;
470
- }
471
- }
472
- };
473
- name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(
474
- instance.parent.type.components
475
- ) || inferFromRegistry(instance.appContext.components);
476
- }
477
- return name ? classify(name) : isRoot ? `App` : `Anonymous`;
478
- }
479
-
480
- const warn = warn$1 ;
481
-
482
226
  function ssrRenderList(source, renderItem) {
483
227
  if (shared.isArray(source) || shared.isString(source)) {
484
228
  for (let i = 0, l = source.length; i < l; i++) {
@@ -486,7 +230,7 @@ function ssrRenderList(source, renderItem) {
486
230
  }
487
231
  } else if (typeof source === "number") {
488
232
  if (!Number.isInteger(source) || source < 0) {
489
- warn(
233
+ Vue.warn(
490
234
  `The v-for range expects a positive integer value but got ${source}.`
491
235
  );
492
236
  return;
@@ -691,7 +435,11 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
691
435
  }).catch(shared.NOOP);
692
436
  return p.then(() => renderComponentSubTree(instance, slotScopeId));
693
437
  } else {
694
- return renderComponentSubTree(instance, slotScopeId);
438
+ try {
439
+ return renderComponentSubTree(instance, slotScopeId);
440
+ } catch (err) {
441
+ return Promise.reject(err);
442
+ }
695
443
  }
696
444
  }
697
445
  function renderComponentSubTree(instance, slotScopeId) {
@@ -753,6 +501,8 @@ function renderComponentSubTree(instance, slotScopeId) {
753
501
  instance.data,
754
502
  instance.ctx
755
503
  );
504
+ } catch (err) {
505
+ Vue.handleError(err, instance, 1);
756
506
  } finally {
757
507
  setCurrentRenderingInstance(prev);
758
508
  }
@@ -832,20 +582,30 @@ function renderElementVNode(push, vnode, parentComponent, slotScopeId) {
832
582
  if (props) {
833
583
  openTag += ssrRenderAttrs(props, tag);
834
584
  }
585
+ const renderedScopeIds = [];
586
+ const appendScopeId = (id) => {
587
+ if (id && (!props || !shared.hasOwn(props, id)) && !renderedScopeIds.includes(id)) {
588
+ openTag += ` ${id}`;
589
+ renderedScopeIds.push(id);
590
+ }
591
+ };
835
592
  if (scopeId) {
836
- openTag += ` ${scopeId}`;
593
+ appendScopeId(scopeId);
837
594
  }
838
595
  let curParent = parentComponent;
839
596
  let curVnode = vnode;
840
597
  while (curParent && curVnode === curParent.subTree) {
841
598
  curVnode = curParent.vnode;
842
599
  if (curVnode.scopeId) {
843
- openTag += ` ${curVnode.scopeId}`;
600
+ appendScopeId(curVnode.scopeId);
844
601
  }
845
602
  curParent = curParent.parent;
846
603
  }
847
604
  if (slotScopeId) {
848
- openTag += ` ${slotScopeId}`;
605
+ const slotScopeIdList = slotScopeId.trim().split(" ");
606
+ for (let i = 0; i < slotScopeIdList.length; i++) {
607
+ appendScopeId(slotScopeIdList[i]);
608
+ }
849
609
  }
850
610
  push(openTag + `>`);
851
611
  if (!shared.isVoidTag(tag)) {
@@ -988,7 +748,7 @@ async function resolveTeleports(context) {
988
748
  context.teleports = context.teleports || {};
989
749
  for (const key in context.__teleportBuffers) {
990
750
  context.teleports[key] = await unrollBuffer$1(
991
- await Promise.all([context.__teleportBuffers[key]])
751
+ context.__teleportBuffers[key]
992
752
  );
993
753
  }
994
754
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/server-renderer v3.5.38
2
+ * @vue/server-renderer v3.5.40
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -7,7 +7,7 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- var Vue = require('vue');
10
+ var Vue = require('@vue/runtime-dom');
11
11
  var shared = require('@vue/shared');
12
12
  var compilerSsr = require('@vue/compiler-ssr');
13
13
 
@@ -213,6 +213,9 @@ function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parent
213
213
  teleportContent = getBuffer();
214
214
  }
215
215
  targetBuffer.splice(bufferIndex, 0, teleportContent);
216
+ if (shared.isPromise(teleportContent) || shared.isArray(teleportContent) && teleportContent.hasAsync) {
217
+ targetBuffer.hasAsync = true;
218
+ }
216
219
  parentPush("<!--teleport end-->");
217
220
  }
218
221
 
@@ -417,7 +420,11 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
417
420
  }).catch(shared.NOOP);
418
421
  return p.then(() => renderComponentSubTree(instance, slotScopeId));
419
422
  } else {
420
- return renderComponentSubTree(instance, slotScopeId);
423
+ try {
424
+ return renderComponentSubTree(instance, slotScopeId);
425
+ } catch (err) {
426
+ return Promise.reject(err);
427
+ }
421
428
  }
422
429
  }
423
430
  function renderComponentSubTree(instance, slotScopeId) {
@@ -478,6 +485,8 @@ function renderComponentSubTree(instance, slotScopeId) {
478
485
  instance.data,
479
486
  instance.ctx
480
487
  );
488
+ } catch (err) {
489
+ Vue.handleError(err, instance, 1);
481
490
  } finally {
482
491
  setCurrentRenderingInstance(prev);
483
492
  }
@@ -556,20 +565,30 @@ function renderElementVNode(push, vnode, parentComponent, slotScopeId) {
556
565
  if (props) {
557
566
  openTag += ssrRenderAttrs(props, tag);
558
567
  }
568
+ const renderedScopeIds = [];
569
+ const appendScopeId = (id) => {
570
+ if (id && (!props || !shared.hasOwn(props, id)) && !renderedScopeIds.includes(id)) {
571
+ openTag += ` ${id}`;
572
+ renderedScopeIds.push(id);
573
+ }
574
+ };
559
575
  if (scopeId) {
560
- openTag += ` ${scopeId}`;
576
+ appendScopeId(scopeId);
561
577
  }
562
578
  let curParent = parentComponent;
563
579
  let curVnode = vnode;
564
580
  while (curParent && curVnode === curParent.subTree) {
565
581
  curVnode = curParent.vnode;
566
582
  if (curVnode.scopeId) {
567
- openTag += ` ${curVnode.scopeId}`;
583
+ appendScopeId(curVnode.scopeId);
568
584
  }
569
585
  curParent = curParent.parent;
570
586
  }
571
587
  if (slotScopeId) {
572
- openTag += ` ${slotScopeId}`;
588
+ const slotScopeIdList = slotScopeId.trim().split(" ");
589
+ for (let i = 0; i < slotScopeIdList.length; i++) {
590
+ appendScopeId(slotScopeIdList[i]);
591
+ }
573
592
  }
574
593
  push(openTag + `>`);
575
594
  if (!shared.isVoidTag(tag)) {
@@ -712,7 +731,7 @@ async function resolveTeleports(context) {
712
731
  context.teleports = context.teleports || {};
713
732
  for (const key in context.__teleportBuffers) {
714
733
  context.teleports[key] = await unrollBuffer$1(
715
- await Promise.all([context.__teleportBuffers[key]])
734
+ context.__teleportBuffers[key]
716
735
  );
717
736
  }
718
737
  }
@@ -1,4 +1,4 @@
1
- import { VNode, ComponentInternalInstance, App, Slots, Component, ComponentPublicInstance, Directive } from 'vue';
1
+ import { VNode, ComponentInternalInstance, App, Slots, Component, ComponentPublicInstance, Directive } from '@vue/runtime-dom';
2
2
  import { Writable, Readable } from 'node:stream';
3
3
  export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared';
4
4