@vue/compat 3.2.29 → 3.2.30

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.
@@ -280,13 +280,15 @@ var Vue = (function () {
280
280
  * @private
281
281
  */
282
282
  const toDisplayString = (val) => {
283
- return val == null
284
- ? ''
285
- : isArray(val) ||
286
- (isObject(val) &&
287
- (val.toString === objectToString || !isFunction(val.toString)))
288
- ? JSON.stringify(val, replacer, 2)
289
- : String(val);
283
+ return isString(val)
284
+ ? val
285
+ : val == null
286
+ ? ''
287
+ : isArray(val) ||
288
+ (isObject(val) &&
289
+ (val.toString === objectToString || !isFunction(val.toString)))
290
+ ? JSON.stringify(val, replacer, 2)
291
+ : String(val);
290
292
  };
291
293
  const replacer = (_key, val) => {
292
294
  // can't use isRef here since @vue/shared has no deps
@@ -360,6 +362,7 @@ var Vue = (function () {
360
362
  'onVnodeBeforeMount,onVnodeMounted,' +
361
363
  'onVnodeBeforeUpdate,onVnodeUpdated,' +
362
364
  'onVnodeBeforeUnmount,onVnodeUnmounted');
365
+ const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
363
366
  const cacheStringFunction = (fn) => {
364
367
  const cache = Object.create(null);
365
368
  return ((str) => {
@@ -425,7 +428,6 @@ var Vue = (function () {
425
428
  }
426
429
 
427
430
  let activeEffectScope;
428
- const effectScopeStack = [];
429
431
  class EffectScope {
430
432
  constructor(detached = false) {
431
433
  this.active = true;
@@ -440,11 +442,11 @@ var Vue = (function () {
440
442
  run(fn) {
441
443
  if (this.active) {
442
444
  try {
443
- this.on();
445
+ activeEffectScope = this;
444
446
  return fn();
445
447
  }
446
448
  finally {
447
- this.off();
449
+ activeEffectScope = this.parent;
448
450
  }
449
451
  }
450
452
  else {
@@ -452,23 +454,24 @@ var Vue = (function () {
452
454
  }
453
455
  }
454
456
  on() {
455
- if (this.active) {
456
- effectScopeStack.push(this);
457
- activeEffectScope = this;
458
- }
457
+ activeEffectScope = this;
459
458
  }
460
459
  off() {
461
- if (this.active) {
462
- effectScopeStack.pop();
463
- activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
464
- }
460
+ activeEffectScope = this.parent;
465
461
  }
466
462
  stop(fromParent) {
467
463
  if (this.active) {
468
- this.effects.forEach(e => e.stop());
469
- this.cleanups.forEach(cleanup => cleanup());
464
+ let i, l;
465
+ for (i = 0, l = this.effects.length; i < l; i++) {
466
+ this.effects[i].stop();
467
+ }
468
+ for (i = 0, l = this.cleanups.length; i < l; i++) {
469
+ this.cleanups[i]();
470
+ }
470
471
  if (this.scopes) {
471
- this.scopes.forEach(e => e.stop(true));
472
+ for (i = 0, l = this.scopes.length; i < l; i++) {
473
+ this.scopes[i].stop(true);
474
+ }
472
475
  }
473
476
  // nested scope, dereference from parent to avoid memory leaks
474
477
  if (this.parent && !fromParent) {
@@ -486,8 +489,7 @@ var Vue = (function () {
486
489
  function effectScope(detached) {
487
490
  return new EffectScope(detached);
488
491
  }
489
- function recordEffectScope(effect, scope) {
490
- scope = scope || activeEffectScope;
492
+ function recordEffectScope(effect, scope = activeEffectScope) {
491
493
  if (scope && scope.active) {
492
494
  scope.effects.push(effect);
493
495
  }
@@ -550,7 +552,6 @@ var Vue = (function () {
550
552
  * When recursion depth is greater, fall back to using a full cleanup.
551
553
  */
552
554
  const maxMarkerBits = 30;
553
- const effectStack = [];
554
555
  let activeEffect;
555
556
  const ITERATE_KEY = Symbol('iterate' );
556
557
  const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
@@ -560,35 +561,42 @@ var Vue = (function () {
560
561
  this.scheduler = scheduler;
561
562
  this.active = true;
562
563
  this.deps = [];
564
+ this.parent = undefined;
563
565
  recordEffectScope(this, scope);
564
566
  }
565
567
  run() {
566
568
  if (!this.active) {
567
569
  return this.fn();
568
570
  }
569
- if (!effectStack.length || !effectStack.includes(this)) {
570
- try {
571
- effectStack.push((activeEffect = this));
572
- enableTracking();
573
- trackOpBit = 1 << ++effectTrackDepth;
574
- if (effectTrackDepth <= maxMarkerBits) {
575
- initDepMarkers(this);
576
- }
577
- else {
578
- cleanupEffect(this);
579
- }
580
- return this.fn();
571
+ let parent = activeEffect;
572
+ let lastShouldTrack = shouldTrack;
573
+ while (parent) {
574
+ if (parent === this) {
575
+ return;
581
576
  }
582
- finally {
583
- if (effectTrackDepth <= maxMarkerBits) {
584
- finalizeDepMarkers(this);
585
- }
586
- trackOpBit = 1 << --effectTrackDepth;
587
- resetTracking();
588
- effectStack.pop();
589
- const n = effectStack.length;
590
- activeEffect = n > 0 ? effectStack[n - 1] : undefined;
577
+ parent = parent.parent;
578
+ }
579
+ try {
580
+ this.parent = activeEffect;
581
+ activeEffect = this;
582
+ shouldTrack = true;
583
+ trackOpBit = 1 << ++effectTrackDepth;
584
+ if (effectTrackDepth <= maxMarkerBits) {
585
+ initDepMarkers(this);
591
586
  }
587
+ else {
588
+ cleanupEffect(this);
589
+ }
590
+ return this.fn();
591
+ }
592
+ finally {
593
+ if (effectTrackDepth <= maxMarkerBits) {
594
+ finalizeDepMarkers(this);
595
+ }
596
+ trackOpBit = 1 << --effectTrackDepth;
597
+ activeEffect = this.parent;
598
+ shouldTrack = lastShouldTrack;
599
+ this.parent = undefined;
592
600
  }
593
601
  }
594
602
  stop() {
@@ -636,32 +644,24 @@ var Vue = (function () {
636
644
  trackStack.push(shouldTrack);
637
645
  shouldTrack = false;
638
646
  }
639
- function enableTracking() {
640
- trackStack.push(shouldTrack);
641
- shouldTrack = true;
642
- }
643
647
  function resetTracking() {
644
648
  const last = trackStack.pop();
645
649
  shouldTrack = last === undefined ? true : last;
646
650
  }
647
651
  function track(target, type, key) {
648
- if (!isTracking()) {
649
- return;
650
- }
651
- let depsMap = targetMap.get(target);
652
- if (!depsMap) {
653
- targetMap.set(target, (depsMap = new Map()));
654
- }
655
- let dep = depsMap.get(key);
656
- if (!dep) {
657
- depsMap.set(key, (dep = createDep()));
652
+ if (shouldTrack && activeEffect) {
653
+ let depsMap = targetMap.get(target);
654
+ if (!depsMap) {
655
+ targetMap.set(target, (depsMap = new Map()));
656
+ }
657
+ let dep = depsMap.get(key);
658
+ if (!dep) {
659
+ depsMap.set(key, (dep = createDep()));
660
+ }
661
+ const eventInfo = { effect: activeEffect, target, type, key }
662
+ ;
663
+ trackEffects(dep, eventInfo);
658
664
  }
659
- const eventInfo = { effect: activeEffect, target, type, key }
660
- ;
661
- trackEffects(dep, eventInfo);
662
- }
663
- function isTracking() {
664
- return shouldTrack && activeEffect !== undefined;
665
665
  }
666
666
  function trackEffects(dep, debuggerEventExtraInfo) {
667
667
  let shouldTrack = false;
@@ -1346,13 +1346,10 @@ var Vue = (function () {
1346
1346
  const toReadonly = (value) => isObject(value) ? readonly(value) : value;
1347
1347
 
1348
1348
  function trackRefValue(ref) {
1349
- if (isTracking()) {
1349
+ if (shouldTrack && activeEffect) {
1350
1350
  ref = toRaw(ref);
1351
- if (!ref.dep) {
1352
- ref.dep = createDep();
1353
- }
1354
1351
  {
1355
- trackEffects(ref.dep, {
1352
+ trackEffects(ref.dep || (ref.dep = createDep()), {
1356
1353
  target: ref,
1357
1354
  type: "get" /* GET */,
1358
1355
  key: 'value'
@@ -1374,7 +1371,7 @@ var Vue = (function () {
1374
1371
  }
1375
1372
  }
1376
1373
  function isRef(r) {
1377
- return Boolean(r && r.__v_isRef === true);
1374
+ return !!(r && r.__v_isRef === true);
1378
1375
  }
1379
1376
  function ref(value) {
1380
1377
  return createRef(value, false);
@@ -2185,23 +2182,23 @@ var Vue = (function () {
2185
2182
  ["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
2186
2183
  message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
2187
2184
  `option have been removed. Use createApp(RootComponent).mount() instead.`,
2188
- link: `https://v3.vuejs.org/guide/migration/global-api.html#mounting-app-instance`
2185
+ link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
2189
2186
  },
2190
2187
  ["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
2191
2188
  message: `Vue detected directives on the mount container. ` +
2192
2189
  `In Vue 3, the container is no longer considered part of the template ` +
2193
2190
  `and will not be processed/replaced.`,
2194
- link: `https://v3.vuejs.org/guide/migration/mount-changes.html`
2191
+ link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
2195
2192
  },
2196
2193
  ["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
2197
2194
  message: `Vue.extend() has been removed in Vue 3. ` +
2198
2195
  `Use defineComponent() instead.`,
2199
- link: `https://v3.vuejs.org/api/global-api.html#definecomponent`
2196
+ link: `https://vuejs.org/api/general.html#definecomponent`
2200
2197
  },
2201
2198
  ["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
2202
2199
  message: `Vue.prototype is no longer available in Vue 3. ` +
2203
2200
  `Use app.config.globalProperties instead.`,
2204
- link: `https://v3.vuejs.org/guide/migration/global-api.html#vue-prototype-replaced-by-config-globalproperties`
2201
+ link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
2205
2202
  },
2206
2203
  ["GLOBAL_SET" /* GLOBAL_SET */]: {
2207
2204
  message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
@@ -2214,7 +2211,7 @@ var Vue = (function () {
2214
2211
  ["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
2215
2212
  message: `Vue.observable() has been removed. ` +
2216
2213
  `Use \`import { reactive } from "vue"\` from Composition API instead.`,
2217
- link: `https://v3.vuejs.org/api/basic-reactivity.html`
2214
+ link: `https://vuejs.org/api/reactivity-core.html#reactive`
2218
2215
  },
2219
2216
  ["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
2220
2217
  message: `Vue.util has been removed. Please refactor to avoid its usage ` +
@@ -2233,11 +2230,11 @@ var Vue = (function () {
2233
2230
  ["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
2234
2231
  message: `config.keyCodes has been removed. ` +
2235
2232
  `In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
2236
- link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html`
2233
+ link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
2237
2234
  },
2238
2235
  ["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
2239
2236
  message: `config.productionTip has been removed.`,
2240
- link: `https://v3.vuejs.org/guide/migration/global-api.html#config-productiontip-removed`
2237
+ link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
2241
2238
  },
2242
2239
  ["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
2243
2240
  message: () => {
@@ -2250,7 +2247,7 @@ var Vue = (function () {
2250
2247
  }
2251
2248
  return msg;
2252
2249
  },
2253
- link: `https://v3.vuejs.org/guide/migration/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
2250
+ link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
2254
2251
  },
2255
2252
  ["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
2256
2253
  // this warning is only relevant in the full build when using runtime
@@ -2273,12 +2270,12 @@ var Vue = (function () {
2273
2270
  },
2274
2271
  ["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
2275
2272
  message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
2276
- link: `https://v3.vuejs.org/api/application-api.html#unmount`
2273
+ link: `https://vuejs.org/api/application.html#app-unmount`
2277
2274
  },
2278
2275
  ["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
2279
2276
  message: `vm.$on/$once/$off() have been removed. ` +
2280
2277
  `Use an external event emitter library instead.`,
2281
- link: `https://v3.vuejs.org/guide/migration/events-api.html`
2278
+ link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
2282
2279
  },
2283
2280
  ["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
2284
2281
  message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
@@ -2286,23 +2283,23 @@ var Vue = (function () {
2286
2283
  `should be changed to @vnode-${event.slice(5)}. ` +
2287
2284
  `From JavaScript, use Composition API to dynamically register lifecycle ` +
2288
2285
  `hooks.`,
2289
- link: `https://v3.vuejs.org/guide/migration/vnode-lifecycle-events.html`
2286
+ link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
2290
2287
  },
2291
2288
  ["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
2292
2289
  message: `vm.$children has been removed. Consider refactoring your logic ` +
2293
2290
  `to avoid relying on direct access to child components.`,
2294
- link: `https://v3.vuejs.org/guide/migration/children.html`
2291
+ link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
2295
2292
  },
2296
2293
  ["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
2297
2294
  message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
2298
2295
  `included in vm.$attrs and it is no longer necessary to separately use ` +
2299
2296
  `v-on="$listeners" if you are already using v-bind="$attrs". ` +
2300
2297
  `(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
2301
- link: `https://v3.vuejs.org/guide/migration/listeners-removed.html`
2298
+ link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
2302
2299
  },
2303
2300
  ["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
2304
2301
  message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
2305
- link: `https://v3.vuejs.org/guide/migration/slots-unification.html`
2302
+ link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
2306
2303
  },
2307
2304
  ["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
2308
2305
  message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
@@ -2313,17 +2310,17 @@ var Vue = (function () {
2313
2310
  `If you are binding $attrs to a non-root element and expecting ` +
2314
2311
  `class/style to fallthrough on root, you will need to now manually bind ` +
2315
2312
  `them on root via :class="$attrs.class".`,
2316
- link: `https://v3.vuejs.org/guide/migration/attrs-includes-class-style.html`
2313
+ link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
2317
2314
  },
2318
2315
  ["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
2319
2316
  message: `The "data" option can no longer be a plain object. ` +
2320
2317
  `Always use a function.`,
2321
- link: `https://v3.vuejs.org/guide/migration/data-option.html`
2318
+ link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
2322
2319
  },
2323
2320
  ["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
2324
2321
  message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
2325
2322
  `In Vue 3, data keys are merged shallowly and will override one another.`,
2326
- link: `https://v3.vuejs.org/guide/migration/data-option.html#mixin-merge-behavior-change`
2323
+ link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
2327
2324
  },
2328
2325
  ["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
2329
2326
  message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
@@ -2337,23 +2334,23 @@ var Vue = (function () {
2337
2334
  `If current usage is intended, you can disable the compat behavior and ` +
2338
2335
  `suppress this warning with:` +
2339
2336
  `\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
2340
- link: `https://v3.vuejs.org/guide/migration/watch.html`
2337
+ link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
2341
2338
  },
2342
2339
  ["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
2343
2340
  message: (key) => `props default value function no longer has access to "this". The compat ` +
2344
2341
  `build only offers access to this.$options.` +
2345
2342
  `(found in prop "${key}")`,
2346
- link: `https://v3.vuejs.org/guide/migration/props-default-this.html`
2343
+ link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
2347
2344
  },
2348
2345
  ["CUSTOM_DIR" /* CUSTOM_DIR */]: {
2349
2346
  message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
2350
2347
  `Use "${newHook}" instead.`,
2351
- link: `https://v3.vuejs.org/guide/migration/custom-directives.html`
2348
+ link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
2352
2349
  },
2353
2350
  ["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
2354
2351
  message: `Using keyCode as v-on modifier is no longer supported. ` +
2355
2352
  `Use kebab-case key name modifiers instead.`,
2356
- link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html`
2353
+ link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
2357
2354
  },
2358
2355
  ["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
2359
2356
  message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
@@ -2361,7 +2358,7 @@ var Vue = (function () {
2361
2358
  `use \`null\` or \`undefined\` instead. If the usage is intended, ` +
2362
2359
  `you can disable the compat behavior and suppress this warning with:` +
2363
2360
  `\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
2364
- link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html`
2361
+ link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
2365
2362
  },
2366
2363
  ["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
2367
2364
  message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
@@ -2370,7 +2367,7 @@ var Vue = (function () {
2370
2367
  `If the usage is intended, ` +
2371
2368
  `you can disable the compat behavior and suppress this warning with:` +
2372
2369
  `\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
2373
- link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html`
2370
+ link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
2374
2371
  },
2375
2372
  ["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
2376
2373
  message: `` // this feature cannot be runtime-detected
@@ -2381,7 +2378,7 @@ var Vue = (function () {
2381
2378
  `for styling, you can disable the compat behavior and suppress this ` +
2382
2379
  `warning with:` +
2383
2380
  `\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
2384
- link: `https://v3.vuejs.org/guide/migration/transition-group.html`
2381
+ link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
2385
2382
  },
2386
2383
  ["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
2387
2384
  message: (comp) => {
@@ -2394,7 +2391,7 @@ var Vue = (function () {
2394
2391
  `warning with:` +
2395
2392
  `\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
2396
2393
  },
2397
- link: `https://v3.vuejs.org/guide/migration/async-components.html`
2394
+ link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
2398
2395
  },
2399
2396
  ["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
2400
2397
  message: (comp) => {
@@ -2405,7 +2402,7 @@ var Vue = (function () {
2405
2402
  `components usage have been migrated and its compat behavior has ` +
2406
2403
  `been disabled.`);
2407
2404
  },
2408
- link: `https://v3.vuejs.org/guide/migration/functional-components.html`
2405
+ link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
2409
2406
  },
2410
2407
  ["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
2411
2408
  message: (comp) => {
@@ -2422,20 +2419,20 @@ var Vue = (function () {
2422
2419
  `to work with v-model should now use the "modelValue" prop and emit the ` +
2423
2420
  `"update:modelValue" event. You can update the usage and then ${configMsg}`);
2424
2421
  },
2425
- link: `https://v3.vuejs.org/guide/migration/v-model.html`
2422
+ link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
2426
2423
  },
2427
2424
  ["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
2428
2425
  message: `Vue 3's render function API has changed. ` +
2429
2426
  `You can opt-in to the new API with:` +
2430
2427
  `\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
2431
2428
  `\n (This can also be done per-component via the "compatConfig" option.)`,
2432
- link: `https://v3.vuejs.org/guide/migration/render-function-api.html`
2429
+ link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
2433
2430
  },
2434
2431
  ["FILTERS" /* FILTERS */]: {
2435
2432
  message: `filters have been removed in Vue 3. ` +
2436
2433
  `The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
2437
2434
  `Use method calls or computed properties instead.`,
2438
- link: `https://v3.vuejs.org/guide/migration/filters.html`
2435
+ link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
2439
2436
  },
2440
2437
  ["PRIVATE_APIS" /* PRIVATE_APIS */]: {
2441
2438
  message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
@@ -2503,7 +2500,7 @@ var Vue = (function () {
2503
2500
  warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
2504
2501
  `running a runtime-only build of Vue. This deprecation should be ` +
2505
2502
  `configured via compiler options in your build setup instead.\n` +
2506
- `Details: https://v3.vuejs.org/guide/migration/migration-build.html`);
2503
+ `Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
2507
2504
  }
2508
2505
  }
2509
2506
  else {
@@ -5904,7 +5901,6 @@ var Vue = (function () {
5904
5901
  [bar, this.y]
5905
5902
  ])
5906
5903
  */
5907
- const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
5908
5904
  function validateDirectiveName(name) {
5909
5905
  if (isBuiltInDirective(name)) {
5910
5906
  warn$1('Do not use built-in directive ids as custom directive id: ' + name);
@@ -6039,7 +6035,7 @@ var Vue = (function () {
6039
6035
  return vm;
6040
6036
  }
6041
6037
  }
6042
- Vue.version = `2.6.14-compat:${"3.2.29"}`;
6038
+ Vue.version = `2.6.14-compat:${"3.2.30"}`;
6043
6039
  Vue.config = singletonApp.config;
6044
6040
  Vue.use = (p, ...options) => {
6045
6041
  if (p && isFunction(p.install)) {
@@ -10938,7 +10934,7 @@ var Vue = (function () {
10938
10934
  }
10939
10935
 
10940
10936
  // Core API ------------------------------------------------------------------
10941
- const version = "3.2.29";
10937
+ const version = "3.2.30";
10942
10938
  /**
10943
10939
  * SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
10944
10940
  * @internal
@@ -13510,13 +13506,13 @@ var Vue = (function () {
13510
13506
  message: `Platform-native elements with "is" prop will no longer be ` +
13511
13507
  `treated as components in Vue 3 unless the "is" value is explicitly ` +
13512
13508
  `prefixed with "vue:".`,
13513
- link: `https://v3.vuejs.org/guide/migration/custom-elements-interop.html`
13509
+ link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
13514
13510
  },
13515
13511
  ["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
13516
13512
  message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
13517
13513
  `argument instead. \`v-bind:${key}.sync\` should be changed to ` +
13518
13514
  `\`v-model:${key}\`.`,
13519
- link: `https://v3.vuejs.org/guide/migration/v-model.html`
13515
+ link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
13520
13516
  },
13521
13517
  ["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
13522
13518
  message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
@@ -13528,11 +13524,11 @@ var Vue = (function () {
13528
13524
  `that appears before v-bind in the case of conflict. ` +
13529
13525
  `To retain 2.x behavior, move v-bind to make it the first attribute. ` +
13530
13526
  `You can also suppress this warning if the usage is intended.`,
13531
- link: `https://v3.vuejs.org/guide/migration/v-bind.html`
13527
+ link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
13532
13528
  },
13533
13529
  ["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
13534
13530
  message: `.native modifier for v-on has been removed as is no longer necessary.`,
13535
- link: `https://v3.vuejs.org/guide/migration/v-on-native-modifier-removed.html`
13531
+ link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
13536
13532
  },
13537
13533
  ["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
13538
13534
  message: `v-if / v-for precedence when used on the same element has changed ` +
@@ -13540,7 +13536,7 @@ var Vue = (function () {
13540
13536
  `access to v-for scope variables. It is best to avoid the ambiguity ` +
13541
13537
  `with <template> tags or use a computed property that filters v-for ` +
13542
13538
  `data source.`,
13543
- link: `https://v3.vuejs.org/guide/migration/v-if-v-for.html`
13539
+ link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
13544
13540
  },
13545
13541
  ["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
13546
13542
  message: `<template> with no special directives will render as a native template ` +
@@ -13548,13 +13544,13 @@ var Vue = (function () {
13548
13544
  },
13549
13545
  ["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
13550
13546
  message: `"inline-template" has been removed in Vue 3.`,
13551
- link: `https://v3.vuejs.org/guide/migration/inline-template-attribute.html`
13547
+ link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
13552
13548
  },
13553
13549
  ["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
13554
13550
  message: `filters have been removed in Vue 3. ` +
13555
13551
  `The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
13556
13552
  `Use method calls or computed properties instead.`,
13557
- link: `https://v3.vuejs.org/guide/migration/filters.html`
13553
+ link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
13558
13554
  }
13559
13555
  };
13560
13556
  function getCompatValue(key, context) {
@@ -16662,7 +16658,7 @@ var Vue = (function () {
16662
16658
  }
16663
16659
  }
16664
16660
  }
16665
- else {
16661
+ else if (!isBuiltInDirective(name)) {
16666
16662
  // no built-in transform, this is a user custom directive.
16667
16663
  runtimeDirectives.push(prop);
16668
16664
  // custom dirs may use beforeUpdate so they need to force blocks