@vue/compat 3.2.27 → 3.2.28

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.
@@ -132,7 +132,15 @@ const SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,col
132
132
  'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +
133
133
  'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +
134
134
  'text,textPath,title,tspan,unknown,use,view';
135
+ /**
136
+ * Compiler only.
137
+ * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.
138
+ */
135
139
  const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);
140
+ /**
141
+ * Compiler only.
142
+ * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.
143
+ */
136
144
  const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);
137
145
 
138
146
  function looseCompareArrays(a, b) {
@@ -477,7 +485,7 @@ class ReactiveEffect {
477
485
  if (!this.active) {
478
486
  return this.fn();
479
487
  }
480
- if (!effectStack.includes(this)) {
488
+ if (!effectStack.length || !effectStack.includes(this)) {
481
489
  try {
482
490
  effectStack.push((activeEffect = this));
483
491
  enableTracking();
@@ -741,6 +749,9 @@ function createGetter(isReadonly = false, shallow = false) {
741
749
  else if (key === "__v_isReadonly" /* IS_READONLY */) {
742
750
  return isReadonly;
743
751
  }
752
+ else if (key === "__v_isShallow" /* IS_SHALLOW */) {
753
+ return shallow;
754
+ }
744
755
  else if (key === "__v_raw" /* RAW */ &&
745
756
  receiver ===
746
757
  (isReadonly
@@ -785,9 +796,14 @@ const shallowSet = /*#__PURE__*/ createSetter(true);
785
796
  function createSetter(shallow = false) {
786
797
  return function set(target, key, value, receiver) {
787
798
  let oldValue = target[key];
799
+ if (isReadonly(oldValue) && isRef(oldValue)) {
800
+ return false;
801
+ }
788
802
  if (!shallow && !isReadonly(value)) {
789
- value = toRaw(value);
790
- oldValue = toRaw(oldValue);
803
+ if (!isShallow(value)) {
804
+ value = toRaw(value);
805
+ oldValue = toRaw(oldValue);
806
+ }
791
807
  if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
792
808
  oldValue.value = value;
793
809
  return true;
@@ -1175,7 +1191,7 @@ function getTargetType(value) {
1175
1191
  }
1176
1192
  function reactive(target) {
1177
1193
  // if trying to observe a readonly proxy, return the readonly version.
1178
- if (target && target["__v_isReadonly" /* IS_READONLY */]) {
1194
+ if (isReadonly(target)) {
1179
1195
  return target;
1180
1196
  }
1181
1197
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1240,6 +1256,9 @@ function isReactive(value) {
1240
1256
  function isReadonly(value) {
1241
1257
  return !!(value && value["__v_isReadonly" /* IS_READONLY */]);
1242
1258
  }
1259
+ function isShallow(value) {
1260
+ return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
1261
+ }
1243
1262
  function isProxy(value) {
1244
1263
  return isReactive(value) || isReadonly(value);
1245
1264
  }
@@ -1304,22 +1323,22 @@ function createRef(rawValue, shallow) {
1304
1323
  return new RefImpl(rawValue, shallow);
1305
1324
  }
1306
1325
  class RefImpl {
1307
- constructor(value, _shallow) {
1308
- this._shallow = _shallow;
1326
+ constructor(value, __v_isShallow) {
1327
+ this.__v_isShallow = __v_isShallow;
1309
1328
  this.dep = undefined;
1310
1329
  this.__v_isRef = true;
1311
- this._rawValue = _shallow ? value : toRaw(value);
1312
- this._value = _shallow ? value : toReactive(value);
1330
+ this._rawValue = __v_isShallow ? value : toRaw(value);
1331
+ this._value = __v_isShallow ? value : toReactive(value);
1313
1332
  }
1314
1333
  get value() {
1315
1334
  trackRefValue(this);
1316
1335
  return this._value;
1317
1336
  }
1318
1337
  set value(newVal) {
1319
- newVal = this._shallow ? newVal : toRaw(newVal);
1338
+ newVal = this.__v_isShallow ? newVal : toRaw(newVal);
1320
1339
  if (hasChanged(newVal, this._rawValue)) {
1321
1340
  this._rawValue = newVal;
1322
- this._value = this._shallow ? newVal : toReactive(newVal);
1341
+ this._value = this.__v_isShallow ? newVal : toReactive(newVal);
1323
1342
  triggerRefValue(this, newVal);
1324
1343
  }
1325
1344
  }
@@ -1402,22 +1421,23 @@ class ComputedRefImpl {
1402
1421
  constructor(getter, _setter, isReadonly, isSSR) {
1403
1422
  this._setter = _setter;
1404
1423
  this.dep = undefined;
1405
- this._dirty = true;
1406
1424
  this.__v_isRef = true;
1425
+ this._dirty = true;
1407
1426
  this.effect = new ReactiveEffect(getter, () => {
1408
1427
  if (!this._dirty) {
1409
1428
  this._dirty = true;
1410
1429
  triggerRefValue(this);
1411
1430
  }
1412
1431
  });
1413
- this.effect.active = !isSSR;
1432
+ this.effect.computed = this;
1433
+ this.effect.active = this._cacheable = !isSSR;
1414
1434
  this["__v_isReadonly" /* IS_READONLY */] = isReadonly;
1415
1435
  }
1416
1436
  get value() {
1417
1437
  // the computed ref may get wrapped by other proxies e.g. readonly() #3376
1418
1438
  const self = toRaw(this);
1419
1439
  trackRefValue(self);
1420
- if (self._dirty) {
1440
+ if (self._dirty || !self._cacheable) {
1421
1441
  self._dirty = false;
1422
1442
  self._value = self.effect.run();
1423
1443
  }
@@ -1595,7 +1615,7 @@ const ErrorTypeStrings = {
1595
1615
  [12 /* FUNCTION_REF */]: 'ref function',
1596
1616
  [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',
1597
1617
  [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
1598
- 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'
1618
+ 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'
1599
1619
  };
1600
1620
  function callWithErrorHandling(fn, instance, type, args) {
1601
1621
  let res;
@@ -2150,7 +2170,7 @@ const deprecationData = {
2150
2170
  ["CONFIG_DEVTOOLS" /* CONFIG_DEVTOOLS */]: {
2151
2171
  message: `config.devtools has been removed. To enable devtools for ` +
2152
2172
  `production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,
2153
- link: `https://github.com/vuejs/vue-next/tree/master/packages/vue#bundler-build-feature-flags`
2173
+ link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`
2154
2174
  },
2155
2175
  ["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
2156
2176
  message: `config.keyCodes has been removed. ` +
@@ -2337,7 +2357,7 @@ const deprecationData = {
2337
2357
  (isArray(comp.props)
2338
2358
  ? comp.props.includes('modelValue')
2339
2359
  : hasOwn(comp.props, 'modelValue'))) {
2340
- return (`Component delcares "modelValue" prop, which is Vue 3 usage, but ` +
2360
+ return (`Component declares "modelValue" prop, which is Vue 3 usage, but ` +
2341
2361
  `is running under Vue 2 compat v-model behavior. You can ${configMsg}`);
2342
2362
  }
2343
2363
  return (`v-model usage on component has changed in Vue 3. Component that expects ` +
@@ -2570,6 +2590,7 @@ const compatModelEventPrefix = `onModelCompat:`;
2570
2590
  const warnedTypes = new WeakSet();
2571
2591
  function convertLegacyVModelProps(vnode) {
2572
2592
  const { type, shapeFlag, props, dynamicProps } = vnode;
2593
+ const comp = type;
2573
2594
  if (shapeFlag & 6 /* COMPONENT */ && props && 'modelValue' in props) {
2574
2595
  if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */,
2575
2596
  // this is a special case where we want to use the vnode component's
@@ -2578,16 +2599,18 @@ function convertLegacyVModelProps(vnode) {
2578
2599
  { type })) {
2579
2600
  return;
2580
2601
  }
2581
- if ((process.env.NODE_ENV !== 'production') && !warnedTypes.has(type)) {
2602
+ if ((process.env.NODE_ENV !== 'production') && !warnedTypes.has(comp)) {
2582
2603
  pushWarningContext(vnode);
2583
- warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type }, type);
2604
+ warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type }, comp);
2584
2605
  popWarningContext();
2585
- warnedTypes.add(type);
2606
+ warnedTypes.add(comp);
2586
2607
  }
2587
2608
  // v3 compiled model code -> v2 compat props
2588
2609
  // modelValue -> value
2589
2610
  // onUpdate:modelValue -> onModelCompat:input
2590
- const { prop = 'value', event = 'input' } = type.model || {};
2611
+ const model = comp.model || {};
2612
+ applyModelFromMixins(model, comp.mixins);
2613
+ const { prop = 'value', event = 'input' } = model;
2591
2614
  if (prop !== 'modelValue') {
2592
2615
  props[prop] = props.modelValue;
2593
2616
  delete props.modelValue;
@@ -2600,6 +2623,16 @@ function convertLegacyVModelProps(vnode) {
2600
2623
  delete props['onUpdate:modelValue'];
2601
2624
  }
2602
2625
  }
2626
+ function applyModelFromMixins(model, mixins) {
2627
+ if (mixins) {
2628
+ mixins.forEach(m => {
2629
+ if (m.model)
2630
+ extend(model, m.model);
2631
+ if (m.mixins)
2632
+ applyModelFromMixins(model, m.mixins);
2633
+ });
2634
+ }
2635
+ }
2603
2636
  function compatModelEmit(instance, event, args) {
2604
2637
  if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, instance)) {
2605
2638
  return;
@@ -3603,7 +3636,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
3603
3636
  if (instance) {
3604
3637
  // #2400
3605
3638
  // to support `app.use` plugins,
3606
- // fallback to appContext's `provides` if the intance is at root
3639
+ // fallback to appContext's `provides` if the instance is at root
3607
3640
  const provides = instance.parent == null
3608
3641
  ? instance.vnode.appContext && instance.vnode.appContext.provides
3609
3642
  : instance.parent.provides;
@@ -3671,7 +3704,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
3671
3704
  let isMultiSource = false;
3672
3705
  if (isRef(source)) {
3673
3706
  getter = () => source.value;
3674
- forceTrigger = !!source._shallow;
3707
+ forceTrigger = isShallow(source);
3675
3708
  }
3676
3709
  else if (isReactive(source)) {
3677
3710
  getter = () => source;
@@ -4583,7 +4616,7 @@ function matches(pattern, name) {
4583
4616
  return pattern.some((p) => matches(p, name));
4584
4617
  }
4585
4618
  else if (isString(pattern)) {
4586
- return pattern.split(',').indexOf(name) > -1;
4619
+ return pattern.split(',').includes(name);
4587
4620
  }
4588
4621
  else if (pattern.test) {
4589
4622
  return pattern.test(name);
@@ -4855,7 +4888,7 @@ function applyOptions(instance) {
4855
4888
  warn$1(`Write operation failed: computed property "${key}" is readonly.`);
4856
4889
  }
4857
4890
  : NOOP;
4858
- const c = computed({
4891
+ const c = computed$1({
4859
4892
  get,
4860
4893
  set
4861
4894
  });
@@ -5339,7 +5372,9 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
5339
5372
  // attrs point to the same object so it should already have been updated.
5340
5373
  if (attrs !== rawCurrentProps) {
5341
5374
  for (const key in attrs) {
5342
- if (!rawProps || !hasOwn(rawProps, key)) {
5375
+ if (!rawProps ||
5376
+ (!hasOwn(rawProps, key) &&
5377
+ (!hasOwn(rawProps, key + 'Native')))) {
5343
5378
  delete attrs[key];
5344
5379
  hasAttrsChanged = true;
5345
5380
  }
@@ -5979,7 +6014,7 @@ function createCompatVue(createApp, createSingletonApp) {
5979
6014
  return vm;
5980
6015
  }
5981
6016
  }
5982
- Vue.version = "3.2.27";
6017
+ Vue.version = `2.6.14-compat:${"3.2.28"}`;
5983
6018
  Vue.config = singletonApp.config;
5984
6019
  Vue.use = (p, ...options) => {
5985
6020
  if (p && isFunction(p.install)) {
@@ -6977,6 +7012,7 @@ function createHydrationFunctions(rendererInternals) {
6977
7012
  return [hydrate, hydrateNode];
6978
7013
  }
6979
7014
 
7015
+ /* eslint-disable no-restricted-globals */
6980
7016
  let supported;
6981
7017
  let perf;
6982
7018
  function startMeasure(instance, type) {
@@ -7004,7 +7040,6 @@ function isSupported() {
7004
7040
  if (supported !== undefined) {
7005
7041
  return supported;
7006
7042
  }
7007
- /* eslint-disable no-restricted-globals */
7008
7043
  if (typeof window !== 'undefined' && window.performance) {
7009
7044
  supported = true;
7010
7045
  perf = window.performance;
@@ -7012,7 +7047,6 @@ function isSupported() {
7012
7047
  else {
7013
7048
  supported = false;
7014
7049
  }
7015
- /* eslint-enable no-restricted-globals */
7016
7050
  return supported;
7017
7051
  }
7018
7052
 
@@ -9305,7 +9339,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
9305
9339
  shapeFlag: vnode.shapeFlag,
9306
9340
  // if the vnode is cloned with extra props, we can no longer assume its
9307
9341
  // existing patch flag to be reliable and need to add the FULL_PROPS flag.
9308
- // note: perserve flag for fragments since they use the flag for children
9342
+ // note: preserve flag for fragments since they use the flag for children
9309
9343
  // fast paths only.
9310
9344
  patchFlag: extraProps && vnode.type !== Fragment
9311
9345
  ? patchFlag === -1 // hoisted node
@@ -9470,7 +9504,8 @@ function mergeProps(...args) {
9470
9504
  else if (isOn(key)) {
9471
9505
  const existing = ret[key];
9472
9506
  const incoming = toMerge[key];
9473
- if (existing !== incoming &&
9507
+ if (incoming &&
9508
+ existing !== incoming &&
9474
9509
  !(isArray(existing) && existing.includes(incoming))) {
9475
9510
  ret[key] = existing
9476
9511
  ? [].concat(existing, incoming)
@@ -9746,7 +9781,7 @@ function legacyCheckKeyCodes(instance, eventKeyCode, key, builtInKeyCode, eventK
9746
9781
  }
9747
9782
  function isKeyNotMatch(expect, actual) {
9748
9783
  if (isArray(expect)) {
9749
- return expect.indexOf(actual) === -1;
9784
+ return !expect.includes(actual);
9750
9785
  }
9751
9786
  else {
9752
9787
  return expect !== actual;
@@ -9825,7 +9860,7 @@ function installCompatInstanceProperties(map) {
9825
9860
  extend(map, {
9826
9861
  // needed by many libs / render fns
9827
9862
  $vnode: i => i.vnode,
9828
- // inject addtional properties into $options for compat
9863
+ // inject additional properties into $options for compat
9829
9864
  // e.g. vuex needs this.$options.parent
9830
9865
  $options: i => {
9831
9866
  const res = extend({}, resolveMergedOptions(i));
@@ -10581,7 +10616,7 @@ function defineEmits() {
10581
10616
  * instance properties when it is accessed by a parent component via template
10582
10617
  * refs.
10583
10618
  *
10584
- * `<script setup>` components are closed by default - i.e. varaibles inside
10619
+ * `<script setup>` components are closed by default - i.e. variables inside
10585
10620
  * the `<script setup>` scope is not exposed to parent unless explicitly exposed
10586
10621
  * via `defineExpose`.
10587
10622
  *
@@ -10784,7 +10819,7 @@ function initCustomFormatter() {
10784
10819
  return [
10785
10820
  'div',
10786
10821
  {},
10787
- ['span', vueStyle, 'Reactive'],
10822
+ ['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],
10788
10823
  '<',
10789
10824
  formatValue(obj),
10790
10825
  `>${isReadonly(obj) ? ` (readonly)` : ``}`
@@ -10794,7 +10829,7 @@ function initCustomFormatter() {
10794
10829
  return [
10795
10830
  'div',
10796
10831
  {},
10797
- ['span', vueStyle, 'Readonly'],
10832
+ ['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],
10798
10833
  '<',
10799
10834
  formatValue(obj),
10800
10835
  '>'
@@ -10923,7 +10958,7 @@ function initCustomFormatter() {
10923
10958
  }
10924
10959
  }
10925
10960
  function genRefFlag(v) {
10926
- if (v._shallow) {
10961
+ if (isShallow(v)) {
10927
10962
  return `ShallowRef`;
10928
10963
  }
10929
10964
  if (v.effect) {
@@ -10967,7 +11002,7 @@ function isMemoSame(cached, memo) {
10967
11002
  }
10968
11003
 
10969
11004
  // Core API ------------------------------------------------------------------
10970
- const version = "3.2.27";
11005
+ const version = "3.2.28";
10971
11006
  const _ssrUtils = {
10972
11007
  createComponentInstance,
10973
11008
  setupComponent,
@@ -11407,7 +11442,7 @@ function patchStopImmediatePropagation(e, value) {
11407
11442
  originalStop.call(e);
11408
11443
  e._stopped = true;
11409
11444
  };
11410
- return value.map(fn => (e) => !e._stopped && fn(e));
11445
+ return value.map(fn => (e) => !e._stopped && fn && fn(e));
11411
11446
  }
11412
11447
  else {
11413
11448
  return value;
@@ -12828,6 +12863,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
12828
12863
  isProxy: isProxy,
12829
12864
  isReactive: isReactive,
12830
12865
  isReadonly: isReadonly,
12866
+ isShallow: isShallow,
12831
12867
  customRef: customRef,
12832
12868
  triggerRef: triggerRef,
12833
12869
  shallowRef: shallowRef,
@@ -12988,4 +13024,4 @@ Vue.compile = (() => {
12988
13024
  const { configureCompat: configureCompat$1 } = Vue;
12989
13025
 
12990
13026
  export default Vue;
12991
- export { BaseTransition, Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed$1 as computed, configureCompat$1 as configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineProps, defineSSRCustomElement, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isVNode, markRaw, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter$1 as resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn$1 as warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
13027
+ export { BaseTransition, Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed$1 as computed, configureCompat$1 as configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineProps, defineSSRCustomElement, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter$1 as resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn$1 as warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };