@vue/runtime-core 3.6.0-alpha.5 → 3.6.0-alpha.7

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/runtime-core v3.6.0-alpha.5
2
+ * @vue/runtime-core v3.6.0-alpha.7
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -482,6 +482,7 @@ function checkRecursiveUpdates(seen, fn) {
482
482
 
483
483
  let isHmrUpdating = false;
484
484
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
485
+ const hmrDirtyComponentsMode = /* @__PURE__ */ new Map();
485
486
  {
486
487
  shared.getGlobalThis().__VUE_HMR_RUNTIME__ = {
487
488
  createRecord: tryWrap(createRecord),
@@ -545,9 +546,10 @@ function reload(id, newComp) {
545
546
  const record = map.get(id);
546
547
  if (!record) return;
547
548
  newComp = normalizeClassComponent(newComp);
549
+ const isVapor = record.initialDef.__vapor;
548
550
  updateComponentDef(record.initialDef, newComp);
549
551
  const instances = [...record.instances];
550
- if (newComp.__vapor && !instances.some((i) => i.ceReload)) {
552
+ if (isVapor && newComp.__vapor && !instances.some((i) => i.ceReload)) {
551
553
  for (const instance of instances) {
552
554
  if (instance.root && instance.root.ce && instance !== instance.root) {
553
555
  instance.root.ce._removeChildStyle(instance.type);
@@ -567,6 +569,7 @@ function reload(id, newComp) {
567
569
  hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
568
570
  }
569
571
  dirtyInstances.add(instance);
572
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
570
573
  instance.appContext.propsCache.delete(instance.type);
571
574
  instance.appContext.emitsCache.delete(instance.type);
572
575
  instance.appContext.optionsCache.delete(instance.type);
@@ -607,6 +610,7 @@ function reload(id, newComp) {
607
610
  }
608
611
  queuePostFlushCb(() => {
609
612
  hmrDirtyComponents.clear();
613
+ hmrDirtyComponentsMode.clear();
610
614
  });
611
615
  }
612
616
  function updateComponentDef(oldComp, newComp) {
@@ -1237,7 +1241,7 @@ const BaseTransitionPropsValidators = {
1237
1241
  onAppearCancelled: TransitionHookValidator
1238
1242
  };
1239
1243
  const recursiveGetSubtree = (instance) => {
1240
- const subTree = instance.type.__vapor ? instance.block : instance.subTree;
1244
+ const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
1241
1245
  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
1242
1246
  };
1243
1247
  const BaseTransitionImpl = {
@@ -1544,7 +1548,7 @@ function getInnerChild$1(vnode) {
1544
1548
  }
1545
1549
  function setTransitionHooks(vnode, hooks) {
1546
1550
  if (vnode.shapeFlag & 6 && vnode.component) {
1547
- if (vnode.type.__vapor) {
1551
+ if (isVaporComponent(vnode.type)) {
1548
1552
  getVaporInterface(vnode.component, vnode).setTransitionHooks(
1549
1553
  vnode.component,
1550
1554
  hooks
@@ -1953,7 +1957,8 @@ function createHydrationFunctions(rendererInternals) {
1953
1957
  node,
1954
1958
  container,
1955
1959
  null,
1956
- parentComponent
1960
+ parentComponent,
1961
+ parentSuspense
1957
1962
  );
1958
1963
  } else {
1959
1964
  mountComponent(
@@ -4803,29 +4808,7 @@ function renderComponentRoot(instance) {
4803
4808
  }
4804
4809
  root = cloneVNode(root, fallthroughAttrs, false, true);
4805
4810
  } else if (!accessedAttrs && root.type !== Comment) {
4806
- const allAttrs = Object.keys(attrs);
4807
- const eventAttrs = [];
4808
- const extraAttrs = [];
4809
- for (let i = 0, l = allAttrs.length; i < l; i++) {
4810
- const key = allAttrs[i];
4811
- if (shared.isOn(key)) {
4812
- if (!shared.isModelListener(key)) {
4813
- eventAttrs.push(key[2].toLowerCase() + key.slice(3));
4814
- }
4815
- } else {
4816
- extraAttrs.push(key);
4817
- }
4818
- }
4819
- if (extraAttrs.length) {
4820
- warn$1(
4821
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
4822
- );
4823
- }
4824
- if (eventAttrs.length) {
4825
- warn$1(
4826
- `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
4827
- );
4828
- }
4811
+ warnExtraneousAttributes(attrs);
4829
4812
  }
4830
4813
  }
4831
4814
  }
@@ -4877,6 +4860,31 @@ const getChildRoot = (vnode) => {
4877
4860
  };
4878
4861
  return [normalizeVNode(childRoot), setRoot];
4879
4862
  };
4863
+ function warnExtraneousAttributes(attrs) {
4864
+ const allAttrs = Object.keys(attrs);
4865
+ const eventAttrs = [];
4866
+ const extraAttrs = [];
4867
+ for (let i = 0, l = allAttrs.length; i < l; i++) {
4868
+ const key = allAttrs[i];
4869
+ if (shared.isOn(key)) {
4870
+ if (!shared.isModelListener(key)) {
4871
+ eventAttrs.push(key[2].toLowerCase() + key.slice(3));
4872
+ }
4873
+ } else {
4874
+ extraAttrs.push(key);
4875
+ }
4876
+ }
4877
+ if (extraAttrs.length) {
4878
+ warn$1(
4879
+ `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
4880
+ );
4881
+ }
4882
+ if (eventAttrs.length) {
4883
+ warn$1(
4884
+ `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
4885
+ );
4886
+ }
4887
+ }
4880
4888
  function filterSingleRoot(children, recurse = true) {
4881
4889
  let singleRoot;
4882
4890
  for (let i = 0; i < children.length; i++) {
@@ -5626,7 +5634,13 @@ function baseCreateRenderer(options, createHydrationFns) {
5626
5634
  );
5627
5635
  break;
5628
5636
  case VaporSlot:
5629
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor);
5637
+ getVaporInterface(parentComponent, n2).slot(
5638
+ n1,
5639
+ n2,
5640
+ container,
5641
+ anchor,
5642
+ parentComponent
5643
+ );
5630
5644
  break;
5631
5645
  default:
5632
5646
  if (shapeFlag & 1) {
@@ -6129,7 +6143,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6129
6143
  n2,
6130
6144
  container,
6131
6145
  anchor,
6132
- parentComponent
6146
+ parentComponent,
6147
+ parentSuspense
6133
6148
  );
6134
6149
  }
6135
6150
  } else {
@@ -6190,7 +6205,42 @@ function baseCreateRenderer(options, createHydrationFns) {
6190
6205
  }
6191
6206
  if (isHmrUpdating) initialVNode.el = null;
6192
6207
  if (instance.asyncDep) {
6193
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
6208
+ if (parentSuspense) {
6209
+ const hydratedEl = instance.vnode.el;
6210
+ parentSuspense.registerDep(instance, (setupResult) => {
6211
+ const { vnode } = instance;
6212
+ {
6213
+ pushWarningContext(vnode);
6214
+ }
6215
+ handleSetupResult(instance, setupResult, false);
6216
+ if (hydratedEl) {
6217
+ vnode.el = hydratedEl;
6218
+ }
6219
+ const placeholder = !hydratedEl && instance.subTree.el;
6220
+ setupRenderEffect(
6221
+ instance,
6222
+ vnode,
6223
+ // component may have been moved before resolve.
6224
+ // if this is not a hydration, instance.subTree will be the comment
6225
+ // placeholder.
6226
+ hostParentNode(hydratedEl || instance.subTree.el),
6227
+ // anchor will not be used if this is hydration, so only need to
6228
+ // consider the comment placeholder case.
6229
+ hydratedEl ? null : getNextHostNode(instance.subTree),
6230
+ parentSuspense,
6231
+ namespace,
6232
+ optimized
6233
+ );
6234
+ if (placeholder) {
6235
+ vnode.placeholder = null;
6236
+ hostRemove(placeholder);
6237
+ }
6238
+ updateHOCHostEl(instance, vnode.el);
6239
+ {
6240
+ popWarningContext();
6241
+ }
6242
+ });
6243
+ }
6194
6244
  if (!initialVNode.el) {
6195
6245
  const placeholder = instance.subTree = createVNode(Comment);
6196
6246
  processCommentNode(null, placeholder, container, anchor);
@@ -6771,7 +6821,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6771
6821
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
6772
6822
  const { el, type, transition, children, shapeFlag } = vnode;
6773
6823
  if (shapeFlag & 6) {
6774
- if (type.__vapor) {
6824
+ if (isVaporComponent(type)) {
6775
6825
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor);
6776
6826
  } else {
6777
6827
  move(
@@ -6881,7 +6931,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6881
6931
  parentComponent.renderCache[cacheIndex] = void 0;
6882
6932
  }
6883
6933
  if (shapeFlag & 256) {
6884
- if (vnode.type.__vapor) {
6934
+ if (isVaporComponent(vnode.type)) {
6885
6935
  getVaporInterface(parentComponent, vnode).deactivate(
6886
6936
  vnode,
6887
6937
  parentComponent.ctx.getStorageContainer()
@@ -6898,7 +6948,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6898
6948
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
6899
6949
  }
6900
6950
  if (shapeFlag & 6) {
6901
- if (type.__vapor) {
6951
+ if (isVaporComponent(type)) {
6902
6952
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
6903
6953
  return;
6904
6954
  } else {
@@ -7030,7 +7080,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7030
7080
  };
7031
7081
  const getNextHostNode = (vnode) => {
7032
7082
  if (vnode.shapeFlag & 6) {
7033
- if (vnode.type.__vapor) {
7083
+ if (isVaporComponent(vnode.type)) {
7034
7084
  return hostNextSibling(vnode.anchor);
7035
7085
  }
7036
7086
  return getNextHostNode(vnode.component.subTree);
@@ -7220,6 +7270,12 @@ app.use(vaporInteropPlugin)
7220
7270
  }
7221
7271
  return res;
7222
7272
  }
7273
+ function isVaporComponent(type) {
7274
+ if (isHmrUpdating && hmrDirtyComponentsMode.has(type)) {
7275
+ return hmrDirtyComponentsMode.get(type);
7276
+ }
7277
+ return type.__vapor;
7278
+ }
7223
7279
  function getInheritedScopeIds(vnode, parentComponent) {
7224
7280
  const inheritedScopeIds = [];
7225
7281
  let currentParent = parentComponent;
@@ -7519,7 +7575,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7519
7575
  m: move,
7520
7576
  um: unmount,
7521
7577
  n: next,
7522
- o: { parentNode, remove }
7578
+ o: { parentNode }
7523
7579
  } = rendererInternals;
7524
7580
  let parentSuspenseId;
7525
7581
  const isSuspensible = isVNodeSuspensible(vnode);
@@ -7694,12 +7750,11 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7694
7750
  next() {
7695
7751
  return suspense.activeBranch && next(suspense.activeBranch);
7696
7752
  },
7697
- registerDep(instance, setupRenderEffect, optimized2) {
7753
+ registerDep(instance, onResolve) {
7698
7754
  const isInPendingSuspense = !!suspense.pendingBranch;
7699
7755
  if (isInPendingSuspense) {
7700
7756
  suspense.deps++;
7701
7757
  }
7702
- const hydratedEl = instance.vnode.el;
7703
7758
  instance.asyncDep.catch((err) => {
7704
7759
  handleError(err, instance, 0);
7705
7760
  }).then((asyncSetupResult) => {
@@ -7707,37 +7762,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7707
7762
  return;
7708
7763
  }
7709
7764
  instance.asyncResolved = true;
7710
- const { vnode: vnode2 } = instance;
7711
- {
7712
- pushWarningContext(vnode2);
7713
- }
7714
- handleSetupResult(instance, asyncSetupResult, false);
7715
- if (hydratedEl) {
7716
- vnode2.el = hydratedEl;
7717
- }
7718
- const placeholder = !hydratedEl && instance.subTree.el;
7719
- setupRenderEffect(
7720
- instance,
7721
- vnode2,
7722
- // component may have been moved before resolve.
7723
- // if this is not a hydration, instance.subTree will be the comment
7724
- // placeholder.
7725
- parentNode(hydratedEl || instance.subTree.el),
7726
- // anchor will not be used if this is hydration, so only need to
7727
- // consider the comment placeholder case.
7728
- hydratedEl ? null : next(instance.subTree),
7729
- suspense,
7730
- namespace,
7731
- optimized2
7732
- );
7733
- if (placeholder) {
7734
- vnode2.placeholder = null;
7735
- remove(placeholder);
7736
- }
7737
- updateHOCHostEl(instance, vnode2.el);
7738
- {
7739
- popWarningContext();
7740
- }
7765
+ onResolve(asyncSetupResult);
7741
7766
  if (isInPendingSuspense && --suspense.deps === 0) {
7742
7767
  suspense.resolve();
7743
7768
  }
@@ -8919,7 +8944,7 @@ function isMemoSame(cached, memo) {
8919
8944
  return true;
8920
8945
  }
8921
8946
 
8922
- const version = "3.6.0-alpha.5";
8947
+ const version = "3.6.0-alpha.7";
8923
8948
  const warn = warn$1 ;
8924
8949
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8925
8950
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.6.0-alpha.5
2
+ * @vue/runtime-core v3.6.0-alpha.7
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -10,9 +10,119 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
  var reactivity = require('@vue/reactivity');
11
11
  var shared = require('@vue/shared');
12
12
 
13
+ const stack = [];
13
14
  function pushWarningContext(ctx) {
15
+ stack.push(ctx);
14
16
  }
15
17
  function popWarningContext() {
18
+ stack.pop();
19
+ }
20
+ let isWarning = false;
21
+ function warn$2(msg, ...args) {
22
+ if (isWarning) return;
23
+ isWarning = true;
24
+ const prevSub = reactivity.setActiveSub();
25
+ const entry = stack.length ? stack[stack.length - 1] : null;
26
+ const instance = isVNode(entry) ? entry.component : entry;
27
+ const appWarnHandler = instance && instance.appContext.config.warnHandler;
28
+ const trace = getComponentTrace();
29
+ if (appWarnHandler) {
30
+ callWithErrorHandling(
31
+ appWarnHandler,
32
+ instance,
33
+ 11,
34
+ [
35
+ // eslint-disable-next-line no-restricted-syntax
36
+ msg + args.map((a) => {
37
+ var _a, _b;
38
+ return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
39
+ }).join(""),
40
+ instance && instance.proxy || instance,
41
+ trace.map(
42
+ ({ ctx }) => `at <${formatComponentName(instance, ctx.type)}>`
43
+ ).join("\n"),
44
+ trace
45
+ ]
46
+ );
47
+ } else {
48
+ const warnArgs = [`[Vue warn]: ${msg}`, ...args];
49
+ if (trace.length && // avoid spamming console during tests
50
+ true) {
51
+ warnArgs.push(`
52
+ `, ...formatTrace(trace));
53
+ }
54
+ console.warn(...warnArgs);
55
+ }
56
+ reactivity.setActiveSub(prevSub);
57
+ isWarning = false;
58
+ }
59
+ function getComponentTrace() {
60
+ let currentCtx = stack[stack.length - 1];
61
+ if (!currentCtx) {
62
+ return [];
63
+ }
64
+ const normalizedStack = [];
65
+ while (currentCtx) {
66
+ const last = normalizedStack[0];
67
+ if (last && last.ctx === currentCtx) {
68
+ last.recurseCount++;
69
+ } else {
70
+ normalizedStack.push({
71
+ ctx: currentCtx,
72
+ recurseCount: 0
73
+ });
74
+ }
75
+ if (isVNode(currentCtx)) {
76
+ const parent = currentCtx.component && currentCtx.component.parent;
77
+ currentCtx = parent && parent.vnode || parent;
78
+ } else {
79
+ currentCtx = currentCtx.parent;
80
+ }
81
+ }
82
+ return normalizedStack;
83
+ }
84
+ function formatTrace(trace) {
85
+ const logs = [];
86
+ trace.forEach((entry, i) => {
87
+ logs.push(...i === 0 ? [] : [`
88
+ `], ...formatTraceEntry(entry));
89
+ });
90
+ return logs;
91
+ }
92
+ function formatTraceEntry({ ctx, recurseCount }) {
93
+ const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
94
+ const instance = isVNode(ctx) ? ctx.component : ctx;
95
+ const isRoot = instance ? instance.parent == null : false;
96
+ const open = ` at <${formatComponentName(instance, ctx.type, isRoot)}`;
97
+ const close = `>` + postfix;
98
+ return ctx.props ? [open, ...formatProps(ctx.props), close] : [open + close];
99
+ }
100
+ function formatProps(props) {
101
+ const res = [];
102
+ const keys = Object.keys(props);
103
+ keys.slice(0, 3).forEach((key) => {
104
+ res.push(...formatProp(key, props[key]));
105
+ });
106
+ if (keys.length > 3) {
107
+ res.push(` ...`);
108
+ }
109
+ return res;
110
+ }
111
+ function formatProp(key, value, raw) {
112
+ if (shared.isString(value)) {
113
+ value = JSON.stringify(value);
114
+ return raw ? value : [`${key}=${value}`];
115
+ } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
116
+ return raw ? value : [`${key}=${value}`];
117
+ } else if (reactivity.isRef(value)) {
118
+ value = formatProp(key, reactivity.toRaw(value.value), true);
119
+ return raw ? value : [`${key}=Ref<`, value, `>`];
120
+ } else if (shared.isFunction(value)) {
121
+ return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
122
+ } else {
123
+ value = reactivity.toRaw(value);
124
+ return raw ? value : [`${key}=`, value];
125
+ }
16
126
  }
17
127
  function assertNumber(val, type) {
18
128
  return;
@@ -795,7 +905,7 @@ const BaseTransitionPropsValidators = {
795
905
  onAppearCancelled: TransitionHookValidator
796
906
  };
797
907
  const recursiveGetSubtree = (instance) => {
798
- const subTree = instance.type.__vapor ? instance.block : instance.subTree;
908
+ const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
799
909
  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
800
910
  };
801
911
  const BaseTransitionImpl = {
@@ -1094,7 +1204,7 @@ function getInnerChild$1(vnode) {
1094
1204
  }
1095
1205
  function setTransitionHooks(vnode, hooks) {
1096
1206
  if (vnode.shapeFlag & 6 && vnode.component) {
1097
- if (vnode.type.__vapor) {
1207
+ if (isVaporComponent(vnode.type)) {
1098
1208
  getVaporInterface(vnode.component, vnode).setTransitionHooks(
1099
1209
  vnode.component,
1100
1210
  hooks
@@ -1444,7 +1554,8 @@ function createHydrationFunctions(rendererInternals) {
1444
1554
  node,
1445
1555
  container,
1446
1556
  null,
1447
- parentComponent
1557
+ parentComponent,
1558
+ parentSuspense
1448
1559
  );
1449
1560
  } else {
1450
1561
  mountComponent(
@@ -3634,7 +3745,7 @@ function renderComponentRoot(instance) {
3634
3745
  const proxyToUse = withProxy || proxy;
3635
3746
  const thisProxy = false ? new Proxy(proxyToUse, {
3636
3747
  get(target, key, receiver) {
3637
- warn(
3748
+ warn$2(
3638
3749
  `Property '${String(
3639
3750
  key
3640
3751
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -4251,7 +4362,13 @@ function baseCreateRenderer(options, createHydrationFns) {
4251
4362
  );
4252
4363
  break;
4253
4364
  case VaporSlot:
4254
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor);
4365
+ getVaporInterface(parentComponent, n2).slot(
4366
+ n1,
4367
+ n2,
4368
+ container,
4369
+ anchor,
4370
+ parentComponent
4371
+ );
4255
4372
  break;
4256
4373
  default:
4257
4374
  if (shapeFlag & 1) {
@@ -4725,7 +4842,8 @@ function baseCreateRenderer(options, createHydrationFns) {
4725
4842
  n2,
4726
4843
  container,
4727
4844
  anchor,
4728
- parentComponent
4845
+ parentComponent,
4846
+ parentSuspense
4729
4847
  );
4730
4848
  }
4731
4849
  } else {
@@ -4772,7 +4890,36 @@ function baseCreateRenderer(options, createHydrationFns) {
4772
4890
  setupComponent(instance, false, optimized);
4773
4891
  }
4774
4892
  if (instance.asyncDep) {
4775
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
4893
+ if (parentSuspense) {
4894
+ const hydratedEl = instance.vnode.el;
4895
+ parentSuspense.registerDep(instance, (setupResult) => {
4896
+ const { vnode } = instance;
4897
+ handleSetupResult(instance, setupResult, false);
4898
+ if (hydratedEl) {
4899
+ vnode.el = hydratedEl;
4900
+ }
4901
+ const placeholder = !hydratedEl && instance.subTree.el;
4902
+ setupRenderEffect(
4903
+ instance,
4904
+ vnode,
4905
+ // component may have been moved before resolve.
4906
+ // if this is not a hydration, instance.subTree will be the comment
4907
+ // placeholder.
4908
+ hostParentNode(hydratedEl || instance.subTree.el),
4909
+ // anchor will not be used if this is hydration, so only need to
4910
+ // consider the comment placeholder case.
4911
+ hydratedEl ? null : getNextHostNode(instance.subTree),
4912
+ parentSuspense,
4913
+ namespace,
4914
+ optimized
4915
+ );
4916
+ if (placeholder) {
4917
+ vnode.placeholder = null;
4918
+ hostRemove(placeholder);
4919
+ }
4920
+ updateHOCHostEl(instance, vnode.el);
4921
+ });
4922
+ }
4776
4923
  if (!initialVNode.el) {
4777
4924
  const placeholder = instance.subTree = createVNode(Comment);
4778
4925
  processCommentNode(null, placeholder, container, anchor);
@@ -5284,7 +5431,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5284
5431
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
5285
5432
  const { el, type, transition, children, shapeFlag } = vnode;
5286
5433
  if (shapeFlag & 6) {
5287
- if (type.__vapor) {
5434
+ if (isVaporComponent(type)) {
5288
5435
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor);
5289
5436
  } else {
5290
5437
  move(
@@ -5394,7 +5541,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5394
5541
  parentComponent.renderCache[cacheIndex] = void 0;
5395
5542
  }
5396
5543
  if (shapeFlag & 256) {
5397
- if (vnode.type.__vapor) {
5544
+ if (isVaporComponent(vnode.type)) {
5398
5545
  getVaporInterface(parentComponent, vnode).deactivate(
5399
5546
  vnode,
5400
5547
  parentComponent.ctx.getStorageContainer()
@@ -5411,7 +5558,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5411
5558
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
5412
5559
  }
5413
5560
  if (shapeFlag & 6) {
5414
- if (type.__vapor) {
5561
+ if (isVaporComponent(type)) {
5415
5562
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
5416
5563
  return;
5417
5564
  } else {
@@ -5529,7 +5676,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5529
5676
  };
5530
5677
  const getNextHostNode = (vnode) => {
5531
5678
  if (vnode.shapeFlag & 6) {
5532
- if (vnode.type.__vapor) {
5679
+ if (isVaporComponent(vnode.type)) {
5533
5680
  return hostNextSibling(vnode.anchor);
5534
5681
  }
5535
5682
  return getNextHostNode(vnode.component.subTree);
@@ -5700,6 +5847,9 @@ function getVaporInterface(instance, vnode) {
5700
5847
  const res = ctx && ctx.vapor;
5701
5848
  return res;
5702
5849
  }
5850
+ function isVaporComponent(type) {
5851
+ return type.__vapor;
5852
+ }
5703
5853
  function getInheritedScopeIds(vnode, parentComponent) {
5704
5854
  const inheritedScopeIds = [];
5705
5855
  let currentParent = parentComponent;
@@ -5989,7 +6139,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5989
6139
  m: move,
5990
6140
  um: unmount,
5991
6141
  n: next,
5992
- o: { parentNode, remove }
6142
+ o: { parentNode }
5993
6143
  } = rendererInternals;
5994
6144
  let parentSuspenseId;
5995
6145
  const isSuspensible = isVNodeSuspensible(vnode);
@@ -6149,12 +6299,11 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
6149
6299
  next() {
6150
6300
  return suspense.activeBranch && next(suspense.activeBranch);
6151
6301
  },
6152
- registerDep(instance, setupRenderEffect, optimized2) {
6302
+ registerDep(instance, onResolve) {
6153
6303
  const isInPendingSuspense = !!suspense.pendingBranch;
6154
6304
  if (isInPendingSuspense) {
6155
6305
  suspense.deps++;
6156
6306
  }
6157
- const hydratedEl = instance.vnode.el;
6158
6307
  instance.asyncDep.catch((err) => {
6159
6308
  handleError(err, instance, 0);
6160
6309
  }).then((asyncSetupResult) => {
@@ -6162,31 +6311,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
6162
6311
  return;
6163
6312
  }
6164
6313
  instance.asyncResolved = true;
6165
- const { vnode: vnode2 } = instance;
6166
- handleSetupResult(instance, asyncSetupResult, false);
6167
- if (hydratedEl) {
6168
- vnode2.el = hydratedEl;
6169
- }
6170
- const placeholder = !hydratedEl && instance.subTree.el;
6171
- setupRenderEffect(
6172
- instance,
6173
- vnode2,
6174
- // component may have been moved before resolve.
6175
- // if this is not a hydration, instance.subTree will be the comment
6176
- // placeholder.
6177
- parentNode(hydratedEl || instance.subTree.el),
6178
- // anchor will not be used if this is hydration, so only need to
6179
- // consider the comment placeholder case.
6180
- hydratedEl ? null : next(instance.subTree),
6181
- suspense,
6182
- namespace,
6183
- optimized2
6184
- );
6185
- if (placeholder) {
6186
- vnode2.placeholder = null;
6187
- remove(placeholder);
6188
- }
6189
- updateHOCHostEl(instance, vnode2.el);
6314
+ onResolve(asyncSetupResult);
6190
6315
  if (isInPendingSuspense && --suspense.deps === 0) {
6191
6316
  suspense.resolve();
6192
6317
  }
@@ -6940,9 +7065,33 @@ function getComponentPublicInstance(instance) {
6940
7065
  return instance.proxy;
6941
7066
  }
6942
7067
  }
7068
+ const classifyRE = /(?:^|[-_])\w/g;
7069
+ const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
6943
7070
  function getComponentName(Component, includeInferred = true) {
6944
7071
  return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
6945
7072
  }
7073
+ function formatComponentName(instance, Component, isRoot = false) {
7074
+ let name = getComponentName(Component);
7075
+ if (!name && Component.__file) {
7076
+ const match = Component.__file.match(/([^/\\]+)\.\w+$/);
7077
+ if (match) {
7078
+ name = match[1];
7079
+ }
7080
+ }
7081
+ if (!name && instance) {
7082
+ const inferFromRegistry = (registry) => {
7083
+ for (const key in registry) {
7084
+ if (registry[key] === Component) {
7085
+ return key;
7086
+ }
7087
+ }
7088
+ };
7089
+ name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(
7090
+ instance.parent.type.components
7091
+ ) || inferFromRegistry(instance.appContext.components);
7092
+ }
7093
+ return name ? classify(name) : isRoot ? `App` : `Anonymous`;
7094
+ }
6946
7095
  function isClassComponent(value) {
6947
7096
  return shared.isFunction(value) && "__vccOpts" in value;
6948
7097
  }
@@ -7009,7 +7158,7 @@ function isMemoSame(cached, memo) {
7009
7158
  return true;
7010
7159
  }
7011
7160
 
7012
- const version = "3.6.0-alpha.5";
7161
+ const version = "3.6.0-alpha.7";
7013
7162
  const warn$1 = shared.NOOP;
7014
7163
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
7015
7164
  const devtools = void 0;
@@ -383,7 +383,7 @@ export type EmitsToProps<T extends EmitsOptions | ComponentTypeEmits> = T extend
383
383
  } : T extends ObjectEmitsOptions ? {
384
384
  [K in string & keyof T as `on${Capitalize<K>}`]?: (...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any;
385
385
  } : {};
386
- type TypeEmitsToOptions<T extends ComponentTypeEmits> = {
386
+ export type TypeEmitsToOptions<T extends ComponentTypeEmits> = {
387
387
  [K in keyof T & string]: T[K] extends [...args: infer Args] ? (...args: Args) => any : () => any;
388
388
  } & (T extends (...args: any[]) => any ? ParametersToFns<OverloadParameters<T>> : {});
389
389
  type ParametersToFns<T extends any[]> = {
@@ -479,7 +479,7 @@ type ComponentPublicInstanceConstructor<T extends ComponentPublicInstance<Props,
479
479
  __isFragment?: never;
480
480
  __isTeleport?: never;
481
481
  __isSuspense?: never;
482
- new (...args: any[]): T;
482
+ new (props?: T['$props']): T;
483
483
  };
484
484
  /**
485
485
  * @deprecated This is no longer used internally, but exported and relied on by
@@ -558,7 +558,7 @@ declare const SuspenseImpl: {
558
558
  };
559
559
  export declare const Suspense: {
560
560
  __isSuspense: true;
561
- new (): {
561
+ new (props?: VNodeProps & SuspenseProps): {
562
562
  $props: VNodeProps & SuspenseProps;
563
563
  $slots: {
564
564
  default(): VNode[];
@@ -586,7 +586,7 @@ export interface SuspenseBoundary {
586
586
  fallback(fallbackVNode: VNode): void;
587
587
  move(container: RendererElement, anchor: RendererNode | null, type: MoveType): void;
588
588
  next(): RendererNode | null;
589
- registerDep(instance: ComponentInternalInstance, setupRenderEffect: SetupRenderEffectFn, optimized: boolean): void;
589
+ registerDep(instance: GenericComponentInstance, onResolve: (setupResult: unknown) => void): void;
590
590
  unmount(parentSuspense: SuspenseBoundary | null, doRemove?: boolean): void;
591
591
  }
592
592
  declare function hydrateSuspense(node: Node, vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean, rendererInternals: RendererInternals, hydrateNode: (node: Node, vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean) => Node | null): Node | null;
@@ -720,7 +720,6 @@ type UnmountFn = (vnode: VNode, parentComponent: ComponentInternalInstance | nul
720
720
  type RemoveFn = (vnode: VNode) => void;
721
721
  type MountComponentFn = (initialVNode: VNode, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, optimized: boolean) => void;
722
722
  type UnmountComponentFn = (instance: ComponentInternalInstance, parentSuspense: SuspenseBoundary | null, doRemove?: boolean) => void;
723
- type SetupRenderEffectFn = (instance: ComponentInternalInstance, initialVNode: VNode, container: RendererElement, anchor: RendererNode | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, optimized: boolean) => void;
724
723
  declare enum MoveType {
725
724
  ENTER = 0,
726
725
  LEAVE = 1,
@@ -759,7 +758,7 @@ export interface KeepAliveContext extends ComponentRenderContext {
759
758
  }
760
759
  export declare const KeepAlive: {
761
760
  __isKeepAlive: true;
762
- new (): {
761
+ new (props?: VNodeProps & KeepAliveProps): {
763
762
  $props: VNodeProps & KeepAliveProps;
764
763
  $slots: {
765
764
  default(): VNode[];
@@ -1188,7 +1187,7 @@ declare function moveTeleport(vnode: VNode, container: RendererElement, parentAn
1188
1187
  declare function hydrateTeleport(node: Node, vnode: TeleportVNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean, { o: { nextSibling, parentNode, querySelector, insert, createText }, }: RendererInternals<Node, Element>, hydrateChildren: (node: Node | null, vnode: VNode, container: Element, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean) => Node | null): Node | null;
1189
1188
  export declare const Teleport: {
1190
1189
  __isTeleport: true;
1191
- new (): {
1190
+ new (props?: VNodeProps & TeleportProps): {
1192
1191
  $props: VNodeProps & TeleportProps;
1193
1192
  $slots: {
1194
1193
  default(): VNode[];
@@ -1377,7 +1376,7 @@ type Data = Record<string, unknown>;
1377
1376
  * ```
1378
1377
  */
1379
1378
  export type ComponentInstance<T> = T extends {
1380
- new (): ComponentPublicInstance;
1379
+ new (...args: any[]): ComponentPublicInstance;
1381
1380
  } ? InstanceType<T> : T extends FunctionalComponent<infer Props, infer Emits> ? ComponentPublicInstance<Props, {}, {}, {}, {}, ShortEmitsToObject<Emits>> : T extends Component<infer PropsOrInstance, infer RawBindings, infer D, infer C, infer M> ? PropsOrInstance extends {
1382
1381
  $props: unknown;
1383
1382
  } ? PropsOrInstance : ComponentPublicInstance<unknown extends PropsOrInstance ? {} : PropsOrInstance, unknown extends RawBindings ? {} : RawBindings, unknown extends D ? {} : D, C, M> : never;
@@ -1645,7 +1644,7 @@ interface Constructor<P = any> {
1645
1644
  __isFragment?: never;
1646
1645
  __isTeleport?: never;
1647
1646
  __isSuspense?: never;
1648
- new (...args: any[]): {
1647
+ new (props?: P): {
1649
1648
  $props: P;
1650
1649
  };
1651
1650
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.6.0-alpha.5
2
+ * @vue/runtime-core v3.6.0-alpha.7
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -485,6 +485,7 @@ function checkRecursiveUpdates(seen, fn) {
485
485
 
486
486
  let isHmrUpdating = false;
487
487
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
488
+ const hmrDirtyComponentsMode = /* @__PURE__ */ new Map();
488
489
  if (!!(process.env.NODE_ENV !== "production")) {
489
490
  getGlobalThis().__VUE_HMR_RUNTIME__ = {
490
491
  createRecord: tryWrap(createRecord),
@@ -548,9 +549,10 @@ function reload(id, newComp) {
548
549
  const record = map.get(id);
549
550
  if (!record) return;
550
551
  newComp = normalizeClassComponent(newComp);
552
+ const isVapor = record.initialDef.__vapor;
551
553
  updateComponentDef(record.initialDef, newComp);
552
554
  const instances = [...record.instances];
553
- if (newComp.__vapor && !instances.some((i) => i.ceReload)) {
555
+ if (isVapor && newComp.__vapor && !instances.some((i) => i.ceReload)) {
554
556
  for (const instance of instances) {
555
557
  if (instance.root && instance.root.ce && instance !== instance.root) {
556
558
  instance.root.ce._removeChildStyle(instance.type);
@@ -570,6 +572,7 @@ function reload(id, newComp) {
570
572
  hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
571
573
  }
572
574
  dirtyInstances.add(instance);
575
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
573
576
  instance.appContext.propsCache.delete(instance.type);
574
577
  instance.appContext.emitsCache.delete(instance.type);
575
578
  instance.appContext.optionsCache.delete(instance.type);
@@ -610,6 +613,7 @@ function reload(id, newComp) {
610
613
  }
611
614
  queuePostFlushCb(() => {
612
615
  hmrDirtyComponents.clear();
616
+ hmrDirtyComponentsMode.clear();
613
617
  });
614
618
  }
615
619
  function updateComponentDef(oldComp, newComp) {
@@ -1240,7 +1244,7 @@ const BaseTransitionPropsValidators = {
1240
1244
  onAppearCancelled: TransitionHookValidator
1241
1245
  };
1242
1246
  const recursiveGetSubtree = (instance) => {
1243
- const subTree = instance.type.__vapor ? instance.block : instance.subTree;
1247
+ const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
1244
1248
  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
1245
1249
  };
1246
1250
  const BaseTransitionImpl = {
@@ -1548,7 +1552,7 @@ function getInnerChild$1(vnode) {
1548
1552
  }
1549
1553
  function setTransitionHooks(vnode, hooks) {
1550
1554
  if (vnode.shapeFlag & 6 && vnode.component) {
1551
- if (vnode.type.__vapor) {
1555
+ if (isVaporComponent(vnode.type)) {
1552
1556
  getVaporInterface(vnode.component, vnode).setTransitionHooks(
1553
1557
  vnode.component,
1554
1558
  hooks
@@ -1957,7 +1961,8 @@ function createHydrationFunctions(rendererInternals) {
1957
1961
  node,
1958
1962
  container,
1959
1963
  null,
1960
- parentComponent
1964
+ parentComponent,
1965
+ parentSuspense
1961
1966
  );
1962
1967
  } else {
1963
1968
  mountComponent(
@@ -4837,29 +4842,7 @@ function renderComponentRoot(instance) {
4837
4842
  }
4838
4843
  root = cloneVNode(root, fallthroughAttrs, false, true);
4839
4844
  } else if (!!(process.env.NODE_ENV !== "production") && !accessedAttrs && root.type !== Comment) {
4840
- const allAttrs = Object.keys(attrs);
4841
- const eventAttrs = [];
4842
- const extraAttrs = [];
4843
- for (let i = 0, l = allAttrs.length; i < l; i++) {
4844
- const key = allAttrs[i];
4845
- if (isOn(key)) {
4846
- if (!isModelListener(key)) {
4847
- eventAttrs.push(key[2].toLowerCase() + key.slice(3));
4848
- }
4849
- } else {
4850
- extraAttrs.push(key);
4851
- }
4852
- }
4853
- if (extraAttrs.length) {
4854
- warn$1(
4855
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
4856
- );
4857
- }
4858
- if (eventAttrs.length) {
4859
- warn$1(
4860
- `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
4861
- );
4862
- }
4845
+ warnExtraneousAttributes(attrs);
4863
4846
  }
4864
4847
  }
4865
4848
  }
@@ -4911,6 +4894,31 @@ const getChildRoot = (vnode) => {
4911
4894
  };
4912
4895
  return [normalizeVNode(childRoot), setRoot];
4913
4896
  };
4897
+ function warnExtraneousAttributes(attrs) {
4898
+ const allAttrs = Object.keys(attrs);
4899
+ const eventAttrs = [];
4900
+ const extraAttrs = [];
4901
+ for (let i = 0, l = allAttrs.length; i < l; i++) {
4902
+ const key = allAttrs[i];
4903
+ if (isOn(key)) {
4904
+ if (!isModelListener(key)) {
4905
+ eventAttrs.push(key[2].toLowerCase() + key.slice(3));
4906
+ }
4907
+ } else {
4908
+ extraAttrs.push(key);
4909
+ }
4910
+ }
4911
+ if (extraAttrs.length) {
4912
+ warn$1(
4913
+ `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
4914
+ );
4915
+ }
4916
+ if (eventAttrs.length) {
4917
+ warn$1(
4918
+ `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
4919
+ );
4920
+ }
4921
+ }
4914
4922
  function filterSingleRoot(children, recurse = true) {
4915
4923
  let singleRoot;
4916
4924
  for (let i = 0; i < children.length; i++) {
@@ -5698,7 +5706,13 @@ function baseCreateRenderer(options, createHydrationFns) {
5698
5706
  );
5699
5707
  break;
5700
5708
  case VaporSlot:
5701
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor);
5709
+ getVaporInterface(parentComponent, n2).slot(
5710
+ n1,
5711
+ n2,
5712
+ container,
5713
+ anchor,
5714
+ parentComponent
5715
+ );
5702
5716
  break;
5703
5717
  default:
5704
5718
  if (shapeFlag & 1) {
@@ -6212,7 +6226,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6212
6226
  n2,
6213
6227
  container,
6214
6228
  anchor,
6215
- parentComponent
6229
+ parentComponent,
6230
+ parentSuspense
6216
6231
  );
6217
6232
  }
6218
6233
  } else {
@@ -6273,7 +6288,42 @@ function baseCreateRenderer(options, createHydrationFns) {
6273
6288
  }
6274
6289
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) initialVNode.el = null;
6275
6290
  if (instance.asyncDep) {
6276
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
6291
+ if (parentSuspense) {
6292
+ const hydratedEl = instance.vnode.el;
6293
+ parentSuspense.registerDep(instance, (setupResult) => {
6294
+ const { vnode } = instance;
6295
+ if (!!(process.env.NODE_ENV !== "production")) {
6296
+ pushWarningContext(vnode);
6297
+ }
6298
+ handleSetupResult(instance, setupResult, false);
6299
+ if (hydratedEl) {
6300
+ vnode.el = hydratedEl;
6301
+ }
6302
+ const placeholder = !hydratedEl && instance.subTree.el;
6303
+ setupRenderEffect(
6304
+ instance,
6305
+ vnode,
6306
+ // component may have been moved before resolve.
6307
+ // if this is not a hydration, instance.subTree will be the comment
6308
+ // placeholder.
6309
+ hostParentNode(hydratedEl || instance.subTree.el),
6310
+ // anchor will not be used if this is hydration, so only need to
6311
+ // consider the comment placeholder case.
6312
+ hydratedEl ? null : getNextHostNode(instance.subTree),
6313
+ parentSuspense,
6314
+ namespace,
6315
+ optimized
6316
+ );
6317
+ if (placeholder) {
6318
+ vnode.placeholder = null;
6319
+ hostRemove(placeholder);
6320
+ }
6321
+ updateHOCHostEl(instance, vnode.el);
6322
+ if (!!(process.env.NODE_ENV !== "production")) {
6323
+ popWarningContext();
6324
+ }
6325
+ });
6326
+ }
6277
6327
  if (!initialVNode.el) {
6278
6328
  const placeholder = instance.subTree = createVNode(Comment);
6279
6329
  processCommentNode(null, placeholder, container, anchor);
@@ -6854,7 +6904,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6854
6904
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
6855
6905
  const { el, type, transition, children, shapeFlag } = vnode;
6856
6906
  if (shapeFlag & 6) {
6857
- if (type.__vapor) {
6907
+ if (isVaporComponent(type)) {
6858
6908
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor);
6859
6909
  } else {
6860
6910
  move(
@@ -6964,7 +7014,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6964
7014
  parentComponent.renderCache[cacheIndex] = void 0;
6965
7015
  }
6966
7016
  if (shapeFlag & 256) {
6967
- if (vnode.type.__vapor) {
7017
+ if (isVaporComponent(vnode.type)) {
6968
7018
  getVaporInterface(parentComponent, vnode).deactivate(
6969
7019
  vnode,
6970
7020
  parentComponent.ctx.getStorageContainer()
@@ -6981,7 +7031,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6981
7031
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
6982
7032
  }
6983
7033
  if (shapeFlag & 6) {
6984
- if (type.__vapor) {
7034
+ if (isVaporComponent(type)) {
6985
7035
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
6986
7036
  return;
6987
7037
  } else {
@@ -7113,7 +7163,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7113
7163
  };
7114
7164
  const getNextHostNode = (vnode) => {
7115
7165
  if (vnode.shapeFlag & 6) {
7116
- if (vnode.type.__vapor) {
7166
+ if (isVaporComponent(vnode.type)) {
7117
7167
  return hostNextSibling(vnode.anchor);
7118
7168
  }
7119
7169
  return getNextHostNode(vnode.component.subTree);
@@ -7303,6 +7353,12 @@ app.use(vaporInteropPlugin)
7303
7353
  }
7304
7354
  return res;
7305
7355
  }
7356
+ function isVaporComponent(type) {
7357
+ if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating && hmrDirtyComponentsMode.has(type)) {
7358
+ return hmrDirtyComponentsMode.get(type);
7359
+ }
7360
+ return type.__vapor;
7361
+ }
7306
7362
  function getInheritedScopeIds(vnode, parentComponent) {
7307
7363
  const inheritedScopeIds = [];
7308
7364
  let currentParent = parentComponent;
@@ -7602,7 +7658,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7602
7658
  m: move,
7603
7659
  um: unmount,
7604
7660
  n: next,
7605
- o: { parentNode, remove }
7661
+ o: { parentNode }
7606
7662
  } = rendererInternals;
7607
7663
  let parentSuspenseId;
7608
7664
  const isSuspensible = isVNodeSuspensible(vnode);
@@ -7777,12 +7833,11 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7777
7833
  next() {
7778
7834
  return suspense.activeBranch && next(suspense.activeBranch);
7779
7835
  },
7780
- registerDep(instance, setupRenderEffect, optimized2) {
7836
+ registerDep(instance, onResolve) {
7781
7837
  const isInPendingSuspense = !!suspense.pendingBranch;
7782
7838
  if (isInPendingSuspense) {
7783
7839
  suspense.deps++;
7784
7840
  }
7785
- const hydratedEl = instance.vnode.el;
7786
7841
  instance.asyncDep.catch((err) => {
7787
7842
  handleError(err, instance, 0);
7788
7843
  }).then((asyncSetupResult) => {
@@ -7790,37 +7845,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7790
7845
  return;
7791
7846
  }
7792
7847
  instance.asyncResolved = true;
7793
- const { vnode: vnode2 } = instance;
7794
- if (!!(process.env.NODE_ENV !== "production")) {
7795
- pushWarningContext(vnode2);
7796
- }
7797
- handleSetupResult(instance, asyncSetupResult, false);
7798
- if (hydratedEl) {
7799
- vnode2.el = hydratedEl;
7800
- }
7801
- const placeholder = !hydratedEl && instance.subTree.el;
7802
- setupRenderEffect(
7803
- instance,
7804
- vnode2,
7805
- // component may have been moved before resolve.
7806
- // if this is not a hydration, instance.subTree will be the comment
7807
- // placeholder.
7808
- parentNode(hydratedEl || instance.subTree.el),
7809
- // anchor will not be used if this is hydration, so only need to
7810
- // consider the comment placeholder case.
7811
- hydratedEl ? null : next(instance.subTree),
7812
- suspense,
7813
- namespace,
7814
- optimized2
7815
- );
7816
- if (placeholder) {
7817
- vnode2.placeholder = null;
7818
- remove(placeholder);
7819
- }
7820
- updateHOCHostEl(instance, vnode2.el);
7821
- if (!!(process.env.NODE_ENV !== "production")) {
7822
- popWarningContext();
7823
- }
7848
+ onResolve(asyncSetupResult);
7824
7849
  if (isInPendingSuspense && --suspense.deps === 0) {
7825
7850
  suspense.resolve();
7826
7851
  }
@@ -9019,7 +9044,7 @@ function isMemoSame(cached, memo) {
9019
9044
  return true;
9020
9045
  }
9021
9046
 
9022
- const version = "3.6.0-alpha.5";
9047
+ const version = "3.6.0-alpha.7";
9023
9048
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
9024
9049
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9025
9050
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -9041,4 +9066,4 @@ const resolveFilter = null;
9041
9066
  const compatUtils = null;
9042
9067
  const DeprecationTypes = null;
9043
9068
 
9044
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, Static, Suspense, Teleport, Text, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, deactivate, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, endMeasure, ensureVaporSlotFallback, expose, flushOnAppMount, getAttributeMismatch, getComponentName, getCurrentInstance, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initFeatureFlags, inject, isAsyncWrapper, isEmitListener, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isRuntimeOnly, isSetEqual, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isVNode, isValidHtmlOrSvgAttribute, leaveCbKey, markAsyncBoundary, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, normalizeRef, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, setBlockTracking, setCurrentInstance, setDevtoolsHook, setRef, setTransitionHooks, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, toClassSet, toHandlers, toStyleMap, transformVNodeArgs, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
9069
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, Static, Suspense, Teleport, Text, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, deactivate, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, endMeasure, ensureVaporSlotFallback, expose, flushOnAppMount, getAttributeMismatch, getComponentName, getCurrentInstance, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initFeatureFlags, inject, isAsyncWrapper, isEmitListener, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isRuntimeOnly, isSetEqual, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isVNode, isValidHtmlOrSvgAttribute, leaveCbKey, markAsyncBoundary, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, normalizeRef, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, setBlockTracking, setCurrentInstance, setDevtoolsHook, setRef, setTransitionHooks, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, toClassSet, toHandlers, toStyleMap, transformVNodeArgs, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.6.0-alpha.5",
3
+ "version": "3.6.0-alpha.7",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.6.0-alpha.5",
50
- "@vue/reactivity": "3.6.0-alpha.5"
49
+ "@vue/reactivity": "3.6.0-alpha.7",
50
+ "@vue/shared": "3.6.0-alpha.7"
51
51
  }
52
52
  }