Full Code of vuejs/core for AI

main d61d8031f0d5 cached
697 files
5.1 MB
1.4M tokens
3755 symbols
1 requests
Download .txt
Showing preview only (5,527K chars total). Download the full file or copy to clipboard to get everything.
Repository: vuejs/core
Branch: main
Commit: d61d8031f0d5
Files: 697
Total size: 5.1 MB

Directory structure:
gitextract_nx4x_z0x/

├── .git-blame-ignore-revs
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── config.yml
│   ├── bug-repro-guidelines.md
│   ├── commit-convention.md
│   ├── contributing.md
│   ├── git-branch-workflow.excalidraw
│   ├── maintenance.md
│   ├── renovate.json5
│   └── workflows/
│       ├── autofix.yml
│       ├── ci.yml
│       ├── close-cant-reproduce-issues.yml
│       ├── ecosystem-ci-trigger.yml
│       ├── lock-closed-issues.yml
│       ├── release.yml
│       ├── size-data.yml
│       ├── size-report.yml
│       └── test.yml
├── .gitignore
├── .node-version
├── .prettierignore
├── .prettierrc
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── .well-known/
│   └── funding-manifest-urls
├── BACKERS.md
├── CHANGELOG.md
├── FUNDING.json
├── LICENSE
├── README.md
├── SECURITY.md
├── changelogs/
│   ├── CHANGELOG-3.0.md
│   ├── CHANGELOG-3.1.md
│   ├── CHANGELOG-3.2.md
│   ├── CHANGELOG-3.3.md
│   └── CHANGELOG-3.4.md
├── eslint.config.js
├── netlify.toml
├── package.json
├── packages/
│   ├── compiler-core/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── codegen.spec.ts.snap
│   │   │   │   ├── compile.spec.ts.snap
│   │   │   │   ├── parse.spec.ts.snap
│   │   │   │   └── scopeId.spec.ts.snap
│   │   │   ├── codegen.spec.ts
│   │   │   ├── compile.spec.ts
│   │   │   ├── parse.spec.ts
│   │   │   ├── scopeId.spec.ts
│   │   │   ├── testUtils.ts
│   │   │   ├── transform.spec.ts
│   │   │   ├── transforms/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── cacheStatic.spec.ts.snap
│   │   │   │   │   ├── transformElement.spec.ts.snap
│   │   │   │   │   ├── transformExpressions.spec.ts.snap
│   │   │   │   │   ├── transformText.spec.ts.snap
│   │   │   │   │   ├── vFor.spec.ts.snap
│   │   │   │   │   ├── vIf.spec.ts.snap
│   │   │   │   │   ├── vMemo.spec.ts.snap
│   │   │   │   │   ├── vModel.spec.ts.snap
│   │   │   │   │   ├── vOnce.spec.ts.snap
│   │   │   │   │   └── vSlot.spec.ts.snap
│   │   │   │   ├── cacheStatic.spec.ts
│   │   │   │   ├── noopDirectiveTransform.spec.ts
│   │   │   │   ├── transformElement.spec.ts
│   │   │   │   ├── transformExpressions.spec.ts
│   │   │   │   ├── transformSlotOutlet.spec.ts
│   │   │   │   ├── transformText.spec.ts
│   │   │   │   ├── vBind.spec.ts
│   │   │   │   ├── vFor.spec.ts
│   │   │   │   ├── vIf.spec.ts
│   │   │   │   ├── vMemo.spec.ts
│   │   │   │   ├── vModel.spec.ts
│   │   │   │   ├── vOn.spec.ts
│   │   │   │   ├── vOnce.spec.ts
│   │   │   │   └── vSlot.spec.ts
│   │   │   └── utils.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── ast.ts
│   │       ├── babelUtils.ts
│   │       ├── codegen.ts
│   │       ├── compat/
│   │       │   ├── compatConfig.ts
│   │       │   └── transformFilter.ts
│   │       ├── compile.ts
│   │       ├── errors.ts
│   │       ├── index.ts
│   │       ├── options.ts
│   │       ├── parser.ts
│   │       ├── runtimeHelpers.ts
│   │       ├── tokenizer.ts
│   │       ├── transform.ts
│   │       ├── transforms/
│   │       │   ├── cacheStatic.ts
│   │       │   ├── noopDirectiveTransform.ts
│   │       │   ├── transformElement.ts
│   │       │   ├── transformExpression.ts
│   │       │   ├── transformSlotOutlet.ts
│   │       │   ├── transformText.ts
│   │       │   ├── transformVBindShorthand.ts
│   │       │   ├── vBind.ts
│   │       │   ├── vFor.ts
│   │       │   ├── vIf.ts
│   │       │   ├── vMemo.ts
│   │       │   ├── vModel.ts
│   │       │   ├── vOn.ts
│   │       │   ├── vOnce.ts
│   │       │   └── vSlot.ts
│   │       ├── utils.ts
│   │       └── validateExpression.ts
│   ├── compiler-dom/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.spec.ts.snap
│   │   │   ├── decoderHtmlBrowser.spec.ts
│   │   │   ├── index.spec.ts
│   │   │   ├── parse.spec.ts
│   │   │   └── transforms/
│   │   │       ├── Transition.spec.ts
│   │   │       ├── __snapshots__/
│   │   │       │   ├── Transition.spec.ts.snap
│   │   │       │   ├── stringifyStatic.spec.ts.snap
│   │   │       │   ├── vModel.spec.ts.snap
│   │   │       │   └── vShow.spec.ts.snap
│   │   │       ├── ignoreSideEffectTags.spec.ts
│   │   │       ├── stringifyStatic.spec.ts
│   │   │       ├── transformStyle.spec.ts
│   │   │       ├── vHtml.spec.ts
│   │   │       ├── vModel.spec.ts
│   │   │       ├── vOn.spec.ts
│   │   │       ├── vShow.spec.ts
│   │   │       ├── vText.spec.ts
│   │   │       └── validateHtmlNesting.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── decodeHtmlBrowser.ts
│   │       ├── errors.ts
│   │       ├── htmlNesting.ts
│   │       ├── index.ts
│   │       ├── parserOptions.ts
│   │       ├── runtimeHelpers.ts
│   │       └── transforms/
│   │           ├── Transition.ts
│   │           ├── ignoreSideEffectTags.ts
│   │           ├── stringifyStatic.ts
│   │           ├── transformStyle.ts
│   │           ├── vHtml.ts
│   │           ├── vModel.ts
│   │           ├── vOn.ts
│   │           ├── vShow.ts
│   │           ├── vText.ts
│   │           └── validateHtmlNesting.ts
│   ├── compiler-sfc/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── compileScript.spec.ts.snap
│   │   │   │   ├── compileTemplate.spec.ts.snap
│   │   │   │   ├── cssVars.spec.ts.snap
│   │   │   │   ├── templateTransformAssetUrl.spec.ts.snap
│   │   │   │   └── templateTransformSrcset.spec.ts.snap
│   │   │   ├── compileScript/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── defineEmits.spec.ts.snap
│   │   │   │   │   ├── defineExpose.spec.ts.snap
│   │   │   │   │   ├── defineModel.spec.ts.snap
│   │   │   │   │   ├── defineOptions.spec.ts.snap
│   │   │   │   │   ├── defineProps.spec.ts.snap
│   │   │   │   │   ├── definePropsDestructure.spec.ts.snap
│   │   │   │   │   ├── defineSlots.spec.ts.snap
│   │   │   │   │   ├── hoistStatic.spec.ts.snap
│   │   │   │   │   └── importUsageCheck.spec.ts.snap
│   │   │   │   ├── defineEmits.spec.ts
│   │   │   │   ├── defineExpose.spec.ts
│   │   │   │   ├── defineModel.spec.ts
│   │   │   │   ├── defineOptions.spec.ts
│   │   │   │   ├── defineProps.spec.ts
│   │   │   │   ├── definePropsDestructure.spec.ts
│   │   │   │   ├── defineSlots.spec.ts
│   │   │   │   ├── hoistStatic.spec.ts
│   │   │   │   ├── importUsageCheck.spec.ts
│   │   │   │   └── resolveType.spec.ts
│   │   │   ├── compileScript.spec.ts
│   │   │   ├── compileStyle.spec.ts
│   │   │   ├── compileTemplate.spec.ts
│   │   │   ├── cssVars.spec.ts
│   │   │   ├── fixture/
│   │   │   │   └── import.scss
│   │   │   ├── parse.spec.ts
│   │   │   ├── rewriteDefault.spec.ts
│   │   │   ├── templateTransformAssetUrl.spec.ts
│   │   │   ├── templateTransformSrcset.spec.ts
│   │   │   ├── templateUtils.spec.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── cache.ts
│   │       ├── compileScript.ts
│   │       ├── compileStyle.ts
│   │       ├── compileTemplate.ts
│   │       ├── index.ts
│   │       ├── parse.ts
│   │       ├── rewriteDefault.ts
│   │       ├── script/
│   │       │   ├── analyzeScriptBindings.ts
│   │       │   ├── context.ts
│   │       │   ├── defineEmits.ts
│   │       │   ├── defineExpose.ts
│   │       │   ├── defineModel.ts
│   │       │   ├── defineOptions.ts
│   │       │   ├── defineProps.ts
│   │       │   ├── definePropsDestructure.ts
│   │       │   ├── defineSlots.ts
│   │       │   ├── importUsageCheck.ts
│   │       │   ├── normalScript.ts
│   │       │   ├── resolveType.ts
│   │       │   ├── topLevelAwait.ts
│   │       │   └── utils.ts
│   │       ├── shims.d.ts
│   │       ├── style/
│   │       │   ├── cssVars.ts
│   │       │   ├── pluginScoped.ts
│   │       │   ├── pluginTrim.ts
│   │       │   └── preprocessors.ts
│   │       ├── template/
│   │       │   ├── templateUtils.ts
│   │       │   ├── transformAssetUrl.ts
│   │       │   └── transformSrcset.ts
│   │       └── warn.ts
│   ├── compiler-ssr/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── ssrComponent.spec.ts
│   │   │   ├── ssrElement.spec.ts
│   │   │   ├── ssrFallthroughAttrs.spec.ts
│   │   │   ├── ssrInjectCssVars.spec.ts
│   │   │   ├── ssrPortal.spec.ts
│   │   │   ├── ssrScopeId.spec.ts
│   │   │   ├── ssrSlotOutlet.spec.ts
│   │   │   ├── ssrSuspense.spec.ts
│   │   │   ├── ssrText.spec.ts
│   │   │   ├── ssrTransition.spec.ts
│   │   │   ├── ssrTransitionGroup.spec.ts
│   │   │   ├── ssrVFor.spec.ts
│   │   │   ├── ssrVIf.spec.ts
│   │   │   ├── ssrVModel.spec.ts
│   │   │   ├── ssrVShow.spec.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── errors.ts
│   │       ├── index.ts
│   │       ├── runtimeHelpers.ts
│   │       ├── ssrCodegenTransform.ts
│   │       └── transforms/
│   │           ├── ssrInjectCssVars.ts
│   │           ├── ssrInjectFallthroughAttrs.ts
│   │           ├── ssrTransformComponent.ts
│   │           ├── ssrTransformElement.ts
│   │           ├── ssrTransformSlotOutlet.ts
│   │           ├── ssrTransformSuspense.ts
│   │           ├── ssrTransformTeleport.ts
│   │           ├── ssrTransformTransition.ts
│   │           ├── ssrTransformTransitionGroup.ts
│   │           ├── ssrVFor.ts
│   │           ├── ssrVIf.ts
│   │           ├── ssrVModel.ts
│   │           └── ssrVShow.ts
│   ├── global.d.ts
│   ├── reactivity/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __benchmarks__/
│   │   │   ├── computed.bench.ts
│   │   │   ├── effect.bench.ts
│   │   │   ├── reactiveArray.bench.ts
│   │   │   ├── reactiveMap.bench.ts
│   │   │   ├── reactiveObject.bench.ts
│   │   │   └── ref.bench.ts
│   │   ├── __tests__/
│   │   │   ├── collections/
│   │   │   │   ├── Map.spec.ts
│   │   │   │   ├── Set.spec.ts
│   │   │   │   ├── WeakMap.spec.ts
│   │   │   │   ├── WeakSet.spec.ts
│   │   │   │   └── shallowReadonly.spec.ts
│   │   │   ├── computed.spec.ts
│   │   │   ├── effect.spec.ts
│   │   │   ├── effectScope.spec.ts
│   │   │   ├── gc.spec.ts
│   │   │   ├── reactive.spec.ts
│   │   │   ├── reactiveArray.spec.ts
│   │   │   ├── readonly.spec.ts
│   │   │   ├── ref.spec.ts
│   │   │   ├── shallowReactive.spec.ts
│   │   │   ├── shallowReadonly.spec.ts
│   │   │   └── watch.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── arrayInstrumentations.ts
│   │       ├── baseHandlers.ts
│   │       ├── collectionHandlers.ts
│   │       ├── computed.ts
│   │       ├── constants.ts
│   │       ├── dep.ts
│   │       ├── effect.ts
│   │       ├── effectScope.ts
│   │       ├── index.ts
│   │       ├── reactive.ts
│   │       ├── ref.ts
│   │       ├── warning.ts
│   │       └── watch.ts
│   ├── runtime-core/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── apiAsyncComponent.spec.ts
│   │   │   ├── apiCreateApp.spec.ts
│   │   │   ├── apiExpose.spec.ts
│   │   │   ├── apiInject.spec.ts
│   │   │   ├── apiLifecycle.spec.ts
│   │   │   ├── apiOptions.spec.ts
│   │   │   ├── apiSetupContext.spec.ts
│   │   │   ├── apiSetupHelpers.spec.ts
│   │   │   ├── apiWatch.bench.ts
│   │   │   ├── apiWatch.spec.ts
│   │   │   ├── component.spec.ts
│   │   │   ├── componentEmits.spec.ts
│   │   │   ├── componentProps.spec.ts
│   │   │   ├── componentPublicInstance.spec.ts
│   │   │   ├── componentSlots.spec.ts
│   │   │   ├── components/
│   │   │   │   ├── BaseTransition.spec.ts
│   │   │   │   ├── KeepAlive.spec.ts
│   │   │   │   ├── Suspense.spec.ts
│   │   │   │   └── Teleport.spec.ts
│   │   │   ├── directives.spec.ts
│   │   │   ├── errorHandling.spec.ts
│   │   │   ├── h.spec.ts
│   │   │   ├── helpers/
│   │   │   │   ├── createSlots.spec.ts
│   │   │   │   ├── renderList.spec.ts
│   │   │   │   ├── renderSlot.spec.ts
│   │   │   │   ├── resolveAssets.spec.ts
│   │   │   │   ├── toHandlers.spec.ts
│   │   │   │   ├── useId.spec.ts
│   │   │   │   ├── useModel.spec.ts
│   │   │   │   ├── useTemplateRef.spec.ts
│   │   │   │   └── withMemo.spec.ts
│   │   │   ├── hmr.spec.ts
│   │   │   ├── hydration.spec.ts
│   │   │   ├── misc.spec.ts
│   │   │   ├── rendererAttrsFallthrough.spec.ts
│   │   │   ├── rendererChildren.spec.ts
│   │   │   ├── rendererComponent.spec.ts
│   │   │   ├── rendererElement.spec.ts
│   │   │   ├── rendererFragment.spec.ts
│   │   │   ├── rendererOptimizedMode.spec.ts
│   │   │   ├── rendererTemplateRef.spec.ts
│   │   │   ├── scheduler.spec.ts
│   │   │   ├── scopeId.spec.ts
│   │   │   ├── vnode.spec.ts
│   │   │   └── vnodeHooks.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── apiAsyncComponent.ts
│   │   │   ├── apiComputed.ts
│   │   │   ├── apiCreateApp.ts
│   │   │   ├── apiDefineComponent.ts
│   │   │   ├── apiInject.ts
│   │   │   ├── apiLifecycle.ts
│   │   │   ├── apiSetupHelpers.ts
│   │   │   ├── apiWatch.ts
│   │   │   ├── compat/
│   │   │   │   ├── attrsFallthrough.ts
│   │   │   │   ├── compatConfig.ts
│   │   │   │   ├── component.ts
│   │   │   │   ├── componentAsync.ts
│   │   │   │   ├── componentFunctional.ts
│   │   │   │   ├── componentVModel.ts
│   │   │   │   ├── customDirective.ts
│   │   │   │   ├── data.ts
│   │   │   │   ├── global.ts
│   │   │   │   ├── globalConfig.ts
│   │   │   │   ├── instance.ts
│   │   │   │   ├── instanceChildren.ts
│   │   │   │   ├── instanceEventEmitter.ts
│   │   │   │   ├── instanceListeners.ts
│   │   │   │   ├── props.ts
│   │   │   │   ├── renderFn.ts
│   │   │   │   └── renderHelpers.ts
│   │   │   ├── component.ts
│   │   │   ├── componentEmits.ts
│   │   │   ├── componentOptions.ts
│   │   │   ├── componentProps.ts
│   │   │   ├── componentPublicInstance.ts
│   │   │   ├── componentRenderContext.ts
│   │   │   ├── componentRenderUtils.ts
│   │   │   ├── componentSlots.ts
│   │   │   ├── components/
│   │   │   │   ├── BaseTransition.ts
│   │   │   │   ├── KeepAlive.ts
│   │   │   │   ├── Suspense.ts
│   │   │   │   └── Teleport.ts
│   │   │   ├── customFormatter.ts
│   │   │   ├── devtools.ts
│   │   │   ├── directives.ts
│   │   │   ├── enums.ts
│   │   │   ├── errorHandling.ts
│   │   │   ├── featureFlags.ts
│   │   │   ├── h.ts
│   │   │   ├── helpers/
│   │   │   │   ├── createSlots.ts
│   │   │   │   ├── renderList.ts
│   │   │   │   ├── renderSlot.ts
│   │   │   │   ├── resolveAssets.ts
│   │   │   │   ├── toHandlers.ts
│   │   │   │   ├── useId.ts
│   │   │   │   ├── useModel.ts
│   │   │   │   ├── useSsrContext.ts
│   │   │   │   ├── useTemplateRef.ts
│   │   │   │   └── withMemo.ts
│   │   │   ├── hmr.ts
│   │   │   ├── hydration.ts
│   │   │   ├── hydrationStrategies.ts
│   │   │   ├── index.ts
│   │   │   ├── internalObject.ts
│   │   │   ├── profiling.ts
│   │   │   ├── renderer.ts
│   │   │   ├── rendererTemplateRef.ts
│   │   │   ├── scheduler.ts
│   │   │   ├── vnode.ts
│   │   │   └── warning.ts
│   │   └── types/
│   │       ├── globalComponents.d.ts
│   │       └── scriptSetupHelpers.d.ts
│   ├── runtime-dom/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── createApp.spec.ts
│   │   │   ├── customElement.spec.ts
│   │   │   ├── customizedBuiltIn.spec.ts
│   │   │   ├── directives/
│   │   │   │   ├── vCloak.spec.ts
│   │   │   │   ├── vModel.spec.ts
│   │   │   │   ├── vOn.spec.ts
│   │   │   │   └── vShow.spec.ts
│   │   │   ├── helpers/
│   │   │   │   ├── useCssModule.spec.ts
│   │   │   │   └── useCssVars.spec.ts
│   │   │   ├── nodeOps.spec.ts
│   │   │   ├── patchAttrs.spec.ts
│   │   │   ├── patchClass.spec.ts
│   │   │   ├── patchEvents.spec.ts
│   │   │   ├── patchProps.spec.ts
│   │   │   ├── patchStyle.spec.ts
│   │   │   └── rendererStaticNode.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── apiCustomElement.ts
│   │       ├── components/
│   │       │   ├── Transition.ts
│   │       │   └── TransitionGroup.ts
│   │       ├── directives/
│   │       │   ├── vModel.ts
│   │       │   ├── vOn.ts
│   │       │   └── vShow.ts
│   │       ├── helpers/
│   │       │   ├── useCssModule.ts
│   │       │   └── useCssVars.ts
│   │       ├── index.ts
│   │       ├── jsx.ts
│   │       ├── modules/
│   │       │   ├── attrs.ts
│   │       │   ├── class.ts
│   │       │   ├── events.ts
│   │       │   ├── props.ts
│   │       │   └── style.ts
│   │       ├── nodeOps.ts
│   │       └── patchProp.ts
│   ├── runtime-test/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   └── testRuntime.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── index.ts
│   │       ├── nodeOps.ts
│   │       ├── patchProp.ts
│   │       ├── serialize.ts
│   │       └── triggerEvent.ts
│   ├── server-renderer/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── createBuffer.bench.ts
│   │   │   ├── render.spec.ts
│   │   │   ├── ssrAttrFallthrough.spec.ts
│   │   │   ├── ssrCompilerOptions.spec.ts
│   │   │   ├── ssrComputed.spec.ts
│   │   │   ├── ssrDirectives.spec.ts
│   │   │   ├── ssrDynamicComponent.spec.ts
│   │   │   ├── ssrInterpolate.spec.ts
│   │   │   ├── ssrRenderAttrs.spec.ts
│   │   │   ├── ssrRenderList.spec.ts
│   │   │   ├── ssrScopeId.spec.ts
│   │   │   ├── ssrSlot.spec.ts
│   │   │   ├── ssrSuspense.spec.ts
│   │   │   ├── ssrTeleport.spec.ts
│   │   │   ├── ssrVModelHelpers.spec.ts
│   │   │   ├── ssrWatch.spec.ts
│   │   │   ├── unrollBuffer.bench.ts
│   │   │   └── webStream.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── helpers/
│   │       │   ├── ssrCompile.ts
│   │       │   ├── ssrGetDirectiveProps.ts
│   │       │   ├── ssrInterpolate.ts
│   │       │   ├── ssrRenderAttrs.ts
│   │       │   ├── ssrRenderComponent.ts
│   │       │   ├── ssrRenderList.ts
│   │       │   ├── ssrRenderSlot.ts
│   │       │   ├── ssrRenderSuspense.ts
│   │       │   ├── ssrRenderTeleport.ts
│   │       │   └── ssrVModelHelpers.ts
│   │       ├── index.ts
│   │       ├── internal.ts
│   │       ├── render.ts
│   │       ├── renderToStream.ts
│   │       └── renderToString.ts
│   ├── shared/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   └── codeframe.spec.ts.snap
│   │   │   ├── codeframe.spec.ts
│   │   │   ├── cssVars.spec.ts
│   │   │   ├── escapeHtml.spec.ts
│   │   │   ├── looseEqual.spec.ts
│   │   │   ├── normalizeProp.spec.ts
│   │   │   └── toDisplayString.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── codeframe.ts
│   │       ├── cssVars.ts
│   │       ├── domAttrConfig.ts
│   │       ├── domTagConfig.ts
│   │       ├── escapeHtml.ts
│   │       ├── general.ts
│   │       ├── globalsAllowList.ts
│   │       ├── index.ts
│   │       ├── looseEqual.ts
│   │       ├── makeMap.ts
│   │       ├── normalizeProp.ts
│   │       ├── patchFlags.ts
│   │       ├── shapeFlags.ts
│   │       ├── slotFlags.ts
│   │       ├── toDisplayString.ts
│   │       └── typeUtils.ts
│   ├── vue/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── customElementCasing.spec.ts
│   │   │   ├── e2e/
│   │   │   │   ├── Transition.spec.ts
│   │   │   │   ├── TransitionGroup.spec.ts
│   │   │   │   ├── commits.mock.ts
│   │   │   │   ├── commits.spec.ts
│   │   │   │   ├── e2eUtils.ts
│   │   │   │   ├── grid.spec.ts
│   │   │   │   ├── hydration-strat-custom.html
│   │   │   │   ├── hydration-strat-idle.html
│   │   │   │   ├── hydration-strat-interaction.html
│   │   │   │   ├── hydration-strat-media.html
│   │   │   │   ├── hydration-strat-visible.html
│   │   │   │   ├── hydrationStrategies.spec.ts
│   │   │   │   ├── markdown.spec.ts
│   │   │   │   ├── memory-leak.spec.ts
│   │   │   │   ├── ssr-custom-element.spec.ts
│   │   │   │   ├── svg.spec.ts
│   │   │   │   ├── todomvc.spec.ts
│   │   │   │   ├── transition.html
│   │   │   │   ├── tree.spec.ts
│   │   │   │   ├── trusted-types.html
│   │   │   │   ├── trusted-types.spec.ts
│   │   │   │   └── vModel.spec.ts
│   │   │   ├── index.spec.ts
│   │   │   ├── mathmlNamespace.spec.ts
│   │   │   ├── runtimeCompilerOptions.spec.ts
│   │   │   └── svgNamespace.spec.ts
│   │   ├── compiler-sfc/
│   │   │   ├── index.browser.js
│   │   │   ├── index.browser.mjs
│   │   │   ├── index.d.mts
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   ├── package.json
│   │   │   └── register-ts.js
│   │   ├── examples/
│   │   │   ├── classic/
│   │   │   │   ├── commits.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── markdown.html
│   │   │   │   ├── svg.html
│   │   │   │   ├── todomvc.html
│   │   │   │   └── tree.html
│   │   │   ├── composition/
│   │   │   │   ├── commits.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── markdown.html
│   │   │   │   ├── svg.html
│   │   │   │   ├── todomvc.html
│   │   │   │   └── tree.html
│   │   │   └── transition/
│   │   │       ├── list.html
│   │   │       └── modal.html
│   │   ├── index.js
│   │   ├── index.mjs
│   │   ├── jsx-runtime/
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   └── package.json
│   │   ├── jsx.d.ts
│   │   ├── package.json
│   │   ├── server-renderer/
│   │   │   ├── index.d.mts
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   └── package.json
│   │   └── src/
│   │       ├── dev.ts
│   │       ├── index.ts
│   │       └── runtime.ts
│   └── vue-compat/
│       ├── LICENSE
│       ├── README.md
│       ├── __tests__/
│       │   ├── compiler.spec.ts
│       │   ├── componentAsync.spec.ts
│       │   ├── componentFunctional.spec.ts
│       │   ├── componentVModel.spec.ts
│       │   ├── filters.spec.ts
│       │   ├── global.spec.ts
│       │   ├── globalConfig.spec.ts
│       │   ├── instance.spec.ts
│       │   ├── misc.spec.ts
│       │   ├── options.spec.ts
│       │   ├── renderFn.spec.ts
│       │   └── utils.ts
│       ├── index.js
│       ├── package.json
│       └── src/
│           ├── createCompatVue.ts
│           ├── dev.ts
│           ├── esm-index.ts
│           ├── esm-runtime.ts
│           ├── index.ts
│           └── runtime.ts
├── packages-private/
│   ├── dts-built-test/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── dts-test/
│   │   ├── README.md
│   │   ├── appDirective.test-d.ts
│   │   ├── appUse.test-d.ts
│   │   ├── built.test-d.ts
│   │   ├── compiler.test-d.ts
│   │   ├── component.test-d.ts
│   │   ├── componentInstance.test-d.tsx
│   │   ├── componentTypeExtensions.test-d.tsx
│   │   ├── defineComponent.test-d.tsx
│   │   ├── defineCustomElement.test-d.ts
│   │   ├── directives.test-d.ts
│   │   ├── extractProps.test-d.ts
│   │   ├── functionalComponent.test-d.tsx
│   │   ├── h.test-d.ts
│   │   ├── inject.test-d.ts
│   │   ├── package.json
│   │   ├── reactivity.test-d.ts
│   │   ├── ref.test-d.ts
│   │   ├── scheduler.test-d.ts
│   │   ├── setupHelpers.test-d.ts
│   │   ├── tsconfig.test.json
│   │   ├── tsx.test-d.tsx
│   │   ├── utils.d.ts
│   │   └── watch.test-d.ts
│   ├── global.d.ts
│   ├── sfc-playground/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── App.vue
│   │   │   ├── Header.vue
│   │   │   ├── VersionSelect.vue
│   │   │   ├── download/
│   │   │   │   ├── download.ts
│   │   │   │   └── template/
│   │   │   │       ├── README.md
│   │   │   │       ├── index.html
│   │   │   │       ├── main.js
│   │   │   │       ├── package.json
│   │   │   │       └── vite.config.js
│   │   │   ├── icons/
│   │   │   │   ├── Copy.vue
│   │   │   │   ├── Download.vue
│   │   │   │   ├── GitHub.vue
│   │   │   │   ├── Moon.vue
│   │   │   │   ├── Reload.vue
│   │   │   │   ├── Share.vue
│   │   │   │   └── Sun.vue
│   │   │   ├── main.ts
│   │   │   ├── vue-dev-proxy-prod.ts
│   │   │   ├── vue-dev-proxy.ts
│   │   │   └── vue-server-renderer-dev-proxy.ts
│   │   ├── vercel.json
│   │   └── vite.config.ts
│   ├── template-explorer/
│   │   ├── README.md
│   │   ├── _redirects
│   │   ├── index.html
│   │   ├── local.html
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── options.ts
│   │   │   └── theme.ts
│   │   └── style.css
│   ├── tsconfig.json
│   └── vite-debug/
│       ├── App.vue
│       ├── README.md
│       ├── index.html
│       ├── main.ts
│       ├── package.json
│       ├── tsconfig.json
│       └── vite.config.ts
├── pnpm-workspace.yaml
├── rollup.config.js
├── rollup.dts.config.js
├── scripts/
│   ├── aliases.js
│   ├── build.js
│   ├── dev.js
│   ├── inline-enums.js
│   ├── pre-dev-sfc.js
│   ├── release.js
│   ├── setup-vitest.ts
│   ├── size-report.js
│   ├── usage-size.js
│   ├── utils.js
│   ├── verify-commit.js
│   └── verify-treeshaking.js
├── tsconfig.build.json
├── tsconfig.json
└── vitest.config.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .git-blame-ignore-revs
================================================
# update prettier & eslint config (#9162)
bfe6b459d3a0ce6168611ee1ac7e6e789709df9d


================================================
FILE: .github/FUNDING.yml
================================================
github: yyx990803
open_collective: vuejs


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: "\U0001F41E Bug report"
description: Create a report to help us improve
body:
  - type: markdown
    attributes:
      value: |
        **Before You Start...**

        This form is only for submitting bug reports. If you have a usage question
        or are unsure if this is really a bug, make sure to:

        - Read the [docs](https://vuejs.org/)
        - Ask on [Discord Chat](https://chat.vuejs.org/)
        - Ask on [GitHub Discussions](https://github.com/vuejs/core/discussions)
        - Look for / ask questions on [Stack Overflow](https://stackoverflow.com/questions/ask?tags=vue.js)

        Also try to search for your issue - it may have already been answered or even fixed in the development branch.
        However, if you find that an old, closed issue still persists in the latest version,
        you should open a new issue using the form below instead of commenting on the old issue.
  - type: input
    id: version
    attributes:
      label: Vue version
    validations:
      required: true
  - type: input
    id: reproduction-link
    attributes:
      label: Link to minimal reproduction
      description: |
        The easiest way to provide a reproduction is by showing the bug in [The SFC Playground](https://play.vuejs.org/).
        If it cannot be reproduced in the playground and requires a proper build setup, try [StackBlitz](https://vite.new/vue).
        If neither of these are suitable, you can always provide a GitHub repository.

        The reproduction should be **minimal** - i.e. it should contain only the bare minimum amount of code needed
        to show the bug. See [Bug Reproduction Guidelines](https://github.com/vuejs/core/blob/main/.github/bug-repro-guidelines.md) for more details.

        Please do not just fill in a random link. The issue will be closed if no valid reproduction is provided.
      placeholder: Reproduction Link
    validations:
      required: true
  - type: textarea
    id: steps-to-reproduce
    attributes:
      label: Steps to reproduce
      description: |
        What do we need to do after opening your repro in order to make the bug happen? Clear and concise reproduction instructions are important for us to be able to triage your issue in a timely manner. Note that you can use [Markdown](https://guides.github.com/features/mastering-markdown/) to format lists and code.
      placeholder: Steps to reproduce
    validations:
      required: true
  - type: textarea
    id: expected
    attributes:
      label: What is expected?
    validations:
      required: true
  - type: textarea
    id: actually-happening
    attributes:
      label: What is actually happening?
    validations:
      required: true
  - type: textarea
    id: system-info
    attributes:
      label: System Info
      description: Output of `npx envinfo --system --npmPackages vue --binaries --browsers`
      render: shell
      placeholder: System, Binaries, Browsers
  - type: textarea
    id: additional-comments
    attributes:
      label: Any additional comments?
      description: e.g. some background/context of how you ran into this bug.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Feature Request
    url: https://github.com/vuejs/rfcs/discussions
    about: Suggest new features for consideration
  - name: Discord Chat
    url: https://chat.vuejs.org
    about: Ask questions and discuss with other Vue users in real time.
  - name: Questions & Discussions
    url: https://github.com/vuejs/core/discussions
    about: Use GitHub discussions for message-board style questions and discussions.
  - name: Patreon
    url: https://www.patreon.com/evanyou
    about: Love Vue.js? Please consider supporting us via Patreon.
  - name: Open Collective
    url: https://opencollective.com/vuejs/donate
    about: Love Vue.js? Please consider supporting us via Open Collective.


================================================
FILE: .github/bug-repro-guidelines.md
================================================
## About Bug Reproductions

A bug reproduction is a piece of code that can run and demonstrate how a bug can happen.

### Text is not enough

It's impossible to fix a bug from mere text descriptions. First, it's very difficult to precisely describe a technical problem while keeping it easy to follow; Second, the real cause may very well be something that you forgot to even mention. A reproduction is the only way that can reliably help us understand what is going on, so please provide one.

### A repro must be runnable

Screenshots or videos are NOT reproductions! They only show that the bug exists, but do not provide enough information on why it happens. Only runnable code provides the most complete context and allows us to properly debug the scenario. That said, in some cases videos/gifs can help explain interaction issues that are hard to describe in text.

### A repro should be minimal

Some users would give us a link to a real project and hope we can help them figure out what is wrong. We generally do not accept such requests because:

You are already familiar with your codebase, but we are not. It is extremely time-consuming to hunt a bug in a big and unfamiliar codebase.

The problematic behavior may very well be caused by your code rather than by a bug in Vue.

A minimal reproduction means it demonstrates the bug, and the bug only. It should only contain the bare minimum amount of code that can reliably cause the bug. Try your best to get rid of anything that isn't directly related to the problem.

### How to create a repro

For Vue 3 core reproductions, try reproducing it in [The SFC Playground](https://play.vuejs.org/).

If it cannot be reproduced in the playground and requires a proper build setup, try [StackBlitz](https://vite.new/vue).

If neither of these are suitable, you can always provide a GitHub repository.


================================================
FILE: .github/commit-convention.md
================================================
## Git Commit Message Convention

> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular).

#### TL;DR:

Messages must be matched by the following regex:

```regexp
/^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip)(\(.+\))?: .{1,50}/
```

#### Examples

Appears under "Features" header, `compiler` subheader:

```
feat(compiler): add 'comments' option
```

Appears under "Bug Fixes" header, `v-model` subheader, with a link to issue #28:

```
fix(v-model): handle events on blur

close #28
```

Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation:

```
perf(core): improve vdom diffing by removing 'foo' option

BREAKING CHANGE: The 'foo' option has been removed.
```

The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header.

```
revert: feat(compiler): add 'comments' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
```

### Full Message Format

A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**:

```
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```

The **header** is mandatory and the **scope** of the header is optional.

### Revert

If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body, it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted.

### Type

If the prefix is `feat`, `fix` or `perf`, it will appear in the changelog. However, if there is any [BREAKING CHANGE](#footer), the commit will always appear in the changelog.

Other prefixes are up to your discretion. Suggested prefixes are `docs`, `chore`, `style`, `refactor`, and `test` for non-changelog related tasks.

### Scope

The scope could be anything specifying the place of the commit change. For example `core`, `compiler`, `ssr`, `v-model`, `transition` etc...

### Subject

The subject contains a succinct description of the change:

- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end

### Body

Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
The body should include the motivation for the change and contrast this with previous behavior.

### Footer

The footer should contain any information about **Breaking Changes** and is also the place to
reference GitHub issues that this commit **Closes**.

**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.


================================================
FILE: .github/contributing.md
================================================
# Vue.js Contributing Guide

Hi! I'm really excited that you are interested in contributing to Vue.js. Before submitting your contribution, please make sure to take a moment and read through the following guidelines:

- [Code of Conduct](https://vuejs.org/about/coc.html)
- [Issue Reporting Guidelines](#issue-reporting-guidelines)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Development Setup](#development-setup)
- [Scripts](#scripts)
- [Project Structure](#project-structure)
- [Contributing Tests](#contributing-tests)
- [Financial Contribution](#financial-contribution)

## Issue Reporting Guidelines

- Always use [https://new-issue.vuejs.org/](https://new-issue.vuejs.org/) to create new issues.

## Pull Request Guidelines

### What kinds of Pull Requests are accepted?

- Bug fix that addresses a clearly identified bug. **"Clearly identified bug"** means the bug has a proper reproduction either from a related open issue, or is included in the PR itself. Avoid submitting PRs that claim to fix something but do not sufficiently explain what is being fixed.

- New feature that addresses a clearly explained and widely applicable use case. **"Widely applicable"** means the new feature should provide non-trivial improvements to the majority of the user base. Vue already has a large API surface so we are quite cautious about adding new features - if the use case is niche and can be addressed via userland implementations, it likely isn't suitable to go into core.

  The feature implementation should also consider the trade-off between the added complexity vs. the benefits gained. For example, if a small feature requires significant changes that spread across the codebase, it is likely not worth it, or the approach should be reconsidered.

  If the feature has a non-trivial API surface addition, or significantly affects the way a common use case is approached by the users, it should go through a discussion first in the [RFC repo](https://github.com/vuejs/rfcs/discussions). PRs of such features without prior discussion make it really difficult to steer / adjust the API design due to coupling with concrete implementations, and can lead to wasted work.

- Chore: typos, comment improvements, build config, CI config, etc. For typos and comment changes, try to combine multiple of them into a single PR.

- **It should be noted that we discourage contributors from submitting code refactors that are largely stylistic.** Code refactors are only accepted if they improve performance, or come with sufficient explanations on why they objectively improve the code quality (e.g. makes a related feature implementation easier).

  The reason is that code readability is subjective. The maintainers of this project have chosen to write the code in its current style based on our preferences, and we do not want to spend time explaining our stylistic preferences. Contributors should just respect the established conventions when contributing code.

  Another aspect of it is that large scale stylistic changes result in massive diffs that touch multiple files, adding noise to the git history and make tracing behavior changes across commits more cumbersome.

### Pull Request Checklist

- Vue core has two primary work branches: `main` and `minor`.
  - If your pull request is a feature that adds new API surface, it should be submitted against the `minor` branch.

  - Otherwise, it should be submitted against the `main` branch.

- [Make sure to tick the "Allow edits from maintainers" box](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork). This allows us to directly make minor edits / refactors and saves a lot of time.

- If adding a new feature:
  - Add accompanying test case.
  - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.

- If fixing a bug:
  - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`.
  - Provide a detailed description of the bug in the PR. Live demo preferred.
  - Add appropriate test coverage if applicable. You can check the coverage of your code addition by running `nr test-coverage`.

- It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging.

- Make sure tests pass!

- Commit messages must follow the [commit message convention](./commit-convention.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks)).

- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks)).

### Advanced Pull Request Tips

- The PR should fix the intended bug **only** and not introduce unrelated changes. This includes unnecessary refactors - a PR should focus on the fix and not code style, this makes it easier to trace changes in the future.

- Consider the performance / size impact of the changes, and whether the bug being fixed justifies the cost. If the bug being fixed is a very niche edge case, we should try to minimize the size / perf cost to make it worthwhile.
  - Is the code perf-sensitive (e.g. in "hot paths" like component updates or the vdom patch function?)
    - If the branch is dev-only, performance is less of a concern.

  - Check how much extra bundle size the change introduces.
    - Make sure to put dev-only code in `__DEV__` branches so they are tree-shakable.
    - Runtime code is more sensitive to size increase than compiler code.
    - Make sure it doesn't accidentally cause dev-only or compiler-only code branches to be included in the runtime build. Notable case is that some functions in `@vue/shared` are compiler-only and should not be used in runtime code, e.g. `isHTMLTag` and `isSVGTag`.

## Development Setup

You will need [Node.js](https://nodejs.org) with minimum version as specified in the [`.node-version`](https://github.com/vuejs/core/blob/main/.node-version) file, and [PNPM](https://pnpm.io) with minimum version as specified in the [`"packageManager"` field in `package.json`](https://github.com/vuejs/core/blob/main/package.json#L4).

We also recommend installing [@antfu/ni](https://github.com/antfu/ni) to help switching between repos using different package managers. `ni` also provides the handy `nr` command which makes running npm scripts easier.

After cloning the repo, run:

```bash
$ pnpm i # install the dependencies of the project
```

A high level overview of tools used:

- [TypeScript](https://www.typescriptlang.org/) as the development language
- [Vite](https://vitejs.dev/) and [ESBuild](https://esbuild.github.io/) for development bundling
- [Rollup](https://rollupjs.org) for production bundling
- [Vitest](https://vitest.dev/) for unit testing
- [Prettier](https://prettier.io/) for code formatting
- [ESLint](https://eslint.org/) for static error prevention (outside of types)

## Git Hooks

The project uses [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) to enforce the following on each commit:

- Type check the entire project
- Automatically format changed files using Prettier
- Verify commit message format (logic in `scripts/verify-commit.js`)

## Scripts

**The examples below will be using the `nr` command from the [@antfu/ni](https://github.com/antfu/ni) package.** You can also use plain `npm run`, but you will need to pass all additional arguments after the command after an extra `--`. For example, `nr build runtime --all` is equivalent to `npm run build -- runtime --all`.

The `run-s` and `run-p` commands found in some scripts are from [npm-run-all](https://github.com/mysticatea/npm-run-all) for orchestrating multiple scripts. `run-s` means "run in sequence" while `run-p` means "run in parallel".

- [`nr build`](#nr-build)
- [`nr build-dts`](#nr-build-dts)
- [`nr check`](#nr-check)
- [`nr dev`](#nr-dev)
- [`nr dev-sfc`](#nr-dev-sfc)
- [`nr dev-esm`](#nr-dev-esm)
- [`nr dev-compiler`](#nr-dev-compiler)
- [`nr test`](#nr-test)
- [`nr test-dts`](#nr-test-dts)

### `nr build`

The `build` script builds all public packages (packages without `private: true` in their `package.json`).

Packages to build can be specified with fuzzy matching:

```bash
# build runtime-core only
nr build runtime-core

# build all packages matching "runtime"
nr build runtime --all
```

Note that `nr build` uses `rollup-plugin-esbuild` for transpiling typescript and **does not perform type checking**. To run type check on the entire codebase, run `nr check`. Type checks are also automatically run on each commit.

#### Build Formats

By default, each package will be built in multiple distribution formats as specified in the `buildOptions.formats` field in its `package.json`. These can be overwritten via the `-f` flag. The following formats are supported:

- **`global`**
- **`esm-bundler`**
- **`esm-browser`**
- **`cjs`**

Additional formats that only apply to the main `vue` package:

- **`global-runtime`**
- **`esm-bundler-runtime`**
- **`esm-browser-runtime`**

More details about each of these formats can be found in the [`vue` package README](https://github.com/vuejs/core/blob/main/packages/vue/README.md#which-dist-file-to-use) and the [Rollup config file](https://github.com/vuejs/core/blob/main/rollup.config.js).

For example, to build `runtime-core` with the global build only:

```bash
nr build runtime-core -f global
```

Multiple formats can be specified as a comma-separated list:

```bash
nr build runtime-core -f esm-browser,cjs
```

#### Build with Source Maps

Use the `--sourcemap` or `-s` flag to build with source maps. Note this will make the build much slower.

### `nr build-dts`

This command builds the type declarations for all packages. It first generates the raw `.d.ts` files in the `temp` directory, then uses [rollup-plugin-dts](https://github.com/Swatinem/rollup-plugin-dts) to roll the types into a single `.d.ts` file for each package.

### `nr check`

### `nr dev`

The `dev` script bundles a target package (default: `vue`) in a specified format (default: `global`) in dev mode and watches for changes. This is useful when you want to load up a build in an HTML page for quick debugging:

```bash
$ nr dev

> built: packages/vue/dist/vue.global.js
```

- **Important:** output of the `dev` script is for development and debugging only. While it has the same runtime behavior, the generated code should never be published to npm.

- The `dev` script does not support fuzzy match - you must specify the full package name, e.g. `nr dev runtime-core`.

- The `dev` script supports specifying build format via the `-f` flag just like the `build` script.

- The `dev` script also supports the `-s` flag for generating source maps, but it will make rebuilds slower.

- The `dev` script supports the `-i` flag for inlining all deps. This is useful when debugging `esm-bundler` builds which externalize deps by default.

### `nr dev-sfc`

Shortcut for starting the SFC Playground in local dev mode. This provides the fastest feedback loop when debugging issues that can be reproduced in the SFC Playground.

### `nr dev-esm`

Builds and watches `vue/dist/vue-runtime.esm-bundler.js` with all deps inlined using esbuild. This is useful when debugging the ESM build in a reproduction that requires real build setups: link `packages/vue` globally, then link it into the project being debugged.

### `nr dev-compiler`

The `dev-compiler` script builds, watches and serves the [Template Explorer](https://github.com/vuejs/core/tree/main/packages/template-explorer) at `http://localhost:3000`. This is useful when working on pure compiler issues.

### `nr test`

The `test` script simply calls the `vitest` binary, so all [Vitest CLI Options](https://vitest.dev/guide/cli.html#options) can be used. Some examples:

```bash
# run all tests in watch mode
$ nr test

# run once and exit (equivalent to `vitest run`)
$ nr test run

# run all tests under the runtime-core package
$ nr test runtime-core

# run tests in files matching the pattern
$ nr test <fileNamePattern>

# run a specific test in specific files
$ nr test <fileNamePattern> -t 'test name'
```

Tests that test against source code are grouped under `nr test-unit`, while tests that test against built files that run in real browsers are grouped under `nr test-e2e`.

### `nr test-dts`

Runs `nr build-dts` first, then verify the type tests in `packages-private/dts-test` are working correctly against the actual built type declarations.

## Project Structure

This repository employs a [monorepo](https://en.wikipedia.org/wiki/Monorepo) setup which hosts a number of associated packages under the `packages` directory:

- `reactivity`: The reactivity system. It can be used standalone as a framework-agnostic package.

- `runtime-core`: The platform-agnostic runtime core. Includes code for the virtual dom renderer, component implementation and JavaScript APIs. Higher-order runtimes (i.e. custom renderers) targeting specific platforms can be created using this package.

- `runtime-dom`: The runtime targeting the browser. Includes handling of native DOM API, attributes, properties, event handlers etc.

- `runtime-test`: The lightweight runtime for testing. Can be used in any JavaScript environment since it "renders" a tree of plain JavaScript objects. The tree can be used to assert correct render output. Also provides utilities for serializing the tree, triggering events, and recording actual node operations performed during an update.

- `server-renderer`: Package for server-side rendering.

- `compiler-core`: The platform-agnostic compiler core. Includes the extensible base of the compiler and all platform-agnostic plugins.

- `compiler-dom`: Compiler with additional plugins specifically targeting the browser.

- `compiler-sfc`: Lower level utilities for compiling Vue Single File Components.

- `compiler-ssr`: Compiler that produces render functions optimized for server-side rendering.

- `shared`: Internal utilities shared across multiple packages (especially environment-agnostic utils used by both runtime and compiler packages).

- `vue`: The public facing "full build" which includes both the runtime AND the compiler.

- Private utility packages:
  - `dts-test`: Contains type-only tests against generated dts files.

  - `sfc-playground`: The playground continuously deployed at https://play.vuejs.org. To run the playground locally, use [`nr dev-sfc`](#nr-dev-sfc).

  - `template-explorer`: A development tool for debugging compiler output, continuously deployed at https://template-explorer.vuejs.org/. To run it locally, run [`nr dev-compiler`](#nr-dev-compiler).

### Importing Packages

The packages can import each other directly using their package names. Note that when importing a package, the name listed in its `package.json` should be used. Most of the time the `@vue/` prefix is needed:

```js
import { h } from '@vue/runtime-core'
```

This is made possible via several configurations:

- For TypeScript, `compilerOptions.paths` in `tsconfig.json`
- Vitest and Rollup share the same set of aliases from `scripts/aliases.js`
- For plain Node.js, they are linked using [PNPM Workspaces](https://pnpm.io/workspaces).

### Package Dependencies

```mermaid
  flowchart LR
    compiler-sfc["@vue/compiler-sfc"]
    compiler-dom["@vue/compiler-dom"]
    compiler-core["@vue/compiler-core"]
    vue["vue"]
    runtime-dom["@vue/runtime-dom"]
    runtime-core["@vue/runtime-core"]
    reactivity["@vue/reactivity"]

    subgraph "Runtime Packages"
      runtime-dom --> runtime-core
      runtime-core --> reactivity
    end

    subgraph "Compiler Packages"
      compiler-sfc --> compiler-core
      compiler-sfc --> compiler-dom
      compiler-dom --> compiler-core
    end

    vue ---> compiler-dom
    vue --> runtime-dom
```

There are some rules to follow when importing across package boundaries:

- Never use direct relative paths when importing items from another package - export it in the source package and import it at the package level.

- Compiler packages should not import items from the runtime, and vice versa. If something needs to be shared between the compiler-side and runtime-side, it should be extracted into `@vue/shared` instead.

- If a package (A) has a non-type import, or re-exports a type from another package (B), then (B) should be listed as a dependency in (A)'s `package.json`. This is because the packages are externalized in the ESM-bundler/CJS builds and type declaration files, so the dependency packages must be actually installed as a dependency when consumed from package registries.

## Contributing Tests

Unit tests are collocated with the code being tested in each package, inside directories named `__tests__`. Consult the [Vitest docs](https://vitest.dev/api/) and existing test cases for how to write new test specs. Here are some additional guidelines:

- Use the minimal API needed for a test case. For example, if a test can be written without involving the reactivity system or a component, it should be written so. This limits the test's exposure to changes in unrelated parts and makes it more stable.

- If testing platform agnostic behavior or asserting low-level virtual DOM operations, use `@vue/runtime-test`.

- Only use platform-specific runtimes if the test is asserting platform-specific behavior.

Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that improve test coverage are welcome, but in general the test coverage should be used as a guidance for finding API use cases that are not covered by tests. We don't recommend adding tests that only improve coverage but not actually test a meaningful use case.

### Testing Type Definition Correctness

Type tests are located in the `packages-private/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.

## Financial Contribution

As a pure community-driven project without major corporate backing, we also welcome financial contributions via Patreon and OpenCollective.

- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou)
- [Become a backer or sponsor on OpenCollective](https://opencollective.com/vuejs)

### What's the difference between Patreon and OpenCollective funding?

Funds donated via Patreon go directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses for core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform.

## Credits

Thank you to all the people who have already contributed to Vue.js!

<a href="https://github.com/vuejs/core/graphs/contributors"><img src="https://opencollective.com/vuejs/contributors.svg?width=890" /></a>


================================================
FILE: .github/git-branch-workflow.excalidraw
================================================
{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [
    {
      "type": "arrow",
      "version": 799,
      "versionNonce": 529220601,
      "isDeleted": false,
      "id": "Gao2krnDddLMCj468JSWD",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 860.0129225738813,
      "y": 663.9911710635109,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 133.75296854079784,
      "height": 149.58016791936518,
      "seed": 1415631543,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": {
        "elementId": "hDC6an14QljktaZCUhcPF",
        "focus": 0.09950793234484598,
        "gap": 1.2432497743127229
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          25.209039386719837,
          85.96948921803892
        ],
        [
          133.75296854079784,
          149.58016791936518
        ]
      ]
    },
    {
      "type": "arrow",
      "version": 563,
      "versionNonce": 290881303,
      "isDeleted": false,
      "id": "N3wyyEU7TQ8BsOQgxCmlR",
      "fillStyle": "hachure",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 292.88008929085873,
      "y": 660.7027503334302,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 936.9972134376155,
      "height": 1.3184243543457796,
      "seed": 534235417,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": null,
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          936.9972134376155,
          -1.3184243543457796
        ]
      ]
    },
    {
      "type": "arrow",
      "version": 302,
      "versionNonce": 883286489,
      "isDeleted": false,
      "id": "nRDWQs5nQa37yzCWTBiXC",
      "fillStyle": "hachure",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 293.1231624544633,
      "y": 820.6017661012943,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 790.7091601354882,
      "height": 0.35284814071621895,
      "seed": 515907671,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": {
        "elementId": "ggogfJT7E_bbfEog7Hjnp",
        "focus": -0.14000162237652433,
        "gap": 1
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          790.7091601354882,
          -0.35284814071621895
        ]
      ]
    },
    {
      "type": "text",
      "version": 36,
      "versionNonce": 981763127,
      "isDeleted": false,
      "id": "ZPdMAnEUq5Jgj1W07Zqiw",
      "fillStyle": "hachure",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 292.0450153578305,
      "y": 619.3959946602608,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#b2f2bb",
      "width": 46.875,
      "height": 24,
      "seed": 1311694519,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 3,
      "text": "main",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "main",
      "lineHeight": 1.2,
      "baseline": 20
    },
    {
      "type": "text",
      "version": 94,
      "versionNonce": 18759353,
      "isDeleted": false,
      "id": "g9IkEIfu4vA8Qkwtw01Hi",
      "fillStyle": "hachure",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 290.88990199912035,
      "y": 779.1760596323645,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#b2f2bb",
      "width": 58.59375,
      "height": 24,
      "seed": 329886135,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 3,
      "text": "minor",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "minor",
      "lineHeight": 1.2,
      "baseline": 20
    },
    {
      "type": "ellipse",
      "version": 50,
      "versionNonce": 1442112855,
      "isDeleted": false,
      "id": "RrdEQ7hwgGGDPhzDnuZj1",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 361.55609907891005,
      "y": 649.8742329483416,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 2077639991,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 79,
      "versionNonce": 1547173785,
      "isDeleted": false,
      "id": "Zmp49FKWxGSzKnVKomjQc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 427.3015090315691,
      "y": 650.256485100784,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 372652121,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 76,
      "versionNonce": 586949239,
      "isDeleted": false,
      "id": "UOl9nLBksM7RPdH9mzjJa",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 490.9435520120701,
      "y": 651.2601420343765,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 508667545,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 120,
      "versionNonce": 874947705,
      "isDeleted": false,
      "id": "oMC55V0VO_hOXoZ1se8Kl",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 555.4481126698772,
      "y": 650.7975189165487,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1914963513,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 66,
      "versionNonce": 39762839,
      "isDeleted": false,
      "id": "DZY5DC5uVP7-U5c3ngIZ4",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 622.5167031502219,
      "y": 649.3743647489936,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 165914713,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 107,
      "versionNonce": 1689103705,
      "isDeleted": false,
      "id": "Vsw6oIiTM3fQypkiCic3f",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 690.330195260967,
      "y": 650.6681412649529,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 280044345,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "lwYvAs-7FTjcwxKjcx0KV",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 148,
      "versionNonce": 1986194201,
      "isDeleted": false,
      "id": "D14w9erv_2l53mINe2nSt",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 361.004283792179,
      "y": 810.2809579853473,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1203257975,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 179,
      "versionNonce": 1172811511,
      "isDeleted": false,
      "id": "6WO8xOpG0rf673b_bT0m7",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 426.74969374483805,
      "y": 810.6632101377896,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 2056706967,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "mE8Mu0qKfFaWPCC5vmF_f",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 173,
      "versionNonce": 820518905,
      "isDeleted": false,
      "id": "VB9U8oH-78hf530hIb_mG",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 490.391736725339,
      "y": 811.6668670713822,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1149587639,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 218,
      "versionNonce": 1227143191,
      "isDeleted": false,
      "id": "Bxv1hcS0VmxUwI0JLFH97",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 554.8962973831461,
      "y": 811.2042439535543,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1864901079,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "M14Q0Uo1DBy2Ss2SOFSgW",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 167,
      "versionNonce": 1387509977,
      "isDeleted": false,
      "id": "4v23gkfhy-hzk18YdkfLz",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 621.9648878634908,
      "y": 809.7810897859994,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 462671607,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "vEF1cIIYYWKm84KLKqEz3",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 200,
      "versionNonce": 774085943,
      "isDeleted": false,
      "id": "AtEf7o4WZQn4Zxq8EN5fH",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 689.7783799742359,
      "y": 811.0748663019584,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1414322199,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "3heKY3vfe3-6ni4dX7Uqo",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 199,
      "versionNonce": 1834563001,
      "isDeleted": false,
      "id": "ugDby5sBv4NKdNt8eC1sg",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 762.6179978227377,
      "y": 810.2986003923828,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1598537015,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 211,
      "versionNonce": 407428695,
      "isDeleted": false,
      "id": "Fwe4F2sB_0jptOZGYsusj",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 837.1081608628116,
      "y": 810.859236882632,
      "strokeColor": "#f08c00",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1340669527,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "M14Q0Uo1DBy2Ss2SOFSgW",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false
    },
    {
      "type": "arrow",
      "version": 57,
      "versionNonce": 335287961,
      "isDeleted": false,
      "id": "mE8Mu0qKfFaWPCC5vmF_f",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 437.60867586595543,
      "y": 830.4227236701945,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 0.5232394659406623,
      "height": 33.25787987764363,
      "seed": 482155929,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": {
        "elementId": "6WO8xOpG0rf673b_bT0m7",
        "focus": -0.1727591064041787,
        "gap": 1.046152088903881
      },
      "endBinding": {
        "elementId": "JALHBtowuh3_a86loej2x",
        "focus": 0.015156451076917701,
        "gap": 15.586906139714472
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          -0.5232394659406623,
          33.25787987764363
        ]
      ]
    },
    {
      "type": "arrow",
      "version": 59,
      "versionNonce": 1248394103,
      "isDeleted": false,
      "id": "AI-_jSAuzesxTqwRvpk0s",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 501.2878833373983,
      "y": 652.3088851192829,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ffc9c9",
      "width": 0,
      "height": 40.40111211199792,
      "seed": 1052632343,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": null,
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -40.40111211199792
        ]
      ]
    },
    {
      "type": "arrow",
      "version": 261,
      "versionNonce": 693099385,
      "isDeleted": false,
      "id": "lwYvAs-7FTjcwxKjcx0KV",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 786.7392304423553,
      "y": 649.6016935672433,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ffc9c9",
      "width": 0,
      "height": 40.40111211199792,
      "seed": 1233043511,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": {
        "elementId": "s0PKxsWTJSDbQeEl_WI-C",
        "focus": 0.016372633695398757,
        "gap": 1
      },
      "endBinding": {
        "elementId": "9ia1Uwc5X0fRw5iaahmcT",
        "focus": 0.025318405829282714,
        "gap": 14.862364635333904
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -40.40111211199792
        ]
      ]
    },
    {
      "type": "text",
      "version": 121,
      "versionNonce": 952661143,
      "isDeleted": false,
      "id": "qWW8uxDIcV3Bkj28uvRLr",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 454.32425448306674,
      "y": 537.8854189061962,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 93.75,
      "height": 57.599999999999994,
      "seed": 809847769,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "patch\nrelease\ne.g. 3.3.8",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "patch\nrelease\ne.g. 3.3.8",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "text",
      "version": 257,
      "versionNonce": 1838679129,
      "isDeleted": false,
      "id": "9ia1Uwc5X0fRw5iaahmcT",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 741.0510307156029,
      "y": 536.7382168199114,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 93.75,
      "height": 57.599999999999994,
      "seed": 213765431,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [
        {
          "id": "lwYvAs-7FTjcwxKjcx0KV",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "patch\nrelease\ne.g. 3.3.9",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "patch\nrelease\ne.g. 3.3.9",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "text",
      "version": 222,
      "versionNonce": 1528547767,
      "isDeleted": false,
      "id": "JALHBtowuh3_a86loej2x",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 350.7264132088442,
      "y": 879.2675096875524,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 168.75,
      "height": 57.599999999999994,
      "seed": 41180921,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [
        {
          "id": "mE8Mu0qKfFaWPCC5vmF_f",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "pre minor\nrelease\ne.g. 3.4.0-alpha.1",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "pre minor\nrelease\ne.g. 3.4.0-alpha.1",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "arrow",
      "version": 345,
      "versionNonce": 1286082873,
      "isDeleted": false,
      "id": "3heKY3vfe3-6ni4dX7Uqo",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 699.5281288163526,
      "y": 831.0290882554708,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 0.5502191262773977,
      "height": 33.25154356841597,
      "seed": 627698359,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "startBinding": {
        "elementId": "AtEf7o4WZQn4Zxq8EN5fH",
        "focus": -0.05612657009295625,
        "gap": 1.1451322685712295
      },
      "endBinding": {
        "elementId": "9t6qH-tAxVUexkHHi2pd2",
        "focus": 0.015156451076917755,
        "gap": 15.586906139714358
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          -0.5502191262773977,
          33.25154356841597
        ]
      ]
    },
    {
      "type": "text",
      "version": 365,
      "versionNonce": 1049066199,
      "isDeleted": false,
      "id": "9t6qH-tAxVUexkHHi2pd2",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 617.3409291322284,
      "y": 879.8675379636011,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 159.375,
      "height": 57.599999999999994,
      "seed": 1013545943,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [
        {
          "id": "3heKY3vfe3-6ni4dX7Uqo",
          "type": "arrow"
        }
      ],
      "updated": 1698927613071,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "pre minor\nrelease\ne.g. 3.4.0-beta.1",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "pre minor\nrelease\ne.g. 3.4.0-beta.1",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "arrow",
      "version": 788,
      "versionNonce": 1810072089,
      "isDeleted": false,
      "id": "vEF1cIIYYWKm84KLKqEz3",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 630.3597332113623,
      "y": 667.2735668205443,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 2.258228100583324,
      "height": 140.75112333166828,
      "seed": 2091697367,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": {
        "elementId": "4v23gkfhy-hzk18YdkfLz",
        "focus": 0.13930391883256707,
        "gap": 1.8256906627890626
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          1.8426514015177418,
          69.09942755691065
        ],
        [
          2.258228100583324,
          140.75112333166828
        ]
      ]
    },
    {
      "type": "arrow",
      "version": 687,
      "versionNonce": 2017318649,
      "isDeleted": false,
      "id": "M14Q0Uo1DBy2Ss2SOFSgW",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 370.5976915356099,
      "y": 667.5155013947814,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 1.5329291446666957,
      "height": 145.39303664953377,
      "seed": 361678233,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": null,
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          -0.34892760581925586,
          83.56228079137543
        ],
        [
          1.1840015388474399,
          145.39303664953377
        ]
      ]
    },
    {
      "type": "text",
      "version": 537,
      "versionNonce": 342487319,
      "isDeleted": false,
      "id": "CHAOOJMz7tNaG1VsG_uzT",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 384.81046417498214,
      "y": 725.4677076298137,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 131.25,
      "height": 57.599999999999994,
      "seed": 1656007289,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "merge main\ninto minor\nbefore release",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "merge main\ninto minor\nbefore release",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "ellipse",
      "version": 202,
      "versionNonce": 876253145,
      "isDeleted": false,
      "id": "hDC6an14QljktaZCUhcPF",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 993.0386151813434,
      "y": 810.335845473903,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1433430105,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "Gao2krnDddLMCj468JSWD",
          "type": "arrow"
        }
      ],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "arrow",
      "version": 1525,
      "versionNonce": 777631287,
      "isDeleted": false,
      "id": "ces8IwHCpQlTnELpjFDIn",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 1092.5386800881793,
      "y": 827.5114796878765,
      "strokeColor": "#f08c00",
      "backgroundColor": "#ffc9c9",
      "width": 0.3315362017829102,
      "height": 49.45191086419197,
      "seed": 225867737,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": {
        "elementId": "8rWUxp-jRNGrGRmhHHfm4",
        "focus": -0.2047594653982401,
        "gap": 10.392197401393389
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          -0.3315362017829102,
          49.45191086419197
        ]
      ]
    },
    {
      "type": "text",
      "version": 894,
      "versionNonce": 1173171385,
      "isDeleted": false,
      "id": "8rWUxp-jRNGrGRmhHHfm4",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 1047.251646167428,
      "y": 887.3555879534618,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 112.5,
      "height": 57.599999999999994,
      "seed": 1600918713,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [
        {
          "id": "ces8IwHCpQlTnELpjFDIn",
          "type": "arrow"
        }
      ],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "stable minor\nrelease\ne.g. 3.4.0",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "stable minor\nrelease\ne.g. 3.4.0",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "ellipse",
      "version": 201,
      "versionNonce": 78435447,
      "isDeleted": false,
      "id": "3RHuRn_evSK0YUe02B4MY",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 909.9742423218671,
      "y": 810.4142561718397,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 1199705047,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 371,
      "versionNonce": 2093872087,
      "isDeleted": false,
      "id": "9h2Cu__8owLUgUGjGcWDe",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 848.4414471158692,
      "y": 650.826922928275,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 603147257,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 361,
      "versionNonce": 1981618457,
      "isDeleted": false,
      "id": "s0PKxsWTJSDbQeEl_WI-C",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 777.1778842958995,
      "y": 650.2466837635417,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#b2f2bb",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 326722777,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "lwYvAs-7FTjcwxKjcx0KV",
          "type": "arrow"
        }
      ],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "text",
      "version": 871,
      "versionNonce": 1528156247,
      "isDeleted": false,
      "id": "3JAdSa7kqqSDSom5ZFDoE",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 904.3603861670398,
      "y": 707.2413714353705,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 140.625,
      "height": 57.599999999999994,
      "seed": 1011049431,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "final merge\nmain into minor\nbefore release",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "final merge\nmain into minor\nbefore release",
      "lineHeight": 1.2,
      "baseline": 53
    },
    {
      "type": "arrow",
      "version": 591,
      "versionNonce": 1714373785,
      "isDeleted": false,
      "id": "7kFBLq2Iczmj0lVnVk8Ad",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dotted",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 1100.7141458557703,
      "y": 814.2034531496416,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ffffff",
      "width": 127.38209933342364,
      "height": 144.5383600420214,
      "seed": 25829591,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "startBinding": null,
      "endBinding": {
        "elementId": "Y7VXnuc9QEz2N2l9i0xrc",
        "focus": 0.3932764551319699,
        "gap": 5.928572790502042
      },
      "lastCommittedPoint": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "points": [
        [
          0,
          0
        ],
        [
          88.94909573964219,
          -43.721805169626464
        ],
        [
          127.38209933342364,
          -144.5383600420214
        ]
      ]
    },
    {
      "type": "text",
      "version": 1208,
      "versionNonce": 1254600055,
      "isDeleted": false,
      "id": "gwFWlPLabuYhxCOweJjWz",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 1223.0464288187204,
      "y": 725.1565933898091,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 150,
      "height": 38.4,
      "seed": 51102743,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "main merge minor\n(fast forward)",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "main merge minor\n(fast forward)",
      "lineHeight": 1.2,
      "baseline": 34
    },
    {
      "type": "ellipse",
      "version": 597,
      "versionNonce": 1760381305,
      "isDeleted": false,
      "id": "Y7VXnuc9QEz2N2l9i0xrc",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 1227.4473966637659,
      "y": 647.6689320688656,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 412038615,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "7kFBLq2Iczmj0lVnVk8Ad",
          "type": "arrow"
        }
      ],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "ellipse",
      "version": 547,
      "versionNonce": 1585505943,
      "isDeleted": false,
      "id": "ggogfJT7E_bbfEog7Hjnp",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 1083.7911569735343,
      "y": 809.5203742153592,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 18.814646969963974,
      "height": 18.814646969963974,
      "seed": 741463161,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 2
      },
      "boundElements": [
        {
          "id": "nRDWQs5nQa37yzCWTBiXC",
          "type": "arrow"
        }
      ],
      "updated": 1698927613072,
      "link": null,
      "locked": false
    },
    {
      "type": "text",
      "version": 229,
      "versionNonce": 1935127129,
      "isDeleted": false,
      "id": "eU-EgpwDD42CLYUEIDLaD",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dotted",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 305.8405004265049,
      "y": 389.31989430571576,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 581.25,
      "height": 19.2,
      "seed": 1086231577,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "- merge feature PRs into, and release minors from minor branch",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "- merge feature PRs into, and release minors from minor branch",
      "lineHeight": 1.2,
      "baseline": 15
    },
    {
      "type": "text",
      "version": 397,
      "versionNonce": 116088535,
      "isDeleted": false,
      "id": "Kt6VBAVD4sLM4IexsRGoX",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dotted",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 305.4136207977353,
      "y": 358.61173442109686,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 618.75,
      "height": 19.2,
      "seed": 273353945,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927617946,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "- merge fix / chore PRs into, and release patches from main branch",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "- merge fix / chore PRs into, and release patches from main branch",
      "lineHeight": 1.2,
      "baseline": 15
    },
    {
      "type": "text",
      "version": 459,
      "versionNonce": 440532793,
      "isDeleted": false,
      "id": "JwKEdnU6H_Nu74WbEAX5M",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dotted",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 305.6723761009271,
      "y": 418.3724478537203,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 459.375,
      "height": 19.2,
      "seed": 1001222329,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "- merge main into minor before each minor release",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "- merge main into minor before each minor release",
      "lineHeight": 1.2,
      "baseline": 15
    },
    {
      "type": "text",
      "version": 602,
      "versionNonce": 1108720119,
      "isDeleted": false,
      "id": "mb9ZoP803MiH7MTO8wH-2",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dotted",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 305.0895924262568,
      "y": 447.44321411383333,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#a5d8ff",
      "width": 534.375,
      "height": 19.2,
      "seed": 264651479,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "- fast forward main to minor after a stable minor release",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "- fast forward main to minor after a stable minor release",
      "lineHeight": 1.2,
      "baseline": 15
    },
    {
      "type": "text",
      "version": 612,
      "versionNonce": 1588872441,
      "isDeleted": false,
      "id": "IfJPOFiwrCibpaBQqc5g-",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 2,
      "opacity": 100,
      "angle": 0,
      "x": 646.7131179044119,
      "y": 724.4984335940012,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#ffc9c9",
      "width": 131.25,
      "height": 57.599999999999994,
      "seed": 1301100087,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1698927613072,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 3,
      "text": "merge main\ninto minor\nbefore release",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "merge main\ninto minor\nbefore release",
      "lineHeight": 1.2,
      "baseline": 53
    }
  ],
  "appState": {
    "gridSize": null,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}

================================================
FILE: .github/maintenance.md
================================================
# Vue Core Maintenance Handbook

Unlike [contributing.md](./contributing.md), which targets external contributors, this document is mainly intended for team members responsible for maintaining the project. It provides guidelines on how to triage issues, review & merge PRs, and publish releases. However, it should also be valuable to external contributors even if you are not a maintainer, as it gives you a better idea of how the maintainers operate, and how you can better collaborate with them. And who knows - maybe one day you will join as a maintainer as well!

- [Issue Triage Workflow](#issue-triage-workflow)
- [Pull Request Review Guidelines](#pull-request-review-guidelines)
  - [Reviewing a Fix](#reviewing-a-fix)
  - [Reviewing a Refactor](#reviewing-a-refactor)
  - [Reviewing a Feature](#reviewing-a-feature)
  - [Common Considerations for All PRs](#common-considerations-for-all-prs)
- [PR Merge Rules for Team Members](#pr-merge-rules-for-team-members)
- [Git Branch and Release Workflow](#git-branch-and-release-workflow)

## Issue Triage Workflow

![Workflow](./issue-workflow.png)

## Pull Request Review Guidelines

The first step of reviewing a PR is to identify its purpose. We can usually put a PR in one of these categories:

- **Fix**: fixes some wrong behavior. Usually associated with an issue that has a reproduction of the behavior being fixed.
- **Refactor**: improves performance or code quality, but does not affect behavior.
- **Feature**: implements something that increases the public API surface.

Depending on the type of the PR, different considerations need to be taken into account.

### Reviewing a Fix

- Is the PR fixing a well defined issue / bug report?
  - If not, ask to clarify context / provide reproduction or failing test case
- In most cases, a fix PR should include a test case that fails without the fix.
- Is it the right fix?
  - If not, guide user to rework the PR.
  - If the needed change is small and obvious, can directly push to the PR or add inline suggestions to reduce the back-and-forth.
- Is the cost justified?
  - Sometimes the fix for a rare edge case might be introducing disproportionately large overhead (perf or code size). We should try our best to reduce the overhead to make the fix a reasonable tradeoff.
- If the reviewer is not sure about a fix, try to leave a comment explaining the concerns / reservations so the contributor at least gets some feedback.

#### Verifying a Fix

- **Always locally verify that the fix indeed fixes the original behavior, either through a reproduction or a failing test case.**
- We will run [ecosystem-ci](https://github.com/vuejs/ecosystem-ci) before every release, but if you are concerned about the potential impact of a change, it never hurts to manually run ecosystem-ci by leaving a `/ecosystem-ci run` comment (only works for team members).
- Take extra caution with snapshot tests! The CI can be "passing" even if the code generated in the snapshot contains bugs. It's best to always accompany a snapshot test with extra `expect(code).toMatch(...)` assertions.

### Reviewing a Refactor

- Performance: if a refactor PR claims to improve performance, there should be benchmarks showcasing said performance unless the improvement is self-explanatory.

- Code quality / stylistic PRs: we should be conservative on merging this type of PRs because (1) they can be subjective in many cases, and (2) they often come with large git diffs, causing merge conflicts with other pending PRs, and leading to unwanted noise when tracing changes through git history. Use your best judgement on this type of PRs on whether they are worth it.
  - For PRs in this category that are approved, do not merge immediately. Group them before releasing a new minor, after all feature-oriented PRs are merged.

### Reviewing a Feature

- Feature PRs should always have clear context and explanation on why the feature should be added, ideally in the form of an RFC. If the PR doesn't explain what real-world problem it is solving, ask the contributor to clarify.

- Decide if the feature should require an RFC process. The line isn't always clear, but a rough criteria is whether it is augmenting an existing API vs. adding a new API. Some examples:
  - Adding a new built-in component or directive is "significant" and definitely requires an RFC.
  - Template syntax additions like adding a new `v-on` modifier or a new `v-bind` syntax sugar are "substantial". It would be nice to have an RFC for it, but a detailed explanation on the use case and reasoning behind the design directly in the PR itself can be acceptable.
  - Small, low-impact additions like exposing a new utility type or adding a new app config option can be self-explanatory, but should still provide enough context in the PR.

- Always ask if the use case can be solved with existing APIs. Vue already has a pretty large API surface, so we want to make sure every new addition either solves something that wasn't possible before, or significantly improves the DX of a common task.

### Common Considerations for All PRs

- Scope: a PR should only contain changes directly related to the problem being addressed. It should not contain unnecessary code style changes.

- Implementation: code style should be consistent with the rest of the codebase, follow common best practices. Prefer code that is boring but easy to understand over "clever" code.

- Size: bundle size matters. We have a GitHub action that compares the size change for every PR. We should always aim to realize the desired changes with the smallest amount of code size increase.
  - Sometimes we need to compare the size increase vs. perceived benefits to decide whether a change is justifiable. Also take extra care to make sure added code can be tree-shaken if not needed.

  - Make sure to put dev-only code in `__DEV__` branches so they are tree-shakable.

  - Runtime code is more sensitive to size increase than compiler code.

  - Make sure it doesn't accidentally cause dev-only or compiler-only code branches to be included in the runtime build. Notable case is that some functions in @vue/shared are compiler-only and should not be used in runtime code, e.g. `isHTMLTag` and `isSVGTag`.

- Performance
  - Be careful about code changes in "hot paths", in particular the Virtual DOM renderer (`runtime-core/src/renderer.ts`) and component instantiation code.

- Potential Breakage
  - avoiding runtime behavior breakage is the highest priority
    - if not sure, use `ecosystem-ci` to verify!
  - some fixes inevitably cause behavior change, these must be discussed case-by-case
  - type level breakage (e.g upgrading TS) is possible between minors

## PR Merge Rules for Team Members

Given that the PR meets the review requirements:

- Chore / dependencies bumps: can merge directly.
- Fixes / refactors: can merge with two or more approvals from team members.
  - If you believe a PR looks good but you are not 100% confident to merge, label with "ready for merge" and Evan will provide a final review before merging.
- Features: if approved by two or more team members, label with "ready to merge". Evan will review periodically, or they can be raised and discussed at team meetings.

## Git Branch and Release Workflow

We use two primary work branches: `main` and `minor`.

- The `main` branch is for stable releases. Changes that are bug fixes or refactors that do not affect the public API surface should land in this branch. We periodically release patch releases from the `main` branch.

- The `minor` branch is the WIP branch for the next minor release. Changes that are new features or those that affect public API behavior should land in this branch. We will periodically release pre-releases (alpha / beta) for the next minor from this branch.

Before each release, we merge latest `main` into `minor` so it would include the latest bug fixes.

When the minor is ready, we do a final merge of `main` into `minor`, and then release a stable minor from this branch (e.g. `3.4.0`). After that, the `main` branch is fast-forwarded to the release commit, so the two branches are synced at each stable minor release.

![Workflow](./git-branch-workflow.png)

### Reasoning Behind the Workflow

The reason behind this workflow is to allow merging and releasing of fixes and features in parallel. In the past, we used a linear trunk-based development model. While the linear model results in a clean git history, the downside is that we need to be careful about when to merge patches vs. features.

Vue typically groups a number of features with the same scope in a minor release. We don't want to release a minor just because we happened to merge a feature PR along with a bunch of small bug fixes. So we usually "wait" until we feel we are ready to start working on a minor release before merging feature PRs.

But in reality, there are always bugs to fix and patch release to work on - this caused the intervals between minors to drag on longer than we had hoped, and many feature PRs were left waiting for a long period of time.

This is why we decided to separate bug fixes and feature PRs into separate branches. With this two-branch model, we are able to merge and release both types of changes in parallel.


================================================
FILE: .github/renovate.json5
================================================
{
  $schema: 'https://docs.renovatebot.com/renovate-schema.json',
  extends: ['config:recommended', 'schedule:weekly', 'group:allNonMajor'],
  labels: ['dependencies'],
  ignorePaths: ['**/__tests__/**'],
  rangeStrategy: 'bump',
  packageRules: [
    {
      matchDepTypes: ['peerDependencies'],
      enabled: false,
    },
    {
      groupName: 'test',
      matchPackageNames: ['vitest', 'jsdom', 'puppeteer', '@vitest{/,}**'],
    },
    {
      groupName: 'playground',
      matchFileNames: [
        'packages-private/sfc-playground/package.json',
        'packages-private/template-explorer/package.json',
      ],
    },
    {
      groupName: 'compiler',
      matchPackageNames: ['magic-string', '@babel{/,}**', 'postcss{/,}**'],
    },
    {
      groupName: 'build',
      matchPackageNames: [
        'vite',
        '@swc/core',
        'rollup{/,}**',
        'esbuild{/,}**',
        '@rollup{/,}**',
        '@vitejs{/,}**',
      ],
    },
    {
      groupName: 'lint',
      matchPackageNames: [
        'simple-git-hooks',
        'lint-staged',
        'typescript-eslint{/,}**',
        'eslint{/,}**',
        'prettier{/,}**',
      ],
    },
  ],
  ignoreDeps: [
    'vue',

    // manually bumping
    'node',
    'typescript',

    // ESM only
    'estree-walker',

    // pinned
    // https://github.com/vuejs/core/issues/10300#issuecomment-1940855364
    'lru-cache',

    // pinned
    // https://github.com/vuejs/core/commit/a012e39b373f1b6918e5c89856e8f902e1bfa14d
    '@rollup/plugin-replace',

    // pinned
    // only used in example for e2e tests
    'marked',
  ],
}


================================================
FILE: .github/workflows/autofix.yml
================================================
name: autofix.ci

on:
  pull_request:
permissions:
  contents: read

jobs:
  autofix:
    runs-on: ubuntu-latest
    env:
      PUPPETEER_SKIP_DOWNLOAD: 'true'
    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          registry-url: 'https://registry.npmjs.org'
          cache: 'pnpm'

      - run: pnpm install

      - name: Run eslint
        run: pnpm run lint --fix

      - name: Run prettier
        run: pnpm run format

      - uses: autofix-ci/action@7a166d7532b277f34e16238930461bf77f9d7ed8


================================================
FILE: .github/workflows/ci.yml
================================================
name: 'ci'
on:
  push:
    branches:
      - '**'
    tags:
      - '!**'
  pull_request:
    branches:
      - main
      - minor

jobs:
  test:
    if: ${{ ! startsWith(github.event.head_commit.message, 'release:') && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) }}
    uses: ./.github/workflows/test.yml

  continuous-release:
    if: github.repository == 'vuejs/core'
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          registry-url: 'https://registry.npmjs.org'
          cache: 'pnpm'

      - name: Install deps
        run: pnpm install

      - name: Build
        run: pnpm build --withTypes

      - name: Release
        run: pnpx pkg-pr-new publish --compact --pnpm './packages/*' --packageManager=pnpm,npm,yarn


================================================
FILE: .github/workflows/close-cant-reproduce-issues.yml
================================================
name: Auto close issues with "can't reproduce" label

on:
  schedule:
    - cron: '0 0 * * *'

permissions:
  issues: write

jobs:
  close-issues:
    if: github.repository == 'vuejs/core'
    runs-on: ubuntu-latest
    steps:
      - name: can't reproduce
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'close-issues'
          token: ${{ secrets.GITHUB_TOKEN }}
          labels: "can't reproduce"
          inactive-day: 3


================================================
FILE: .github/workflows/ecosystem-ci-trigger.yml
================================================
name: ecosystem-ci trigger

on:
  issue_comment:
    types: [created]

jobs:
  trigger:
    runs-on: ubuntu-latest
    if: github.repository == 'vuejs/core' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/ecosystem-ci run')
    steps:
      - name: Check user permission
        uses: actions/github-script@v8
        with:
          script: |
            const user = context.payload.sender.login
            console.log(`Validate user: ${user}`)

            let isVuejsMember = false
            try {
              const { status } = await github.rest.orgs.checkMembershipForUser({
                org: 'vuejs',
                username: user
              });

              isVuejsMember = (status === 204)
            } catch (e) {}

            if (isVuejsMember) {
              console.log('Allowed')
              await github.rest.reactions.createForIssueComment({
                owner: context.repo.owner,
                repo: context.repo.repo,
                comment_id: context.payload.comment.id,
                content: '+1',
              })
            } else {
              console.log('Not allowed')
              await github.rest.reactions.createForIssueComment({
                owner: context.repo.owner,
                repo: context.repo.repo,
                comment_id: context.payload.comment.id,
                content: '-1',
              })
              throw new Error('not allowed')
            }
      - name: Get PR info
        uses: actions/github-script@v8
        id: get-pr-data
        with:
          script: |
            console.log(`Get PR info: ${context.repo.owner}/${context.repo.repo}#${context.issue.number}`)
            const { data: pr } = await github.rest.pulls.get({
              owner: context.repo.owner,
              repo: context.repo.repo,
              pull_number: context.issue.number
            })
            return {
              num: context.issue.number,
              branchName: pr.head.ref,
              repo: pr.head.repo.full_name,
              commit: pr.head.sha
            }
      - name: Trigger run
        uses: actions/github-script@v8
        id: trigger
        env:
          COMMENT: ${{ github.event.comment.body }}
        with:
          github-token: ${{ secrets.ECOSYSTEM_CI_ACCESS_TOKEN }}
          result-encoding: string
          script: |
            const comment = process.env.COMMENT.trim()
            const prData = ${{ steps.get-pr-data.outputs.result }}

            const suite = comment.replace(/^\/ecosystem-ci run/, '').trim()

            await github.rest.actions.createWorkflowDispatch({
              owner: context.repo.owner,
              repo: 'ecosystem-ci',
              workflow_id: 'ecosystem-ci-from-pr.yml',
              ref: 'main',
              inputs: {
                prNumber: '' + prData.num,
                branchName: prData.branchName,
                repo: prData.repo,
                suite: suite === '' ? '-' : suite,
                commit: prData.commit
              }
            })


================================================
FILE: .github/workflows/lock-closed-issues.yml
================================================
name: Lock Closed Issues

on:
  schedule:
    - cron: '0 0 * * *'

permissions:
  issues: write

jobs:
  action:
    if: github.repository == 'vuejs/core'
    runs-on: ubuntu-latest
    steps:
      - uses: dessant/lock-threads@v6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          issue-inactive-days: '14'
          issue-lock-reason: ''
          process-only: 'issues'


================================================
FILE: .github/workflows/release.yml
================================================
name: Release

on:
  push:
    tags:
      - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
  test:
    uses: ./.github/workflows/test.yml

  release:
    # prevents this action from running on forks
    if: github.repository == 'vuejs/core'
    needs: [test]
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
    # Use Release environment for deployment protection
    environment: Release
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          registry-url: 'https://registry.npmjs.org'
          cache: 'pnpm'

      - name: Install deps
        run: pnpm install

      - name: Update npm
        run: npm i -g npm@latest

      - name: Build and publish
        id: publish
        run: |
          pnpm release --publishOnly

      - name: Create GitHub release
        id: release_tag
        uses: yyx990803/release-tag@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          body: |
            For stable releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/main/CHANGELOG.md) for details.
            For pre-releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/minor/CHANGELOG.md) of the `minor` branch.


================================================
FILE: .github/workflows/size-data.yml
================================================
name: size data

on:
  push:
    branches:
      - main
      - minor
  pull_request:
    branches:
      - main
      - minor

permissions:
  contents: read

env:
  PUPPETEER_SKIP_DOWNLOAD: 'true'

jobs:
  upload:
    if: github.repository == 'vuejs/core'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: pnpm

      - name: Install dependencies
        run: pnpm install

      - run: pnpm run size

      - name: Save PR number & base branch
        if: ${{github.event_name == 'pull_request'}}
        run: |
          echo ${{ github.event.number }} > ./temp/size/number.txt
          echo ${{ github.base_ref }} > ./temp/size/base.txt

      - name: Upload Size Data
        uses: actions/upload-artifact@v7
        with:
          name: size-data
          path: temp/size


================================================
FILE: .github/workflows/size-report.yml
================================================
name: size report

on:
  workflow_run:
    workflows: ['size data']
    types:
      - completed

permissions:
  contents: read
  pull-requests: write
  issues: write

env:
  PUPPETEER_SKIP_DOWNLOAD: 'true'

jobs:
  size-report:
    runs-on: ubuntu-latest
    if: >
      github.repository == 'vuejs/core' &&
      github.event.workflow_run.event == 'pull_request' &&
      github.event.workflow_run.conclusion == 'success'
    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: pnpm

      - name: Install dependencies
        run: pnpm install

      - name: Download Size Data
        uses: dawidd6/action-download-artifact@v14
        with:
          name: size-data
          run_id: ${{ github.event.workflow_run.id }}
          path: temp/size

      - name: Read PR Number
        id: pr-number
        uses: juliangruber/read-file-action@v1
        with:
          path: temp/size/number.txt

      - name: Read base branch
        id: pr-base
        uses: juliangruber/read-file-action@v1
        with:
          path: temp/size/base.txt

      - name: Download Previous Size Data
        uses: dawidd6/action-download-artifact@v14
        with:
          branch: ${{ steps.pr-base.outputs.content }}
          workflow: size-data.yml
          event: push
          name: size-data
          path: temp/size-prev
          if_no_artifact_found: warn

      - name: Prepare report
        run: node scripts/size-report.js > size-report.md

      - name: Read Size Report
        id: size-report
        uses: juliangruber/read-file-action@v1
        with:
          path: ./size-report.md

      - name: Create Comment
        uses: actions-cool/maintain-one-comment@v3
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          number: ${{ steps.pr-number.outputs.content }}
          body: |
            ${{ steps.size-report.outputs.content }}
            <!-- VUE_CORE_SIZE -->
          body-include: '<!-- VUE_CORE_SIZE -->'


================================================
FILE: .github/workflows/test.yml
================================================
name: 'test'

on: workflow_call

permissions:
  contents: read # to fetch code (actions/checkout)

jobs:
  unit-test:
    runs-on: ubuntu-latest
    env:
      PUPPETEER_SKIP_DOWNLOAD: 'true'
    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: 'pnpm'

      - run: pnpm install

      - name: Run unit tests
        run: pnpm run test-unit

  unit-test-windows:
    runs-on: windows-latest
    env:
      PUPPETEER_SKIP_DOWNLOAD: 'true'
    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: 'pnpm'

      - run: pnpm install

      - name: Run compiler unit tests
        run: pnpm run test-unit compiler

      - name: Run ssr unit tests
        run: pnpm run test-unit server-renderer

  e2e-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Setup cache for Chromium binary
        uses: actions/cache@v5
        with:
          path: ~/.cache/puppeteer
          key: chromium-${{ hashFiles('pnpm-lock.yaml') }}

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: 'pnpm'

      - run: pnpm install
      - run: node node_modules/puppeteer/install.mjs

      - name: Run e2e tests
        run: pnpm run test-e2e

      - name: verify treeshaking
        run: node scripts/verify-treeshaking.js

  lint-and-test-dts:
    runs-on: ubuntu-latest
    env:
      PUPPETEER_SKIP_DOWNLOAD: 'true'
    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v4.2.0

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version-file: '.node-version'
          cache: 'pnpm'

      - run: pnpm install

      - name: Run eslint
        run: pnpm run lint

      - name: Run prettier
        run: pnpm run format-check

      - name: Run tsc
        run: pnpm run check

      - name: Run type declaration tests
        run: pnpm run test-dts


================================================
FILE: .gitignore
================================================
dist
.DS_Store
node_modules
coverage
temp
explorations
TODOs.md
*.log
.idea
.eslintcache
dts-build/packages
*.tsbuildinfo
*.tgz


================================================
FILE: .node-version
================================================
lts/*

================================================
FILE: .prettierignore
================================================
dist
pnpm-lock.yaml
CHANGELOG*.md


================================================
FILE: .prettierrc
================================================
{
  "semi": false,
  "singleQuote": true,
  "arrowParens": "avoid"
}


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": ["vitest.explorer"]
}


================================================
FILE: .vscode/launch.json
================================================
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Vitest - Debug Current Test File",
      "autoAttachChildProcesses": true,
      "skipFiles": ["<node_internals>/**", "**/node_modules/**"],
      "program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
      "args": ["run", "${relativeFile}"],
      "smartStep": true,
      "console": "integratedTerminal"
    }
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  // Use the project's typescript version
  "typescript.tsdk": "node_modules/typescript/lib",

  "cSpell.enabledLanguageIds": ["markdown", "plaintext", "text", "yml"],

  // Use prettier to format TypeScript, JavaScript and JSON files
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "editor.formatOnSave": true
}


================================================
FILE: .well-known/funding-manifest-urls
================================================
https://vuejs.org/funding.json


================================================
FILE: BACKERS.md
================================================
<h1 align="center">Sponsors &amp; Backers</h1>

Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of the awesome sponsors and backers listed in this file. If you'd like to join them, please consider [ sponsoring Vue's development](https://vuejs.org/sponsor/).

<p align="center">
  <a target="_blank" href="https://sponsors.vuejs.org/backers.svg">
    <img alt="sponsors" src="https://sponsors.vuejs.org/backers.svg?v1">
  </a>
</p>


================================================
FILE: CHANGELOG.md
================================================
## [3.5.30](https://github.com/vuejs/core/compare/v3.5.29...v3.5.30) (2026-03-09)


### Bug Fixes

* **compat:** add `entities` to @vue/compat deps to fix CJS edge cases ([#12514](https://github.com/vuejs/core/issues/12514)) ([e725a67](https://github.com/vuejs/core/commit/e725a679e434a688c3493fc9af496501a8d1eeec)), closes [#10609](https://github.com/vuejs/core/issues/10609)
* **custom-element:** ensure child component styles are injected in correct order before parent styles ([#13374](https://github.com/vuejs/core/issues/13374)) ([1398bf8](https://github.com/vuejs/core/commit/1398bf8dfbfef6b1bca154fc98d37044011a51be)), closes [#13029](https://github.com/vuejs/core/issues/13029)
* **custom-element:** properly locate parent when slotted in shadow dom ([#12480](https://github.com/vuejs/core/issues/12480)) ([f06c81a](https://github.com/vuejs/core/commit/f06c81aa3dddbeff8bc2e2e63c0b6b6debcbdc13)), closes [#12479](https://github.com/vuejs/core/issues/12479)
* **custom-element:** should properly patch as props for vue custom elements ([#12409](https://github.com/vuejs/core/issues/12409)) ([740983e](https://github.com/vuejs/core/commit/740983e6736255b183ee27a3f8b40e89ad7e3ba3)), closes [#12408](https://github.com/vuejs/core/issues/12408)
* **reactivity:** avoid duplicate raw/proxy entries in Set.add ([#14545](https://github.com/vuejs/core/issues/14545)) ([d943612](https://github.com/vuejs/core/commit/d943612e59feb656e16568dea77b97856923c58c))
* **reactivity:** fix reduce on reactive arrays to preserve reactivity ([#12737](https://github.com/vuejs/core/issues/12737)) ([16ef165](https://github.com/vuejs/core/commit/16ef165415224def18ec8247dabb84d5a1338c17)), closes [#12735](https://github.com/vuejs/core/issues/12735)
* **reactivity:** handle `Set` with initial reactive values edge case ([#12393](https://github.com/vuejs/core/issues/12393)) ([5dc27ca](https://github.com/vuejs/core/commit/5dc27ca68fdbab95b37af15870d91515fc2412b2)), closes [#8647](https://github.com/vuejs/core/issues/8647)
* **runtime-core:** warn about negative number in v-for ([#12308](https://github.com/vuejs/core/issues/12308)) ([9438cc5](https://github.com/vuejs/core/commit/9438cc54506a38038a1bf4b6698025f9a4cafb48))
* **ssr:** prevent watch from firing after async setup await ([#14547](https://github.com/vuejs/core/issues/14547)) ([6cda71d](https://github.com/vuejs/core/commit/6cda71d48bd45c5e0ed2822866b83c4fafff1be9)), closes [#14546](https://github.com/vuejs/core/issues/14546)
* **types:** make generics with runtime props in defineComponent work (fix [#11374](https://github.com/vuejs/core/issues/11374)) ([#13119](https://github.com/vuejs/core/issues/13119)) ([cea3cf7](https://github.com/vuejs/core/commit/cea3cf758645c9683db51822590b073ce3069dda)), closes [#13763](https://github.com/vuejs/core/issues/13763)
* **types:** narrow useAttrs class/style typing for TSX ([#14492](https://github.com/vuejs/core/issues/14492)) ([bbb8977](https://github.com/vuejs/core/commit/bbb89775b137eac12b92ae4eb49999a7fd6b52b0)), closes [#14489](https://github.com/vuejs/core/issues/14489)



## [3.5.29](https://github.com/vuejs/core/compare/v3.5.28...v3.5.29) (2026-02-24)


### Bug Fixes

* **runtime-core:** prevent instance leak in withAsyncContext ([#14445](https://github.com/vuejs/core/issues/14445)) ([702284f](https://github.com/vuejs/core/commit/702284f6a7d0dd6d4e648142e7977a3eb02d77f5)), closes [nuxt/nuxt#33644](https://github.com/nuxt/nuxt/issues/33644)
* **server-renderer:** render className as escaped string ([#14469](https://github.com/vuejs/core/issues/14469)) ([da6690c](https://github.com/vuejs/core/commit/da6690cae359ec3576403c18040a1a5f017a63b1))
* **transition:** prevent enter if leave is in progress ([#14443](https://github.com/vuejs/core/issues/14443)) ([df059f8](https://github.com/vuejs/core/commit/df059f890460e4c703b62a54f410627ff29c489b)), closes [#12091](https://github.com/vuejs/core/issues/12091) [#12133](https://github.com/vuejs/core/issues/12133)



## [3.5.28](https://github.com/vuejs/core/compare/v3.5.27...v3.5.28) (2026-02-09)


### Bug Fixes

* **transition:** avoid unexpected `cancelled` parameter in transition `done` callback ([#14391](https://github.com/vuejs/core/issues/14391)) ([6798853](https://github.com/vuejs/core/commit/67988530f6a3cfdd0d80bf967033cb9abf377174))
* **compiler-sfc:** add resolution trying for `.mts/.cts` files ([#14402](https://github.com/vuejs/core/issues/14402)) ([c09d41f](https://github.com/vuejs/core/commit/c09d41ffe150903b1fcd69a6f6bdeea2d2c6c243)), closes [vuejs/router#2611](https://github.com/vuejs/router/issues/2611)
* **compiler-sfc:** no params were generated when using withDefaults ([#12823](https://github.com/vuejs/core/issues/12823)) ([b0a1f05](https://github.com/vuejs/core/commit/b0a1f0504a67fb1a6a110a5d05cdec0b878dde29)), closes [#12822](https://github.com/vuejs/core/issues/12822)
* **reactivity:** add `__v_skip` flag to `EffectScope` to prevent reactive conversion ([#14359](https://github.com/vuejs/core/issues/14359)) ([48b7552](https://github.com/vuejs/core/commit/48b7552cce784725376a4fab078272676ce02d69)), closes [#14357](https://github.com/vuejs/core/issues/14357)
* **runtime-core:** avoid retaining el on cached text vnodes during static traversal ([#14419](https://github.com/vuejs/core/issues/14419)) ([4ace79a](https://github.com/vuejs/core/commit/4ace79ac4c66a4f96cd330b47474ce117bc851ab)), closes [#14134](https://github.com/vuejs/core/issues/14134)
* **runtime-core:** prevent child component updates when style remains unchanged ([#12825](https://github.com/vuejs/core/issues/12825)) ([57866b5](https://github.com/vuejs/core/commit/57866b5af1aff7ce1026b529443b81465c56f802)), closes [#12826](https://github.com/vuejs/core/issues/12826)
* **runtime-core:** properly handle async component update before resolve ([#11619](https://github.com/vuejs/core/issues/11619)) ([e71c26c](https://github.com/vuejs/core/commit/e71c26c03d44c9c93569ed7ebfe7dabaf3bbdb06)), closes [#11617](https://github.com/vuejs/core/issues/11617)
* **runtime-dom:** handle null/undefined handler in withModifiers ([#14362](https://github.com/vuejs/core/issues/14362)) ([261de54](https://github.com/vuejs/core/commit/261de547cd6685fc8862679941d93b530d504731)), closes [#14361](https://github.com/vuejs/core/issues/14361)
* **teleport:** properly handling disabled teleport target anchor ([#14417](https://github.com/vuejs/core/issues/14417)) ([d7bcd85](https://github.com/vuejs/core/commit/d7bcd858883d90a1593b45cdc43f9fa55bc790bc)), closes [#14412](https://github.com/vuejs/core/issues/14412)
* **transition-group:** correct move translation under scale via element rect ([#14360](https://github.com/vuejs/core/issues/14360)) ([0243a79](https://github.com/vuejs/core/commit/0243a792ac1cf8b0308f552927ed2ecd8627b839)), closes [#14356](https://github.com/vuejs/core/issues/14356)
* **useTemplateRef:** don't update setup ref for useTemplateRef key ([#12756](https://github.com/vuejs/core/issues/12756)) ([fc40ca0](https://github.com/vuejs/core/commit/fc40ca0216a7028f6ec0195344c976423e239ef3)), closes [#12749](https://github.com/vuejs/core/issues/12749)



## [3.5.27](https://github.com/vuejs/core/compare/v3.5.26...v3.5.27) (2026-01-19)


### Bug Fixes

* **compile-sfc:** correctly handle variable shadowing in for loop for `defineProps` destructuring. ([#14296](https://github.com/vuejs/core/issues/14296)) ([6a1bb50](https://github.com/vuejs/core/commit/6a1bb50594db03904f401fc33ea85afa8fa71cf7)), closes [#14294](https://github.com/vuejs/core/issues/14294)
* **compiler-sfc:** handle indexed access types in declare global blocks ([#14260](https://github.com/vuejs/core/issues/14260)) ([e4091fe](https://github.com/vuejs/core/commit/e4091fe1f917346a66ffa8d013b3cf4b331b6682)), closes [#14236](https://github.com/vuejs/core/issues/14236)
* **compiler-sfc:** use correct scope when resolving indexed access types from external files ([#14297](https://github.com/vuejs/core/issues/14297)) ([f0f0a21](https://github.com/vuejs/core/commit/f0f0a21dfaf0f41bb2198106db0f4ff32b97dcd3)), closes [#14292](https://github.com/vuejs/core/issues/14292)
* **reactivity:** collection iteration should inherit iterator instance methods ([#12644](https://github.com/vuejs/core/issues/12644)) ([3c8b2fc](https://github.com/vuejs/core/commit/3c8b2fc836b2f60c90c2459933e66b2fd9fb8c08)), closes [#12615](https://github.com/vuejs/core/issues/12615)
* **runtime-core:** skip patching reserved props for custom elements ([#14275](https://github.com/vuejs/core/issues/14275)) ([19cc7e2](https://github.com/vuejs/core/commit/19cc7e2cd053629f3233cd55dff98951e69f5391)), closes [#14274](https://github.com/vuejs/core/issues/14274)
* **server-renderer:** use ssrRenderClass helper for className attribute ([#14327](https://github.com/vuejs/core/issues/14327)) ([a4708f3](https://github.com/vuejs/core/commit/a4708f324f62ac2122f87c4ee039deb2745f0905))
* **ssr:** handle v-bind modifiers during render attrs ([#14263](https://github.com/vuejs/core/issues/14263)) ([c2f5964](https://github.com/vuejs/core/commit/c2f5964c47890321cab40fcf0ebc528e6d00337f)), closes [#14262](https://github.com/vuejs/core/issues/14262)



## [3.5.26](https://github.com/vuejs/core/compare/v3.5.25...v3.5.26) (2025-12-18)


### Bug Fixes

* **compat:** fix compat handler of draggable ([#12445](https://github.com/vuejs/core/issues/12445)) ([ed85953](https://github.com/vuejs/core/commit/ed85953e28741ae1913cfc92b7b66e1a8da47f8c)), closes [#12444](https://github.com/vuejs/core/issues/12444)
* **compat:** handle v-model deprecation warning with missing appContext ([#14203](https://github.com/vuejs/core/issues/14203)) ([945a543](https://github.com/vuejs/core/commit/945a543152e8d80903d4f7a18a84ebe8d36e56f8)), closes [#14202](https://github.com/vuejs/core/issues/14202)
* **compiler-sfc:** demote const reactive bindings used in v-model ([#14214](https://github.com/vuejs/core/issues/14214)) ([e24ff7d](https://github.com/vuejs/core/commit/e24ff7d302a887ea532571c231a385362fa17279)), closes [#11265](https://github.com/vuejs/core/issues/11265) [#11275](https://github.com/vuejs/core/issues/11275)
* **compiler-ssr:** handle ssr attr fallthrough when preserve whitespace ([#12304](https://github.com/vuejs/core/issues/12304)) ([4783118](https://github.com/vuejs/core/commit/47831189196b62b12dd17f6e909efc51d9d22fd2)), closes [#8072](https://github.com/vuejs/core/issues/8072)
* **hmr:** handle cached text node update ([#14134](https://github.com/vuejs/core/issues/14134)) ([69ce3c7](https://github.com/vuejs/core/commit/69ce3c7d755db868cfa66d67ab5b3f383a44e053)), closes [#14127](https://github.com/vuejs/core/issues/14127)
* **keep-alive:** use resolved component name for async components in cache pruning ([#14212](https://github.com/vuejs/core/issues/14212)) ([dfe667c](https://github.com/vuejs/core/commit/dfe667c8567d48167c250062483d2d2cfc7bdc03)), closes [#14210](https://github.com/vuejs/core/issues/14210)
* **runtime-core:** ensure correct anchor el for deeper unresolved async components ([#14182](https://github.com/vuejs/core/issues/14182)) ([f5b3bf2](https://github.com/vuejs/core/commit/f5b3bf264d2e12725381bed1c492069437069b03)), closes [#14173](https://github.com/vuejs/core/issues/14173)
* **runtime-core:** handle patch stable fragment edge case ([#12411](https://github.com/vuejs/core/issues/12411)) ([94aeb64](https://github.com/vuejs/core/commit/94aeb64ccdf20d541059b533c9780977c14db9cb)), closes [#12410](https://github.com/vuejs/core/issues/12410)
* **runtime-core:** pass component instance to flushPreFlushCbs on unmount ([#14221](https://github.com/vuejs/core/issues/14221)) ([e857e12](https://github.com/vuejs/core/commit/e857e12c0aff03c0148e3e52d92935918872dc33)), closes [#14215](https://github.com/vuejs/core/issues/14215)


### Performance Improvements

* **compiler-core:** use binary-search to get line and column ([#14222](https://github.com/vuejs/core/issues/14222)) ([1904053](https://github.com/vuejs/core/commit/1904053f1f7986c2d6dbe858ee1b594b4b229c17))



## [3.5.25](https://github.com/vuejs/core/compare/v3.5.24...v3.5.25) (2025-11-24)


### Bug Fixes

* **compiler:** share logic for comments and whitespace ([#13550](https://github.com/vuejs/core/issues/13550)) ([2214f7a](https://github.com/vuejs/core/commit/2214f7ab2940bcb751cd20130c020d895db6c042))
* **provide:** warn when using `provide` after mounting ([#13954](https://github.com/vuejs/core/issues/13954)) ([247b2c2](https://github.com/vuejs/core/commit/247b2c2067afc4dee52f9f7bc194f3aab347ac55)), closes [#13921](https://github.com/vuejs/core/issues/13921) [#13924](https://github.com/vuejs/core/issues/13924)
* **reactivity:** correctly wrap iterated array items to preserve their readonly status ([#14120](https://github.com/vuejs/core/issues/14120)) ([301020b](https://github.com/vuejs/core/commit/301020b481e85d03b0c96000f3221372063c41c6))
* **reactivity:** toRef edge cases for ref unwrapping ([#12420](https://github.com/vuejs/core/issues/12420)) ([0d2357e](https://github.com/vuejs/core/commit/0d2357e6974678d5484751c869f429dc6ea85582))
* **runtime-core:** keep options API typing intact when expose is used ([#14118](https://github.com/vuejs/core/issues/14118)) ([8f82f23](https://github.com/vuejs/core/commit/8f82f238463160284e504d1751d61b72dabb395e)), closes [#14117](https://github.com/vuejs/core/issues/14117) [vuejs/language-tools#5069](https://github.com/vuejs/language-tools/issues/5069)
* **suspense:** defer clearing fallback vnode el in case it has dirs ([#14080](https://github.com/vuejs/core/issues/14080)) ([c0f63dd](https://github.com/vuejs/core/commit/c0f63ddbfa8fa221d66b683b5c26e471851c2b50)), closes [#14078](https://github.com/vuejs/core/issues/14078)



## [3.5.24](https://github.com/vuejs/core/compare/v3.5.23...v3.5.24) (2025-11-07)


### Reverts

* Revert "fix(compiler-core): correctly handle ts type assertions in expression…" (#14062) ([11ec51a](https://github.com/vuejs/core/commit/11ec51aa5a7914745fee10ed2b9f9464fab4d02c)), closes [#14062](https://github.com/vuejs/core/issues/14062) [#14060](https://github.com/vuejs/core/issues/14060)



## [3.5.23](https://github.com/vuejs/core/compare/v3.5.22...v3.5.23) (2025-11-06)


### Bug Fixes

* **compiler-core:** correctly handle ts type assertions in expressions ([#13397](https://github.com/vuejs/core/issues/13397)) ([e6544ac](https://github.com/vuejs/core/commit/e6544ac292b5b473274f87cdb83ebeac3e7e61a4)), closes [#13395](https://github.com/vuejs/core/issues/13395)
* **compiler-core:** fix v-bind shorthand handling for in-DOM templates ([#13933](https://github.com/vuejs/core/issues/13933)) ([b3cca26](https://github.com/vuejs/core/commit/b3cca2611c656b85f0c4e737b9ec248d2627dded)), closes [#13930](https://github.com/vuejs/core/issues/13930)
* **compiler-sfc:** resolve numeric literals and template literals without expressions as static property key ([#13998](https://github.com/vuejs/core/issues/13998)) ([75d44c7](https://github.com/vuejs/core/commit/75d44c718981f91843e197265cc68e82fe2532dd))
* **compiler-ssr:** textarea with v-text directive SSR ([#13975](https://github.com/vuejs/core/issues/13975)) ([006a0c1](https://github.com/vuejs/core/commit/006a0c1011a224bcbf21195c6df76812c3a7e757))
* **compiler:** using guard instead of non-nullish assertion ([#13982](https://github.com/vuejs/core/issues/13982)) ([dcc6f36](https://github.com/vuejs/core/commit/dcc6f362577ed86ccad31c2623c6cf75137dd27a))
* **custom-element:** batch custom element prop patching ([#13478](https://github.com/vuejs/core/issues/13478)) ([c13e674](https://github.com/vuejs/core/commit/c13e674fb9f92ab9339d28a862d18de460faf56e)), closes [#12619](https://github.com/vuejs/core/issues/12619)
* **custom-element:** optimize slot retrieval to avoid duplicates ([#13961](https://github.com/vuejs/core/issues/13961)) ([84ca349](https://github.com/vuejs/core/commit/84ca349fef73f6f55fc98299fcfa5c1eeef721db)), closes [#13955](https://github.com/vuejs/core/issues/13955)
* **hydration:** avoid mismatch during hydrate text with newlines in interpolation ([#9232](https://github.com/vuejs/core/issues/9232)) ([6cbdf78](https://github.com/vuejs/core/commit/6cbdf7823b0c961190bee5b7c117b7f2bbeb832f)), closes [#9229](https://github.com/vuejs/core/issues/9229)
* **runtime-core:** pass props and children to loadingComponent ([#13997](https://github.com/vuejs/core/issues/13997)) ([40c4b2a](https://github.com/vuejs/core/commit/40c4b2a876ce606973521dfc3024e26bfc10953a))
* **runtime-dom:** ensure iframe sandbox is handled as an attribute to prevent unintended behavior ([#13950](https://github.com/vuejs/core/issues/13950)) ([5689884](https://github.com/vuejs/core/commit/5689884c8e32cda6a802ac36b4d23218f67b38ed)), closes [#13946](https://github.com/vuejs/core/issues/13946)
* **suspense:** clear placeholder and fallback el after resolve to enable GC ([#13928](https://github.com/vuejs/core/issues/13928)) ([f411c66](https://github.com/vuejs/core/commit/f411c6604c12c531883aa0d30b81a7f69092f8a6))
* **transition-group:** use offsetLeft and offsetTop instead of getBoundingClientRect  to avoid transform scale affect animation ([#6108](https://github.com/vuejs/core/issues/6108)) ([dc4dd59](https://github.com/vuejs/core/commit/dc4dd594fbecce6ed7f44ffa69dc8b5d022287b6)), closes [#6105](https://github.com/vuejs/core/issues/6105)
* **v-model:** handle number modifier on change ([#13959](https://github.com/vuejs/core/issues/13959)) ([8fbe48f](https://github.com/vuejs/core/commit/8fbe48fe396d830999afd07f9413d899157d5f5e)), closes [#13958](https://github.com/vuejs/core/issues/13958)



## [3.5.22](https://github.com/vuejs/core/compare/v3.5.21...v3.5.22) (2025-09-25)


### Bug Fixes

* **compiler-core:** identifiers in switch-case should not be inferred as references ([#13923](https://github.com/vuejs/core/issues/13923)) ([5953c9f](https://github.com/vuejs/core/commit/5953c9ff90090e128372f645d377bd99137a5fb4))
* **compiler-dom:** nodes with v-once shouldn't be stringified ([#13878](https://github.com/vuejs/core/issues/13878)) ([95c1975](https://github.com/vuejs/core/commit/95c197560409f5d39a0d376c0a43d89a47a604e8))
* **compiler-sfc:** add support for `@vue-ignore` in runtime type resolution ([#13906](https://github.com/vuejs/core/issues/13906)) ([ba7f7f9](https://github.com/vuejs/core/commit/ba7f7f90f689f6e7e0417a192d081db542de28ec))
* **compiler-sfc:** enhance inferRuntimeType to support TSMappedType with indexed access ([#13848](https://github.com/vuejs/core/issues/13848)) ([e388f1a](https://github.com/vuejs/core/commit/e388f1a09fde78cf006450f060813d972ac8c23d)), closes [#13847](https://github.com/vuejs/core/issues/13847)
* **compiler-sfc:** ensure css custom properties do not start with a digit ([#13870](https://github.com/vuejs/core/issues/13870)) ([9c27951](https://github.com/vuejs/core/commit/9c279517b9bc1f4c250c555ec9b9eb6104756d56))
* **compiler-sfc:** ensure props bindings register before compiling template ([#13922](https://github.com/vuejs/core/issues/13922)) ([abd5638](https://github.com/vuejs/core/commit/abd563822abafe63047f7b599bff266380ee2b64)), closes [#13920](https://github.com/vuejs/core/issues/13920)
* **compiler-ssr:** ensure v-show has a higher priority in SSR ([#12171](https://github.com/vuejs/core/issues/12171)) ([836b829](https://github.com/vuejs/core/commit/836b82976ffb7aa0ea9cbe417bef07deae3ca47c)), closes [#12162](https://github.com/vuejs/core/issues/12162)
* **custom-element:** properly mount multiple Teleports in custom element component w/ shadowRoot false ([#13900](https://github.com/vuejs/core/issues/13900)) ([5e1e791](https://github.com/vuejs/core/commit/5e1e791880238380a1038ae2c505e206ceb34d77)), closes [#13899](https://github.com/vuejs/core/issues/13899)
* **custom-element:** set prop runs pending mutations before disconnect ([#13897](https://github.com/vuejs/core/issues/13897)) ([c4a88cd](https://github.com/vuejs/core/commit/c4a88cdd0dfed3ef46a8aa9be448c01781fdc4f0)), closes [#13315](https://github.com/vuejs/core/issues/13315)
* **custom-element:** use `PatchFlags.BAIL` for slot when props are present ([#13907](https://github.com/vuejs/core/issues/13907)) ([5358bca](https://github.com/vuejs/core/commit/5358bca4a80cf52d19ed91967eeaa025a786083d)), closes [#13904](https://github.com/vuejs/core/issues/13904)
* **reactivity:** respect readonly during ref unwrapping ([#13905](https://github.com/vuejs/core/issues/13905)) ([aba7fed](https://github.com/vuejs/core/commit/aba7feda1703e69e5a7c37f784718de0371adadc)), closes [#13903](https://github.com/vuejs/core/issues/13903)
* **reactivity:** update iterator to check for completion instead of value presence ([#13761](https://github.com/vuejs/core/issues/13761)) ([2078f8b](https://github.com/vuejs/core/commit/2078f8b7565cf637f47fcd5b0abdfb2b264225bb))
* **runtime-core:** simplify block-tracking disabling in `h` helper ([#13841](https://github.com/vuejs/core/issues/13841)) ([75220c7](https://github.com/vuejs/core/commit/75220c7995a13a483ae9599a739075be1c8e17f8))
* **transition-group:** run `forceReflow` on the correct document (fix [#13849](https://github.com/vuejs/core/issues/13849)) ([#13853](https://github.com/vuejs/core/issues/13853)) ([1be5ddf](https://github.com/vuejs/core/commit/1be5ddfe878c8bfddaa2c50e82105b247f50b9ba))
* **types:** more precise types for Events and added missing definitions ([#9675](https://github.com/vuejs/core/issues/9675)) ([8bb8fb2](https://github.com/vuejs/core/commit/8bb8fb236257c03bfa0bccadcfffe3eb4592f71b))
* **types:** set dom stub type to `never` instead of `{}` ([#13915](https://github.com/vuejs/core/issues/13915)) ([8620a61](https://github.com/vuejs/core/commit/8620a616eb02a64fe32dd52d9be68e360687ef9d)), closes [#11564](https://github.com/vuejs/core/issues/11564)
* **types:** widen directive arg type from string to any ([#13758](https://github.com/vuejs/core/issues/13758)) ([4b71706](https://github.com/vuejs/core/commit/4b7170625d0bc93b26a3343aeda98850c1138f82)), closes [#13757](https://github.com/vuejs/core/issues/13757)


### Features

* **custom-element:** allow specifying additional options for `shadowRoot` in custom elements ([#12965](https://github.com/vuejs/core/issues/12965)) ([47e628d](https://github.com/vuejs/core/commit/47e628df1ce1914c5677010ad5bddd18d037cb3c)), closes [#12964](https://github.com/vuejs/core/issues/12964)


### Reverts

* Revert "fix(hmr): prevent __VUE_HMR_RUNTIME__ from being overwritten by vue runtime in 3rd-party libraries" (#13925) ([6b68f72](https://github.com/vuejs/core/commit/6b68f72673dac5db349f26eeefb2f2e0e342586b)), closes [#13925](https://github.com/vuejs/core/issues/13925)



## [3.5.21](https://github.com/vuejs/core/compare/v3.5.20...v3.5.21) (2025-09-02)


### Bug Fixes

* **compiler-core:** force dynamic slots when slot referencing scope vars ([#9427](https://github.com/vuejs/core/issues/9427)) ([99d54b2](https://github.com/vuejs/core/commit/99d54b28b46dbea006205dff71c383a31dd1b87a)), closes [#9380](https://github.com/vuejs/core/issues/9380)
* **compiler-sfc:** check lang before attempt to compile script ([#13508](https://github.com/vuejs/core/issues/13508)) ([55922ff](https://github.com/vuejs/core/commit/55922ff3168a1397ad72f18946eb1c4051cdab3b)), closes [#8368](https://github.com/vuejs/core/issues/8368)
* **compiler-sfc:** support `${configDir}` in paths for TypeScript 5.5+ ([#13491](https://github.com/vuejs/core/issues/13491)) ([8696e34](https://github.com/vuejs/core/commit/8696e346b4780d88247464490f1a992cc0c3658c)), closes [#13484](https://github.com/vuejs/core/issues/13484)
* **compiler-sfc:** support global augments with named exports ([#13789](https://github.com/vuejs/core/issues/13789)) ([35da3c6](https://github.com/vuejs/core/commit/35da3c6dcb30030ef60fa22e30aa83a56e396c60))
* **custom-element:** prevent defineCustomElement from mutating the options object ([#13791](https://github.com/vuejs/core/issues/13791)) ([e322436](https://github.com/vuejs/core/commit/e322436887549c129e61eb58a0084167103451bb))
* **hmr:** prevent `__VUE_HMR_RUNTIME__` from being overwritten by vue runtime in 3rd-party libraries ([#13817](https://github.com/vuejs/core/issues/13817)) ([1392734](https://github.com/vuejs/core/commit/1392734ae5d5a3b2be124753e198eafa324f6815)), closes [vitejs/vite-plugin-vue#644](https://github.com/vitejs/vite-plugin-vue/issues/644)
* **hmr:** prevent update unmounting component during HMR reload ([#13815](https://github.com/vuejs/core/issues/13815)) ([ef20b86](https://github.com/vuejs/core/commit/ef20b86b36a127e317f8981df970dc8efd277053)), closes [vitejs/vite-plugin-vue#599](https://github.com/vitejs/vite-plugin-vue/issues/599)
* **runtime-core:** disable tracking block in h function ([#8213](https://github.com/vuejs/core/issues/8213)) ([8f6b505](https://github.com/vuejs/core/commit/8f6b5050518441a5047d128138da44f798836002)), closes [#6913](https://github.com/vuejs/core/issues/6913)
* **runtime-core:** use separate emits caches for components and mixins ([#11661](https://github.com/vuejs/core/issues/11661)) ([15fc75f](https://github.com/vuejs/core/commit/15fc75f4031dea805c3bbb67a75e48a9dc307c11))
* **Suspence:** handle Suspense + KeepAlive HMR updating edge case ([#13076](https://github.com/vuejs/core/issues/13076)) ([5d75a17](https://github.com/vuejs/core/commit/5d75a170c8d23acd11ef2513173d4cbc4d0b54de)), closes [#13075](https://github.com/vuejs/core/issues/13075)
* **Teleport:** hydrate disabled Teleport with undefined target ([#11235](https://github.com/vuejs/core/issues/11235)) ([00978f7](https://github.com/vuejs/core/commit/00978f7d14e85b49d9d334ea92fa8c03733ce64c)), closes [#11230](https://github.com/vuejs/core/issues/11230)
* **templateRef:** prevent unnecessary set ref on dynamic ref change or component unmount ([#12642](https://github.com/vuejs/core/issues/12642)) ([93ba107](https://github.com/vuejs/core/commit/93ba10767230872fcdca974a1e19e8bd69b7eb6a)), closes [#12639](https://github.com/vuejs/core/issues/12639)
* **watch:** use maximum depth for duplicates ([#13434](https://github.com/vuejs/core/issues/13434)) ([f2699a5](https://github.com/vuejs/core/commit/f2699a5cb376ffa452a54feb171c14411c67287c))


### Performance Improvements

* improve regexp performance with non-capturing groups ([#13567](https://github.com/vuejs/core/issues/13567)) ([1e8b65a](https://github.com/vuejs/core/commit/1e8b65aa4934c94ef6142b4f49cdfb13ba5e6ce5))



## [3.5.20](https://github.com/vuejs/core/compare/v3.5.19...v3.5.20) (2025-08-25)


### Bug Fixes

* **runtime-dom:** add name to vShow for prop mismatch check ([#13806](https://github.com/vuejs/core/issues/13806)) ([1031e8d](https://github.com/vuejs/core/commit/1031e8de08b735059217b1ad0057f62565c99c4f)), closes [#13805](https://github.com/vuejs/core/issues/13805) re-fix [#13744](https://github.com/vuejs/core/issues/13744) revert [#13777](https://github.com/vuejs/core/issues/13777) 



## [3.5.19](https://github.com/vuejs/core/compare/v3.5.18...v3.5.19) (2025-08-21)


### Bug Fixes

* **compiler-core:** adjacent v-else should cause a compiler error ([#13699](https://github.com/vuejs/core/issues/13699)) ([911e670](https://github.com/vuejs/core/commit/911e67045e2a63e0ecbd198ed4f567530f6d1c17)), closes [#13698](https://github.com/vuejs/core/issues/13698)
* **compiler-core:** prevent cached array children from retaining detached dom nodes ([#13691](https://github.com/vuejs/core/issues/13691)) ([7f60ef8](https://github.com/vuejs/core/commit/7f60ef83e735dbd29d323347acecf69f22b06d53)), closes [element-plus/element-plus#21408](https://github.com/element-plus/element-plus/issues/21408) [#13211](https://github.com/vuejs/core/issues/13211)
* **compiler-sfc:** improve type inference for generic type aliases types ([#12876](https://github.com/vuejs/core/issues/12876)) ([d9dd628](https://github.com/vuejs/core/commit/d9dd628800ae32e673bdfabfe79f1988037991d0)), closes [#12872](https://github.com/vuejs/core/issues/12872)
* **compiler-sfc:** throw mismatched script langs error before invoking babel ([#13194](https://github.com/vuejs/core/issues/13194)) ([0562548](https://github.com/vuejs/core/commit/0562548ab3a040073386021222225e0e9d43c632)), closes [#13193](https://github.com/vuejs/core/issues/13193)
* **compiler-ssr:** disable v-memo transform in ssr vdom fallback branch ([#13725](https://github.com/vuejs/core/issues/13725)) ([0a202d8](https://github.com/vuejs/core/commit/0a202d890ff2a564b1fab51e4ac621708640818e)), closes [#13724](https://github.com/vuejs/core/issues/13724)
* **devtools:** clear performance measures ([#13701](https://github.com/vuejs/core/issues/13701)) ([c875019](https://github.com/vuejs/core/commit/c875019d49b4c36a88d929ccadc31ad414747c7b)), closes [#13700](https://github.com/vuejs/core/issues/13700)
* **hmr:** prevent updating unmounting component during HMR rerender ([#13775](https://github.com/vuejs/core/issues/13775)) ([6e5143d](https://github.com/vuejs/core/commit/6e5143d9635dac3f20fb394a827109df30e232ae)), closes [#13771](https://github.com/vuejs/core/issues/13771) [#13772](https://github.com/vuejs/core/issues/13772)
* **hydration:** also set vShow name if `__FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__` flag is enabled ([#13777](https://github.com/vuejs/core/issues/13777)) ([439e1a5](https://github.com/vuejs/core/commit/439e1a543e62de4dbf7658d78d05c358c9677c86)), closes [#13744](https://github.com/vuejs/core/issues/13744)
* **reactivity:** warn on nested readonly ref update during unwrapping ([#12141](https://github.com/vuejs/core/issues/12141)) ([1498821](https://github.com/vuejs/core/commit/1498821ed9eeb22a0767e53ddc1f6a2840598a29))
* **runtime-core:** avoid setting direct ref of useTemplateRef in dev ([#13449](https://github.com/vuejs/core/issues/13449)) ([4a2953f](https://github.com/vuejs/core/commit/4a2953f57b90dfc24e34ff1a87cc1ebb0b97636d))
* **runtime-core:** improve consistency of `PublicInstanceProxyHandlers.has` ([#13507](https://github.com/vuejs/core/issues/13507)) ([d7283f3](https://github.com/vuejs/core/commit/d7283f3b7f0631c8b8a4a31a05983dac9f078c4f))
* **suspense:** don't immediately resolve suspense on last dep unmount ([#13456](https://github.com/vuejs/core/issues/13456)) ([a871315](https://github.com/vuejs/core/commit/a8713159ee24602c7c2b70c5fd52d2e5cd37dca5)), closes [#13453](https://github.com/vuejs/core/issues/13453)
* **transition:** handle KeepAlive + transition leaving edge case ([#13152](https://github.com/vuejs/core/issues/13152)) ([3190b17](https://github.com/vuejs/core/commit/3190b179b0545a3dc4549737793eec630cf9f0d1)), closes [#13153](https://github.com/vuejs/core/issues/13153)



## [3.5.18](https://github.com/vuejs/core/compare/v3.5.17...v3.5.18) (2025-07-23)


### Bug Fixes

* **compiler-core:** avoid cached text vnodes retaining detached DOM nodes ([#13662](https://github.com/vuejs/core/issues/13662)) ([00695a5](https://github.com/vuejs/core/commit/00695a5b41b2d032deaeada83831ff83aa6bfd4e)), closes [#13661](https://github.com/vuejs/core/issues/13661)
* **compiler-core:** avoid self updates of `v-pre` ([#12556](https://github.com/vuejs/core/issues/12556)) ([21b685a](https://github.com/vuejs/core/commit/21b685ad9d9d0e6060fc7d07b719bf35f2d9ae1f))
* **compiler-core:** identifiers in function parameters should not be inferred as references ([#13548](https://github.com/vuejs/core/issues/13548)) ([9b02923](https://github.com/vuejs/core/commit/9b029239edf88558465b941e1e4c085f92b1ebff))
* **compiler-core:** recognize empty string as non-identifier ([#12553](https://github.com/vuejs/core/issues/12553)) ([ce93339](https://github.com/vuejs/core/commit/ce933390ad1c72bed258f7ad959a78f0e8acdf57))
* **compiler-core:** transform empty `v-bind` dynamic argument content correctly ([#12554](https://github.com/vuejs/core/issues/12554)) ([d3af67e](https://github.com/vuejs/core/commit/d3af67e878790892f9d34cfea15d13625aabe733))
* **compiler-sfc:** transform empty srcset w/ includeAbsolute: true ([#13639](https://github.com/vuejs/core/issues/13639)) ([d8e40ef](https://github.com/vuejs/core/commit/d8e40ef7e1c20ee86b294e7cf78e2de60d12830e)), closes [vitejs/vite-plugin-vue#631](https://github.com/vitejs/vite-plugin-vue/issues/631)
* **css-vars:** nullish v-bind in style should not lead to unexpected inheritance ([#12461](https://github.com/vuejs/core/issues/12461)) ([c85f1b5](https://github.com/vuejs/core/commit/c85f1b5a132eb8ec25f71b250e25e65a5c20964f)), closes [#12434](https://github.com/vuejs/core/issues/12434) [#12439](https://github.com/vuejs/core/issues/12439) [#7474](https://github.com/vuejs/core/issues/7474) [#7475](https://github.com/vuejs/core/issues/7475)
* **custom-element:** ensure exposed methods are accessible from custom elements by making them enumerable ([#13634](https://github.com/vuejs/core/issues/13634)) ([90573b0](https://github.com/vuejs/core/commit/90573b06bf6fb6c14c6bbff6c4e34e0ab108953a)), closes [#13632](https://github.com/vuejs/core/issues/13632)
* **hydration:** prevent lazy hydration for updated components ([#13511](https://github.com/vuejs/core/issues/13511)) ([a9269c6](https://github.com/vuejs/core/commit/a9269c642bf944560bc29adb5dae471c11cd9ee8)), closes [#13510](https://github.com/vuejs/core/issues/13510)
* **runtime-core:** ensure correct anchor el for unresolved async components ([#13560](https://github.com/vuejs/core/issues/13560)) ([7f29943](https://github.com/vuejs/core/commit/7f2994393dcdb82cacbf62e02b5ba5565f32588b)), closes [#13559](https://github.com/vuejs/core/issues/13559)
* **slots:** refine internal key checking to support slot names starting with an underscore ([#13612](https://github.com/vuejs/core/issues/13612)) ([c5f7db1](https://github.com/vuejs/core/commit/c5f7db11542bb2246363aef78c88a8e6cef0ee93)), closes [#13611](https://github.com/vuejs/core/issues/13611)
* **ssr:** ensure empty slots render as a comment node in Transition ([#13396](https://github.com/vuejs/core/issues/13396)) ([8cfc10a](https://github.com/vuejs/core/commit/8cfc10a80b9cbf5d801ab149e49b8506d192e7e1)), closes [#13394](https://github.com/vuejs/core/issues/13394)



## [3.5.17](https://github.com/vuejs/core/compare/v3.5.16...v3.5.17) (2025-06-18)


### Bug Fixes

* **compat:** allow v-model built in modifiers on component ([#12654](https://github.com/vuejs/core/issues/12654)) ([cb14b86](https://github.com/vuejs/core/commit/cb14b860f150c4a83bcd52cd26096b7a5aa3a2bf)), closes [#12652](https://github.com/vuejs/core/issues/12652)
* **compile-sfc:** handle mapped types work with omit and pick ([#12648](https://github.com/vuejs/core/issues/12648)) ([4eb46e4](https://github.com/vuejs/core/commit/4eb46e443f1878199755cb73d481d318a9714392)), closes [#12647](https://github.com/vuejs/core/issues/12647)
* **compiler-core:** do not increase newlines in `InEntity` state ([#13362](https://github.com/vuejs/core/issues/13362)) ([f05a8d6](https://github.com/vuejs/core/commit/f05a8d613bd873b811cfdb9979ccac8382dba322))
* **compiler-core:** ignore whitespace when matching adjacent v-if ([#12321](https://github.com/vuejs/core/issues/12321)) ([10ebcef](https://github.com/vuejs/core/commit/10ebcef8c870dbc042b0ea49b1424b2e8f692145)), closes [#9173](https://github.com/vuejs/core/issues/9173)
* **compiler-core:** prevent comments from blocking static node hoisting  ([#13345](https://github.com/vuejs/core/issues/13345)) ([55dad62](https://github.com/vuejs/core/commit/55dad625acd9e9ddd5a933d5e323ecfdec1a612f)), closes [#13344](https://github.com/vuejs/core/issues/13344)
* **compiler-sfc:** improved type resolution for function type aliases ([#13452](https://github.com/vuejs/core/issues/13452)) ([f3479aa](https://github.com/vuejs/core/commit/f3479aac9625f4459e650d1c0a70e73863147903)), closes [#13444](https://github.com/vuejs/core/issues/13444)
* **custom-element:** ensure configureApp is applied to async component ([#12607](https://github.com/vuejs/core/issues/12607)) ([5ba1afb](https://github.com/vuejs/core/commit/5ba1afba09c3ea56c1c17484f5d8aeae210ce52a)), closes [#12448](https://github.com/vuejs/core/issues/12448)
* **custom-element:** prevent injecting child styles if shadowRoot is false ([#12769](https://github.com/vuejs/core/issues/12769)) ([73055d8](https://github.com/vuejs/core/commit/73055d8d9578d485e3fe846726b50666e1aa56f5)), closes [#12630](https://github.com/vuejs/core/issues/12630)
* **reactivity:** add `__v_skip` flag to `Dep` to prevent reactive conversion ([#12804](https://github.com/vuejs/core/issues/12804)) ([e8d8f5f](https://github.com/vuejs/core/commit/e8d8f5f604e821acc46b4200d5b06979c05af1c2)), closes [#12803](https://github.com/vuejs/core/issues/12803)
* **runtime-core:** unset old ref during patching when new ref is absent ([#12900](https://github.com/vuejs/core/issues/12900)) ([47ddf98](https://github.com/vuejs/core/commit/47ddf986021dff8de68b0da72787e53a6c19de4c)), closes [#12898](https://github.com/vuejs/core/issues/12898)
* **slots:** make cache indexes marker non-enumerable ([#13469](https://github.com/vuejs/core/issues/13469)) ([919c447](https://github.com/vuejs/core/commit/919c44744bba1f0c661c87d2059c3b429611aa7e)), closes [#13468](https://github.com/vuejs/core/issues/13468)
* **ssr:** handle initial selected state for select with v-model + v-for/v-if option ([#13487](https://github.com/vuejs/core/issues/13487)) ([1552095](https://github.com/vuejs/core/commit/15520954f9f1c7f834175938a50dba5d4be0e6c4)), closes [#13486](https://github.com/vuejs/core/issues/13486)
* **types:** typo of `vOnce` and `vSlot` ([#13343](https://github.com/vuejs/core/issues/13343)) ([762fae4](https://github.com/vuejs/core/commit/762fae4b57ad60602e5c84465a3bff562785b314))



## [3.5.16](https://github.com/vuejs/core/compare/v3.5.15...v3.5.16) (2025-05-29)


### Reverts

* Revert "fix(compiler-sfc): add scoping tag to trailing universal selector" (#13406) ([19f23b1](https://github.com/vuejs/core/commit/19f23b180bb679e38db95d6a10a420abeedc8e1c)), closes [#13406](https://github.com/vuejs/core/issues/13406)
* Revert "fix(compiler-sfc): add error handling for defineModel() without variable" (#13390) ([42f879f](https://github.com/vuejs/core/commit/42f879fcab48e0e1011967a771b4ad9e8838d760)), closes [#13390](https://github.com/vuejs/core/issues/13390)



## [3.5.15](https://github.com/vuejs/core/compare/v3.5.14...v3.5.15) (2025-05-26)


### Bug Fixes

* **compat:** ensure false value on input retains value attribute ([#13216](https://github.com/vuejs/core/issues/13216)) ([1a66474](https://github.com/vuejs/core/commit/1a664749d4d65a345589a6d78106ede7574cb2e1)), closes [#13205](https://github.com/vuejs/core/issues/13205)
* **compat:** should not warn COMPILER_V_BIND_OBJECT_ORDER when using v-bind together with v-for ([#12993](https://github.com/vuejs/core/issues/12993)) ([93949e6](https://github.com/vuejs/core/commit/93949e6587ee019bccd5b8b9d76f0e1ed6ea16fc)), closes [#12992](https://github.com/vuejs/core/issues/12992)
* **compile-sfc:** handle inline template source map in prod build ([#12701](https://github.com/vuejs/core/issues/12701)) ([89edc6c](https://github.com/vuejs/core/commit/89edc6cdcbd34ea6394927ecbfaa61dc4f871de7)), closes [#12682](https://github.com/vuejs/core/issues/12682) [vitejs/vite-plugin-vue#500](https://github.com/vitejs/vite-plugin-vue/issues/500)
* **compiler-core:** ensure mapping is added only if node source is available ([#13285](https://github.com/vuejs/core/issues/13285)) ([d37a2ac](https://github.com/vuejs/core/commit/d37a2ac59d904ac0e3257ba552b6c04920a363f0)), closes [#13261](https://github.com/vuejs/core/issues/13261) [vitejs/vite-plugin-vue#368](https://github.com/vitejs/vite-plugin-vue/issues/368)
* **compiler-dom:** improve HTML nesting validation to allow any child element within template tag ([#13320](https://github.com/vuejs/core/issues/13320)) ([163b365](https://github.com/vuejs/core/commit/163b3651d174321911648a164052effa9249a2aa)), closes [#13318](https://github.com/vuejs/core/issues/13318)
* **compiler-sfc:** add error handling for defineModel() without variable assignment ([#13352](https://github.com/vuejs/core/issues/13352)) ([00734af](https://github.com/vuejs/core/commit/00734afef5f7bddbdaee52aa5359a6ef989f32d3)), closes [#13280](https://github.com/vuejs/core/issues/13280)
* **compiler-sfc:** add scoping tag to trailing universal selector ([#12918](https://github.com/vuejs/core/issues/12918)) ([949df80](https://github.com/vuejs/core/commit/949df808809fd7cccf7718797beab0654aa68302)), closes [#12906](https://github.com/vuejs/core/issues/12906)
* **compiler-sfc:** improve type inference for TSTypeAliasDeclaration with better runtime type detection ([#13245](https://github.com/vuejs/core/issues/13245)) ([cf5a5e0](https://github.com/vuejs/core/commit/cf5a5e0edf0efcab25c27aa2d13eba91f7372d39)), closes [#13240](https://github.com/vuejs/core/issues/13240)
* **compiler-sfc:** simulate `allowArbitraryExtensions` on resolving type ([#13301](https://github.com/vuejs/core/issues/13301)) ([f7ce5ae](https://github.com/vuejs/core/commit/f7ce5ae666129339c006b339437c2dff6bceffe0)), closes [#13295](https://github.com/vuejs/core/issues/13295)
* **custom-element:** allow injecting values ​​from app context in nested elements ([#13219](https://github.com/vuejs/core/issues/13219)) ([b991075](https://github.com/vuejs/core/commit/b9910755a50c7d6c52b28c3aef20cf97810295c9)), closes [#13212](https://github.com/vuejs/core/issues/13212)
* **custom-element:** ensure proper remount and prevent redundant slot parsing with shadowRoot false ([#13201](https://github.com/vuejs/core/issues/13201)) ([1d41d4d](https://github.com/vuejs/core/commit/1d41d4de7f64a37160c8171d0137fd8d35c346c9)), closes [#13199](https://github.com/vuejs/core/issues/13199)
* **custom-element:** preserve appContext during update ([#12455](https://github.com/vuejs/core/issues/12455)) ([013749e](https://github.com/vuejs/core/commit/013749e75ef3b51762a86da379ea4ba4501b54ae)), closes [#12453](https://github.com/vuejs/core/issues/12453)
* **custom-element:** properly resolve props for sync component defs ([#12855](https://github.com/vuejs/core/issues/12855)) ([a683c80](https://github.com/vuejs/core/commit/a683c80cf44ecc482f8ac9c76bf2381443c1b0bb)), closes [#12854](https://github.com/vuejs/core/issues/12854)
* **hydration:** handle transition appear hydration edge case ([#13339](https://github.com/vuejs/core/issues/13339)) ([35aeae7](https://github.com/vuejs/core/commit/35aeae7fa3168adcf9ed95fd35495d17c8b93eeb)), closes [#13335](https://github.com/vuejs/core/issues/13335)
* **hydration:** skip lazy hydration for patched components ([#13283](https://github.com/vuejs/core/issues/13283)) ([80055fd](https://github.com/vuejs/core/commit/80055fddfb3ca1e2a44f19c7f0ffaeba00de5140)), closes [#13255](https://github.com/vuejs/core/issues/13255)
* **suspense:** handle edge case in patching list nodes within Suspense ([#13306](https://github.com/vuejs/core/issues/13306)) ([772b008](https://github.com/vuejs/core/commit/772b0087cb7be151c514a1d30365fb0f61a652ba)), closes [#13305](https://github.com/vuejs/core/issues/13305)
* **teleport:** handle deferred teleport updates before and after mount ([#13350](https://github.com/vuejs/core/issues/13350)) ([d15dce3](https://github.com/vuejs/core/commit/d15dce3142474f2ef9fffed38383acdadcb26c4c)), closes [#13349](https://github.com/vuejs/core/issues/13349)
* **types:** avoid merging component instance into `$props` in `ComponentInstance` ([#12870](https://github.com/vuejs/core/issues/12870)) ([f44feed](https://github.com/vuejs/core/commit/f44feed6fa461a9c4c724e9631c19e9e214c0a20)), closes [#12751](https://github.com/vuejs/core/issues/12751)
* **types:** exclude `undefined` from inferred prop types with default values ([#13007](https://github.com/vuejs/core/issues/13007)) ([5179d32](https://github.com/vuejs/core/commit/5179d328d950015e7fb2a74fe1a8518fd8d2c94e)), closes [#13006](https://github.com/vuejs/core/issues/13006)
* **watch:** update `oldValue` before running `cb` to prevent stale value ([#12296](https://github.com/vuejs/core/issues/12296)) ([c69c4bb](https://github.com/vuejs/core/commit/c69c4bb59c114f2b5e03733b55ef9ace3087b5c3)), closes [#12294](https://github.com/vuejs/core/issues/12294)



## [3.5.14](https://github.com/vuejs/core/compare/v3.5.13...v3.5.14) (2025-05-15)


### Bug Fixes

* **compat:** correct deprecation message for v-bind.sync usage ([#13137](https://github.com/vuejs/core/issues/13137)) ([466b30f](https://github.com/vuejs/core/commit/466b30f4049ec89fb282624ec17d1a93472ab93f)), closes [#13133](https://github.com/vuejs/core/issues/13133)
* **compiler-core:** remove slot cache from parent renderCache during unmounting ([#13215](https://github.com/vuejs/core/issues/13215)) ([5d166f3](https://github.com/vuejs/core/commit/5d166f3796a03a497435fc079c6a83a4e9c6cf52))
* **compiler-sfc:** fix scope handling for props destructure in function parameters and catch clauses ([8e34357](https://github.com/vuejs/core/commit/8e3435779a667de485cf9efd78667d0ca14c5f84)), closes [#12790](https://github.com/vuejs/core/issues/12790)
* **compiler-sfc:** treat the return value of `useTemplateRef` as a definite ref ([#13197](https://github.com/vuejs/core/issues/13197)) ([8ae1122](https://github.com/vuejs/core/commit/8ae11226e8ee938615e17c7b81dc38ae3f7cefb9))
* **compiler:** fix spelling error in domTagConfig ([#13043](https://github.com/vuejs/core/issues/13043)) ([388295b](https://github.com/vuejs/core/commit/388295b27f3cc69eba25d325bbe60a36a3df831a))
* **customFormatter:** properly accessing ref value during debugger ([#12948](https://github.com/vuejs/core/issues/12948)) ([fdbd026](https://github.com/vuejs/core/commit/fdbd02658301dd794fe0c84f0018d080a07fca9f))
* **hmr/teleport:** adjust static children traversal for HMR in dev mode ([#12819](https://github.com/vuejs/core/issues/12819)) ([5e37dd0](https://github.com/vuejs/core/commit/5e37dd009562bcd8080a200c32abde2d6e4f0305)), closes [#12816](https://github.com/vuejs/core/issues/12816)
* **hmr:** avoid hydration for hmr root reload ([#12450](https://github.com/vuejs/core/issues/12450)) ([1f98a9c](https://github.com/vuejs/core/commit/1f98a9c493d01c21befa90107f0593bc92a58932)), closes [vitejs/vite-plugin-vue#146](https://github.com/vitejs/vite-plugin-vue/issues/146) [vitejs/vite-plugin-vue#477](https://github.com/vitejs/vite-plugin-vue/issues/477)
* **hmr:** avoid hydration for hmr updating ([#12262](https://github.com/vuejs/core/issues/12262)) ([9c4dbbc](https://github.com/vuejs/core/commit/9c4dbbc5185125835ad3e49baba303bd54676111)), closes [#7706](https://github.com/vuejs/core/issues/7706) [#8170](https://github.com/vuejs/core/issues/8170)
* **reactivity:** ensure markRaw objects are not reactive ([#12824](https://github.com/vuejs/core/issues/12824)) ([295b5ec](https://github.com/vuejs/core/commit/295b5ec19b6a52c4a56652cc4d6e93a4ea7c14ed)), closes [#12807](https://github.com/vuejs/core/issues/12807)
* **reactivity:** ensure multiple effectScope on() and off() calls maintains correct active scope ([22dcbf3](https://github.com/vuejs/core/commit/22dcbf3e20eb84f69c8952f6f70d9990136a4a68)), closes [#12631](https://github.com/vuejs/core/issues/12631) [#12632](https://github.com/vuejs/core/issues/12632) [#12641](https://github.com/vuejs/core/issues/12641)
* **reactivity:** should not recompute if computed does not track reactive data ([#12341](https://github.com/vuejs/core/issues/12341)) ([0b23fd2](https://github.com/vuejs/core/commit/0b23fd23833cf085e7e112bf4435cfc9b360d072)), closes [#12337](https://github.com/vuejs/core/issues/12337)
* **runtime-core:**  stop tracking deps in setRef during unmount ([#13210](https://github.com/vuejs/core/issues/13210)) ([016c472](https://github.com/vuejs/core/commit/016c472bd2e7604b21c69dee1da8545ce26e4d2f))
* **runtime-core:**  update __vnode of static nodes when patching along the optimized path ([#13223](https://github.com/vuejs/core/issues/13223)) ([b3ecee3](https://github.com/vuejs/core/commit/b3ecee3da8ed5c55dea89ce6b4b376b2b722b018))
* **runtime-core:** inherit comment nodes during block patch in production build  ([#10748](https://github.com/vuejs/core/issues/10748)) ([6264505](https://github.com/vuejs/core/commit/626450590d81f79117b34d2a73073b1dc8f551bd)), closes [#10747](https://github.com/vuejs/core/issues/10747) [#12650](https://github.com/vuejs/core/issues/12650)
* **runtime-core:** prevent unmounted vnode from being inserted during transition leave ([#12862](https://github.com/vuejs/core/issues/12862)) ([d6a6ec1](https://github.com/vuejs/core/commit/d6a6ec13ce521683bfb2a22932778ef7b51f8600)), closes [#12860](https://github.com/vuejs/core/issues/12860)
* **runtime-core:** respect immutability for readonly reactive arrays in `v-for` ([#13091](https://github.com/vuejs/core/issues/13091)) ([3f27c58](https://github.com/vuejs/core/commit/3f27c58ffbd4309df369bc89493fdc284dc540bb)), closes [#13087](https://github.com/vuejs/core/issues/13087)
* **runtime-dom:** always treat autocorrect as attribute ([#13001](https://github.com/vuejs/core/issues/13001)) ([1499135](https://github.com/vuejs/core/commit/1499135c227236e037bb746beeb777941b0b58ff)), closes [#5705](https://github.com/vuejs/core/issues/5705)
* **slots:** properly warn if slot invoked in setup ([#12195](https://github.com/vuejs/core/issues/12195)) ([9196222](https://github.com/vuejs/core/commit/9196222ae1d63b52b35ac5fbf5e71494587ccf05)), closes [#12194](https://github.com/vuejs/core/issues/12194)
* **ssr:** properly init slots during ssr rendering ([#12441](https://github.com/vuejs/core/issues/12441)) ([2206cd2](https://github.com/vuejs/core/commit/2206cd235a1627c540e795e378b7564a55b47313)), closes [#12438](https://github.com/vuejs/core/issues/12438)
* **transition:** fix KeepAlive with transition out-in mode behavior in production ([#12468](https://github.com/vuejs/core/issues/12468)) ([343c891](https://github.com/vuejs/core/commit/343c89122448719bd6ed6bd9de986dfb2721d6bf)), closes [#12465](https://github.com/vuejs/core/issues/12465)
* **TransitionGroup:** reset prevChildren to prevent memory leak ([#13183](https://github.com/vuejs/core/issues/13183)) ([8b848cb](https://github.com/vuejs/core/commit/8b848cbbd2af337d23e19e202f9ab433f8580855)), closes [#13181](https://github.com/vuejs/core/issues/13181)
* **types:** allow return any for Options API lifecycle hooks ([#5914](https://github.com/vuejs/core/issues/5914)) ([06310e8](https://github.com/vuejs/core/commit/06310e82f5bed62d1b9733dcb18cd8d6edc988de))
* **types:** the directive's modifiers should be optional ([#12605](https://github.com/vuejs/core/issues/12605)) ([10e54dc](https://github.com/vuejs/core/commit/10e54dcc86a7967f3196d96200bcbd1d3d42082f))
* **typos:** fix comments referencing transformElement.ts ([#12551](https://github.com/vuejs/core/issues/12551))[ci-skip] ([11c053a](https://github.com/vuejs/core/commit/11c053a5429ad0d27a0e2c78b6b026ea00ace116))


### Features

* **types:** add type TemplateRef ([#12645](https://github.com/vuejs/core/issues/12645)) ([636a861](https://github.com/vuejs/core/commit/636a8619f06c71dfd79f7f6412fd130c4f84226f))



## [3.5.13](https://github.com/vuejs/core/compare/v3.5.12...v3.5.13) (2024-11-15)


### Bug Fixes

* **compiler-core:** handle v-memo + v-for with functional key ([#12014](https://github.com/vuejs/core/issues/12014)) ([99009ee](https://github.com/vuejs/core/commit/99009eee0efc238392daba93792d478525b21afa)), closes [#12013](https://github.com/vuejs/core/issues/12013)
* **compiler-dom:** properly stringify template string style ([#12392](https://github.com/vuejs/core/issues/12392)) ([2d78539](https://github.com/vuejs/core/commit/2d78539da35322aea5f821b3cf9b02d006abac72)), closes [#12391](https://github.com/vuejs/core/issues/12391)
* **custom-element:** avoid triggering mutationObserver when relecting props ([352bc88](https://github.com/vuejs/core/commit/352bc88c1bd2fda09c61ab17ea1a5967ffcd7bc0)), closes [#12214](https://github.com/vuejs/core/issues/12214) [#12215](https://github.com/vuejs/core/issues/12215)
* **deps:** update dependency postcss to ^8.4.48 ([#12356](https://github.com/vuejs/core/issues/12356)) ([b5ff930](https://github.com/vuejs/core/commit/b5ff930089985a58c3553977ef999cec2a6708a4))
* **hydration:** the component vnode's el should be updated when a mismatch occurs. ([#12255](https://github.com/vuejs/core/issues/12255)) ([a20a4cb](https://github.com/vuejs/core/commit/a20a4cb36a3e717d1f8f259d0d59f133f508ff0a)), closes [#12253](https://github.com/vuejs/core/issues/12253)
* **reactivity:** avoid unnecessary watcher effect removal from inactive scope ([2193284](https://github.com/vuejs/core/commit/21932840eae72ffcd357a62ec596aaecc7ec224a)), closes [#5783](https://github.com/vuejs/core/issues/5783) [#5806](https://github.com/vuejs/core/issues/5806)
* **reactivity:** release nested effects/scopes on effect scope stop ([#12373](https://github.com/vuejs/core/issues/12373)) ([bee2f5e](https://github.com/vuejs/core/commit/bee2f5ee62dc0cd04123b737779550726374dd0a)), closes [#12370](https://github.com/vuejs/core/issues/12370)
* **runtime-dom:** set css vars before user onMounted hooks ([2d5c5e2](https://github.com/vuejs/core/commit/2d5c5e25e9b7a56e883674fb434135ac514429b5)), closes [#11533](https://github.com/vuejs/core/issues/11533)
* **runtime-dom:** set css vars on update to handle child forcing reflow in onMount ([#11561](https://github.com/vuejs/core/issues/11561)) ([c4312f9](https://github.com/vuejs/core/commit/c4312f9c715c131a09e552ba46e9beb4b36d55e6))
* **ssr:** avoid updating subtree of async component if it is resolved ([#12363](https://github.com/vuejs/core/issues/12363)) ([da7ad5e](https://github.com/vuejs/core/commit/da7ad5e3d24f3e108401188d909d27a4910da095)), closes [#12362](https://github.com/vuejs/core/issues/12362)
* **ssr:** ensure v-text updates correctly with custom directives in SSR output ([#12311](https://github.com/vuejs/core/issues/12311)) ([1f75d4e](https://github.com/vuejs/core/commit/1f75d4e6dfe18121ebe443cd3e8105d54f727893)), closes [#12309](https://github.com/vuejs/core/issues/12309)
* **ssr:** handle initial selected state for select with v-model + v-for option ([#12399](https://github.com/vuejs/core/issues/12399)) ([4f8d807](https://github.com/vuejs/core/commit/4f8d8078221ee52deed266677a227ad2a6d8dd22)), closes [#12395](https://github.com/vuejs/core/issues/12395)
* **teleport:** handle deferred teleport update before mounted ([#12168](https://github.com/vuejs/core/issues/12168)) ([8bff142](https://github.com/vuejs/core/commit/8bff142f99b646e9dd15897ec75368fbf34f1534)), closes [#12161](https://github.com/vuejs/core/issues/12161)
* **templateRef:** set ref on cached async component which wrapped in KeepAlive ([#12290](https://github.com/vuejs/core/issues/12290)) ([983eb50](https://github.com/vuejs/core/commit/983eb50a17eac76f1bba4394ad0316c62b72191d)), closes [#4999](https://github.com/vuejs/core/issues/4999) [#5004](https://github.com/vuejs/core/issues/5004)
* **test:** update snapshot ([#12169](https://github.com/vuejs/core/issues/12169)) ([828d4a4](https://github.com/vuejs/core/commit/828d4a443919fa2aa4e2e92fbd03a5f04b258eea))
* **Transition:** fix transition memory leak edge case ([#12182](https://github.com/vuejs/core/issues/12182)) ([660132d](https://github.com/vuejs/core/commit/660132df6c6a8c14bf75e593dc47d2fdada30322)), closes [#12181](https://github.com/vuejs/core/issues/12181)
* **transition:** reflow before leave-active class after leave-from ([#12288](https://github.com/vuejs/core/issues/12288)) ([4b479db](https://github.com/vuejs/core/commit/4b479db61d233b054561402ae94ef08550073ea1)), closes [#2593](https://github.com/vuejs/core/issues/2593)
* **types:** defineEmits w/ interface declaration ([#12343](https://github.com/vuejs/core/issues/12343)) ([1022eab](https://github.com/vuejs/core/commit/1022eabaa1aaf8436876f5ec5573cb1e4b3959a6)), closes [#8457](https://github.com/vuejs/core/issues/8457)
* **v-once:** setting hasOnce to current block only when in v-once ([#12374](https://github.com/vuejs/core/issues/12374)) ([37300fc](https://github.com/vuejs/core/commit/37300fc26190a7299efddbf98800ffd96d5cad96)), closes [#12371](https://github.com/vuejs/core/issues/12371)


### Performance Improvements

* **reactivity:** do not track inner key `__v_skip`` ([#11690](https://github.com/vuejs/core/issues/11690)) ([d637bd6](https://github.com/vuejs/core/commit/d637bd6c0164c2883e6eabd3c2f1f8c258dedfb1))
* **runtime-core:** use feature flag for call to resolveMergedOptions ([#12163](https://github.com/vuejs/core/issues/12163)) ([1755ac0](https://github.com/vuejs/core/commit/1755ac0a108ba3486bd8397e56d3bdcd69196594))



## [3.5.12](https://github.com/vuejs/core/compare/v3.5.11...v3.5.12) (2024-10-11)


### Bug Fixes

* **compiler-dom:** avoid stringify option with null value ([#12096](https://github.com/vuejs/core/issues/12096)) ([f6d9926](https://github.com/vuejs/core/commit/f6d99262364b7444ebab8742158599e8cdd79eaa)), closes [#12093](https://github.com/vuejs/core/issues/12093)
* **compiler-sfc:**  do not skip TSInstantiationExpression when transforming props destructure ([#12064](https://github.com/vuejs/core/issues/12064)) ([d3ecde8](https://github.com/vuejs/core/commit/d3ecde8a696ff62c8d0ab067fd1d7ee0565b63c5))
* **compiler-sfc:** use sass modern api if available and avoid deprecation warning ([#11992](https://github.com/vuejs/core/issues/11992)) ([4474c11](https://github.com/vuejs/core/commit/4474c113d1fb1c26298dd6794275d5b5c7cc4d93))
* **compiler:** clone loc to `ifNode` ([#12131](https://github.com/vuejs/core/issues/12131)) ([cde2c06](https://github.com/vuejs/core/commit/cde2c0671b00d4f6111fcbd7aa76e45872f20b0c)), closes [vuejs/language-tools#4911](https://github.com/vuejs/language-tools/issues/4911)
* **custom-element:** properly remove hyphenated attribute ([#12143](https://github.com/vuejs/core/issues/12143)) ([e16e9a7](https://github.com/vuejs/core/commit/e16e9a7341e7cfb3c443da4e5e5b06e8158712c3)), closes [#12139](https://github.com/vuejs/core/issues/12139)
* **defineModel:** handle kebab-case model correctly ([#12063](https://github.com/vuejs/core/issues/12063)) ([c0418a3](https://github.com/vuejs/core/commit/c0418a3b8fa96a0b108ab71b7aab5d3388f90557)), closes [#12060](https://github.com/vuejs/core/issues/12060)
* **deps:** update dependency monaco-editor to ^0.52.0 ([#12119](https://github.com/vuejs/core/issues/12119)) ([f7cbea2](https://github.com/vuejs/core/commit/f7cbea2111c7770a180b640f36f6a5d4d6abc698))
* **hydration:** provide compat fallback for idle callback hydration strategy ([#11935](https://github.com/vuejs/core/issues/11935)) ([1ae545a](https://github.com/vuejs/core/commit/1ae545a3786abef983be1c969726489685569c92))
* **reactivity:** trigger reactivity for Map key `undefined` ([#12055](https://github.com/vuejs/core/issues/12055)) ([7ad289e](https://github.com/vuejs/core/commit/7ad289e1e7fea654524008ff91e43a8b8a55ef22)), closes [#12054](https://github.com/vuejs/core/issues/12054)
* **runtime-core:** allow symbol values for slot prop key ([#12069](https://github.com/vuejs/core/issues/12069)) ([d9d4d4e](https://github.com/vuejs/core/commit/d9d4d4e158cd51a9ddda249f29de8467f60b2792)), closes [#12068](https://github.com/vuejs/core/issues/12068)
* **runtime-core:** fix required prop check false positive for kebab-case edge cases  ([#12034](https://github.com/vuejs/core/issues/12034)) ([9da1ac1](https://github.com/vuejs/core/commit/9da1ac156552ac449754e1373aac7e349841becb)), closes [#12011](https://github.com/vuejs/core/issues/12011)
* **runtime-dom:** prevent unnecessary updates in v-model checkbox when value is unchanged ([#12146](https://github.com/vuejs/core/issues/12146)) ([ea943af](https://github.com/vuejs/core/commit/ea943afe404c4ca4b729906c5e8daf7aa2ccde9b)), closes [#12144](https://github.com/vuejs/core/issues/12144)
* **teleport:** handle disabled teleport with updateCssVars ([#12113](https://github.com/vuejs/core/issues/12113)) ([76a8223](https://github.com/vuejs/core/commit/76a8223199c148b79a5c0ea19e235164809760cd)), closes [#12112](https://github.com/vuejs/core/issues/12112)
* **transition/ssr:** make transition appear work with Suspense in SSR ([#12047](https://github.com/vuejs/core/issues/12047)) ([f1a4f67](https://github.com/vuejs/core/commit/f1a4f67aedfe83e440c54222213f070774faa421)), closes [#12046](https://github.com/vuejs/core/issues/12046)
* **types:** ensure `this.$props` type does not include `string` ([#12123](https://github.com/vuejs/core/issues/12123)) ([704173e](https://github.com/vuejs/core/commit/704173e24276706de672cca6c9507e4dd9651197)), closes [#12122](https://github.com/vuejs/core/issues/12122)
* **types:** retain union type narrowing with defaults applied ([#12108](https://github.com/vuejs/core/issues/12108)) ([05685a9](https://github.com/vuejs/core/commit/05685a9d7c42d4cd37169b867833776b91154fed)), closes [#12106](https://github.com/vuejs/core/issues/12106)
* **useId:** ensure useId consistency when using serverPrefetch ([#12128](https://github.com/vuejs/core/issues/12128)) ([b4d3534](https://github.com/vuejs/core/commit/b4d35349d8bc39aa15bd3f1094d230e5928b177c)), closes [#12102](https://github.com/vuejs/core/issues/12102)
* **watch:** watchEffect clean-up with SSR ([#12097](https://github.com/vuejs/core/issues/12097)) ([b094c72](https://github.com/vuejs/core/commit/b094c72b3d40c52c7124f145a9db028509a11202)), closes [#11956](https://github.com/vuejs/core/issues/11956)


### Performance Improvements

* **reactivity:** avoid unnecessary recursion in removeSub ([#12135](https://github.com/vuejs/core/issues/12135)) ([ec917cf](https://github.com/vuejs/core/commit/ec917cfdb9d0169cd0835d3a0e28244242657dc9))



## [3.5.11](https://github.com/vuejs/core/compare/v3.5.10...v3.5.11) (2024-10-03)


### Bug Fixes

* **compiler-sfc:** do not skip `TSSatisfiesExpression` when transforming props destructure ([#12062](https://github.com/vuejs/core/issues/12062)) ([2328b05](https://github.com/vuejs/core/commit/2328b051f4efa1f1394b7d4e73b7c3f76e430e7c)), closes [#12061](https://github.com/vuejs/core/issues/12061)
* **reactivity:** prevent overwriting `next` property during batch processing ([#12075](https://github.com/vuejs/core/issues/12075)) ([d3f5e6e](https://github.com/vuejs/core/commit/d3f5e6e5319b4ffaa55ca9a2ea3d95d78e76fa58)), closes [#12072](https://github.com/vuejs/core/issues/12072)
* **scheduler:** job ordering when the post queue is flushing ([#12090](https://github.com/vuejs/core/issues/12090)) ([577edca](https://github.com/vuejs/core/commit/577edca8e7795436efd710d1c289ea8ea2642b0e))
* **types:** correctly infer `TypeProps` when it is `any` ([#12073](https://github.com/vuejs/core/issues/12073)) ([57315ab](https://github.com/vuejs/core/commit/57315ab9688c9741a271d1075bbd28cbe5f71e2f)), closes [#12058](https://github.com/vuejs/core/issues/12058)
* **types:** should not intersect `PublicProps` with `Props` ([#12077](https://github.com/vuejs/core/issues/12077)) ([6f85894](https://github.com/vuejs/core/commit/6f8589437635706f825ccec51800effba1d2bf5f))
* **types:** infer the first generic type of `Ref` correctly ([#12094](https://github.com/vuejs/core/issues/12094)) ([c97bb84](https://github.com/vuejs/core/commit/c97bb84d0b0a16b012f886b6498e924415ed63e5))



## [3.5.10](https://github.com/vuejs/core/compare/v3.5.9...v3.5.10) (2024-09-27)


### Bug Fixes

* **custom-element:** properly set kebab-case props on Vue custom elements ([ea3efa0](https://github.com/vuejs/core/commit/ea3efa09e008918c1d9ba7226833a8b1a7a57244)), closes [#12030](https://github.com/vuejs/core/issues/12030) [#12032](https://github.com/vuejs/core/issues/12032)
* **reactivity:** fix nested batch edge case ([93c95dd](https://github.com/vuejs/core/commit/93c95dd4cd416503f43a98a1455f62658d22b0b2))
* **reactivity:** only clear notified flags for computed in first batch iteration ([aa9ef23](https://github.com/vuejs/core/commit/aa9ef2386a0cd39a174e5a887ec2b1a3525034fc)), closes [#12045](https://github.com/vuejs/core/issues/12045)
* **types/ref:** handle nested refs in UnwrapRef ([#12049](https://github.com/vuejs/core/issues/12049)) ([e2c19c2](https://github.com/vuejs/core/commit/e2c19c20cfee9788519a80c0e53e216b78505994)), closes [#12044](https://github.com/vuejs/core/issues/12044)



## [3.5.9](https://github.com/vuejs/core/compare/v3.5.8...v3.5.9) (2024-09-26)


### Bug Fixes

* **reactivity:** fix property dep removal regression ([6001e5c](https://github.com/vuejs/core/commit/6001e5c81a05c894586f9287fbd991677bdd0455)), closes [#12020](https://github.com/vuejs/core/issues/12020) [#12021](https://github.com/vuejs/core/issues/12021)
* **reactivity:** fix recursive sync watcher on computed edge case ([10ff159](https://github.com/vuejs/core/commit/10ff15924053d9bd95ad706f78ce09e288213fcf)), closes [#12033](https://github.com/vuejs/core/issues/12033) [#12037](https://github.com/vuejs/core/issues/12037)
* **runtime-core:** avoid rendering plain object as VNode ([#12038](https://github.com/vuejs/core/issues/12038)) ([cb34b28](https://github.com/vuejs/core/commit/cb34b28a4a9bf868be4785b001c526163eda342e)), closes [#12035](https://github.com/vuejs/core/issues/12035) [vitejs/vite-plugin-vue#353](https://github.com/vitejs/vite-plugin-vue/issues/353)
* **runtime-core:** make useId() always return a string ([a177092](https://github.com/vuejs/core/commit/a177092754642af2f98c33a4feffe8f198c3c950))
* **types:** correct type inference of union event names ([#12022](https://github.com/vuejs/core/issues/12022)) ([4da6881](https://github.com/vuejs/core/commit/4da688141d9e7c15b622c289deaa81b11845b2c7))
* **vue:** properly cache runtime compilation ([#12019](https://github.com/vuejs/core/issues/12019)) ([fa0ba24](https://github.com/vuejs/core/commit/fa0ba24b3ace02d7ecab65e57c2bea89a2550dcb))



## [3.5.8](https://github.com/vuejs/core/compare/v3.5.7...v3.5.8) (2024-09-22)


### Bug Fixes

* **reactivity:** do not remove dep from depsMap when cleaning up deps of computed ([#11995](https://github.com/vuejs/core/issues/11995)) ([0267a58](https://github.com/vuejs/core/commit/0267a588017eee4951ac2a877fe1ccae84cad905))



## [3.5.7](https://github.com/vuejs/core/compare/v3.5.6...v3.5.7) (2024-09-20)


### Bug Fixes

* **compile-core:** fix v-model with newlines edge case ([#11960](https://github.com/vuejs/core/issues/11960)) ([6224288](https://github.com/vuejs/core/commit/62242886d705ece88dbcad45bb78072ecccad0ca)), closes [#8306](https://github.com/vuejs/core/issues/8306)
* **compiler-sfc:** initialize scope with null prototype object ([#11963](https://github.com/vuejs/core/issues/11963)) ([215e154](https://github.com/vuejs/core/commit/215e15407294bf667261360218f975b88c99c2e5))
* **hydration:** avoid observing non-Element node ([#11954](https://github.com/vuejs/core/issues/11954)) ([7257e6a](https://github.com/vuejs/core/commit/7257e6a34200409b3fc347d3bb807e11e2785974)), closes [#11952](https://github.com/vuejs/core/issues/11952)
* **reactivity:** do not remove dep from depsMap when unsubbed by computed ([960706e](https://github.com/vuejs/core/commit/960706eebf73f08ebc9d5dd853a05def05e2c153))
* **reactivity:** fix dev-only memory leak by updating dep.subsHead on sub removal ([5c8b76e](https://github.com/vuejs/core/commit/5c8b76ed6cfbbcee4cbaac0b72beab7291044e4f)), closes [#11956](https://github.com/vuejs/core/issues/11956)
* **reactivity:** fix memory leak from dep instances of garbage collected objects ([235ea47](https://github.com/vuejs/core/commit/235ea4772ed2972914cf142da8b7ac1fb04f7585)), closes [#11979](https://github.com/vuejs/core/issues/11979) [#11971](https://github.com/vuejs/core/issues/11971)
* **reactivity:** fix triggerRef call on ObjectRefImpl returned by toRef ([#11986](https://github.com/vuejs/core/issues/11986)) ([b030c8b](https://github.com/vuejs/core/commit/b030c8bc7327877efb98aa3d9a58eb287a6ff07a)), closes [#11982](https://github.com/vuejs/core/issues/11982)
* **scheduler:** ensure recursive jobs can't be queued twice ([#11955](https://github.com/vuejs/core/issues/11955)) ([d18d6aa](https://github.com/vuejs/core/commit/d18d6aa1b20dc57a8103c51ec4d61e8e53ed936d))
* **ssr:** don't render comments in TransitionGroup ([#11961](https://github.com/vuejs/core/issues/11961)) ([a2f6ede](https://github.com/vuejs/core/commit/a2f6edeb02faedbb673c4bc5c6a59d9a79a37d07)), closes [#11958](https://github.com/vuejs/core/issues/11958)
* **transition:** respect `duration` setting even when it is `0` ([#11967](https://github.com/vuejs/core/issues/11967)) ([f927a4a](https://github.com/vuejs/core/commit/f927a4ae6f7c453f70ba89498ee0c737dc9866fd))
* **types:** correct type inference of all-optional props ([#11644](https://github.com/vuejs/core/issues/11644)) ([9eca65e](https://github.com/vuejs/core/commit/9eca65ee9871d1ac878755afa9a3eb1b02030350)), closes [#11733](https://github.com/vuejs/core/issues/11733) [vuejs/language-tools#4704](https://github.com/vuejs/language-tools/issues/4704)


### Performance Improvements

* **hydration:** avoid observer if element is in viewport ([#11639](https://github.com/vuejs/core/issues/11639)) ([e075dfa](https://github.com/vuejs/core/commit/e075dfad5c7649c6045e3711687ec888e7aa1a39))



## [3.5.6](https://github.com/vuejs/core/compare/v3.5.5...v3.5.6) (2024-09-16)


### Bug Fixes

* **compile-dom:** should be able to stringify mathML ([#11891](https://github.com/vuejs/core/issues/11891)) ([85c138c](https://github.com/vuejs/core/commit/85c138ced108268f7656b568dfd3036a1e0aae34))
* **compiler-sfc:** preserve old behavior when using withDefaults with destructure ([8492c3c](https://github.com/vuejs/core/commit/8492c3c49a922363d6c77ef192c133a8fbce6514)), closes [#11930](https://github.com/vuejs/core/issues/11930)
* **reactivity:** avoid exponential perf cost and reduce call stack depth for deeply chained computeds ([#11944](https://github.com/vuejs/core/issues/11944)) ([c74bb8c](https://github.com/vuejs/core/commit/c74bb8c2dd9e82aaabb0a2a2b368e900929b513b)), closes [#11928](https://github.com/vuejs/core/issues/11928)
* **reactivity:** rely on dirty check only when computed has deps ([#11931](https://github.com/vuejs/core/issues/11931)) ([aa5dafd](https://github.com/vuejs/core/commit/aa5dafd2b55d42d6a29316a3bc91aea85c676a0b)), closes [#11929](https://github.com/vuejs/core/issues/11929)
* **watch:** `once` option should be ignored by watchEffect ([#11884](https://github.com/vuejs/core/issues/11884)) ([49fa673](https://github.com/vuejs/core/commit/49fa673493d93b77ddba2165ab6545bae84fd1ae))
* **watch:** unwatch should be callable during SSR ([#11925](https://github.com/vuejs/core/issues/11925)) ([2d6adf7](https://github.com/vuejs/core/commit/2d6adf78a047eed091db277ffbd9df0822fb0bdd)), closes [#11924](https://github.com/vuejs/core/issues/11924)



## [3.5.5](https://github.com/vuejs/core/compare/v3.5.4...v3.5.5) (2024-09-13)


### Bug Fixes

* **compiler-core:** fix handling of delimiterOpen in VPre ([#11915](https://github.com/vuejs/core/issues/11915)) ([706d4ac](https://github.com/vuejs/core/commit/706d4ac1d0210b2d9134b3228280187fe02fc971)), closes [#11913](https://github.com/vuejs/core/issues/11913)
* **compiler-dom:** fix stringify static edge for partially eligible chunks in cached parent ([1d99d61](https://github.com/vuejs/core/commit/1d99d61c1bd77f9ea6743f6214a82add8346a121)), closes [#11879](https://github.com/vuejs/core/issues/11879) [#11890](https://github.com/vuejs/core/issues/11890)
* **compiler-dom:** should ignore leading newline in `<textarea>` per spec ([3c4bf76](https://github.com/vuejs/core/commit/3c4bf7627649ec1e3220f8c4e4163c20d2afb367))
* **compiler-sfc:** nested css supports atrule and comment ([#11899](https://github.com/vuejs/core/issues/11899)) ([0e7bc71](https://github.com/vuejs/core/commit/0e7bc717e6640644f062957ec5031506f0dab215)), closes [#11896](https://github.com/vuejs/core/issues/11896)
* **custom-element:** handle nested customElement mount w/ shadowRoot false ([#11861](https://github.com/vuejs/core/issues/11861)) ([f2d8019](https://github.com/vuejs/core/commit/f2d801918841e7673ff3f048d0d895592a2f7e23)), closes [#11851](https://github.com/vuejs/core/issues/11851) [#11871](https://github.com/vuejs/core/issues/11871)
* **hmr:** reload async child wrapped in Suspense + KeepAlive ([#11907](https://github.com/vuejs/core/issues/11907)) ([10a2c60](https://github.com/vuejs/core/commit/10a2c6053bd30d160d0214bb3566f540187e6874)), closes [#11868](https://github.com/vuejs/core/issues/11868)
* **hydration:** fix mismatch of leading newline in `<textarea>` and `<pre>` ([a5f3c2e](https://github.com/vuejs/core/commit/a5f3c2eb4d2e7fae93ff93ce865b269f01cc825e)), closes [#11873](https://github.com/vuejs/core/issues/11873) [#11874](https://github.com/vuejs/core/issues/11874)
* **reactivity:** properly clean up deps, fix memory leak ([8ea5d6d](https://github.com/vuejs/core/commit/8ea5d6d6981ab7febda0be43c3c92b18869c3a2a)), closes [#11901](https://github.com/vuejs/core/issues/11901)
* **runtime-core:** properly update async component nested in KeepAlive ([#11917](https://github.com/vuejs/core/issues/11917)) ([7fe6c79](https://github.com/vuejs/core/commit/7fe6c795a1fc7ddcea5ad91a56141561192373ac)), closes [#11916](https://github.com/vuejs/core/issues/11916)
* **TransitionGroup:** not warn unkeyed text children with whitespece preserve ([#11888](https://github.com/vuejs/core/issues/11888)) ([7571f20](https://github.com/vuejs/core/commit/7571f20bc3d1854377a146f41d211e05bb68cd47)), closes [#11885](https://github.com/vuejs/core/issues/11885)



## [3.5.4](https://github.com/vuejs/core/compare/v3.5.3...v3.5.4) (2024-09-10)


### Bug Fixes

* **compiler-sfc:** correct scoped injection for nesting selector ([#11854](https://github.com/vuejs/core/issues/11854)) ([b1de75e](https://github.com/vuejs/core/commit/b1de75ed04626b6423085dfde91fb0cb481a25e8)), closes [#10567](https://github.com/vuejs/core/issues/10567)
* **reactivity:** fix markRaw error on already marked object ([#11864](https://github.com/vuejs/core/issues/11864)) ([67d6596](https://github.com/vuejs/core/commit/67d6596d40b1807b9cd8eb0d9282932ea77be3c0)), closes [#11862](https://github.com/vuejs/core/issues/11862)
* Revert "fix: Revert "fix(reactivity): self-referencing computed should refresh"" ([e596378](https://github.com/vuejs/core/commit/e596378e0be728dad7d60938449f3fa557ca2ec9))
* **runtime-core:** handle shallow reactive arrays in renderList correctly ([#11870](https://github.com/vuejs/core/issues/11870)) ([ced59ab](https://github.com/vuejs/core/commit/ced59ab8f2f2e89c13119bab3a0c25a1a1f1c3d6)), closes [#11869](https://github.com/vuejs/core/issues/11869)
* **types:** correctly infer `TypeEmits` with both tuple and function syntax ([#11840](https://github.com/vuejs/core/issues/11840)) ([dad6738](https://github.com/vuejs/core/commit/dad673809929c084dcb8e42640eb7daa675d4ea4)), closes [#11836](https://github.com/vuejs/core/issues/11836)


### Performance Improvements

* **reactivity:** trigger deps directly instead of storing in an array first ([#11695](https://github.com/vuejs/core/issues/11695)) ([f80d447](https://github.com/vuejs/core/commit/f80d447c17662556e9e3f99f6d199967f4c8cf3d))



## [3.5.3](https://github.com/vuejs/core/compare/v3.5.2...v3.5.3) (2024-09-06)


### Bug Fixes

* **hydration:** check __asyncHydrate presence for vue3-lazy-hydration compat ([#11825](https://github.com/vuejs/core/issues/11825)) ([8e6c337](https://github.com/vuejs/core/commit/8e6c3378676be05cea7f53664442acdfb86784f9)), closes [#11793](https://github.com/vuejs/core/issues/11793)
* Revert "fix(reactivity): self-referencing computed should refresh" ([35c760f](https://github.com/vuejs/core/commit/35c760f82f749f7c6e3f9bfead8221ce498e892f))
* **ssr:** respect app.config.warnHandler during ssr ([bf3d9a2](https://github.com/vuejs/core/commit/bf3d9a2af41659a743706306fc798b3d215df5af)), closes [#11830](https://github.com/vuejs/core/issues/11830)
* **Transition:** handle KeepAlive child unmount in Transition out-in mode ([#11833](https://github.com/vuejs/core/issues/11833)) ([6b7901d](https://github.com/vuejs/core/commit/6b7901d28ed3a6a9242c666cc1b8e3c0b0b0fe62)), closes [#11775](https://github.com/vuejs/core/issues/11775)
* **useId:** make generated IDs selector compatible ([babfb4c](https://github.com/vuejs/core/commit/babfb4cbcbf98601d76c1d7653eae8d250ce2710)), closes [#11828](https://github.com/vuejs/core/issues/11828)



## [3.5.2](https://github.com/vuejs/core/compare/v3.5.1...v3.5.2) (2024-09-05)


### Bug Fixes

* **reactivity:** make toRaw work on proxies created by proxyRef ([46c3ab1](https://github.com/vuejs/core/commit/46c3ab1d714024894fa1d33e495d5d35c7817d4d))
* **reactivity:** pass oldValue to computed getter ([#11813](https://github.com/vuejs/core/issues/11813)) ([98864a7](https://github.com/vuejs/core/commit/98864a7ef5c8080c407166c8221488a4eacbbc81)), closes [#11812](https://github.com/vuejs/core/issues/11812)
* **reactivity:** prevent endless recursion in computed getters ([#11797](https://github.com/vuejs/core/issues/11797)) ([716275d](https://github.com/vuejs/core/commit/716275d1b1d2383d8ef0306fcd94558d4d9170f2))
* **reactivity:** self-referencing computed should refresh ([e84c4a6](https://github.com/vuejs/core/commit/e84c4a608e9dc96fb2a4a29d538bcc64f26103a2)), closes [/github.com/vuejs/core/pull/11797#issuecomment-2330738633](https://github.com//github.com/vuejs/core/pull/11797/issues/issuecomment-2330738633)
* **scheduler:** prevent duplicate jobs being queued ([#11826](https://github.com/vuejs/core/issues/11826)) ([df56cc5](https://github.com/vuejs/core/commit/df56cc528793b1d6131a1e64095dd5cb95c56bee)), closes [#11712](https://github.com/vuejs/core/issues/11712) [#11807](https://github.com/vuejs/core/issues/11807)
* **suspense:** avoid updating anchor if activeBranch has not been rendered to the actual container ([#11818](https://github.com/vuejs/core/issues/11818)) ([3c0d531](https://github.com/vuejs/core/commit/3c0d531fa7fe762bfe46fbe63f318adc95221795)), closes [#11806](https://github.com/vuejs/core/issues/11806)
* **Transition:** handle KeepAlive child unmount in Transition out-in mode ([#11778](https://github.com/vuejs/core/issues/11778)) ([3116553](https://github.com/vuejs/core/commit/311655352931863dfcf520b8cf29cebc5b7e1e00)), closes [#11775](https://github.com/vuejs/core/issues/11775)
* **types:** add HTMLDialogElement missing close event ([#11811](https://github.com/vuejs/core/issues/11811)) ([3634f7a](https://github.com/vuejs/core/commit/3634f7a4c1649ad2e7e969eb4512512868c61d01))
* **types:** added name attribute support to details tag ([#11823](https://github.com/vuejs/core/issues/11823)) ([c74176e](https://github.com/vuejs/core/commit/c74176ec7b4d1d34159ce21d600c04b157ac5549)), closes [#11821](https://github.com/vuejs/core/issues/11821)
* **types:** fix defineComponent props inference when setup() has explicit annotation ([fca20a3](https://github.com/vuejs/core/commit/fca20a39aa4a6f98c8f972bd435ebb7dc535648a)), closes [#11803](https://github.com/vuejs/core/issues/11803)
* **useTemplateRef:** properly fix readonly warning in dev and ensure prod behavior consistency ([9b7797d](https://github.com/vuejs/core/commit/9b7797d0d1fc773e979e042673d5b9b3151c40fc)), closes [#11808](https://github.com/vuejs/core/issues/11808) [#11816](https://github.com/vuejs/core/issues/11816) [#11810](https://github.com/vuejs/core/issues/11810)


### Features

* **compiler-core:** parse modifiers as expression to provide location data ([#11819](https://github.com/vuejs/core/issues/11819)) ([3f13203](https://github.com/vuejs/core/commit/3f13203564164eeb2945bdc0b9ef755c37477d75))



## [3.5.1](https://github.com/vuejs/core/compare/v3.5.0...v3.5.1) (2024-09-04)


### Bug Fixes

* **build:** improve built-in components treeshakability ([4eee630](https://github.com/vuejs/core/commit/4eee630b3122a10d0baf9b91358cfffa92d6fd81))
* **reactivity:** handle non-array arguments in reactive `concat` method ([#11794](https://github.com/vuejs/core/issues/11794)) ([475977a](https://github.com/vuejs/core/commit/475977a6f76b77392610e0a3ec2b0e076d1e1d59)), closes [#11792](https://github.com/vuejs/core/issues/11792)
* **Transition:** avoid applying transition hooks on comment vnode ([#11788](https://github.com/vuejs/core/issues/11788)) ([51912f8](https://github.com/vuejs/core/commit/51912f8a02e35f172f6d30ed7a2f3a92c1407cf9)), closes [#11782](https://github.com/vuejs/core/issues/11782)
* **types:** avoid using intersection type in `Readonly<...>` to fix JSDoc emit ([#11799](https://github.com/vuejs/core/issues/11799)) ([7518bc1](https://github.com/vuejs/core/commit/7518bc19dc73ba46dcf1eef6e23f9e6e75552675))
* **useTemplateRef:** fix readonly warning when useTemplateRef has same variable name as template ref ([bc63df0](https://github.com/vuejs/core/commit/bc63df01992fdbf0b6749ad234153725697ed896)), closes [#11795](https://github.com/vuejs/core/issues/11795) [#11802](https://github.com/vuejs/core/issues/11802) [#11804](https://github.com/vuejs/core/issues/11804)



# [3.5.0](https://github.com/vuejs/core/compare/v3.5.0-rc.1...v3.5.0) (2024-09-03)

## Aggregated Features List for 3.5 (alpha to stable)

### Reactivity

- **reactivity**: Refactor reactivity system to use version counting and doubly-linked list tracking ([#10397](https://github.com/vuejs/core/pull/10397)) ([05eb4e0](https://github.com/vuejs/core/commit/05eb4e0fefd585125dd60b7f8fe9c36928d921aa))
- **reactivity**: Optimize array tracking ([#9511](https://github.com/vuejs/core/pull/9511)) ([70196a4](https://github.com/vuejs/core/commit/70196a40cc078f50fcc1110c38c06fbcc70b205e))
- **compiler-sfc:** enable reactive props destructure by default ([d2dac0e](https://github.com/vuejs/core/commit/d2dac0e359c47d1ed0aa77eda488e76fd6466d2d))
- **reactivity:** `onEffectCleanup` API ([2cc5615](https://github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004)), closes [#10173](https://github.com/vuejs/core/issues/10173)
- **reactivity:** add `failSilently` argument for `onScopeDispose` ([9a936aa](https://github.com/vuejs/core/commit/9a936aaec489c79433a32791ecf5ddb1739a62bd))
- **reactivity/watch:** base `watch`, `getCurrentWatcher`, and `onWatcherCleanup` ([#9927](https://github.com/vuejs/core/issues/9927)) ([205e5b5](https://github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))
- **reactivity/watch:** add pause/resume for ReactiveEffect, EffectScope, and WatchHandle ([#9651](https://github.com/vuejs/core/issues/9651)) ([267093c](https://github.com/vuejs/core/commit/267093c31490050bfcf3ff2b30a2aefee2dad582))
- **watch:** support passing number to `deep` option to control the watch depth ([#9572](https://github.com/vuejs/core/issues/9572)) ([22f7d96](https://github.com/vuejs/core/commit/22f7d96757956ebe0baafe52256aa327908cc51c))
- **types:** export `MultiWatchSources` type ([#9563](https://github.com/vuejs/core/issues/9563)) ([998dca5](https://github.com/vuejs/core/commit/998dca59f140420280803233f41707580688562c))
- **types:** allow computed getter and setter types to be unrelated ([#11472](https://github.com/vuejs/core/issues/11472)) ([a01675e](https://github.com/vuejs/core/commit/a01675ef8f99b5acd6832c53051f4415b18609f2)), closes [#7271](https://github.com/vuejs/core/issues/7271)

### SSR

- **runtime-core:** `useId()` and `app.config.idPrefix` ([#11404](https://github.com/vuejs/core/issues/11404)) ([73ef156](https://github.com/vuejs/core/commit/73ef1561f6905d69f968c094d0180c61824f1247))
- **hydration:** lazy hydration strategies for async components ([#11458](https://github.com/vuejs/core/issues/11458)) ([d14a11c](https://github.com/vuejs/core/commit/d14a11c1cdcee88452f17ce97758743c863958f4))
- **hydration:** support suppressing hydration mismatch via data-allow-mismatch ([94fb2b8](https://github.com/vuejs/core/commit/94fb2b8106a66bcca1a3f922a246a29fdd1274b1))

### Custom Element

- **custom-element:** `useHost()` helper ([775103a](https://github.com/vuejs/core/commit/775103af37df69d34c79f12c4c1776c47d07f0a0))
- **custom-element:** `useShadowRoot()` helper ([5a1a89b](https://github.com/vuejs/core/commit/5a1a89bd6178cc2f84ba91da7d72aee4c6ec1282)), closes [#6113](https://github.com/vuejs/core/issues/6113) [#8195](https://github.com/vuejs/core/issues/8195)
- **custom-element:** expose `this.$host` in Options API ([1ef8f46](https://github.com/vuejs/core/commit/1ef8f46af0cfdec2fed66376772409e0aa25ad50))
- **custom-element:** inject child components styles to custom element shadow root ([#11517](https://github.com/vuejs/core/issues/11517)) ([56c76a8](https://github.com/vuejs/core/commit/56c76a8b05c45f782ed3a16ec77c6292b71a17f1)), closes [#4662](https://github.com/vuejs/core/issues/4662) [#7941](https://github.com/vuejs/core/issues/7941) [#7942](https://github.com/vuejs/core/issues/7942)
- **custom-element:** support configurable app instance in defineCustomElement ([6758c3c](https://github.com/vuejs/core/commit/6758c3cd0427f97394d95168c655dae3b7fa62cd)), closes [#4356](https://github.com/vuejs/core/issues/4356) [#4635](https://github.com/vuejs/core/issues/4635)
- **custom-element:** support css `:host` selector by applying css vars on host element ([#8830](https://github.com/vuejs/core/issues/8830)) ([03a9ea2](https://github.com/vuejs/core/commit/03a9ea2b88df0842a820e09f7445c4b9189e3fcb)), closes [#8826](https://github.com/vuejs/core/issues/8826)
- **custom-element:** support emit with options ([e181bff](https://github.com/vuejs/core/commit/e181bff6dc39d5cef92000c10291243c7d6e4d08)), closes [#7605](https://github.com/vuejs/core/issues/7605)
- **custom-element:** support expose on customElement ([#6256](https://github.com/vuejs/core/issues/6256)) ([af838c1](https://github.com/vuejs/core/commit/af838c1b5ec23552e52e64ffa7db0eb0246c3624)), closes [#5540](https://github.com/vuejs/core/issues/5540)
- **custom-element:** support `nonce` option for injected style tags ([bb4a02a](https://github.com/vuejs/core/commit/bb4a02a70c30e739a3c705b3d96d09258d7d7ded)), closes [#6530](https://github.com/vuejs/core/issues/6530)
- **custom-element:** support passing custom-element-specific options via 2nd argument of defineCustomElement ([60a88a2](https://github.com/vuejs/core/commit/60a88a2b129714186cf6ba66f30f31d733d0311e))
- **custom-element:** support `shadowRoot: false` in `defineCustomElement()` ([37d2ce5](https://github.com/vuejs/core/commit/37d2ce5d8e0fac4a00064f02b05f91f69b2d5d5e)), closes [#4314](https://github.com/vuejs/core/issues/4314) [#4404](https://github.com/vuejs/core/issues/4404)

### Teleport

- **teleport:** support deferred Teleport ([#11387](https://github.com/vuejs/core/issues/11387)) ([59a3e88](https://github.com/vuejs/core/commit/59a3e88903b10ac2278170a44d5a03f24fef23ef)), closes [#2015](https://github.com/vuejs/core/issues/2015) [#11386](https://github.com/vuejs/core/issues/11386)
- **teleport/transition:** support directly nesting Teleport inside Transition ([#6548](https://github.com/vuejs/core/issues/6548)) ([0e6e3c7](https://github.com/vuejs/core/commit/0e6e3c7eb0e5320b7c1818e025cb4a490fede9c0)), closes [#5836](https://github.com/vuejs/core/issues/5836)

### Misc

- **runtime-core:** `useTemplateRef()` ([3ba70e4](https://github.com/vuejs/core/commit/3ba70e49b5856c53611c314d4855d679a546a7df))
- **runtime-core:** add `app.onUnmount()` for registering cleanup functions ([#4619](https://github.com/vuejs/core/issues/4619)) ([582a3a3](https://github.com/vuejs/core/commit/582a3a382b1adda565bac576b913a88d9e8d7a9e)), closes [#4516](https://github.com/vuejs/core/issues/4516)
- **runtime-core:** add `app.config.throwUnhandledErrorInProduction` ([f476b7f](https://github.com/vuejs/core/commit/f476b7f030f2dd427ca655fcea36f4933a4b4da0)), closes [#7876](https://github.com/vuejs/core/issues/7876)
- **runtime-dom:** Trusted Types compatibility ([#10844](https://github.com/vuejs/core/issues/10844)) ([6d4eb94](https://github.com/vuejs/core/commit/6d4eb94853ed1b2b1675bdd7d5ba9c75cc6daed5))
- **compiler-core:** support `Symbol` global in template expressions ([#9069](https://github.com/vuejs/core/issues/9069)) ([a501a85](https://github.com/vuejs/core/commit/a501a85a7c910868e01a5c70a2abea4e9d9e87f3))
- **types:** export more emit related types ([#11017](https://github.com/vuejs/core/issues/11017)) ([189573d](https://github.com/vuejs/core/commit/189573dcee2a16bd3ed36ff5589d43f535e5e733))
* **types:** add loading prop to iframe ([#11767](https://github.com/vuejs/core/issues/11767)) ([d86fe0e](https://github.com/vuejs/core/commit/d86fe0ec002901dc359a0e85f3a421b4a8538d68))

### Internals

- **reactivity:** store value cache on CustomRefs impls ([#11539](https://github.com/vuejs/core/issues/11539)) ([e044b6e](https://github.com/vuejs/core/commit/e044b6e737efc9433d1d84590036b82280da6292))
- **types:** provide internal options for directly using user types in language tools ([#10801](https://github.com/vuejs/core/issues/10801)) ([75c8cf6](https://github.com/vuejs/core/commit/75c8cf63a1ef30ac84f91282d66ad3f57c6612e9))
- **types:** provide internal options for using refs type in language tools ([#11492](https://github.com/vuejs/core/issues/11492)) ([5ffd1a8](https://github.com/vuejs/core/commit/5ffd1a89455807d5069eb2c28eba0379641dca76))



## Bug Fixes

* **compiler-sfc:** fix import usage check for kebab-case same name shorthand binding ([0f7c0e5](https://github.com/vuejs/core/commit/0f7c0e5dc0eedada7a5194db87fd0a7dbd1d3354)), closes [#11745](https://github.com/vuejs/core/issues/11745) [#11754](https://github.com/vuejs/core/issues/11754)
* **cssVars:** correctly escape double quotes in SSR ([#11784](https://github.com/vuejs/core/issues/11784)) ([7b5b6e0](https://github.com/vuejs/core/commit/7b5b6e0275f35748dca6d7eb842f8ab2364c6b9a)), closes [#11779](https://github.com/vuejs/core/issues/11779)
* **deps:** update dependency postcss to ^8.4.44 ([#11774](https://github.com/vuejs/core/issues/11774)) ([cb843e0](https://github.com/vuejs/core/commit/cb843e0be31f9e563ccfc30eca0c06f2a224b505))
* **hydration:** escape css var name to avoid mismatch ([#11739](https://github.com/vuejs/core/issues/11739)) ([ca12e77](https://github.com/vuejs/core/commit/ca12e776bc53aaa31f2df6bb6edc6be1b2f10c37)), closes [#11735](https://github.com/vuejs/core/issues/11735)
* **hydration:** handle text nodes with 0 during hydration ([#11772](https://github.com/vuejs/core/issues/11772)) ([c756da2](https://github.com/vuejs/core/commit/c756da24b2d8635cf52b4c7d3abf5bf938852cc5)), closes [#11771](https://github.com/vuejs/core/issues/11771)
* **reactivity:** correctly handle method calls on user-extended arrays ([#11760](https://github.com/vuejs/core/issues/11760)) ([9817c80](https://github.com/vuejs/core/commit/9817c80187bec6a3344c74d65fac92262de0fcdd)), closes [#11759](https://github.com/vuejs/core/issues/11759)
* **runtime-dom:** avoid unnecessary prop patch for checkbox ([#11657](https://github.com/vuejs/core/issues/11657)) ([c3ce9fe](https://github.com/vuejs/core/commit/c3ce9fe3d8fc27d864ce7148cd36da882cfc21ab)), closes [#11647](https://github.com/vuejs/core/issues/11647)
* **runtime-dom:** prevent unnecessary DOM update from v-model ([#11656](https://github.com/vuejs/core/issues/11656)) ([b1be9bd](https://github.com/vuejs/core/commit/b1be9bd64f2c7c4286fecb25bad5d5edd49efce9)), closes [#11647](https://github.com/vuejs/core/issues/11647)
* **server-renderer:** Fix call to serverPrefetch in server renderer with an async setup ([#10893](https://github.com/vuejs/core/issues/10893)) ([6039e25](https://github.com/vuejs/core/commit/6039e25e04a8c1db5821955f011d57f1615807ab))
* **server-renderer:** render `className` during SSR ([#11722](https://github.com/vuejs/core/issues/11722)) ([52cdb0f](https://github.com/vuejs/core/commit/52cdb0f991dc154ae32a2900874d5dbc4e078565))
* **types/defineModel:** allow getter and setter types to be unrelated ([#11699](https://github.com/vuejs/core/issues/11699)) ([fe07f70](https://github.com/vuejs/core/commit/fe07f7073617df358c2f8cbc3de433359e873c96)), closes [#11697](https://github.com/vuejs/core/issues/11697)



# [3.5.0-rc.1](https://github.com/vuejs/core/compare/v3.5.0-beta.3...v3.5.0-rc.1) (2024-08-29)


### Bug Fixes

* **compiler-sfc:** skip circular tsconfig project reference ([#11680](https://github.com/vuejs/core/issues/11680)) ([9c4c2e5](https://github.com/vuejs/core/commit/9c4c2e51b045218d0c5ca64b4fb58b17d5d580cc)), closes [#11382](https://github.com/vuejs/core/issues/11382)
* **custom-element:** handle keys set on custom elements ([#11655](https://github.com/vuejs/core/issues/11655)) ([f1d1831](https://github.com/vuejs/core/commit/f1d1831f07fe52d5681a5ec9ec310572463abf26)), closes [#11641](https://github.com/vuejs/core/issues/11641)
* **deps:** update dependency monaco-editor to ^0.51.0 ([#11713](https://github.com/vuejs/core/issues/11713)) ([434f8a9](https://github.com/vuejs/core/commit/434f8a97c77f68aeae050e9e4e1f54f63bc4bd26))
* **keep-alive:**  reset keep alive flag when the component is removed from include ([#11718](https://github.com/vuejs/core/issues/11718)) ([29c321b](https://github.com/vuejs/core/commit/29c321bfd33f9197244dec3d027077e63b2cdf2f)), closes [#11717](https://github.com/vuejs/core/issues/11717)
* **reactivity:** avoid infinite recursion when mutating ref wrapped in reactive ([313e4bf](https://github.com/vuejs/core/commit/313e4bf55214ac1e334a99c329a3ba5daca4f156)), closes [#11696](https://github.com/vuejs/core/issues/11696)
* **reactivity:** ensure watcher with once: true are properly removed from effect scope  ([#11665](https://github.com/vuejs/core/issues/11665)) ([fbc0c42](https://github.com/vuejs/core/commit/fbc0c42bcf6dea5a6ae664223fa19d4375ca39f0))
* **runtime-dom:** setting innerHTML when patching props should go through trusted types ([d875de5](https://github.com/vuejs/core/commit/d875de54e9e03e0768fe550aa4c4886a4baf3bd7))
* **types:** GlobalDirective / GlobalComponents should not be records ([42e8df6](https://github.com/vuejs/core/commit/42e8df62030e7f2c287d9103f045e67b34a63e3b))



# [3.5.0-beta.3](https://github.com/vuejs/core/compare/v3.5.0-beta.2...v3.5.0-beta.3) (2024-08-20)


### Bug Fixes

* **reactivity:** extended methods respect reactive ([#11629](https://github.com/vuejs/core/issues/11629)) ([9de1d10](https://github.com/vuejs/core/commit/9de1d101f98bf6081f41038f6974826f190330a0)), closes [#11628](https://github.com/vuejs/core/issues/11628)
* **runtime-core:** correct type inference for PascalCase emits ([#11579](https://github.com/vuejs/core/issues/11579)) ([d7d0371](https://github.com/vuejs/core/commit/d7d0371e74707ee601020f67de88e091cdae2673)), closes [vuejs/language-tools#4269](https://github.com/vuejs/language-tools/issues/4269)
* **runtime-core:** ensure suspense content inherit scopeId ([#10652](https://github.com/vuejs/core/issues/10652)) ([ac2a410](https://github.com/vuejs/core/commit/ac2a410e46392db63ca4ed2db3c0fa71ebe1e855)), closes [#5148](https://github.com/vuejs/core/issues/5148)
* **runtime-core:** pre jobs without an id should run first ([#7746](https://github.com/vuejs/core/issues/7746)) ([b332f80](https://github.com/vuejs/core/commit/b332f80f0edb018229a23b43b93bb402b6368a3c))
* **ssr:** apply ssr props to the the fallback vnode-based branch in ssr ([#7247](https://github.com/vuejs/core/issues/7247)) ([98b83e8](https://github.com/vuejs/core/commit/98b83e86d16c635547a1e735e5fb675aea2f0f1b)), closes [#6123](https://github.com/vuejs/core/issues/6123)
* **types/custom-element:** `defineCustomElement` with required props ([#11578](https://github.com/vuejs/core/issues/11578)) ([5e0f6d5](https://github.com/vuejs/core/commit/5e0f6d5f8fe7c4eb8f247357c3e2e281726f36db))
* **types:** strip non-prop default values from return type of withDefaults ([#9998](https://github.com/vuejs/core/issues/9998)) ([44973bb](https://github.com/vuejs/core/commit/44973bb3e790db7d8aa7af4eda21c80cac73a8de)), closes [#9899](https://github.com/vuejs/core/issues/9899)
* **watch:** handle errors in computed used as watch source ([#11626](https://github.com/vuejs/core/issues/11626)) ([8bcaad4](https://github.com/vuejs/core/commit/8bcaad4a32cf0f1f89e0259f6a53036620b7fe9f)), closes [#11624](https://github.com/vuejs/core/issues/11624)


### Features

* **reactivity:** base `watch`, `getCurrentWatcher`, and `onWatcherCleanup` ([#9927](https://github.com/vuejs/core/issues/9927)) ([205e5b5](https://github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))


### Performance Improvements

* **runtime-core:** use `apply` to avoid spreading. ([#5985](https://github.com/vuejs/core/issues/5985)) ([bb6babc](https://github.com/vuejs/core/commit/bb6babca8f206615d4e246457cd54d21bb3bc5a4))



# [3.5.0-beta.2](https://github.com/vuejs/core/compare/v3.5.0-beta.1...v3.5.0-beta.2) (2024-08-15)


### Bug Fixes

* **build:** revert entities to 4.5 to avoid runtime resolution errors ([e9e0815](https://github.com/vuejs/core/commit/e9e08155bf8d00c3327ed7371330eb2ae467e560)), closes [#11603](https://github.com/vuejs/core/issues/11603)
* **compiler-core:** use ast-based check for function expressions when possible ([5861229](https://github.com/vuejs/core/commit/58612294757480974e667652ede5bbcf72b1089d)), closes [#11615](https://github.com/vuejs/core/issues/11615)
* **compiler-sfc:** fix prefixIdentifier default value ([3d6f015](https://github.com/vuejs/core/commit/3d6f01571b3fb61b32da599d0419eff4e3ebb231))
* **compiler-sfc:** handle keyof operator with index object ([#11581](https://github.com/vuejs/core/issues/11581)) ([fe00815](https://github.com/vuejs/core/commit/fe008152c0612ff3ecc7ad88e7e66a06b1b2bc3f))
* **custom-element:** keep instance.isCE for backwards compat ([e19fc27](https://github.com/vuejs/core/commit/e19fc270428b59456fee43224990138c4d6ccb2d))
* **deps:** update dependency postcss to ^8.4.41 ([#11585](https://github.com/vuejs/core/issues/11585)) ([4c4e12a](https://github.com/vuejs/core/commit/4c4e12ae28d67d616924b0601e68adc551959971))
* **keep-alive:** ensure include/exclude regexp work with global flag ([#11595](https://github.com/vuejs/core/issues/11595)) ([3653bc0](https://github.com/vuejs/core/commit/3653bc0f45d6fedf84e29b64ca52584359c383c0))
* **reactivity:** ensure extended method arguments are not lost ([#11574](https://github.com/vuejs/core/issues/11574)) ([4085def](https://github.com/vuejs/core/commit/4085def1bae42d01ee3c22c731cc4a02096464ee)), closes [#11570](https://github.com/vuejs/core/issues/11570)
* **reactivity:** sync watch should be executed correctly ([#11589](https://github.com/vuejs/core/issues/11589)) ([3bda3e8](https://github.com/vuejs/core/commit/3bda3e83fd9e2fbe451a1c79dae82ff6a7467683)), closes [#11577](https://github.com/vuejs/core/issues/11577)
* **types/computed:** ensure type safety for `WritableComputedRef` ([#11608](https://github.com/vuejs/core/issues/11608)) ([5cf5a16](https://github.com/vuejs/core/commit/5cf5a1620d9a97382d386c277265d9dd051fe484))
* **types:** add fallback stub for DOM types when DOM lib is absent ([#11598](https://github.com/vuejs/core/issues/11598)) ([fee6697](https://github.com/vuejs/core/commit/fee669764fbf475adce9e47a7a73b4937ab31ffc))


### Features

* **deprecated:** remove deprecated parseExpressions option ([#11597](https://github.com/vuejs/core/issues/11597)) ([
Download .txt
gitextract_nx4x_z0x/

├── .git-blame-ignore-revs
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── config.yml
│   ├── bug-repro-guidelines.md
│   ├── commit-convention.md
│   ├── contributing.md
│   ├── git-branch-workflow.excalidraw
│   ├── maintenance.md
│   ├── renovate.json5
│   └── workflows/
│       ├── autofix.yml
│       ├── ci.yml
│       ├── close-cant-reproduce-issues.yml
│       ├── ecosystem-ci-trigger.yml
│       ├── lock-closed-issues.yml
│       ├── release.yml
│       ├── size-data.yml
│       ├── size-report.yml
│       └── test.yml
├── .gitignore
├── .node-version
├── .prettierignore
├── .prettierrc
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── .well-known/
│   └── funding-manifest-urls
├── BACKERS.md
├── CHANGELOG.md
├── FUNDING.json
├── LICENSE
├── README.md
├── SECURITY.md
├── changelogs/
│   ├── CHANGELOG-3.0.md
│   ├── CHANGELOG-3.1.md
│   ├── CHANGELOG-3.2.md
│   ├── CHANGELOG-3.3.md
│   └── CHANGELOG-3.4.md
├── eslint.config.js
├── netlify.toml
├── package.json
├── packages/
│   ├── compiler-core/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── codegen.spec.ts.snap
│   │   │   │   ├── compile.spec.ts.snap
│   │   │   │   ├── parse.spec.ts.snap
│   │   │   │   └── scopeId.spec.ts.snap
│   │   │   ├── codegen.spec.ts
│   │   │   ├── compile.spec.ts
│   │   │   ├── parse.spec.ts
│   │   │   ├── scopeId.spec.ts
│   │   │   ├── testUtils.ts
│   │   │   ├── transform.spec.ts
│   │   │   ├── transforms/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── cacheStatic.spec.ts.snap
│   │   │   │   │   ├── transformElement.spec.ts.snap
│   │   │   │   │   ├── transformExpressions.spec.ts.snap
│   │   │   │   │   ├── transformText.spec.ts.snap
│   │   │   │   │   ├── vFor.spec.ts.snap
│   │   │   │   │   ├── vIf.spec.ts.snap
│   │   │   │   │   ├── vMemo.spec.ts.snap
│   │   │   │   │   ├── vModel.spec.ts.snap
│   │   │   │   │   ├── vOnce.spec.ts.snap
│   │   │   │   │   └── vSlot.spec.ts.snap
│   │   │   │   ├── cacheStatic.spec.ts
│   │   │   │   ├── noopDirectiveTransform.spec.ts
│   │   │   │   ├── transformElement.spec.ts
│   │   │   │   ├── transformExpressions.spec.ts
│   │   │   │   ├── transformSlotOutlet.spec.ts
│   │   │   │   ├── transformText.spec.ts
│   │   │   │   ├── vBind.spec.ts
│   │   │   │   ├── vFor.spec.ts
│   │   │   │   ├── vIf.spec.ts
│   │   │   │   ├── vMemo.spec.ts
│   │   │   │   ├── vModel.spec.ts
│   │   │   │   ├── vOn.spec.ts
│   │   │   │   ├── vOnce.spec.ts
│   │   │   │   └── vSlot.spec.ts
│   │   │   └── utils.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── ast.ts
│   │       ├── babelUtils.ts
│   │       ├── codegen.ts
│   │       ├── compat/
│   │       │   ├── compatConfig.ts
│   │       │   └── transformFilter.ts
│   │       ├── compile.ts
│   │       ├── errors.ts
│   │       ├── index.ts
│   │       ├── options.ts
│   │       ├── parser.ts
│   │       ├── runtimeHelpers.ts
│   │       ├── tokenizer.ts
│   │       ├── transform.ts
│   │       ├── transforms/
│   │       │   ├── cacheStatic.ts
│   │       │   ├── noopDirectiveTransform.ts
│   │       │   ├── transformElement.ts
│   │       │   ├── transformExpression.ts
│   │       │   ├── transformSlotOutlet.ts
│   │       │   ├── transformText.ts
│   │       │   ├── transformVBindShorthand.ts
│   │       │   ├── vBind.ts
│   │       │   ├── vFor.ts
│   │       │   ├── vIf.ts
│   │       │   ├── vMemo.ts
│   │       │   ├── vModel.ts
│   │       │   ├── vOn.ts
│   │       │   ├── vOnce.ts
│   │       │   └── vSlot.ts
│   │       ├── utils.ts
│   │       └── validateExpression.ts
│   ├── compiler-dom/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.spec.ts.snap
│   │   │   ├── decoderHtmlBrowser.spec.ts
│   │   │   ├── index.spec.ts
│   │   │   ├── parse.spec.ts
│   │   │   └── transforms/
│   │   │       ├── Transition.spec.ts
│   │   │       ├── __snapshots__/
│   │   │       │   ├── Transition.spec.ts.snap
│   │   │       │   ├── stringifyStatic.spec.ts.snap
│   │   │       │   ├── vModel.spec.ts.snap
│   │   │       │   └── vShow.spec.ts.snap
│   │   │       ├── ignoreSideEffectTags.spec.ts
│   │   │       ├── stringifyStatic.spec.ts
│   │   │       ├── transformStyle.spec.ts
│   │   │       ├── vHtml.spec.ts
│   │   │       ├── vModel.spec.ts
│   │   │       ├── vOn.spec.ts
│   │   │       ├── vShow.spec.ts
│   │   │       ├── vText.spec.ts
│   │   │       └── validateHtmlNesting.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── decodeHtmlBrowser.ts
│   │       ├── errors.ts
│   │       ├── htmlNesting.ts
│   │       ├── index.ts
│   │       ├── parserOptions.ts
│   │       ├── runtimeHelpers.ts
│   │       └── transforms/
│   │           ├── Transition.ts
│   │           ├── ignoreSideEffectTags.ts
│   │           ├── stringifyStatic.ts
│   │           ├── transformStyle.ts
│   │           ├── vHtml.ts
│   │           ├── vModel.ts
│   │           ├── vOn.ts
│   │           ├── vShow.ts
│   │           ├── vText.ts
│   │           └── validateHtmlNesting.ts
│   ├── compiler-sfc/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── compileScript.spec.ts.snap
│   │   │   │   ├── compileTemplate.spec.ts.snap
│   │   │   │   ├── cssVars.spec.ts.snap
│   │   │   │   ├── templateTransformAssetUrl.spec.ts.snap
│   │   │   │   └── templateTransformSrcset.spec.ts.snap
│   │   │   ├── compileScript/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── defineEmits.spec.ts.snap
│   │   │   │   │   ├── defineExpose.spec.ts.snap
│   │   │   │   │   ├── defineModel.spec.ts.snap
│   │   │   │   │   ├── defineOptions.spec.ts.snap
│   │   │   │   │   ├── defineProps.spec.ts.snap
│   │   │   │   │   ├── definePropsDestructure.spec.ts.snap
│   │   │   │   │   ├── defineSlots.spec.ts.snap
│   │   │   │   │   ├── hoistStatic.spec.ts.snap
│   │   │   │   │   └── importUsageCheck.spec.ts.snap
│   │   │   │   ├── defineEmits.spec.ts
│   │   │   │   ├── defineExpose.spec.ts
│   │   │   │   ├── defineModel.spec.ts
│   │   │   │   ├── defineOptions.spec.ts
│   │   │   │   ├── defineProps.spec.ts
│   │   │   │   ├── definePropsDestructure.spec.ts
│   │   │   │   ├── defineSlots.spec.ts
│   │   │   │   ├── hoistStatic.spec.ts
│   │   │   │   ├── importUsageCheck.spec.ts
│   │   │   │   └── resolveType.spec.ts
│   │   │   ├── compileScript.spec.ts
│   │   │   ├── compileStyle.spec.ts
│   │   │   ├── compileTemplate.spec.ts
│   │   │   ├── cssVars.spec.ts
│   │   │   ├── fixture/
│   │   │   │   └── import.scss
│   │   │   ├── parse.spec.ts
│   │   │   ├── rewriteDefault.spec.ts
│   │   │   ├── templateTransformAssetUrl.spec.ts
│   │   │   ├── templateTransformSrcset.spec.ts
│   │   │   ├── templateUtils.spec.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── cache.ts
│   │       ├── compileScript.ts
│   │       ├── compileStyle.ts
│   │       ├── compileTemplate.ts
│   │       ├── index.ts
│   │       ├── parse.ts
│   │       ├── rewriteDefault.ts
│   │       ├── script/
│   │       │   ├── analyzeScriptBindings.ts
│   │       │   ├── context.ts
│   │       │   ├── defineEmits.ts
│   │       │   ├── defineExpose.ts
│   │       │   ├── defineModel.ts
│   │       │   ├── defineOptions.ts
│   │       │   ├── defineProps.ts
│   │       │   ├── definePropsDestructure.ts
│   │       │   ├── defineSlots.ts
│   │       │   ├── importUsageCheck.ts
│   │       │   ├── normalScript.ts
│   │       │   ├── resolveType.ts
│   │       │   ├── topLevelAwait.ts
│   │       │   └── utils.ts
│   │       ├── shims.d.ts
│   │       ├── style/
│   │       │   ├── cssVars.ts
│   │       │   ├── pluginScoped.ts
│   │       │   ├── pluginTrim.ts
│   │       │   └── preprocessors.ts
│   │       ├── template/
│   │       │   ├── templateUtils.ts
│   │       │   ├── transformAssetUrl.ts
│   │       │   └── transformSrcset.ts
│   │       └── warn.ts
│   ├── compiler-ssr/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── ssrComponent.spec.ts
│   │   │   ├── ssrElement.spec.ts
│   │   │   ├── ssrFallthroughAttrs.spec.ts
│   │   │   ├── ssrInjectCssVars.spec.ts
│   │   │   ├── ssrPortal.spec.ts
│   │   │   ├── ssrScopeId.spec.ts
│   │   │   ├── ssrSlotOutlet.spec.ts
│   │   │   ├── ssrSuspense.spec.ts
│   │   │   ├── ssrText.spec.ts
│   │   │   ├── ssrTransition.spec.ts
│   │   │   ├── ssrTransitionGroup.spec.ts
│   │   │   ├── ssrVFor.spec.ts
│   │   │   ├── ssrVIf.spec.ts
│   │   │   ├── ssrVModel.spec.ts
│   │   │   ├── ssrVShow.spec.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── errors.ts
│   │       ├── index.ts
│   │       ├── runtimeHelpers.ts
│   │       ├── ssrCodegenTransform.ts
│   │       └── transforms/
│   │           ├── ssrInjectCssVars.ts
│   │           ├── ssrInjectFallthroughAttrs.ts
│   │           ├── ssrTransformComponent.ts
│   │           ├── ssrTransformElement.ts
│   │           ├── ssrTransformSlotOutlet.ts
│   │           ├── ssrTransformSuspense.ts
│   │           ├── ssrTransformTeleport.ts
│   │           ├── ssrTransformTransition.ts
│   │           ├── ssrTransformTransitionGroup.ts
│   │           ├── ssrVFor.ts
│   │           ├── ssrVIf.ts
│   │           ├── ssrVModel.ts
│   │           └── ssrVShow.ts
│   ├── global.d.ts
│   ├── reactivity/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __benchmarks__/
│   │   │   ├── computed.bench.ts
│   │   │   ├── effect.bench.ts
│   │   │   ├── reactiveArray.bench.ts
│   │   │   ├── reactiveMap.bench.ts
│   │   │   ├── reactiveObject.bench.ts
│   │   │   └── ref.bench.ts
│   │   ├── __tests__/
│   │   │   ├── collections/
│   │   │   │   ├── Map.spec.ts
│   │   │   │   ├── Set.spec.ts
│   │   │   │   ├── WeakMap.spec.ts
│   │   │   │   ├── WeakSet.spec.ts
│   │   │   │   └── shallowReadonly.spec.ts
│   │   │   ├── computed.spec.ts
│   │   │   ├── effect.spec.ts
│   │   │   ├── effectScope.spec.ts
│   │   │   ├── gc.spec.ts
│   │   │   ├── reactive.spec.ts
│   │   │   ├── reactiveArray.spec.ts
│   │   │   ├── readonly.spec.ts
│   │   │   ├── ref.spec.ts
│   │   │   ├── shallowReactive.spec.ts
│   │   │   ├── shallowReadonly.spec.ts
│   │   │   └── watch.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── arrayInstrumentations.ts
│   │       ├── baseHandlers.ts
│   │       ├── collectionHandlers.ts
│   │       ├── computed.ts
│   │       ├── constants.ts
│   │       ├── dep.ts
│   │       ├── effect.ts
│   │       ├── effectScope.ts
│   │       ├── index.ts
│   │       ├── reactive.ts
│   │       ├── ref.ts
│   │       ├── warning.ts
│   │       └── watch.ts
│   ├── runtime-core/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── apiAsyncComponent.spec.ts
│   │   │   ├── apiCreateApp.spec.ts
│   │   │   ├── apiExpose.spec.ts
│   │   │   ├── apiInject.spec.ts
│   │   │   ├── apiLifecycle.spec.ts
│   │   │   ├── apiOptions.spec.ts
│   │   │   ├── apiSetupContext.spec.ts
│   │   │   ├── apiSetupHelpers.spec.ts
│   │   │   ├── apiWatch.bench.ts
│   │   │   ├── apiWatch.spec.ts
│   │   │   ├── component.spec.ts
│   │   │   ├── componentEmits.spec.ts
│   │   │   ├── componentProps.spec.ts
│   │   │   ├── componentPublicInstance.spec.ts
│   │   │   ├── componentSlots.spec.ts
│   │   │   ├── components/
│   │   │   │   ├── BaseTransition.spec.ts
│   │   │   │   ├── KeepAlive.spec.ts
│   │   │   │   ├── Suspense.spec.ts
│   │   │   │   └── Teleport.spec.ts
│   │   │   ├── directives.spec.ts
│   │   │   ├── errorHandling.spec.ts
│   │   │   ├── h.spec.ts
│   │   │   ├── helpers/
│   │   │   │   ├── createSlots.spec.ts
│   │   │   │   ├── renderList.spec.ts
│   │   │   │   ├── renderSlot.spec.ts
│   │   │   │   ├── resolveAssets.spec.ts
│   │   │   │   ├── toHandlers.spec.ts
│   │   │   │   ├── useId.spec.ts
│   │   │   │   ├── useModel.spec.ts
│   │   │   │   ├── useTemplateRef.spec.ts
│   │   │   │   └── withMemo.spec.ts
│   │   │   ├── hmr.spec.ts
│   │   │   ├── hydration.spec.ts
│   │   │   ├── misc.spec.ts
│   │   │   ├── rendererAttrsFallthrough.spec.ts
│   │   │   ├── rendererChildren.spec.ts
│   │   │   ├── rendererComponent.spec.ts
│   │   │   ├── rendererElement.spec.ts
│   │   │   ├── rendererFragment.spec.ts
│   │   │   ├── rendererOptimizedMode.spec.ts
│   │   │   ├── rendererTemplateRef.spec.ts
│   │   │   ├── scheduler.spec.ts
│   │   │   ├── scopeId.spec.ts
│   │   │   ├── vnode.spec.ts
│   │   │   └── vnodeHooks.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── apiAsyncComponent.ts
│   │   │   ├── apiComputed.ts
│   │   │   ├── apiCreateApp.ts
│   │   │   ├── apiDefineComponent.ts
│   │   │   ├── apiInject.ts
│   │   │   ├── apiLifecycle.ts
│   │   │   ├── apiSetupHelpers.ts
│   │   │   ├── apiWatch.ts
│   │   │   ├── compat/
│   │   │   │   ├── attrsFallthrough.ts
│   │   │   │   ├── compatConfig.ts
│   │   │   │   ├── component.ts
│   │   │   │   ├── componentAsync.ts
│   │   │   │   ├── componentFunctional.ts
│   │   │   │   ├── componentVModel.ts
│   │   │   │   ├── customDirective.ts
│   │   │   │   ├── data.ts
│   │   │   │   ├── global.ts
│   │   │   │   ├── globalConfig.ts
│   │   │   │   ├── instance.ts
│   │   │   │   ├── instanceChildren.ts
│   │   │   │   ├── instanceEventEmitter.ts
│   │   │   │   ├── instanceListeners.ts
│   │   │   │   ├── props.ts
│   │   │   │   ├── renderFn.ts
│   │   │   │   └── renderHelpers.ts
│   │   │   ├── component.ts
│   │   │   ├── componentEmits.ts
│   │   │   ├── componentOptions.ts
│   │   │   ├── componentProps.ts
│   │   │   ├── componentPublicInstance.ts
│   │   │   ├── componentRenderContext.ts
│   │   │   ├── componentRenderUtils.ts
│   │   │   ├── componentSlots.ts
│   │   │   ├── components/
│   │   │   │   ├── BaseTransition.ts
│   │   │   │   ├── KeepAlive.ts
│   │   │   │   ├── Suspense.ts
│   │   │   │   └── Teleport.ts
│   │   │   ├── customFormatter.ts
│   │   │   ├── devtools.ts
│   │   │   ├── directives.ts
│   │   │   ├── enums.ts
│   │   │   ├── errorHandling.ts
│   │   │   ├── featureFlags.ts
│   │   │   ├── h.ts
│   │   │   ├── helpers/
│   │   │   │   ├── createSlots.ts
│   │   │   │   ├── renderList.ts
│   │   │   │   ├── renderSlot.ts
│   │   │   │   ├── resolveAssets.ts
│   │   │   │   ├── toHandlers.ts
│   │   │   │   ├── useId.ts
│   │   │   │   ├── useModel.ts
│   │   │   │   ├── useSsrContext.ts
│   │   │   │   ├── useTemplateRef.ts
│   │   │   │   └── withMemo.ts
│   │   │   ├── hmr.ts
│   │   │   ├── hydration.ts
│   │   │   ├── hydrationStrategies.ts
│   │   │   ├── index.ts
│   │   │   ├── internalObject.ts
│   │   │   ├── profiling.ts
│   │   │   ├── renderer.ts
│   │   │   ├── rendererTemplateRef.ts
│   │   │   ├── scheduler.ts
│   │   │   ├── vnode.ts
│   │   │   └── warning.ts
│   │   └── types/
│   │       ├── globalComponents.d.ts
│   │       └── scriptSetupHelpers.d.ts
│   ├── runtime-dom/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── createApp.spec.ts
│   │   │   ├── customElement.spec.ts
│   │   │   ├── customizedBuiltIn.spec.ts
│   │   │   ├── directives/
│   │   │   │   ├── vCloak.spec.ts
│   │   │   │   ├── vModel.spec.ts
│   │   │   │   ├── vOn.spec.ts
│   │   │   │   └── vShow.spec.ts
│   │   │   ├── helpers/
│   │   │   │   ├── useCssModule.spec.ts
│   │   │   │   └── useCssVars.spec.ts
│   │   │   ├── nodeOps.spec.ts
│   │   │   ├── patchAttrs.spec.ts
│   │   │   ├── patchClass.spec.ts
│   │   │   ├── patchEvents.spec.ts
│   │   │   ├── patchProps.spec.ts
│   │   │   ├── patchStyle.spec.ts
│   │   │   └── rendererStaticNode.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── apiCustomElement.ts
│   │       ├── components/
│   │       │   ├── Transition.ts
│   │       │   └── TransitionGroup.ts
│   │       ├── directives/
│   │       │   ├── vModel.ts
│   │       │   ├── vOn.ts
│   │       │   └── vShow.ts
│   │       ├── helpers/
│   │       │   ├── useCssModule.ts
│   │       │   └── useCssVars.ts
│   │       ├── index.ts
│   │       ├── jsx.ts
│   │       ├── modules/
│   │       │   ├── attrs.ts
│   │       │   ├── class.ts
│   │       │   ├── events.ts
│   │       │   ├── props.ts
│   │       │   └── style.ts
│   │       ├── nodeOps.ts
│   │       └── patchProp.ts
│   ├── runtime-test/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   └── testRuntime.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── index.ts
│   │       ├── nodeOps.ts
│   │       ├── patchProp.ts
│   │       ├── serialize.ts
│   │       └── triggerEvent.ts
│   ├── server-renderer/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── createBuffer.bench.ts
│   │   │   ├── render.spec.ts
│   │   │   ├── ssrAttrFallthrough.spec.ts
│   │   │   ├── ssrCompilerOptions.spec.ts
│   │   │   ├── ssrComputed.spec.ts
│   │   │   ├── ssrDirectives.spec.ts
│   │   │   ├── ssrDynamicComponent.spec.ts
│   │   │   ├── ssrInterpolate.spec.ts
│   │   │   ├── ssrRenderAttrs.spec.ts
│   │   │   ├── ssrRenderList.spec.ts
│   │   │   ├── ssrScopeId.spec.ts
│   │   │   ├── ssrSlot.spec.ts
│   │   │   ├── ssrSuspense.spec.ts
│   │   │   ├── ssrTeleport.spec.ts
│   │   │   ├── ssrVModelHelpers.spec.ts
│   │   │   ├── ssrWatch.spec.ts
│   │   │   ├── unrollBuffer.bench.ts
│   │   │   └── webStream.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── helpers/
│   │       │   ├── ssrCompile.ts
│   │       │   ├── ssrGetDirectiveProps.ts
│   │       │   ├── ssrInterpolate.ts
│   │       │   ├── ssrRenderAttrs.ts
│   │       │   ├── ssrRenderComponent.ts
│   │       │   ├── ssrRenderList.ts
│   │       │   ├── ssrRenderSlot.ts
│   │       │   ├── ssrRenderSuspense.ts
│   │       │   ├── ssrRenderTeleport.ts
│   │       │   └── ssrVModelHelpers.ts
│   │       ├── index.ts
│   │       ├── internal.ts
│   │       ├── render.ts
│   │       ├── renderToStream.ts
│   │       └── renderToString.ts
│   ├── shared/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │   └── codeframe.spec.ts.snap
│   │   │   ├── codeframe.spec.ts
│   │   │   ├── cssVars.spec.ts
│   │   │   ├── escapeHtml.spec.ts
│   │   │   ├── looseEqual.spec.ts
│   │   │   ├── normalizeProp.spec.ts
│   │   │   └── toDisplayString.spec.ts
│   │   ├── index.js
│   │   ├── package.json
│   │   └── src/
│   │       ├── codeframe.ts
│   │       ├── cssVars.ts
│   │       ├── domAttrConfig.ts
│   │       ├── domTagConfig.ts
│   │       ├── escapeHtml.ts
│   │       ├── general.ts
│   │       ├── globalsAllowList.ts
│   │       ├── index.ts
│   │       ├── looseEqual.ts
│   │       ├── makeMap.ts
│   │       ├── normalizeProp.ts
│   │       ├── patchFlags.ts
│   │       ├── shapeFlags.ts
│   │       ├── slotFlags.ts
│   │       ├── toDisplayString.ts
│   │       └── typeUtils.ts
│   ├── vue/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── customElementCasing.spec.ts
│   │   │   ├── e2e/
│   │   │   │   ├── Transition.spec.ts
│   │   │   │   ├── TransitionGroup.spec.ts
│   │   │   │   ├── commits.mock.ts
│   │   │   │   ├── commits.spec.ts
│   │   │   │   ├── e2eUtils.ts
│   │   │   │   ├── grid.spec.ts
│   │   │   │   ├── hydration-strat-custom.html
│   │   │   │   ├── hydration-strat-idle.html
│   │   │   │   ├── hydration-strat-interaction.html
│   │   │   │   ├── hydration-strat-media.html
│   │   │   │   ├── hydration-strat-visible.html
│   │   │   │   ├── hydrationStrategies.spec.ts
│   │   │   │   ├── markdown.spec.ts
│   │   │   │   ├── memory-leak.spec.ts
│   │   │   │   ├── ssr-custom-element.spec.ts
│   │   │   │   ├── svg.spec.ts
│   │   │   │   ├── todomvc.spec.ts
│   │   │   │   ├── transition.html
│   │   │   │   ├── tree.spec.ts
│   │   │   │   ├── trusted-types.html
│   │   │   │   ├── trusted-types.spec.ts
│   │   │   │   └── vModel.spec.ts
│   │   │   ├── index.spec.ts
│   │   │   ├── mathmlNamespace.spec.ts
│   │   │   ├── runtimeCompilerOptions.spec.ts
│   │   │   └── svgNamespace.spec.ts
│   │   ├── compiler-sfc/
│   │   │   ├── index.browser.js
│   │   │   ├── index.browser.mjs
│   │   │   ├── index.d.mts
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   ├── package.json
│   │   │   └── register-ts.js
│   │   ├── examples/
│   │   │   ├── classic/
│   │   │   │   ├── commits.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── markdown.html
│   │   │   │   ├── svg.html
│   │   │   │   ├── todomvc.html
│   │   │   │   └── tree.html
│   │   │   ├── composition/
│   │   │   │   ├── commits.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── markdown.html
│   │   │   │   ├── svg.html
│   │   │   │   ├── todomvc.html
│   │   │   │   └── tree.html
│   │   │   └── transition/
│   │   │       ├── list.html
│   │   │       └── modal.html
│   │   ├── index.js
│   │   ├── index.mjs
│   │   ├── jsx-runtime/
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   └── package.json
│   │   ├── jsx.d.ts
│   │   ├── package.json
│   │   ├── server-renderer/
│   │   │   ├── index.d.mts
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── index.mjs
│   │   │   └── package.json
│   │   └── src/
│   │       ├── dev.ts
│   │       ├── index.ts
│   │       └── runtime.ts
│   └── vue-compat/
│       ├── LICENSE
│       ├── README.md
│       ├── __tests__/
│       │   ├── compiler.spec.ts
│       │   ├── componentAsync.spec.ts
│       │   ├── componentFunctional.spec.ts
│       │   ├── componentVModel.spec.ts
│       │   ├── filters.spec.ts
│       │   ├── global.spec.ts
│       │   ├── globalConfig.spec.ts
│       │   ├── instance.spec.ts
│       │   ├── misc.spec.ts
│       │   ├── options.spec.ts
│       │   ├── renderFn.spec.ts
│       │   └── utils.ts
│       ├── index.js
│       ├── package.json
│       └── src/
│           ├── createCompatVue.ts
│           ├── dev.ts
│           ├── esm-index.ts
│           ├── esm-runtime.ts
│           ├── index.ts
│           └── runtime.ts
├── packages-private/
│   ├── dts-built-test/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── dts-test/
│   │   ├── README.md
│   │   ├── appDirective.test-d.ts
│   │   ├── appUse.test-d.ts
│   │   ├── built.test-d.ts
│   │   ├── compiler.test-d.ts
│   │   ├── component.test-d.ts
│   │   ├── componentInstance.test-d.tsx
│   │   ├── componentTypeExtensions.test-d.tsx
│   │   ├── defineComponent.test-d.tsx
│   │   ├── defineCustomElement.test-d.ts
│   │   ├── directives.test-d.ts
│   │   ├── extractProps.test-d.ts
│   │   ├── functionalComponent.test-d.tsx
│   │   ├── h.test-d.ts
│   │   ├── inject.test-d.ts
│   │   ├── package.json
│   │   ├── reactivity.test-d.ts
│   │   ├── ref.test-d.ts
│   │   ├── scheduler.test-d.ts
│   │   ├── setupHelpers.test-d.ts
│   │   ├── tsconfig.test.json
│   │   ├── tsx.test-d.tsx
│   │   ├── utils.d.ts
│   │   └── watch.test-d.ts
│   ├── global.d.ts
│   ├── sfc-playground/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── App.vue
│   │   │   ├── Header.vue
│   │   │   ├── VersionSelect.vue
│   │   │   ├── download/
│   │   │   │   ├── download.ts
│   │   │   │   └── template/
│   │   │   │       ├── README.md
│   │   │   │       ├── index.html
│   │   │   │       ├── main.js
│   │   │   │       ├── package.json
│   │   │   │       └── vite.config.js
│   │   │   ├── icons/
│   │   │   │   ├── Copy.vue
│   │   │   │   ├── Download.vue
│   │   │   │   ├── GitHub.vue
│   │   │   │   ├── Moon.vue
│   │   │   │   ├── Reload.vue
│   │   │   │   ├── Share.vue
│   │   │   │   └── Sun.vue
│   │   │   ├── main.ts
│   │   │   ├── vue-dev-proxy-prod.ts
│   │   │   ├── vue-dev-proxy.ts
│   │   │   └── vue-server-renderer-dev-proxy.ts
│   │   ├── vercel.json
│   │   └── vite.config.ts
│   ├── template-explorer/
│   │   ├── README.md
│   │   ├── _redirects
│   │   ├── index.html
│   │   ├── local.html
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── options.ts
│   │   │   └── theme.ts
│   │   └── style.css
│   ├── tsconfig.json
│   └── vite-debug/
│       ├── App.vue
│       ├── README.md
│       ├── index.html
│       ├── main.ts
│       ├── package.json
│       ├── tsconfig.json
│       └── vite.config.ts
├── pnpm-workspace.yaml
├── rollup.config.js
├── rollup.dts.config.js
├── scripts/
│   ├── aliases.js
│   ├── build.js
│   ├── dev.js
│   ├── inline-enums.js
│   ├── pre-dev-sfc.js
│   ├── release.js
│   ├── setup-vitest.ts
│   ├── size-report.js
│   ├── usage-size.js
│   ├── utils.js
│   ├── verify-commit.js
│   └── verify-treeshaking.js
├── tsconfig.build.json
├── tsconfig.json
└── vitest.config.ts
Download .txt
Showing preview only (256K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3755 symbols across 383 files)

FILE: packages-private/dts-built-test/src/index.ts
  method setup (line 5) | setup() {}

FILE: packages-private/dts-test/appDirective.test-d.ts
  method mounted (line 9) | mounted(el, binding) {

FILE: packages-private/dts-test/appUse.test-d.ts
  method install (line 7) | install(app: App) {}
  type PluginOptions (line 14) | type PluginOptions = {
  method install (line 24) | install(app: App, options: PluginOptions) {
  method install (line 32) | install(app: App, options?: PluginOptions) {}
  method install (line 62) | install(app: App) {}
  method install (line 85) | install(

FILE: packages-private/dts-test/built.test-d.ts
  type ComponentCustomProps (line 5) | interface ComponentCustomProps {

FILE: packages-private/dts-test/component.test-d.ts
  type ExpectedProps (line 32) | interface ExpectedProps {
  type ExpectedRefs (line 53) | interface ExpectedRefs {
  method setup (line 144) | setup(props) {
  method setup (line 327) | setup() {
  method setup (line 368) | setup() {
  method setup (line 389) | setup() {
  method setup (line 413) | setup() {
  method setup (line 434) | setup() {
  type Props (line 466) | type Props = { foo: number }
  type Emits (line 467) | type Emits = { change: [value: string]; inc: [value: number] }
  type Slots (line 468) | type Slots = { default: (scope: { foo: string }) => any }
  type VueClass (line 490) | type VueClass<Props = {}> = {

FILE: packages-private/dts-test/componentInstance.test-d.tsx
  method setup (line 15) | setup() {
  method data (line 48) | data() {
  method b (line 54) | b() {
  method func (line 59) | func(a: string) {
  method setup (line 78) | setup() {
  method data (line 93) | data() {
  method data (line 105) | data() {

FILE: packages-private/dts-test/componentTypeExtensions.test-d.tsx
  type ComponentCustomOptions (line 5) | interface ComponentCustomOptions {
  type GlobalDirectives (line 9) | interface GlobalDirectives {
  type GlobalComponents (line 13) | interface GlobalComponents {
  type ComponentCustomProperties (line 17) | interface ComponentCustomProperties {
  type ComponentCustomProps (line 21) | interface ComponentCustomProps {
  method test (line 37) | test(n) {
  method aMethod (line 42) | aMethod() {

FILE: packages-private/dts-test/defineComponent.test-d.tsx
  type ExpectedProps (line 21) | interface ExpectedProps {
  type GT (line 55) | type GT = string & { __brand: unknown }
  method setup (line 162) | setup(props) {
  method provide (line 218) | provide() {
  method render (line 221) | render() {
  method validator (line 352) | validator(val: unknown): boolean {
  method default (line 356) | default(): number {
  method setup (line 371) | setup(props) {
  method setup (line 399) | setup(props) {
  method render (line 408) | render() {
  method setup (line 426) | setup() {
  method data (line 431) | data() {
  method d (line 441) | d() {
  method get (line 446) | get() {
  method set (line 452) | set(v: number) {
  method a (line 460) | a() {
  method created (line 465) | created() {
  method doSomething (line 479) | doSomething() {
  method returnSomething (line 491) | returnSomething() {
  method render (line 495) | render() {
  method setup (line 516) | setup(props) {
  method render (line 519) | render() {}
  method data (line 542) | data() {
  method data (line 550) | data() {
  method data (line 557) | data() {
  method data (line 565) | data() {
  method setup (line 575) | setup(props) {
  method dC1 (line 579) | dC1() {
  method dC2 (line 582) | dC2() {
  method data (line 598) | data(vm) {
  method setup (line 616) | setup(props) {
  method render (line 628) | render() {
  method data (line 703) | data() {
  method c (line 709) | c(): number {
  method render (line 723) | render() {
  method data (line 773) | data() {
  method data (line 792) | data() {
  method c (line 798) | c(): number {
  method render (line 814) | render() {
  method data (line 871) | data() {
  method foo (line 877) | foo() {
  method foo (line 882) | foo() {}
  method mounted (line 887) | mounted() {
  method mounted (line 893) | mounted() {
  method mounted (line 899) | mounted() {
  method setup (line 915) | setup() {
  class Comp (line 933) | class Comp {
    method constructor (line 935) | constructor(_props: { foo: string }) {}
  method setup (line 960) | setup(props, { emit }) {
  method created (line 982) | created() {
  method mounted (line 1000) | mounted() {
  method setup (line 1028) | setup(props, { emit }) {
  method created (line 1037) | created() {
  method setup (line 1051) | setup(props, { emit }) {
  method render (line 1062) | render() {
  method setup (line 1081) | setup(props: { foo?: string }) {}
  method setup (line 1087) | setup(props, { emit }) {
  method foo (line 1102) | foo(): boolean {
  method created (line 1120) | created() {
  method created (line 1132) | created() {
  method created (line 1152) | created() {
  method created (line 1163) | created() {
  type GT (line 1234) | type GT = string & { __brand: unknown }
  method setup (line 1236) | async setup() {
  method render (line 1248) | render() {
  method setup (line 1273) | setup(_, { attrs, slots }) {
  method setup (line 1311) | setup(props) {
  method setup (line 1327) | setup(props) {
  method data (line 1553) | data() {
  method setup (line 1575) | setup(props, { slots }) {
  method setup (line 1621) | setup(props, { slots }) {
  type SizeType (line 1632) | type SizeType = 'small' | 'big'
  method setup (line 1640) | setup(props) {
  type CompInstance (line 1647) | type CompInstance = InstanceType<typeof Comp>
  method created (line 1698) | created(_) {}
  method created (line 1708) | created(_, { arg }) {
  method data (line 1728) | data() {
  type CommonProps (line 1781) | interface CommonProps {
  type ConditionalProps (line 1785) | type ConditionalProps =
  type Props (line 1795) | type Props = CommonProps & ConditionalProps
  type Emits (line 1816) | type Emits = {
  method mounted (line 1823) | mounted() {
  type Emits (line 1865) | type Emits = {
  method mounted (line 1872) | mounted() {
  type Refs (line 1914) | type Refs = {
  method setup (line 1944) | setup(props) {
  type ErrorMessageSlotProps (line 1952) | interface ErrorMessageSlotProps {
  method setup (line 2150) | setup(props) {
  function expectString (line 2170) | function expectString(s: string) {}
  method render (line 2181) | render() {
  method setup (line 2190) | setup() {
  method data (line 2195) | data() {
  method methods1 (line 2206) | methods1() {
  method computed1 (line 2211) | computed1() {

FILE: packages-private/dts-test/defineCustomElement.test-d.ts
  method created (line 18) | created() {
  method created (line 30) | created() {
  method created (line 50) | created() {
  method created (line 61) | created() {

FILE: packages-private/dts-test/directives.test-d.ts
  type ExtractBinding (line 4) | type ExtractBinding<T> = T extends (

FILE: packages-private/dts-test/h.test-d.ts
  method onFocus (line 44) | onFocus(e) {
  method default (line 62) | default() {}
  function foo (line 184) | function foo(bar: Component) {

FILE: packages-private/dts-test/inject.test-d.ts
  type Cube (line 33) | type Cube = {

FILE: packages-private/dts-test/reactivity.test-d.ts
  class Test (line 26) | class Test<T> {
  class ExtendendMap1 (line 88) | class ExtendendMap1 extends Map<string, { wrap: Ref<number> }> {
  class ExtendendSet1 (line 114) | class ExtendendSet1 extends Set<{ wrap: Ref<number> }> {

FILE: packages-private/dts-test/ref.test-d.ts
  function plainType (line 26) | function plainType(arg: number | Ref<number>) {
  function bailType (line 93) | function bailType(arg: HTMLElement | Ref<HTMLElement>) {
  function withSymbol (line 115) | function withSymbol() {
  method get (line 218) | get() {
  method set (line 221) | set(val: typeof obj.value) {
  type Status (line 240) | type Status = 'initial' | 'ready' | 'invalidating'
  type Steps (line 263) | type Steps = { step: '1' } | { step: '2' }
  type AppData (line 386) | interface AppData {
  function testUnrefGenerics (line 409) | function testUnrefGenerics<T>(p: T | Ref<T>) {
  function foo (line 466) | function foo(

FILE: packages-private/dts-test/setupHelpers.test-d.ts
  function test (line 47) | function test<T extends boolean>() {
  type B (line 156) | interface B {
  type S (line 159) | interface S<T> extends B {
  type M (line 163) | interface M<T> extends B {
  type Props (line 167) | type Props = S<string> | M<string>
  type Emits (line 309) | type Emits = { (e: 'foo' | 'bar'): void; (e: 'baz', id: number): void }
  type Emits (line 320) | interface Emits {
  method get (line 443) | get(val) {
  method set (line 446) | set(val) {
  method get (line 453) | get(val) {
  method set (line 456) | set(val) {
  method get (line 469) | get(_: string[]): string {
  method set (line 472) | set(_: number) {
  method get (line 490) | get(_: string[]): string {
  method set (line 493) | set(_: number) {
  method setup (line 515) | setup(props) {
  method setup (line 530) | setup(props) {

FILE: packages-private/dts-test/utils.d.ts
  type IsUnion (line 13) | type IsUnion<T, U extends T = T> = (
  type IsAny (line 19) | type IsAny<T> = 0 extends 1 & T ? true : false
  type Prettify (line 21) | type Prettify<T> = { [K in keyof T]: T[K] } & {}

FILE: packages-private/dts-test/watch.test-d.ts
  type Bar (line 19) | type Bar = Ref<string> | ComputedRef<string> | (() => number)
  type Foo (line 20) | type Foo = readonly [Ref<string>, ComputedRef<string>, () => number]
  type OnCleanup (line 21) | type OnCleanup = (fn: () => void) => void
  method data (line 151) | data() {
  method created (line 154) | created() {
  type Steps (line 168) | type Steps = { step: '1' } | { step: '2' }

FILE: packages-private/sfc-playground/src/download/download.ts
  function downloadProject (line 10) | async function downloadProject(store: ReplStore) {

FILE: packages-private/sfc-playground/vite.config.ts
  function copyVuePlugin (line 32) | function copyVuePlugin(): Plugin {

FILE: packages-private/template-explorer/src/index.ts
  type Window (line 19) | interface Window {
  type PersistedState (line 26) | interface PersistedState {
  function compileCode (line 76) | function compileCode(source: string): string {
  function formatError (line 108) | function formatError(err: CompilerError) {
  function reCompile (line 121) | function reCompile() {
  function clearOutputDecos (line 180) | function clearOutputDecos() {
  function clearEditorDecos (line 219) | function clearEditorDecos() {
  function debounce (line 269) | function debounce<T extends (...args: any[]) => any>(

FILE: packages-private/template-explorer/src/options.ts
  method setup (line 34) | setup() {
  function initOptions (line 232) | function initOptions() {

FILE: packages/compiler-core/__tests__/codegen.spec.ts
  function createRoot (line 40) | function createRoot(options: Partial<RootNode> = {}): RootNode {
  function genCode (line 617) | function genCode(node: VNodeCall) {

FILE: packages/compiler-core/__tests__/compile.spec.ts
  type Pos (line 14) | interface Pos {
  function getPositionInCode (line 20) | function getPositionInCode(

FILE: packages/compiler-core/__tests__/parse.spec.ts
  method onError (line 2261) | onError() {}

FILE: packages/compiler-core/__tests__/testUtils.ts
  function createObjectMatcher (line 27) | function createObjectMatcher(obj: Record<string, any>): {
  function createElementWithCodegen (line 51) | function createElementWithCodegen(
  type Flags (line 82) | type Flags = PatchFlags | ShapeFlags
  function genFlagText (line 83) | function genFlagText(

FILE: packages/compiler-core/__tests__/transform.spec.ts
  function transformWithCodegen (line 257) | function transformWithCodegen(template: string) {
  function createBlockMatcher (line 271) | function createBlockMatcher(

FILE: packages/compiler-core/__tests__/transforms/cacheStatic.spec.ts
  function transformWithCache (line 54) | function transformWithCache(template: string, options: CompilerOptions =...

FILE: packages/compiler-core/__tests__/transforms/transformElement.spec.ts
  function parseWithElementTransform (line 44) | function parseWithElementTransform(
  function parseWithBind (line 67) | function parseWithBind(template: string, options?: CompilerOptions) {
  function assert (line 439) | function assert(tag: string) {
  function assert (line 469) | function assert(tag: string, content: string, hasFallback?: boolean) {
  function assert (line 508) | function assert(tag: string) {
  function assert (line 533) | function assert(tag: string) {
  method foo (line 570) | foo(dir) {
  method foo (line 600) | foo() {
  method foo (line 647) | foo() {

FILE: packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts
  function parseWithExpressionTransform (line 17) | function parseWithExpressionTransform(
  function compile (line 30) | function compile(template: string) {
  function assert (line 179) | function assert(exp: string) {
  function compileWithBindingMetadata (line 623) | function compileWithBindingMetadata(

FILE: packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts
  function parseWithSlots (line 16) | function parseWithSlots(template: string, options: CompilerOptions = {}) {

FILE: packages/compiler-core/__tests__/transforms/transformText.spec.ts
  function transformWithTextOpt (line 19) | function transformWithTextOpt(template: string, options: CompilerOptions...

FILE: packages/compiler-core/__tests__/transforms/vBind.spec.ts
  function parseWithVBind (line 22) | function parseWithVBind(

FILE: packages/compiler-core/__tests__/transforms/vFor.spec.ts
  function parseWithForTransform (line 26) | function parseWithForTransform(
  function assertSharedCodegen (line 694) | function assertSharedCodegen(

FILE: packages/compiler-core/__tests__/transforms/vIf.spec.ts
  function parseWithIfTransform (line 35) | function parseWithIfTransform(
  function assertSharedCodegen (line 418) | function assertSharedCodegen(

FILE: packages/compiler-core/__tests__/transforms/vMemo.spec.ts
  function compile (line 4) | function compile(content: string) {

FILE: packages/compiler-core/__tests__/transforms/vModel.spec.ts
  function parseWithVModel (line 24) | function parseWithVModel(template: string, options: CompilerOptions = {}) {

FILE: packages/compiler-core/__tests__/transforms/vOn.spec.ts
  function parseWithVOn (line 18) | function parseWithVOn(template: string, options: CompilerOptions = {}) {

FILE: packages/compiler-core/__tests__/transforms/vOnce.spec.ts
  function transformWithOnce (line 11) | function transformWithOnce(template: string, options: CompilerOptions = ...

FILE: packages/compiler-core/__tests__/transforms/vSlot.spec.ts
  function parseWithSlots (line 33) | function parseWithSlots(
  function createSlotMatcher (line 68) | function createSlotMatcher(obj: Record<string, any>, isDynamic = false) {
  function assertDynamicSlots (line 520) | function assertDynamicSlots(

FILE: packages/compiler-core/__tests__/utils.spec.ts
  function p (line 15) | function p(line: number, column: number, offset: number): Position {
  function commonAssertions (line 49) | function commonAssertions(raw: (exp: ExpressionNode) => boolean) {

FILE: packages/compiler-core/src/ast.ts
  type Namespace (line 21) | type Namespace = number
  type Namespaces (line 23) | enum Namespaces {
  type NodeTypes (line 29) | enum NodeTypes {
  type ElementTypes (line 63) | enum ElementTypes {
  type Node (line 70) | interface Node {
  type SourceLocation (line 77) | interface SourceLocation {
  type Position (line 83) | interface Position {
  type ParentNode (line 89) | type ParentNode = RootNode | ElementNode | IfBranchNode | ForNode
  type ExpressionNode (line 91) | type ExpressionNode = SimpleExpressionNode | CompoundExpressionNode
  type TemplateChildNode (line 93) | type TemplateChildNode =
  type RootNode (line 104) | interface RootNode extends Node {
  type ElementNode (line 123) | type ElementNode =
  type BaseElementNode (line 129) | interface BaseElementNode extends Node {
  type PlainElementNode (line 140) | interface PlainElementNode extends BaseElementNode {
  type ComponentNode (line 151) | interface ComponentNode extends BaseElementNode {
  type SlotOutletNode (line 161) | interface SlotOutletNode extends BaseElementNode {
  type TemplateNode (line 170) | interface TemplateNode extends BaseElementNode {
  type TextNode (line 176) | interface TextNode extends Node {
  type CommentNode (line 181) | interface CommentNode extends Node {
  type AttributeNode (line 186) | interface AttributeNode extends Node {
  type DirectiveNode (line 193) | interface DirectiveNode extends Node {
  type ConstantTypes (line 218) | enum ConstantTypes {
  type SimpleExpressionNode (line 225) | interface SimpleExpressionNode extends Node {
  type InterpolationNode (line 249) | interface InterpolationNode extends Node {
  type CompoundExpressionNode (line 254) | interface CompoundExpressionNode extends Node {
  type IfNode (line 279) | interface IfNode extends Node {
  type IfBranchNode (line 285) | interface IfBranchNode extends Node {
  type ForNode (line 293) | interface ForNode extends Node {
  type ForParseResult (line 304) | interface ForParseResult {
  type TextCallNode (line 312) | interface TextCallNode extends Node {
  type TemplateTextChildNode (line 318) | type TemplateTextChildNode =
  type VNodeCall (line 323) | interface VNodeCall extends Node {
  type JSChildNode (line 349) | type JSChildNode =
  type CallExpression (line 361) | interface CallExpression extends Node {
  type ObjectExpression (line 374) | interface ObjectExpression extends Node {
  type Property (line 379) | interface Property extends Node {
  type ArrayExpression (line 385) | interface ArrayExpression extends Node {
  type FunctionExpression (line 390) | interface FunctionExpression extends Node {
  type ConditionalExpression (line 408) | interface ConditionalExpression extends Node {
  type CacheExpression (line 416) | interface CacheExpression extends Node {
  type MemoExpression (line 425) | interface MemoExpression extends CallExpression {
  type MemoFactory (line 430) | interface MemoFactory extends FunctionExpression {
  type SSRCodegenNode (line 436) | type SSRCodegenNode =
  type BlockStatement (line 444) | interface BlockStatement extends Node {
  type TemplateLiteral (line 449) | interface TemplateLiteral extends Node {
  type IfStatement (line 454) | interface IfStatement extends Node {
  type AssignmentExpression (line 461) | interface AssignmentExpression extends Node {
  type SequenceExpression (line 467) | interface SequenceExpression extends Node {
  type ReturnStatement (line 472) | interface ReturnStatement extends Node {
  type DirectiveArguments (line 479) | interface DirectiveArguments extends ArrayExpression {
  type DirectiveArgumentNode (line 483) | interface DirectiveArgumentNode extends ArrayExpression {
  type RenderSlotCall (line 492) | interface RenderSlotCall extends CallExpression {
  type SlotsExpression (line 505) | type SlotsExpression = SlotsObjectExpression | DynamicSlotsExpression
  type SlotsObjectExpression (line 508) | interface SlotsObjectExpression extends ObjectExpression {
  type SlotsObjectProperty (line 512) | interface SlotsObjectProperty extends Property {
  type SlotFunctionExpression (line 516) | interface SlotFunctionExpression extends FunctionExpression {
  type DynamicSlotsExpression (line 524) | interface DynamicSlotsExpression extends CallExpression {
  type DynamicSlotEntries (line 529) | interface DynamicSlotEntries extends ArrayExpression {
  type ConditionalDynamicSlotNode (line 533) | interface ConditionalDynamicSlotNode extends ConditionalExpression {
  type ListDynamicSlotNode (line 538) | interface ListDynamicSlotNode extends CallExpression {
  type ListDynamicSlotIterator (line 543) | interface ListDynamicSlotIterator extends FunctionExpression {
  type DynamicSlotNode (line 547) | interface DynamicSlotNode extends ObjectExpression {
  type DynamicSlotFnProperty (line 551) | interface DynamicSlotFnProperty extends Property {
  type BlockCodegenNode (line 555) | type BlockCodegenNode = VNodeCall | RenderSlotCall
  type IfConditionalExpression (line 557) | interface IfConditionalExpression extends ConditionalExpression {
  type ForCodegenNode (line 562) | interface ForCodegenNode extends VNodeCall {
  type ForRenderListExpression (line 571) | interface ForRenderListExpression extends CallExpression {
  type ForIteratorExpression (line 576) | interface ForIteratorExpression extends FunctionExpression {
  function createRoot (line 591) | function createRoot(
  function createVNodeCall (line 611) | function createVNodeCall(
  function createArrayExpression (line 651) | function createArrayExpression(
  function createObjectExpression (line 662) | function createObjectExpression(
  function createObjectProperty (line 673) | function createObjectProperty(
  function createSimpleExpression (line 685) | function createSimpleExpression(
  function createInterpolation (line 700) | function createInterpolation(
  function createCompoundExpression (line 713) | function createCompoundExpression(
  type InferCodegenNodeType (line 724) | type InferCodegenNodeType<T> = T extends typeof RENDER_SLOT
  function createCallExpression (line 728) | function createCallExpression<T extends CallExpression['callee']>(
  function createFunctionExpression (line 741) | function createFunctionExpression(
  function createConditionalExpression (line 758) | function createConditionalExpression(
  function createCacheExpression (line 774) | function createCacheExpression(
  function createBlockStatement (line 791) | function createBlockStatement(
  function createTemplateLiteral (line 801) | function createTemplateLiteral(
  function createIfStatement (line 811) | function createIfStatement(
  function createAssignmentExpression (line 825) | function createAssignmentExpression(
  function createSequenceExpression (line 837) | function createSequenceExpression(
  function createReturnStatement (line 847) | function createReturnStatement(
  function getVNodeHelper (line 857) | function getVNodeHelper(
  function getVNodeBlockHelper (line 864) | function getVNodeBlockHelper(
  function convertToBlock (line 871) | function convertToBlock(

FILE: packages/compiler-core/src/babelUtils.ts
  function walkIdentifiers (line 21) | function walkIdentifiers(
  function isReferencedIdentifier (line 126) | function isReferencedIdentifier(
  function isInDestructureAssignment (line 163) | function isInDestructureAssignment(
  function isInNewExpression (line 184) | function isInNewExpression(parentStack: Node[]): boolean {
  function walkFunctionParams (line 197) | function walkFunctionParams(
  function walkBlockDeclarations (line 208) | function walkBlockDeclarations(
  function isForStatement (line 235) | function isForStatement(
  function walkForStatement (line 245) | function walkForStatement(
  function walkSwitchStatement (line 264) | function walkSwitchStatement(
  function extractIdentifiers (line 286) | function extractIdentifiers(
  function markKnownIds (line 331) | function markKnownIds(name: string, knownIds: Record<string, number>) {
  function markScopeIdentifier (line 339) | function markScopeIdentifier(
  function isReferenced (line 373) | function isReferenced(node: Node, parent: Node, grandparent?: Node): boo...
  constant TS_NODE_TYPES (line 543) | const TS_NODE_TYPES: string[] = [
  function unwrapTSNode (line 551) | function unwrapTSNode(node: Node): Node {

FILE: packages/compiler-core/src/codegen.ts
  type CodegenSourceMapGenerator (line 72) | interface CodegenSourceMapGenerator {
  type RawSourceMap (line 83) | interface RawSourceMap {
  type MappingItem (line 93) | interface MappingItem {
  constant PURE_ANNOTATION (line 102) | const PURE_ANNOTATION = `/*@__PURE__*/`
  type CodegenNode (line 106) | type CodegenNode = TemplateChildNode | JSChildNode | SSRCodegenNode
  type CodegenResult (line 108) | interface CodegenResult {
  type NewlineType (line 115) | enum NewlineType {
  type CodegenContext (line 122) | interface CodegenContext extends Omit<
  function createCodegenContext (line 141) | function createCodegenContext(
  function generate (line 283) | function generate(
  function genFunctionPreamble (line 408) | function genFunctionPreamble(ast: RootNode, context: CodegenContext) {
  function genModulePreamble (line 470) | function genModulePreamble(
  function genAssets (line 537) | function genAssets(
  function genHoists (line 567) | function genHoists(hoists: (JSChildNode | null)[], context: CodegenConte...
  function genImports (line 587) | function genImports(importsOptions: ImportItem[], context: CodegenContex...
  function isText (line 599) | function isText(n: string | CodegenNode) {
  function genNodeListAsArray (line 609) | function genNodeListAsArray(
  function genNodeList (line 623) | function genNodeList(
  function genNode (line 650) | function genNode(node: CodegenNode | symbol | string, context: CodegenCo...
  function genText (line 747) | function genText(
  function genExpression (line 754) | function genExpression(node: SimpleExpressionNode, context: CodegenConte...
  function genInterpolation (line 763) | function genInterpolation(node: InterpolationNode, context: CodegenConte...
  function genCompoundExpression (line 771) | function genCompoundExpression(
  function genExpressionAsPropertyKey (line 785) | function genExpressionAsPropertyKey(
  function genComment (line 805) | function genComment(node: CommentNode, context: CodegenContext) {
  function genVNodeCall (line 817) | function genVNodeCall(node: VNodeCall, context: CodegenContext) {
  function genNullableArgs (line 880) | function genNullableArgs(args: any[]): CallExpression['arguments'] {
  function genCallExpression (line 889) | function genCallExpression(node: CallExpression, context: CodegenContext) {
  function genObjectExpression (line 900) | function genObjectExpression(node: ObjectExpression, context: CodegenCon...
  function genArrayExpression (line 930) | function genArrayExpression(node: ArrayExpression, context: CodegenConte...
  function genFunctionExpression (line 934) | function genFunctionExpression(
  function genConditionalExpression (line 979) | function genConditionalExpression(
  function genCacheExpression (line 1015) | function genCacheExpression(node: CacheExpression, context: CodegenConte...
  function genTemplateLiteral (line 1046) | function genTemplateLiteral(node: TemplateLiteral, context: CodegenConte...
  function genIfStatement (line 1066) | function genIfStatement(node: IfStatement, context: CodegenContext) {
  function genAssignmentExpression (line 1090) | function genAssignmentExpression(
  function genSequenceExpression (line 1099) | function genSequenceExpression(
  function genReturnStatement (line 1108) | function genReturnStatement(

FILE: packages/compiler-core/src/compat/compatConfig.ts
  type CompilerCompatConfig (line 6) | type CompilerCompatConfig = Partial<
  type CompilerCompatOptions (line 12) | interface CompilerCompatOptions {
  type CompilerDeprecationTypes (line 16) | enum CompilerDeprecationTypes {
  type DeprecationData (line 27) | type DeprecationData = {
  function getCompatValue (line 94) | function getCompatValue(
  function isCompatEnabled (line 106) | function isCompatEnabled(
  function checkCompatEnabled (line 117) | function checkCompatEnabled(
  function warnDeprecation (line 130) | function warnDeprecation(

FILE: packages/compiler-core/src/compat/transformFilter.ts
  function rewriteFilter (line 41) | function rewriteFilter(node: ExpressionNode, context: TransformContext) {
  function parseFilter (line 59) | function parseFilter(node: SimpleExpressionNode, context: TransformConte...
  function wrapFilter (line 174) | function wrapFilter(

FILE: packages/compiler-core/src/compile.ts
  type TransformPreset (line 27) | type TransformPreset = [
  function getBaseTransformPreset (line 32) | function getBaseTransformPreset(
  function baseCompile (line 67) | function baseCompile(

FILE: packages/compiler-core/src/errors.ts
  type CompilerError (line 3) | interface CompilerError extends SyntaxError {
  type CoreCompilerError (line 8) | interface CoreCompilerError extends CompilerError {
  function defaultOnError (line 12) | function defaultOnError(error: CompilerError): never {
  function defaultOnWarn (line 16) | function defaultOnWarn(msg: CompilerError): void {
  type InferCompilerError (line 20) | type InferCompilerError<T> = T extends ErrorCodes
  function createCompilerError (line 24) | function createCompilerError<T extends number>(
  type ErrorCodes (line 40) | enum ErrorCodes {

FILE: packages/compiler-core/src/options.ts
  type ErrorHandlingOptions (line 17) | interface ErrorHandlingOptions {
  type ParserOptions (line 22) | interface ParserOptions
  type HoistTransform (line 107) | type HoistTransform = (
  type BindingTypes (line 113) | enum BindingTypes {
  type BindingMetadata (line 159) | type BindingMetadata = {
  type SharedTransformCodegenOptions (line 166) | interface SharedTransformCodegenOptions {
  type TransformOptions (line 218) | interface TransformOptions
  type CodegenOptions (line 305) | interface CodegenOptions extends SharedTransformCodegenOptions {
  type CompilerOptions (line 349) | type CompilerOptions = ParserOptions & TransformOptions & CodegenOptions

FILE: packages/compiler-core/src/parser.ts
  type OptionalOptions (line 56) | type OptionalOptions =
  type MergedParserOptions (line 64) | type MergedParserOptions = Omit<
  method ontext (line 103) | ontext(start, end) {
  method ontextentity (line 107) | ontextentity(char, start, end) {
  method oninterpolation (line 111) | oninterpolation(start, end) {
  method onopentagname (line 139) | onopentagname(start, end) {
  method onopentagend (line 153) | onopentagend(end) {
  method onclosetag (line 157) | onclosetag(start, end) {
  method onselfclosingtag (line 181) | onselfclosingtag(end) {
  method onattribname (line 190) | onattribname(start, end) {
  method ondirname (line 201) | ondirname(start, end) {
  method ondirarg (line 248) | ondirarg(start, end) {
  method ondirmodifier (line 265) | ondirmodifier(start, end) {
  method onattribdata (line 284) | onattribdata(start, end) {
  method onattribentity (line 290) | onattribentity(char, start, end) {
  method onattribnameend (line 296) | onattribnameend(end) {
  method onattribend (line 312) | onattribend(quote, end) {
  method oncomment (line 412) | oncomment(start, end) {
  method onend (line 422) | onend() {
  method oncdata (line 472) | oncdata(start, end) {
  method onprocessinginstruction (line 480) | onprocessinginstruction(start) {
  function parseForExpression (line 496) | function parseForExpression(
  function getSlice (line 569) | function getSlice(start: number, end: number) {
  function endOpenTag (line 573) | function endOpenTag(end: number) {
  function onText (line 594) | function onText(content: string, start: number, end: number) {
  function onCloseTag (line 616) | function onCloseTag(el: ElementNode, end: number, isImplied = false) {
  function lookAhead (line 755) | function lookAhead(index: number, c: number) {
  function backTrack (line 761) | function backTrack(index: number, c: number) {
  function isFragmentTemplate (line 768) | function isFragmentTemplate({ tag, props }: ElementNode): boolean {
  function isComponent (line 782) | function isComponent({ tag, props }: ElementNode): boolean {
  function isUpperCase (line 832) | function isUpperCase(c: number) {
  function condenseWhitespace (line 837) | function condenseWhitespace(nodes: TemplateChildNode[]): TemplateChildNo...
  function hasNewlineChar (line 885) | function hasNewlineChar(str: string) {
  function condense (line 895) | function condense(str: string) {
  function addNode (line 912) | function addNode(node: TemplateChildNode) {
  function getLoc (line 916) | function getLoc(start: number, end?: number): SourceLocation {
  function cloneLoc (line 926) | function cloneLoc(loc: SourceLocation): SourceLocation {
  function setLocEnd (line 930) | function setLocEnd(loc: SourceLocation, end: number) {
  function dirToAttr (line 935) | function dirToAttr(dir: DirectiveNode): AttributeNode {
  type ExpParseMode (line 964) | enum ExpParseMode {
  function createExp (line 971) | function createExp(
  function emitError (line 1012) | function emitError(code: ErrorCodes, index: number, message?: string) {
  function reset (line 1018) | function reset() {
  function baseParse (line 1028) | function baseParse(input: string, options?: ParserOptions): RootNode {

FILE: packages/compiler-core/src/runtimeHelpers.ts
  constant FRAGMENT (line 1) | const FRAGMENT: unique symbol = Symbol(__DEV__ ? `Fragment` : ``)
  constant TELEPORT (line 2) | const TELEPORT: unique symbol = Symbol(__DEV__ ? `Teleport` : ``)
  constant SUSPENSE (line 3) | const SUSPENSE: unique symbol = Symbol(__DEV__ ? `Suspense` : ``)
  constant KEEP_ALIVE (line 4) | const KEEP_ALIVE: unique symbol = Symbol(__DEV__ ? `KeepAlive` : ``)
  constant BASE_TRANSITION (line 5) | const BASE_TRANSITION: unique symbol = Symbol(
  constant OPEN_BLOCK (line 8) | const OPEN_BLOCK: unique symbol = Symbol(__DEV__ ? `openBlock` : ``)
  constant CREATE_BLOCK (line 9) | const CREATE_BLOCK: unique symbol = Symbol(__DEV__ ? `createBlock` : ``)
  constant CREATE_ELEMENT_BLOCK (line 10) | const CREATE_ELEMENT_BLOCK: unique symbol = Symbol(
  constant CREATE_VNODE (line 13) | const CREATE_VNODE: unique symbol = Symbol(__DEV__ ? `createVNode` : ``)
  constant CREATE_ELEMENT_VNODE (line 14) | const CREATE_ELEMENT_VNODE: unique symbol = Symbol(
  constant CREATE_COMMENT (line 17) | const CREATE_COMMENT: unique symbol = Symbol(
  constant CREATE_TEXT (line 20) | const CREATE_TEXT: unique symbol = Symbol(
  constant CREATE_STATIC (line 23) | const CREATE_STATIC: unique symbol = Symbol(
  constant RESOLVE_COMPONENT (line 26) | const RESOLVE_COMPONENT: unique symbol = Symbol(
  constant RESOLVE_DYNAMIC_COMPONENT (line 29) | const RESOLVE_DYNAMIC_COMPONENT: unique symbol = Symbol(
  constant RESOLVE_DIRECTIVE (line 32) | const RESOLVE_DIRECTIVE: unique symbol = Symbol(
  constant RESOLVE_FILTER (line 35) | const RESOLVE_FILTER: unique symbol = Symbol(
  constant WITH_DIRECTIVES (line 38) | const WITH_DIRECTIVES: unique symbol = Symbol(
  constant RENDER_LIST (line 41) | const RENDER_LIST: unique symbol = Symbol(__DEV__ ? `renderList` : ``)
  constant RENDER_SLOT (line 42) | const RENDER_SLOT: unique symbol = Symbol(__DEV__ ? `renderSlot` : ``)
  constant CREATE_SLOTS (line 43) | const CREATE_SLOTS: unique symbol = Symbol(__DEV__ ? `createSlots` : ``)
  constant TO_DISPLAY_STRING (line 44) | const TO_DISPLAY_STRING: unique symbol = Symbol(
  constant MERGE_PROPS (line 47) | const MERGE_PROPS: unique symbol = Symbol(__DEV__ ? `mergeProps` : ``)
  constant NORMALIZE_CLASS (line 48) | const NORMALIZE_CLASS: unique symbol = Symbol(
  constant NORMALIZE_STYLE (line 51) | const NORMALIZE_STYLE: unique symbol = Symbol(
  constant NORMALIZE_PROPS (line 54) | const NORMALIZE_PROPS: unique symbol = Symbol(
  constant GUARD_REACTIVE_PROPS (line 57) | const GUARD_REACTIVE_PROPS: unique symbol = Symbol(
  constant TO_HANDLERS (line 60) | const TO_HANDLERS: unique symbol = Symbol(__DEV__ ? `toHandlers` : ``)
  constant CAMELIZE (line 61) | const CAMELIZE: unique symbol = Symbol(__DEV__ ? `camelize` : ``)
  constant CAPITALIZE (line 62) | const CAPITALIZE: unique symbol = Symbol(__DEV__ ? `capitalize` : ``)
  constant TO_HANDLER_KEY (line 63) | const TO_HANDLER_KEY: unique symbol = Symbol(
  constant SET_BLOCK_TRACKING (line 66) | const SET_BLOCK_TRACKING: unique symbol = Symbol(
  constant PUSH_SCOPE_ID (line 73) | const PUSH_SCOPE_ID: unique symbol = Symbol(__DEV__ ? `pushScopeId` : ``)
  constant POP_SCOPE_ID (line 77) | const POP_SCOPE_ID: unique symbol = Symbol(__DEV__ ? `popScopeId` : ``)
  constant WITH_CTX (line 78) | const WITH_CTX: unique symbol = Symbol(__DEV__ ? `withCtx` : ``)
  constant UNREF (line 79) | const UNREF: unique symbol = Symbol(__DEV__ ? `unref` : ``)
  constant IS_REF (line 80) | const IS_REF: unique symbol = Symbol(__DEV__ ? `isRef` : ``)
  constant WITH_MEMO (line 81) | const WITH_MEMO: unique symbol = Symbol(__DEV__ ? `withMemo` : ``)
  constant IS_MEMO_SAME (line 82) | const IS_MEMO_SAME: unique symbol = Symbol(__DEV__ ? `isMemoSame` : ``)
  function registerRuntimeHelpers (line 128) | function registerRuntimeHelpers(helpers: Record<symbol, string>): void {

FILE: packages/compiler-core/src/tokenizer.ts
  type ParseMode (line 41) | enum ParseMode {
  type CharCodes (line 47) | enum CharCodes {
  type State (line 87) | enum State {
  function isTagStartChar (line 144) | function isTagStartChar(c: number): boolean {
  function isWhitespace (line 151) | function isWhitespace(c: number): boolean {
  function isEndOfTagSection (line 161) | function isEndOfTagSection(c: number): boolean {
  function toCharCodes (line 165) | function toCharCodes(str: string): Uint8Array {
  type QuoteType (line 173) | enum QuoteType {
  type Callbacks (line 180) | interface Callbacks {
  class Tokenizer (line 236) | class Tokenizer {
    method inSFCRoot (line 261) | public get inSFCRoot(): boolean {
    method constructor (line 265) | constructor(
    method reset (line 276) | public reset(): void {
    method getPos (line 296) | public getPos(index: number): Position {
    method peek (line 330) | private peek() {
    method stateText (line 334) | private stateText(c: number): void {
    method stateInterpolationOpen (line 354) | private stateInterpolationOpen(c: number): void {
    method stateInterpolation (line 375) | private stateInterpolation(c: number): void {
    method stateInterpolationClose (line 383) | private stateInterpolationClose(c: number) {
    method stateSpecialStartSequence (line 404) | private stateSpecialStartSequence(c: number): void {
    method stateInRCDATA (line 425) | private stateInRCDATA(c: number): void {
    method stateCDATASequence (line 473) | private stateCDATASequence(c: number): void {
    method fastForwardTo (line 494) | private fastForwardTo(c: number): boolean {
    method stateInCommentLike (line 524) | private stateInCommentLike(c: number): void {
    method startSpecial (line 548) | private startSpecial(sequence: Uint8Array, offset: number) {
    method enterRCDATA (line 553) | public enterRCDATA(sequence: Uint8Array, offset: number): void {
    method stateBeforeTagName (line 559) | private stateBeforeTagName(c: number): void {
    method stateInTagName (line 596) | private stateInTagName(c: number): void {
    method stateInSFCRootTagName (line 601) | private stateInSFCRootTagName(c: number): void {
    method handleTagName (line 610) | private handleTagName(c: number) {
    method stateBeforeClosingTagName (line 616) | private stateBeforeClosingTagName(c: number): void {
    method stateInClosingTagName (line 633) | private stateInClosingTagName(c: number): void {
    method stateAfterClosingTagName (line 641) | private stateAfterClosingTagName(c: number): void {
    method stateBeforeAttrName (line 648) | private stateBeforeAttrName(c: number): void {
    method handleAttrStart (line 679) | private handleAttrStart(c: number) {
    method stateInSelfClosingTag (line 697) | private stateInSelfClosingTag(c: number): void {
    method stateInAttrName (line 708) | private stateInAttrName(c: number): void {
    method stateInDirName (line 724) | private stateInDirName(c: number): void {
    method stateInDirArg (line 738) | private stateInDirArg(c: number): void {
    method stateInDynamicDirArg (line 750) | private stateInDynamicDirArg(c: number): void {
    method stateInDirModifier (line 764) | private stateInDirModifier(c: number): void {
    method handleAttrNameEnd (line 773) | private handleAttrNameEnd(c: number): void {
    method stateAfterAttrName (line 779) | private stateAfterAttrName(c: number): void {
    method stateBeforeAttrValue (line 792) | private stateBeforeAttrValue(c: number): void {
    method handleInAttrValue (line 805) | private handleInAttrValue(c: number, quote: number) {
    method stateInAttrValueDoubleQuotes (line 818) | private stateInAttrValueDoubleQuotes(c: number): void {
    method stateInAttrValueSingleQuotes (line 821) | private stateInAttrValueSingleQuotes(c: number): void {
    method stateInAttrValueNoQuotes (line 824) | private stateInAttrValueNoQuotes(c: number): void {
    method stateBeforeDeclaration (line 846) | private stateBeforeDeclaration(c: number): void {
    method stateInDeclaration (line 855) | private stateInDeclaration(c: number): void {
    method stateInProcessingInstruction (line 862) | private stateInProcessingInstruction(c: number): void {
    method stateBeforeComment (line 869) | private stateBeforeComment(c: number): void {
    method stateInSpecialComment (line 880) | private stateInSpecialComment(c: number): void {
    method stateBeforeSpecialS (line 887) | private stateBeforeSpecialS(c: number): void {
    method stateBeforeSpecialT (line 897) | private stateBeforeSpecialT(c: number): void {
    method startEntity (line 908) | private startEntity() {
    method stateInEntity (line 921) | private stateInEntity(): void {
    method parse (line 944) | public parse(input: string): void {
    method cleanup (line 1098) | private cleanup() {
    method finish (line 1118) | private finish() {
    method handleTrailingData (line 1130) | private handleTrailingData() {
    method emitCodePoint (line 1168) | private emitCodePoint(cp: number, consumed: number): void {

FILE: packages/compiler-core/src/transform.ts
  type NodeTransform (line 48) | type NodeTransform = (
  type DirectiveTransform (line 56) | type DirectiveTransform = (
  type DirectiveTransformResult (line 65) | interface DirectiveTransformResult {
  type StructuralDirectiveTransform (line 73) | type StructuralDirectiveTransform = (
  type ImportItem (line 79) | interface ImportItem {
  type TransformContext (line 84) | interface TransformContext
  function createTransformContext (line 127) | function createTransformContext(
  function transform (line 332) | function transform(root: RootNode, options: TransformOptions): void {
  function createRootCodegen (line 356) | function createRootCodegen(root: RootNode, context: TransformContext) {
  function traverseChildren (line 404) | function traverseChildren(
  function traverseNode (line 423) | function traverseNode(
  function createStructuralDirectiveTransform (line 486) | function createStructuralDirectiveTransform(

FILE: packages/compiler-core/src/transforms/cacheStatic.ts
  function cacheStatic (line 40) | function cacheStatic(root: RootNode, context: TransformContext): void {
  function getSingleElementRoot (line 51) | function getSingleElementRoot(
  function walk (line 62) | function walk(
  function getConstantType (line 253) | function getConstantType(
  function getConstantTypeOfHelperCall (line 401) | function getConstantTypeOfHelperCall(
  function getGeneratedPropsConstantType (line 421) | function getGeneratedPropsConstantType(
  function getNodeProps (line 460) | function getNodeProps(node: PlainElementNode) {

FILE: packages/compiler-core/src/transforms/transformElement.ts
  function resolveComponentType (line 227) | function resolveComponentType(
  function resolveSetupReference (line 322) | function resolveSetupReference(name: string, context: TransformContext) {
  type PropsExpression (line 372) | type PropsExpression = ObjectExpression | CallExpression | ExpressionNode
  function buildProps (line 374) | function buildProps(
  function dedupeProperties (line 839) | function dedupeProperties(properties: Property[]): Property[] {
  function mergeAsArray (line 864) | function mergeAsArray(existing: Property, incoming: Property) {
  function buildDirectiveArgs (line 875) | function buildDirectiveArgs(
  function stringifyDynamicPropNames (line 926) | function stringifyDynamicPropNames(props: string[]): string {
  function isComponentTag (line 935) | function isComponentTag(tag: string) {

FILE: packages/compiler-core/src/transforms/transformExpression.ts
  type PrefixMeta (line 93) | interface PrefixMeta {
  function processExpression (line 104) | function processExpression(
  function canPrefix (line 392) | function canPrefix(id: Identifier) {
  function stringifyExpression (line 404) | function stringifyExpression(exp: ExpressionNode | string): string {
  function isConst (line 416) | function isConst(type: unknown) {

FILE: packages/compiler-core/src/transforms/transformSlotOutlet.ts
  type SlotOutletProcessResult (line 55) | interface SlotOutletProcessResult {
  function processSlotOutlet (line 60) | function processSlotOutlet(

FILE: packages/compiler-core/src/transforms/vFor.ts
  function processFor (line 256) | function processFor(
  function finalizeForParseResult (line 319) | function finalizeForParseResult(
  function createForLoopParams (line 379) | function createForLoopParams(
  function createParamsList (line 386) | function createParamsList(

FILE: packages/compiler-core/src/transforms/vIf.ts
  function processIf (line 85) | function processIf(
  function createIfBranch (line 207) | function createIfBranch(node: ElementNode, dir: DirectiveNode): IfBranch...
  function createCodegenNodeForBranch (line 219) | function createCodegenNodeForBranch(
  function createChildrenCodegenNode (line 240) | function createChildrenCodegenNode(
  function isSameKey (line 306) | function isSameKey(
  function getParentCondition (line 335) | function getParentCondition(

FILE: packages/compiler-core/src/transforms/vModel.ts
  function createTransformProps (line 167) | function createTransformProps(props: Property[] = []) {

FILE: packages/compiler-core/src/transforms/vOn.ts
  type VOnDirectiveNode (line 19) | interface VOnDirectiveNode extends DirectiveNode {

FILE: packages/compiler-core/src/transforms/vSlot.ts
  type SlotFnBuilder (line 100) | type SlotFnBuilder = (
  function buildSlots (line 118) | function buildSlots(
  function buildDynamicSlot (line 382) | function buildDynamicSlot(
  function hasForwardedSlots (line 399) | function hasForwardedSlots(children: TemplateChildNode[]): boolean {

FILE: packages/compiler-core/src/utils.ts
  function isCoreComponent (line 50) | function isCoreComponent(tag: string): symbol | void {
  type MemberExpLexState (line 71) | enum MemberExpLexState {
  function advancePositionWithClone (line 234) | function advancePositionWithClone(
  function advancePositionWithMutation (line 252) | function advancePositionWithMutation(
  function assert (line 276) | function assert(condition: boolean, msg?: string): void {
  function findDir (line 283) | function findDir(
  function findProp (line 300) | function findProp(
  function isStaticArgOf (line 323) | function isStaticArgOf(
  function hasDynamicKeyVBind (line 330) | function hasDynamicKeyVBind(node: ElementNode): boolean {
  function isText (line 341) | function isText(
  function isVPre (line 347) | function isVPre(p: ElementNode['props'][0]): p is DirectiveNode {
  function isVSlot (line 351) | function isVSlot(p: ElementNode['props'][0]): p is DirectiveNode {
  function isTemplateNode (line 355) | function isTemplateNode(
  function isSlotOutlet (line 363) | function isSlotOutlet(
  function getUnnormalizedProps (line 371) | function getUnnormalizedProps(
  function injectProp (line 390) | function injectProp(
  function hasProp (line 477) | function hasProp(prop: Property, props: ObjectExpression) {
  function toValidAssetId (line 490) | function toValidAssetId(
  function hasScopeRef (line 501) | function hasScopeRef(
  function getMemoedVNodeCall (line 561) | function getMemoedVNodeCall(
  function isAllWhitespace (line 573) | function isAllWhitespace(str: string): boolean {
  function isWhitespaceText (line 582) | function isWhitespaceText(node: TemplateChildNode): boolean {
  function isCommentOrWhitespace (line 589) | function isCommentOrWhitespace(node: TemplateChildNode): boolean {

FILE: packages/compiler-core/src/validateExpression.ts
  function validateBrowserExpression (line 28) | function validateBrowserExpression(

FILE: packages/compiler-dom/__tests__/transforms/Transition.spec.ts
  function checkWarning (line 4) | function checkWarning(

FILE: packages/compiler-dom/__tests__/transforms/ignoreSideEffectTags.spec.ts
  method onError (line 7) | onError(e) {
  method onError (line 19) | onError(e) {

FILE: packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts
  function compileWithStringify (line 14) | function compileWithStringify(template: string) {
  function repeat (line 22) | function repeat(code: string, n: number): string {
  function cachedArrayBailedMatcher (line 29) | function cachedArrayBailedMatcher(n = 1) {
  function cachedArraySuccessMatcher (line 45) | function cachedArraySuccessMatcher(n = 1) {
  function cachedArrayStaticNodeMatcher (line 61) | function cachedArrayStaticNodeMatcher(content: string, count: number) {

FILE: packages/compiler-dom/__tests__/transforms/transformStyle.spec.ts
  function transformWithStyleTransform (line 13) | function transformWithStyleTransform(

FILE: packages/compiler-dom/__tests__/transforms/vHtml.spec.ts
  function transformWithVHtml (line 13) | function transformWithVHtml(template: string, options: CompilerOptions =...

FILE: packages/compiler-dom/__tests__/transforms/vModel.spec.ts
  function transformWithModel (line 19) | function transformWithModel(template: string, options: CompilerOptions =...

FILE: packages/compiler-dom/__tests__/transforms/vOn.spec.ts
  function parseWithVOn (line 19) | function parseWithVOn(template: string, options: CompilerOptions = {}) {

FILE: packages/compiler-dom/__tests__/transforms/vShow.spec.ts
  function transformWithShow (line 11) | function transformWithShow(template: string, options: CompilerOptions = ...

FILE: packages/compiler-dom/__tests__/transforms/vText.spec.ts
  function transformWithVText (line 13) | function transformWithVText(template: string, options: CompilerOptions =...

FILE: packages/compiler-dom/src/decodeHtmlBrowser.ts
  function decodeHtmlBrowser (line 5) | function decodeHtmlBrowser(raw: string, asAttr = false): string {

FILE: packages/compiler-dom/src/errors.ts
  type DOMCompilerError (line 8) | interface DOMCompilerError extends CompilerError {
  function createDOMCompilerError (line 12) | function createDOMCompilerError(
  type DOMErrorCodes (line 23) | enum DOMErrorCodes {

FILE: packages/compiler-dom/src/htmlNesting.ts
  function isValidHTMLNesting (line 13) | function isValidHTMLNesting(parent: string, child: string): boolean {

FILE: packages/compiler-dom/src/index.ts
  function compile (line 41) | function compile(
  function parse (line 66) | function parse(template: string, options: ParserOptions = {}): RootNode {

FILE: packages/compiler-dom/src/parserOptions.ts
  method getNamespace (line 23) | getNamespace(tag, parent, rootNamespace) {

FILE: packages/compiler-dom/src/runtimeHelpers.ts
  constant V_MODEL_RADIO (line 3) | const V_MODEL_RADIO: unique symbol = Symbol(__DEV__ ? `vModelRadio` : ``)
  constant V_MODEL_CHECKBOX (line 4) | const V_MODEL_CHECKBOX: unique symbol = Symbol(
  constant V_MODEL_TEXT (line 7) | const V_MODEL_TEXT: unique symbol = Symbol(__DEV__ ? `vModelText` : ``)
  constant V_MODEL_SELECT (line 8) | const V_MODEL_SELECT: unique symbol = Symbol(
  constant V_MODEL_DYNAMIC (line 11) | const V_MODEL_DYNAMIC: unique symbol = Symbol(
  constant V_ON_WITH_MODIFIERS (line 15) | const V_ON_WITH_MODIFIERS: unique symbol = Symbol(
  constant V_ON_WITH_KEYS (line 18) | const V_ON_WITH_KEYS: unique symbol = Symbol(
  constant V_SHOW (line 22) | const V_SHOW: unique symbol = Symbol(__DEV__ ? `vShow` : ``)
  constant TRANSITION (line 24) | const TRANSITION: unique symbol = Symbol(__DEV__ ? `Transition` : ``)
  constant TRANSITION_GROUP (line 25) | const TRANSITION_GROUP: unique symbol = Symbol(

FILE: packages/compiler-dom/src/transforms/Transition.ts
  function hasMultipleChildren (line 59) | function hasMultipleChildren(node: ComponentNode | IfBranchNode): boolean {

FILE: packages/compiler-dom/src/transforms/stringifyStatic.ts
  type StringifyThresholds (line 40) | enum StringifyThresholds {
  type StringifiableNode (line 45) | type StringifiableNode = PlainElementNode | TextCallNode
  function analyzeNode (line 212) | function analyzeNode(node: StringifiableNode): [number, number] | false {
  function stringifyNode (line 295) | function stringifyNode(
  function stringifyElement (line 324) | function stringifyElement(
  function evaluateConstant (line 403) | function evaluateConstant(exp: ExpressionNode): string {

FILE: packages/compiler-dom/src/transforms/vModel.ts
  function checkDuplicatedValue (line 36) | function checkDuplicatedValue() {

FILE: packages/compiler-sfc/__tests__/compileScript.spec.ts
  function assertAwaitDetection (line 879) | function assertAwaitDetection(code: string, shouldAsync = true) {

FILE: packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts
  function compile (line 6) | function compile(src: string, options?: Partial<SFCScriptCompileOptions>) {

FILE: packages/compiler-sfc/__tests__/compileScript/hoistStatic.spec.ts
  function compile (line 6) | function compile(src: string, options?: Partial<SFCScriptCompileOptions>) {

FILE: packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts
  function resolve (line 1793) | function resolve(

FILE: packages/compiler-sfc/__tests__/compileStyle.spec.ts
  function compileScoped (line 8) | function compileScoped(

FILE: packages/compiler-sfc/__tests__/compileTemplate.spec.ts
  function compile (line 11) | function compile(opts: Omit<SFCTemplateCompileOptions, 'id'>) {

FILE: packages/compiler-sfc/__tests__/parse.spec.ts
  function assertWarning (line 385) | function assertWarning(errors: Error[], msg: string) {

FILE: packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts
  function compileWithAssetUrls (line 17) | function compileWithAssetUrls(

FILE: packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts
  function compileWithSrcset (line 19) | function compileWithSrcset(

FILE: packages/compiler-sfc/__tests__/utils.ts
  function compileSFCScript (line 12) | function compileSFCScript(
  function assertCode (line 27) | function assertCode(code: string): void {
  type Pos (line 44) | interface Pos {
  function getPositionInCode (line 50) | function getPositionInCode(

FILE: packages/compiler-sfc/src/cache.ts
  function createCache (line 3) | function createCache<T extends {}>(

FILE: packages/compiler-sfc/src/compileScript.ts
  type SFCScriptCompileOptions (line 73) | interface SFCScriptCompileOptions {
  type ImportBinding (line 144) | interface ImportBinding {
  constant MACROS (line 153) | const MACROS = [
  function compileScript (line 168) | function compileScript(
  function registerBinding (line 1121) | function registerBinding(
  function walkDeclaration (line 1129) | function walkDeclaration(
  function walkObjectPattern (line 1234) | function walkObjectPattern(
  function walkArrayPattern (line 1262) | function walkArrayPattern(
  function walkPattern (line 1273) | function walkPattern(
  function canNeverBeRef (line 1308) | function canNeverBeRef(node: Node, userReactiveImport?: string): boolean {
  function isStaticNode (line 1336) | function isStaticNode(node: Node): boolean {
  function mergeSourceMaps (line 1373) | function mergeSourceMaps(

FILE: packages/compiler-sfc/src/compileStyle.ts
  type SFCStyleCompileOptions (line 20) | interface SFCStyleCompileOptions {
  type CSSModulesOptions (line 43) | interface CSSModulesOptions {
  type SFCAsyncStyleCompileOptions (line 54) | interface SFCAsyncStyleCompileOptions extends SFCStyleCompileOptions {
  type SFCStyleCompileResults (line 62) | interface SFCStyleCompileResults {
  function compileStyle (line 71) | function compileStyle(
  function compileStyleAsync (line 80) | function compileStyleAsync(
  function doCompileStyle (line 89) | function doCompileStyle(
  function preprocess (line 222) | function preprocess(

FILE: packages/compiler-sfc/src/compileTemplate.ts
  type TemplateCompiler (line 32) | interface TemplateCompiler {
  type SFCTemplateCompileResults (line 37) | interface SFCTemplateCompileResults {
  type SFCTemplateCompileOptions (line 47) | interface SFCTemplateCompileOptions {
  type PreProcessor (line 75) | interface PreProcessor {
  function preprocess (line 83) | function preprocess(
  function compileTemplate (line 107) | function compileTemplate(
  function doCompileTemplate (line 162) | function doCompileTemplate({
  function mapLines (line 277) | function mapLines(oldMap: RawSourceMap, newMap: RawSourceMap): RawSource...
  function patchErrors (line 330) | function patchErrors(

FILE: packages/compiler-sfc/src/parse.ts
  constant DEFAULT_FILENAME (line 23) | const DEFAULT_FILENAME = 'anonymous.vue'
  type SFCParseOptions (line 25) | interface SFCParseOptions {
  type SFCBlock (line 35) | interface SFCBlock {
  type SFCTemplateBlock (line 45) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 50) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 66) | interface SFCStyleBlock extends SFCBlock {
  type SFCDescriptor (line 72) | interface SFCDescriptor {
  type SFCParseResult (line 98) | interface SFCParseResult {
  function parse (line 107) | function parse(
  function createDuplicateBlockError (line 301) | function createDuplicateBlockError(
  function createBlock (line 314) | function createBlock(
  function generateSourceMap (line 357) | function generateSourceMap(
  function padContent (line 392) | function padContent(
  function hasSrc (line 407) | function hasSrc(node: ElementNode) {
  function isEmpty (line 420) | function isEmpty(node: ElementNode) {
  function hmrShouldReload (line 435) | function hmrShouldReload(
  function dedent (line 465) | function dedent(s: string): [string, number] {

FILE: packages/compiler-sfc/src/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(
  function rewriteDefaultAST (line 27) | function rewriteDefaultAST(
  function hasDefaultExport (line 92) | function hasDefaultExport(ast: Statement[]): boolean {
  function specifierEnd (line 108) | function specifierEnd(s: MagicString, end: number, nodeEnd: number | nul...

FILE: packages/compiler-sfc/src/script/analyzeScriptBindings.ts
  function analyzeScriptBindings (line 15) | function analyzeScriptBindings(ast: Statement[]): BindingMetadata {
  function analyzeBindingsFromOptions (line 27) | function analyzeBindingsFromOptions(node: ObjectExpression): BindingMeta...
  function getObjectExpressionKeys (line 103) | function getObjectExpressionKeys(node: ObjectExpression): string[] {
  function getArrayExpressionKeys (line 113) | function getArrayExpressionKeys(node: ArrayExpression): string[] {
  function getObjectOrArrayExpressionKeys (line 123) | function getObjectOrArrayExpressionKeys(value: Node): string[] {

FILE: packages/compiler-sfc/src/script/context.ts
  class ScriptCompileContext (line 14) | class ScriptCompileContext {
    method helper (line 68) | helper(key: string): string {
    method constructor (line 83) | constructor(
    method getString (line 135) | getString(node: Node, scriptSetup = true): string {
    method warn (line 142) | warn(msg: string, node: Node, scope?: TypeScope): void {
    method error (line 146) | error(msg: string, node: Node, scope?: TypeScope): never {
  function generateError (line 153) | function generateError(
  function resolveParserPlugins (line 167) | function resolveParserPlugins(

FILE: packages/compiler-sfc/src/script/defineEmits.ts
  constant DEFINE_EMITS (line 17) | const DEFINE_EMITS = 'defineEmits'
  function processDefineEmits (line 19) | function processDefineEmits(
  function genRuntimeEmits (line 48) | function genRuntimeEmits(ctx: ScriptCompileContext): string | undefined {
  function extractRuntimeEmits (line 73) | function extractRuntimeEmits(ctx: TypeResolveContext): Set<string> {
  function extractEventNames (line 105) | function extractEventNames(

FILE: packages/compiler-sfc/src/script/defineExpose.ts
  constant DEFINE_EXPOSE (line 5) | const DEFINE_EXPOSE = 'defineExpose'
  function processDefineExpose (line 7) | function processDefineExpose(

FILE: packages/compiler-sfc/src/script/defineModel.ts
  constant DEFINE_MODEL (line 7) | const DEFINE_MODEL = 'defineModel'
  type ModelDecl (line 9) | interface ModelDecl {
  function processDefineModel (line 16) | function processDefineModel(
  function genModelProps (line 117) | function genModelProps(ctx: ScriptCompileContext): string | undefined {

FILE: packages/compiler-sfc/src/script/defineOptions.ts
  constant DEFINE_OPTIONS (line 10) | const DEFINE_OPTIONS = 'defineOptions'
  function processDefineOptions (line 12) | function processDefineOptions(

FILE: packages/compiler-sfc/src/script/defineProps.ts
  constant DEFINE_PROPS (line 29) | const DEFINE_PROPS = 'defineProps'
  constant WITH_DEFAULTS (line 30) | const WITH_DEFAULTS = 'withDefaults'
  type PropTypeData (line 32) | interface PropTypeData {
  type PropsDestructureBindings (line 39) | type PropsDestructureBindings = Record<
  function processDefineProps (line 47) | function processDefineProps(
  function processWithDefaults (line 95) | function processWithDefaults(
  function genRuntimeProps (line 141) | function genRuntimeProps(ctx: ScriptCompileContext): string | undefined {
  function extractRuntimeProps (line 179) | function extractRuntimeProps(
  function resolveRuntimePropsFromType (line 211) | function resolveRuntimePropsFromType(
  function genRuntimePropFromType (line 240) | function genRuntimePropFromType(
  function hasStaticWithDefaults (line 320) | function hasStaticWithDefaults(ctx: TypeResolveContext) {
  function genDestructuredDefaultValue (line 332) | function genDestructuredDefaultValue(
  function inferValueType (line 381) | function inferValueType(node: Node): string | undefined {

FILE: packages/compiler-sfc/src/script/definePropsDestructure.ts
  function processPropsDestructure (line 27) | function processPropsDestructure(
  type Scope (line 96) | type Scope = Record<string, boolean>
  function transformDestructuredProps (line 98) | function transformDestructuredProps(

FILE: packages/compiler-sfc/src/script/defineSlots.ts
  constant DEFINE_SLOTS (line 5) | const DEFINE_SLOTS = 'defineSlots'
  function processDefineSlots (line 7) | function processDefineSlots(

FILE: packages/compiler-sfc/src/script/importUsageCheck.ts
  function isImportUsed (line 19) | function isImportUsed(local: string, sfc: SFCDescriptor): boolean {
  function resolveTemplateVModelIdentifiers (line 28) | function resolveTemplateVModelIdentifiers(
  function resolveTemplateUsedIdentifiers (line 34) | function resolveTemplateUsedIdentifiers(sfc: SFCDescriptor): Set<string> {
  function resolveTemplateAnalysisResult (line 38) | function resolveTemplateAnalysisResult(
  function extractIdentifiers (line 137) | function extractIdentifiers(ids: Set<string>, node: ExpressionNode) {

FILE: packages/compiler-sfc/src/script/normalScript.ts
  function processNormalScript (line 10) | function processNormalScript(

FILE: packages/compiler-sfc/src/script/resolveType.ts
  type SimpleTypeResolveOptions (line 47) | type SimpleTypeResolveOptions = Partial<
  type SimpleTypeResolveContext (line 69) | type SimpleTypeResolveContext = Pick<
  type TypeResolveContext (line 99) | type TypeResolveContext = (
  type Import (line 106) | type Import = Pick<ImportBinding, 'source' | 'imported'>
  type WithScope (line 108) | interface WithScope {
  type ScopeTypeNode (line 113) | type ScopeTypeNode = Node &
  class TypeScope (line 116) | class TypeScope {
    method constructor (line 117) | constructor(
  type MaybeWithScope (line 131) | interface MaybeWithScope {
  type ResolvedElements (line 135) | interface ResolvedElements {
  function resolveTypeElements (line 150) | function resolveTypeElements(
  function innerResolveTypeElements (line 169) | function innerResolveTypeElements(
  function typeElementsToMap (line 330) | function typeElementsToMap(
  function mergeElements (line 363) | function mergeElements(
  function createProperty (line 394) | function createProperty(
  function resolveInterfaceMembers (line 413) | function resolveInterfaceMembers(
  function resolveMappedType (line 459) | function resolveMappedType(
  function resolveIndexType (line 489) | function resolveIndexType(
  function resolveArrayElementType (line 520) | function resolveArrayElementType(
  function resolveStringType (line 553) | function resolveStringType(
  function resolveTemplateKeys (line 621) | function resolveTemplateKeys(
  type GetSetType (line 662) | type GetSetType<T> = T extends Set<infer V> ? V : never
  function resolveBuiltin (line 664) | function resolveBuiltin(
  type ReferenceTypes (line 724) | type ReferenceTypes =
  function resolveTypeReference (line 730) | function resolveTypeReference(
  function innerResolveTypeReference (line 753) | function innerResolveTypeReference(
  function getReferenceName (line 809) | function getReferenceName(node: ReferenceTypes): string | string[] {
  function qualifiedNameToPath (line 827) | function qualifiedNameToPath(node: Identifier | TSQualifiedName): string...
  function resolveGlobalScope (line 835) | function resolveGlobalScope(ctx: TypeResolveContext): TypeScope[] | unde...
  function registerTS (line 853) | function registerTS(_loadTS: () => typeof TS): void {
  type FS (line 875) | type FS = NonNullable<SFCScriptCompileOptions['fs']>
  function resolveFS (line 877) | function resolveFS(ctx: TypeResolveContext): FS | undefined {
  function resolveTypeFromImport (line 905) | function resolveTypeFromImport(
  function importSourceToScope (line 916) | function importSourceToScope(
  function resolveExt (line 988) | function resolveExt(filename: string, fs: FS) {
  type CachedConfig (line 1024) | interface CachedConfig {
  function resolveWithTS (line 1032) | function resolveWithTS(
  function loadTSConfig (line 1123) | function loadTSConfig(
  function invalidateTypeCache (line 1166) | function invalidateTypeCache(filename: string): void {
  function fileToScope (line 1174) | function fileToScope(
  function parseFile (line 1193) | function parseFile(
  function ctxToScope (line 1262) | function ctxToScope(ctx: TypeResolveContext): TypeScope {
  function moduleDeclToScope (line 1286) | function moduleDeclToScope(
  function createChildScope (line 1309) | function createChildScope(parentScope: TypeScope) {
  function recordTypes (line 1322) | function recordTypes(
  function recordType (line 1417) | function recordType(
  function mergeNamespaces (line 1495) | function mergeNamespaces(to: TSModuleDeclaration, from: TSModuleDeclarat...
  function attachNamespace (line 1525) | function attachNamespace(
  function recordImports (line 1536) | function recordImports(body: Statement[]): Record<string, Import> {
  function recordImport (line 1544) | function recordImport(node: Node, imports: TypeScope['imports']) {
  function inferRuntimeType (line 1556) | function inferRuntimeType(
  function flattenTypes (line 1947) | function flattenTypes(
  function inferEnumType (line 1980) | function inferEnumType(node: TSEnumDeclaration): string[] {
  function resolveExtractPropTypes (line 2001) | function resolveExtractPropTypes(
  function reverseInferType (line 2017) | function reverseInferType(
  function ctorToType (line 2066) | function ctorToType(ctorType: string): TSType {
  function findStaticPropertyType (line 2091) | function findStaticPropertyType(node: TSTypeLiteral, key: string) {
  function resolveReturnType (line 2101) | function resolveReturnType(
  function resolveUnionType (line 2123) | function resolveUnionType(

FILE: packages/compiler-sfc/src/script/topLevelAwait.ts
  function processAwait (line 37) | function processAwait(

FILE: packages/compiler-sfc/src/script/utils.ts
  constant UNKNOWN_TYPE (line 15) | const UNKNOWN_TYPE = 'Unknown'
  function resolveObjectKey (line 17) | function resolveObjectKey(
  function concatStrings (line 31) | function concatStrings(
  function isLiteralNode (line 37) | function isLiteralNode(node: Node): boolean {
  function isCallOf (line 41) | function isCallOf(
  function toRuntimeTypeString (line 56) | function toRuntimeTypeString(types: string[]): string {
  function getImportedName (line 60) | function getImportedName(
  function getId (line 76) | function getId(node: Expression) {
  function getStringLiteralKey (line 84) | function getStringLiteralKey(
  function toFileNameLowerCase (line 104) | function toFileNameLowerCase(x: string) {
  function createGetCanonicalFileName (line 115) | function createGetCanonicalFileName(
  function normalizePath (line 125) | function normalizePath(p: string): string {
  function getEscapedPropName (line 139) | function getEscapedPropName(key: string): string {

FILE: packages/compiler-sfc/src/style/cssVars.ts
  constant CSS_VARS_HELPER (line 15) | const CSS_VARS_HELPER = `useCssVars`
  function genCssVarsFromList (line 17) | function genCssVarsFromList(
  function genVarName (line 36) | function genVarName(
  function normalizeExpression (line 53) | function normalizeExpression(exp: string) {
  function parseCssVars (line 66) | function parseCssVars(sfc: SFCDescriptor): string[] {
  type LexerState (line 87) | enum LexerState {
  function lexBinding (line 93) | function lexBinding(content: string, start: number): number | null {
  type CssVarsPluginOptions (line 131) | interface CssVarsPluginOptions {
  method Declaration (line 140) | Declaration(decl) {
  function genCssVarsCode (line 166) | function genCssVarsCode(
  function genNormalScriptCssVarsCode (line 196) | function genNormalScriptCssVarsCode(

FILE: packages/compiler-sfc/src/style/pluginScoped.ts
  method Rule (line 21) | Rule(rule) {
  method AtRule (line 24) | AtRule(node) {
  method OnceExit (line 30) | OnceExit(root) {
  function processRule (line 68) | function processRule(id: string, rule: Rule) {
  function rewriteSelector (line 94) | function rewriteSelector(
  function isSpaceCombinator (line 278) | function isSpaceCombinator(node: selectorParser.Node) {
  function extractAndWrapNodes (line 282) | function extractAndWrapNodes(parentNode: Rule | AtRule) {

FILE: packages/compiler-sfc/src/style/pluginTrim.ts
  method Once (line 6) | Once(root) {

FILE: packages/compiler-sfc/src/style/preprocessors.ts
  type StylePreprocessor (line 6) | type StylePreprocessor = (
  type StylePreprocessorResults (line 17) | interface StylePreprocessorResults {
  function getSource (line 141) | function getSource(
  type PreprocessLang (line 153) | type PreprocessLang = 'less' | 'sass' | 'scss' | 'styl' | 'stylus'

FILE: packages/compiler-sfc/src/template/templateUtils.ts
  function isRelativeUrl (line 4) | function isRelativeUrl(url: string): boolean {
  function isExternalUrl (line 10) | function isExternalUrl(url: string): boolean {
  function isDataUrl (line 15) | function isDataUrl(url: string): boolean {
  function parseUrl (line 22) | function parseUrl(url: string): UrlWithStringQuery {
  function parseUriParts (line 35) | function parseUriParts(urlString: string): UrlWithStringQuery {

FILE: packages/compiler-sfc/src/template/transformAssetUrl.ts
  type AssetURLTagConfig (line 20) | interface AssetURLTagConfig {
  type AssetURLOptions (line 24) | interface AssetURLOptions {
  function getImportsExpressionExp (line 150) | function getImportsExpressionExp(

FILE: packages/compiler-sfc/src/template/transformSrcset.ts
  type ImageCandidate (line 24) | interface ImageCandidate {

FILE: packages/compiler-sfc/src/warn.ts
  function warnOnce (line 3) | function warnOnce(msg: string): void {
  function warn (line 12) | function warn(msg: string): void {

FILE: packages/compiler-ssr/__tests__/ssrVModel.spec.ts
  function compileWithWrapper (line 3) | function compileWithWrapper(src: string) {

FILE: packages/compiler-ssr/__tests__/ssrVShow.spec.ts
  function compileWithWrapper (line 3) | function compileWithWrapper(src: string) {

FILE: packages/compiler-ssr/__tests__/utils.ts
  function getCompiledString (line 3) | function getCompiledString(src: string): string {

FILE: packages/compiler-ssr/src/errors.ts
  type SSRCompilerError (line 8) | interface SSRCompilerError extends CompilerError {
  function createSSRCompilerError (line 12) | function createSSRCompilerError(
  type SSRErrorCodes (line 19) | enum SSRErrorCodes {

FILE: packages/compiler-ssr/src/index.ts
  function compile (line 32) | function compile(

FILE: packages/compiler-ssr/src/runtimeHelpers.ts
  constant SSR_INTERPOLATE (line 3) | const SSR_INTERPOLATE: unique symbol = Symbol(`ssrInterpolate`)
  constant SSR_RENDER_VNODE (line 4) | const SSR_RENDER_VNODE: unique symbol = Symbol(`ssrRenderVNode`)
  constant SSR_RENDER_COMPONENT (line 5) | const SSR_RENDER_COMPONENT: unique symbol = Symbol(`ssrRenderComponent`)
  constant SSR_RENDER_SLOT (line 6) | const SSR_RENDER_SLOT: unique symbol = Symbol(`ssrRenderSlot`)
  constant SSR_RENDER_SLOT_INNER (line 7) | const SSR_RENDER_SLOT_INNER: unique symbol = Symbol(`ssrRenderSlotInner`)
  constant SSR_RENDER_CLASS (line 8) | const SSR_RENDER_CLASS: unique symbol = Symbol(`ssrRenderClass`)
  constant SSR_RENDER_STYLE (line 9) | const SSR_RENDER_STYLE: unique symbol = Symbol(`ssrRenderStyle`)
  constant SSR_RENDER_ATTRS (line 10) | const SSR_RENDER_ATTRS: unique symbol = Symbol(`ssrRenderAttrs`)
  constant SSR_RENDER_ATTR (line 11) | const SSR_RENDER_ATTR: unique symbol = Symbol(`ssrRenderAttr`)
  constant SSR_RENDER_DYNAMIC_ATTR (line 12) | const SSR_RENDER_DYNAMIC_ATTR: unique symbol =
  constant SSR_RENDER_LIST (line 14) | const SSR_RENDER_LIST: unique symbol = Symbol(`ssrRenderList`)
  constant SSR_INCLUDE_BOOLEAN_ATTR (line 15) | const SSR_INCLUDE_BOOLEAN_ATTR: unique symbol = Symbol(
  constant SSR_LOOSE_EQUAL (line 18) | const SSR_LOOSE_EQUAL: unique symbol = Symbol(`ssrLooseEqual`)
  constant SSR_LOOSE_CONTAIN (line 19) | const SSR_LOOSE_CONTAIN: unique symbol = Symbol(`ssrLooseContain`)
  constant SSR_RENDER_DYNAMIC_MODEL (line 20) | const SSR_RENDER_DYNAMIC_MODEL: unique symbol = Symbol(
  constant SSR_GET_DYNAMIC_MODEL_PROPS (line 23) | const SSR_GET_DYNAMIC_MODEL_PROPS: unique symbol = Symbol(
  constant SSR_RENDER_TELEPORT (line 26) | const SSR_RENDER_TELEPORT: unique symbol = Symbol(`ssrRenderTeleport`)
  constant SSR_RENDER_SUSPENSE (line 27) | const SSR_RENDER_SUSPENSE: unique symbol = Symbol(`ssrRenderSuspense`)
  constant SSR_GET_DIRECTIVE_PROPS (line 28) | const SSR_GET_DIRECTIVE_PROPS: unique symbol =

FILE: packages/compiler-ssr/src/ssrCodegenTransform.ts
  function ssrCodegenTransform (line 38) | function ssrCodegenTransform(
  type SSRTransformContext (line 78) | interface SSRTransformContext {
  function createSSRTransformContext (line 90) | function createSSRTransformContext(
  function createChildContext (line 137) | function createChildContext(
  type Container (line 150) | interface Container {
  function processChildren (line 154) | function processChildren(
  function processChildrenAsStatement (line 242) | function processChildrenAsStatement(

FILE: packages/compiler-ssr/src/transforms/ssrInjectCssVars.ts
  function injectCssVars (line 38) | function injectCssVars(node: RootNode | TemplateChildNode) {

FILE: packages/compiler-ssr/src/transforms/ssrInjectFallthroughAttrs.ts
  function injectFallthroughAttrs (line 76) | function injectFallthroughAttrs(node: RootNode | TemplateChildNode) {

FILE: packages/compiler-ssr/src/transforms/ssrTransformComponent.ts
  constant WIP_SLOT (line 71) | const WIP_SLOT = Symbol()
  type WIPSlotEntry (line 73) | interface WIPSlotEntry {
  function ssrProcessComponent (line 204) | function ssrProcessComponent(
  function createVNodeSlotBranch (line 284) | function createVNodeSlotBranch(
  function subTransform (line 337) | function subTransform(
  function clone (line 374) | function clone(v: any): any {

FILE: packages/compiler-ssr/src/transforms/ssrTransformElement.ts
  function buildSSRProps (line 374) | function buildSSRProps(
  function isTrueFalseValue (line 404) | function isTrueFalseValue(prop: DirectiveNode | AttributeNode) {
  function isTextareaWithValue (line 417) | function isTextareaWithValue(
  function mergeCall (line 428) | function mergeCall(call: CallExpression, arg: string | JSChildNode) {
  function removeStaticBinding (line 437) | function removeStaticBinding(
  function findVModel (line 450) | function findVModel(node: PlainElementNode): DirectiveNode | undefined {
  function hasContentOverrideDirective (line 456) | function hasContentOverrideDirective(node: PlainElementNode): boolean {
  function ssrProcessElement (line 460) | function ssrProcessElement(

FILE: packages/compiler-ssr/src/transforms/ssrTransformSlotOutlet.ts
  function ssrProcessSlotOutlet (line 73) | function ssrProcessSlotOutlet(

FILE: packages/compiler-ssr/src/transforms/ssrTransformSuspense.ts
  type WIPEntry (line 19) | interface WIPEntry {
  function ssrTransformSuspense (line 28) | function ssrTransformSuspense(
  function ssrProcessSuspense (line 62) | function ssrProcessSuspense(

FILE: packages/compiler-ssr/src/transforms/ssrTransformTeleport.ts
  function ssrProcessTeleport (line 18) | function ssrProcessTeleport(

FILE: packages/compiler-ssr/src/transforms/ssrTransformTransition.ts
  function ssrTransformTransition (line 14) | function ssrTransformTransition(
  function ssrProcessTransition (line 24) | function ssrProcessTransition(

FILE: packages/compiler-ssr/src/transforms/ssrTransformTransitionGroup.ts
  type WIPEntry (line 21) | interface WIPEntry {
  function ssrTransformTransitionGroup (line 28) | function ssrTransformTransitionGroup(
  function ssrProcessTransitionGroup (line 60) | function ssrProcessTransitionGroup(

FILE: packages/compiler-ssr/src/transforms/ssrVFor.ts
  function ssrProcessFor (line 23) | function ssrProcessFor(

FILE: packages/compiler-ssr/src/transforms/ssrVIf.ts
  function ssrProcessIf (line 26) | function ssrProcessIf(
  function processIfBranch (line 66) | function processIfBranch(

FILE: packages/compiler-ssr/src/transforms/ssrVModel.ts
  function checkDuplicatedValue (line 30) | function checkDuplicatedValue() {
  function processOption (line 54) | function processOption(plainNode: PlainElementNode) {
  function findValueBinding (line 193) | function findValueBinding(node: PlainElementNode): ExpressionNode {

FILE: packages/global.d.ts
  type String (line 32) | interface String {

FILE: packages/reactivity/__benchmarks__/effect.bench.ts
  function benchEffectCreate (line 15) | function benchEffectCreate(size: number) {
  function benchEffectCreateAndStop (line 34) | function benchEffectCreateAndStop(size: number) {
  function benchWithRefs (line 54) | function benchWithRefs(size: number) {
  function benchWithBranches (line 76) | function benchWithBranches(size: number) {
  function benchMultipleEffects (line 98) | function benchMultipleEffects(size: number) {

FILE: packages/reactivity/__benchmarks__/reactiveMap.bench.ts
  function createMap (line 5) | function createMap(obj: Record<string, any>) {

FILE: packages/reactivity/__tests__/collections/Map.spec.ts
  function coverCollectionFn (line 4) | function coverCollectionFn(collection: Map<any, any>, fnName: string) {

FILE: packages/reactivity/__tests__/collections/Set.spec.ts
  function coverCollectionFn (line 11) | function coverCollectionFn(collection: Set<any>, fnName: string) {

FILE: packages/reactivity/__tests__/computed.spec.ts
  method get (line 222) | get() {
  method set (line 225) | set(v) {
  class Item (line 528) | class Item {
  method setup (line 815) | setup() {
  method setup (line 827) | setup() {
  method setup (line 853) | setup() {
  method data (line 969) | data() {
  method message (line 976) | message(): string {
  method render (line 986) | render() {

FILE: packages/reactivity/__tests__/effect.spec.ts
  method prop (line 142) | set prop(value) {
  method prop (line 145) | get prop() {
  function getNum (line 169) | function getNum() {
  method b (line 309) | get b() {
  method b (line 324) | b() {
  method prop (line 378) | set prop(value) {
  method prop (line 381) | get prop() {
  function greet (line 468) | function greet() {
  class Model (line 704) | class Model {
    method constructor (line 706) | constructor() {
    method inc (line 709) | inc() {
  method setup (line 1135) | setup() {
  method setup (line 1143) | setup() {
  function getSubCount (line 1186) | function getSubCount(dep: Dep | undefined) {

FILE: packages/reactivity/__tests__/reactive.spec.ts
  class CustomMap (line 62) | class CustomMap extends Map {}
  class CustomSet (line 72) | class CustomSet extends Set {}
  class CustomMap (line 89) | class CustomMap extends WeakMap {}
  class CustomSet (line 100) | class CustomSet extends WeakSet {}

FILE: packages/reactivity/__tests__/reactiveArray.spec.ts
  function instrumentArr (line 97) | function instrumentArr(rawTarget: any[]) {
  function searchValue (line 108) | function searchValue(target: any[], ...args: unknown[]) {
  function unInstrumentArr (line 112) | function unInstrumentArr(rawTarget: any[]) {
  function expectHaveBeenCalledTimes (line 120) | function expectHaveBeenCalledTimes(rawTarget: any[], times: number) {
  class SubArray (line 315) | class SubArray<T> extends Array<T> {
    method push (line 319) | push(item: T) {
    method indexOf (line 324) | indexOf(searchElement: T, fromIndex?: number | undefined): number {
  function toString (line 559) | function toString(this: { val: number }) {
  function toString (line 603) | function toString(this: any) {
  class Collection (line 760) | class Collection extends Array {
    method every (line 762) | every(foo: any, bar: any, baz: any) {
    method filter (line 770) | filter(foo: any, bar: any, baz: any) {
    method find (line 778) | find(foo: any, bar: any, baz: any) {
    method findIndex (line 786) | findIndex(foo: any, bar: any, baz: any) {
    method findLast (line 793) | findLast(foo: any, bar: any, baz: any) {
    method findLastIndex (line 801) | findLastIndex(foo: any, bar: any, baz: any) {
    method forEach (line 809) | forEach(foo: any, bar: any, baz: any) {
    method map (line 816) | map(foo: any, bar: any, baz: any) {
    method some (line 824) | some(foo: any, bar: any, baz: any) {
    method find (line 863) | find(matcher: any) {
  class Collection (line 862) | class Collection extends Array {
    method every (line 762) | every(foo: any, bar: any, baz: any) {
    method filter (line 770) | filter(foo: any, bar: any, baz: any) {
    method find (line 778) | find(foo: any, bar: any, baz: any) {
    method findIndex (line 786) | findIndex(foo: any, bar: any, baz: any) {
    method findLast (line 793) | findLast(foo: any, bar: any, baz: any) {
    method findLastIndex (line 801) | findLastIndex(foo: any, bar: any, baz: any) {
    method forEach (line 809) | forEach(foo: any, bar: any, baz: any) {
    method map (line 816) | map(foo: any, bar: any, baz: any) {
    method some (line 824) | some(foo: any, bar: any, baz: any) {
    method find (line 863) | find(matcher: any) {

FILE: packages/reactivity/__tests__/readonly.spec.ts
  type Writable (line 19) | type Writable<T> = { -readonly [P in keyof T]: T[P] }

FILE: packages/reactivity/__tests__/ref.spec.ts
  method get (line 625) | get() {
  method set (line 629) | set(newValue: number) {
  method get (line 720) | get() {
  method set (line 724) | set(value: number) {

FILE: packages/reactivity/__tests__/watch.spec.ts
  function useClamp (line 240) | function useClamp(src: Ref<number>, min: number, max: number) {

FILE: packages/reactivity/src/arrayInstrumentations.ts
  function reactiveReadArray (line 20) | function reactiveReadArray<T>(array: T[]): T[] {
  function shallowReadArray (line 30) | function shallowReadArray<T>(arr: T[]): T[] {
  function toWrapped (line 35) | function toWrapped(target: unknown, item: unknown) {
  method [Symbol.iterator] (line 45) | [Symbol.iterator]() {
  method concat (line 49) | concat(...args: unknown[]) {
  method entries (line 55) | entries() {
  method every (line 62) | every(
  method filter (line 69) | filter(
  method find (line 83) | find(
  method findIndex (line 97) | findIndex(
  method findLast (line 104) | findLast(
  method findLastIndex (line 118) | findLastIndex(
  method forEach (line 127) | forEach(
  method includes (line 134) | includes(...args: unknown[]) {
  method indexOf (line 138) | indexOf(...args: unknown[]) {
  method join (line 142) | join(separator?: string) {
  method lastIndexOf (line 148) | lastIndexOf(...args: unknown[]) {
  method map (line 152) | map(
  method pop (line 159) | pop() {
  method push (line 163) | push(...args: unknown[]) {
  method reduce (line 167) | reduce(
  method reduceRight (line 179) | reduceRight(
  method shift (line 191) | shift() {
  method some (line 197) | some(
  method splice (line 204) | splice(...args: unknown[]) {
  method toReversed (line 208) | toReversed() {
  method toSorted (line 213) | toSorted(comparer?: (a: unknown, b: unknown) => number) {
  method toSpliced (line 218) | toSpliced(...args: unknown[]) {
  method unshift (line 223) | unshift(...args: unknown[]) {
  method values (line 227) | values() {
  function iterator (line 233) | function iterator(
  type ArrayMethods (line 265) | type ArrayMethods = keyof Array<any> | 'findLast' | 'findLastIndex'
  function apply (line 270) | function apply(
  function reduce (line 309) | function reduce(
  function searchProxy (line 340) | function searchProxy(
  function noTracking (line 361) | function noTracking(

FILE: packages/reactivity/src/baseHandlers.ts
  function hasOwnProperty (line 41) | function hasOwnProperty(this: object, key: unknown) {
  class BaseReactiveHandler (line 49) | class BaseReactiveHandler implements ProxyHandler<Target> {
    method constructor (line 50) | constructor(
    method get (line 55) | get(target: Target, key: string | symbol, receiver: object): any {
  class MutableReactiveHandler (line 137) | class MutableReactiveHandler extends BaseReactiveHandler {
    method constructor (line 138) | constructor(isShallow = false) {
    method set (line 142) | set(
    method deleteProperty (line 194) | deleteProperty(
    method has (line 207) | has(target: Record<string | symbol, unknown>, key: string | symbol): b...
    method ownKeys (line 215) | ownKeys(target: Record<string | symbol, unknown>): (string | symbol)[] {
  class ReadonlyReactiveHandler (line 225) | class ReadonlyReactiveHandler extends BaseReactiveHandler {
    method constructor (line 226) | constructor(isShallow = false) {
    method set (line 230) | set(target: object, key: string | symbol) {
    method deleteProperty (line 240) | deleteProperty(target: object, key: string | symbol) {

FILE: packages/reactivity/src/collectionHandlers.ts
  type CollectionTypes (line 21) | type CollectionTypes = IterableCollections | WeakCollections
  type IterableCollections (line 23) | type IterableCollections = (Map<any, any> | Set<any>) & Target
  type WeakCollections (line 24) | type WeakCollections = (WeakMap<any, any> | WeakSet<any>) & Target
  type MapTypes (line 25) | type MapTypes = (Map<any, any> | WeakMap<any, any>) & Target
  type SetTypes (line 26) | type SetTypes = (Set<any> | WeakSet<any>) & Target
  function createIterableMethod (line 33) | function createIterableMethod(
  function createReadonlyMethod (line 77) | function createReadonlyMethod(type: TriggerOpTypes): Function {
  type Instrumentations (line 94) | type Instrumentations = Record<string | symbol, Function | number>
  function createInstrumentations (line 96) | function createInstrumentations(
  function createInstrumentationGetter (line 270) | function createInstrumentationGetter(isReadonly: boolean, shallow: boole...
  function checkIdentityKeys (line 313) | function checkIdentityKeys(

FILE: packages/reactivity/src/computed.ts
  type BaseComputedRef (line 19) | interface BaseComputedRef<T, S = T> extends Ref<T, S> {
  type ComputedRef (line 27) | interface ComputedRef<T = any> extends BaseComputedRef<T> {
  type WritableComputedRef (line 31) | interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> {
  type ComputedGetter (line 35) | type ComputedGetter<T> = (oldValue?: T) => T
  type ComputedSetter (line 36) | type ComputedSetter<T> = (newValue: T) => void
  type WritableComputedOptions (line 38) | interface WritableComputedOptions<T, S = T> {
  class ComputedRefImpl (line 47) | class ComputedRefImpl<T = any> implements Subscriber {
    method constructor (line 105) | constructor(
    method notify (line 117) | notify(): true | void {
    method value (line 131) | get value(): T {
    method value (line 147) | set value(newValue) {
  function computed (line 198) | function computed<T>(

FILE: packages/reactivity/src/constants.ts
  type TrackOpTypes (line 4) | enum TrackOpTypes {
  type TriggerOpTypes (line 10) | enum TriggerOpTypes {
  type ReactiveFlags (line 17) | enum ReactiveFlags {

FILE: packages/reactivity/src/dep.ts
  class Link (line 32) | class Link {
    method constructor (line 50) | constructor(
  class Dep (line 67) | class Dep {
    method constructor (line 102) | constructor(public computed?: ComputedRefImpl | undefined) {
    method track (line 108) | track(debugInfo?: DebuggerEventExtraInfo): Link | undefined {
    method trigger (line 167) | trigger(debugInfo?: DebuggerEventExtraInfo): void {
    method notify (line 173) | notify(debugInfo?: DebuggerEventExtraInfo): void {
  function addSub (line 207) | function addSub(link: Link) {
  type KeyToDepMap (line 238) | type KeyToDepMap = Map<any, Dep>
  constant ITERATE_KEY (line 242) | const ITERATE_KEY: unique symbol = Symbol(
  constant MAP_KEY_ITERATE_KEY (line 245) | const MAP_KEY_ITERATE_KEY: unique symbol = Symbol(
  constant ARRAY_ITERATE_KEY (line 248) | const ARRAY_ITERATE_KEY: unique symbol = Symbol(
  function track (line 262) | function track(target: object, type: TrackOpTypes, key: unknown): void {
  function trigger (line 294) | function trigger(
  function getDepFromReactive (line 391) | function getDepFromReactive(

FILE: packages/reactivity/src/effect.ts
  type EffectScheduler (line 8) | type EffectScheduler = (...args: any[]) => any
  type DebuggerEvent (line 10) | type DebuggerEvent = {
  type DebuggerEventExtraInfo (line 14) | type DebuggerEventExtraInfo = {
  type DebuggerOptions (line 23) | interface DebuggerOptions {
  type ReactiveEffectOptions (line 28) | interface ReactiveEffectOptions extends DebuggerOptions {
  type ReactiveEffectRunner (line 34) | interface ReactiveEffectRunner<T = any> {
  type EffectFlags (line 41) | enum EffectFlags {
  type Subscriber (line 58) | interface Subscriber extends DebuggerOptions {
  class ReactiveEffect (line 87) | class ReactiveEffect<T = any>
    method constructor (line 116) | constructor(public fn: () => T) {
    method pause (line 122) | pause(): void {
    method resume (line 126) | resume(): void {
    method notify (line 139) | notify(): void {
    method run (line 151) | run(): T {
    method stop (line 183) | stop(): void {
    method trigger (line 195) | trigger(): void {
    method runIfDirty (line 208) | runIfDirty(): void {
    method dirty (line 214) | get dirty(): boolean {
  function batch (line 240) | function batch(sub: Subscriber, isComputed = false): void {
  function startBatch (line 254) | function startBatch(): void {
  function endBatch (line 262) | function endBatch(): void {
  function prepareDeps (line 301) | function prepareDeps(sub: Subscriber) {
  function cleanupDeps (line 313) | function cleanupDeps(sub: Subscriber) {
  function isDirty (line 342) | function isDirty(sub: Subscriber): boolean {
  function refreshComputed (line 365) | function refreshComputed(computed: ComputedRefImpl): undefined {
  function removeSub (line 421) | function removeSub(link: Link, soft = false) {
  function removeDep (line 461) | function removeDep(link: Link) {
  function effect (line 473) | function effect<T = any>(
  function stop (line 501) | function stop(runner: ReactiveEffectRunner): void {
  function pauseTracking (line 514) | function pauseTracking(): void {
  function enableTracking (line 522) | function enableTracking(): void {
  function resetTracking (line 530) | function resetTracking(): void {
  function onEffectCleanup (line 547) | function onEffectCleanup(fn: () => void, failSilently = false): void {
  function cleanupEffect (line 558) | function cleanupEffect(e: ReactiveEffect) {

FILE: packages/reactivity/src/effectScope.ts
  class EffectScope (line 6) | class EffectScope {
    method constructor (line 46) | constructor(public detached = false) {
    method active (line 56) | get active(): boolean {
    method pause (line 60) | pause(): void {
    method resume (line 78) | resume(): void {
    method run (line 95) | run<T>(fn: () => T): T | undefined {
    method on (line 114) | on(): void {
    method off (line 125) | off(): void {
    method stop (line 132) | stop(fromParent?: boolean): void {
  function effectScope (line 176) | function effectScope(detached?: boolean): EffectScope {
  function getCurrentScope (line 185) | function getCurrentScope(): EffectScope | undefined {
  function onScopeDispose (line 196) | function onScopeDispose(fn: () => void, failSilently = false): void {

FILE: packages/reactivity/src/reactive.ts
  type Target (line 18) | interface Target {
  type TargetType (line 37) | enum TargetType {
  function targetTypeMap (line 43) | function targetTypeMap(rawType: string) {
  function getTargetType (line 58) | function getTargetType(value: Target) {
  type UnwrapNestedRefs (line 65) | type UnwrapNestedRefs<T> = T extends Ref ? T : UnwrapRefSimple<T>
  type ReactiveMarker (line 69) | interface ReactiveMarker {
  type Reactive (line 73) | type Reactive<T> = UnwrapNestedRefs<T> &
  function reactive (line 93) | function reactive(target: object) {
  type ShallowReactive (line 109) | type ShallowReactive<T> = T & { [ShallowReactiveMarker]?: true }
  function shallowReactive (line 142) | function shallowReactive<T extends object>(
  type Primitive (line 154) | type Primitive = string | number | boolean | bigint | symbol | undefined...
  type Builtin (line 155) | type Builtin = Primitive | Function | Date | Error | RegExp
  type DeepReadonly (line 156) | type DeepReadonly<T> = T extends Builtin
  function readonly (line 208) | function readonly<T extends object>(
  function shallowReadonly (line 251) | function shallowReadonly<T extends object>(target: T): Readonly<T> {
  function createReactiveObject (line 261) | function createReactiveObject(
  function isReactive (line 323) | function isReactive(value: unknown): boolean {
  function isReadonly (line 342) | function isReadonly(value: unknown): boolean {
  function isShallow (line 347) | function isShallow(value: unknown): boolean {
  function isProxy (line 359) | function isProxy(value: any): boolean {
  function toRaw (line 387) | function toRaw<T>(observed: T): T {
  type Raw (line 392) | type Raw<T> = T & { [RawSymbol]?: true }
  function markRaw (line 416) | function markRaw<T extends object>(value: T): Raw<T> {

FILE: packages/reactivity/src/ref.ts
  type Ref (line 28) | interface Ref<T = any, S = T> {
  function isRef (line 47) | function isRef(r: any): r is Ref {
  function ref (line 63) | function ref(value?: unknown) {
  type ShallowRef (line 69) | type ShallowRef<T = any, S = T> = Ref<T, S> & {
  function shallowRef (line 99) | function shallowRef(value?: unknown) {
  function createRef (line 103) | function createRef(rawValue: unknown, shallow: boolean) {
  class RefImpl (line 113) | class RefImpl<T = any> {
    method constructor (line 122) | constructor(value: T, isShallow: boolean) {
    method value (line 128) | get value() {
    method value (line 141) | set value(newValue) {
  function triggerRef (line 191) | function triggerRef(ref: Ref): void {
  type MaybeRef (line 207) | type MaybeRef<T = any> =
  type MaybeRefOrGetter (line 213) | type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T)
  function unref (line 231) | function unref<T>(ref: MaybeRef<T> | ComputedRef<T>): T {
  function toValue (line 251) | function toValue<T>(source: MaybeRefOrGetter<T>): T {
  function proxyRefs (line 279) | function proxyRefs<T extends object>(
  type CustomRefFactory (line 287) | type CustomRefFactory<T> = (
  class CustomRefImpl (line 295) | class CustomRefImpl<T> {
    method constructor (line 305) | constructor(factory: CustomRefFactory<T>) {
    method value (line 312) | get value() {
    method value (line 316) | set value(newVal) {
  function customRef (line 328) | function customRef<T>(factory: CustomRefFactory<T>): Ref<T> {
  type ToRefs (line 332) | type ToRefs<T = any> = {
  function toRefs (line 345) | function toRefs<T extends object>(object: T): ToRefs<T> {
  class ObjectRefImpl (line 356) | class ObjectRefImpl<T extends object, K extends keyof T> {
    method constructor (line 363) | constructor(
    method value (line 384) | get value() {
    method value (line 392) | set value(newVal) {
    method dep (line 404) | get dep(): Dep | undefined {
  class GetterRefImpl (line 409) | class GetterRefImpl<T> {
    method constructor (line 414) | constructor(private readonly _getter: () => T) {}
    method value (line 415) | get value() {
  type ToRef (line 420) | type ToRef<T> = IfAny<T, Ref<T>, [T] extends [Ref] ? T : Ref<T>>
  function toRef (line 482) | function toRef(
  function propertyToRef (line 498) | function propertyToRef(
  type RefUnwrapBailTypes (line 519) | interface RefUnwrapBailTypes {}
  type ShallowUnwrapRef (line 521) | type ShallowUnwrapRef<T> = {
  type DistributeRef (line 525) | type DistributeRef<T> = T extends Ref<infer V, unknown> ? V : T
  type UnwrapRef (line 527) | type UnwrapRef<T> =
  type UnwrapRefSimple (line 534) | type UnwrapRefSimple<T> = T extends

FILE: packages/reactivity/src/warning.ts
  function warn (line 1) | function warn(msg: string, ...args: any[]): void {

FILE: packages/reactivity/src/watch.ts
  type WatchErrorCodes (line 31) | enum WatchErrorCodes {
  type WatchEffect (line 37) | type WatchEffect = (onCleanup: OnCleanup) => void
  type WatchSource (line 39) | type WatchSource<T = any> = Ref<T, any> | ComputedRef<T> | (() => T)
  type WatchCallback (line 41) | type WatchCallback<V = any, OV = any> = (
  type OnCleanup (line 47) | type OnCleanup = (cleanupFn: () => void) => void
  type WatchOptions (line 49) | interface WatchOptions<Immediate = boolean> extends DebuggerOptions {
  type WatchStopHandle (line 69) | type WatchStopHandle = () => void
  type WatchHandle (line 71) | interface WatchHandle extends WatchStopHandle {
  constant INITIAL_WATCHER_VALUE (line 78) | const INITIAL_WATCHER_VALUE = {}
  type WatchScheduler (line 80) | type WatchScheduler = (job: () => void, isFirstRun: boolean) => void
  function getCurrentWatcher (line 88) | function getCurrentWatcher(): ReactiveEffect<any> | undefined {
  function onWatcherCleanup (line 103) | function onWatcherCleanup(
  function watch (line 120) | function watch(
  function traverse (line 331) | function traverse(

FILE: packages/runtime-core/__tests__/apiAsyncComponent.spec.ts
  method onError (line 540) | onError(error, retry, fail) {
  method onError (line 584) | onError(error, retry, fail) {
  method onError (line 624) | onError(error, retry, fail, attempts) {
  method data (line 680) | data() {
  method data (line 729) | data() {
  method data (line 781) | data() {
  method setup (line 830) | setup() {
  method setup (line 869) | setup() {

FILE: packages/runtime-core/__tests__/apiCreateApp.spec.ts
  method setup (line 28) | setup(props) {
  method setup (line 62) | setup(props) {
  method setup (line 82) | setup() {
  method setup (line 90) | setup() {
  method setup (line 117) | setup() {
  method setup (line 157) | setup() {
  method setup (line 196) | setup() {
  method data (line 239) | data() {
  method created (line 244) | created(this: any) {
  method mounted (line 250) | mounted() {
  method data (line 256) | data() {
  method created (line 261) | created(this: any) {
  method mounted (line 267) | mounted() {
  method data (line 272) | data() {
  method created (line 277) | created(this: any) {
  method mounted (line 283) | mounted() {
  method render (line 286) | render(this: any) {
  class PluginC (line 323) | class PluginC {
    method install (line 325) | static install() {
  method setup (line 332) | setup() {
  method setup (line 401) | setup() {
  method render (line 407) | render() {
  method setup (line 428) | setup() {
  method render (line 445) | render() {
  method render (line 468) | render() {
  method render (line 490) | render() {
  method render (line 504) | render() {}
  method render (line 523) | render() {}
  method beforeCreate (line 527) | beforeCreate() {
  method render (line 544) | render() {
  method setup (line 559) | setup() {
  method setup (line 573) | setup() {
  method render (line 578) | render() {
  method setup (line 595) | setup() {
  method render (line 601) | render() {
  method setup (line 623) | setup(props) {
  method setup (line 664) | setup() {
  method setup (line 671) | setup() {

FILE: packages/runtime-core/__tests__/apiExpose.spec.ts
  method render (line 7) | render() {}
  method setup (line 8) | setup(_, { expose }) {
  method setup (line 22) | setup() {
  method render (line 36) | render() {}
  method data (line 37) | data() {
  method setup (line 42) | setup() {
  method setup (line 53) | setup() {
  method render (line 67) | render() {}
  method data (line 69) | data() {
  method setup (line 74) | setup(_, { expose }) {
  method setup (line 87) | setup() {
  method render (line 101) | render() {}
  method data (line 103) | data() {
  method setup (line 112) | setup() {
  method render (line 124) | render() {}
  method setup (line 126) | setup(_, { expose }) {
  method setup (line 135) | setup() {
  method render (line 147) | render() {
  method setup (line 157) | setup(_, { expose }) {
  method render (line 165) | render() {
  method setup (line 175) | setup(_, { expose }) {
  method render (line 183) | render() {
  method render (line 195) | render() {
  method render (line 202) | render() {
  method setup (line 205) | setup(_, { expose }) {
  method setup (line 215) | setup() {
  method setup (line 231) | setup(_, { expose }) {
  method setup (line 244) | setup(_, { expose }) {
  method setup (line 257) | setup(_, { expose }) {

FILE: packages/runtime-core/__tests__/apiInject.spec.ts
  method setup (line 20) | setup() {
  method setup (line 31) | setup() {
  method setup (line 47) | setup() {
  method setup (line 58) | setup() {
  method setup (line 71) | setup() {
  method setup (line 82) | setup() {
  method setup (line 98) | setup() {
  method default (line 108) | default() {
  method render (line 113) | render() {
  method setup (line 125) | setup() {
  method setup (line 133) | setup() {
  method setup (line 142) | setup() {
  method setup (line 159) | setup() {
  method setup (line 170) | setup() {
  method setup (line 189) | setup() {
  method setup (line 200) | setup() {
  method setup (line 226) | setup() {
  method setup (line 237) | setup() {
  method setup (line 256) | setup() {
  method setup (line 267) | setup() {
  method setup (line 290) | setup() {
  method setup (line 300) | setup() {
  method setup (line 315) | setup() {
  method setup (line 325) | setup() {
  method setup (line 339) | setup() {
  method setup (line 359) | setup() {
  method setup (line 390) | setup() {
  method setup (line 404) | setup() {

FILE: packages/runtime-core/__tests__/apiLifecycle.spec.ts
  method setup (line 36) | setup() {
  method setup (line 55) | setup() {
  method setup (line 73) | setup() {
  method setup (line 97) | setup() {
  method setup (line 124) | setup() {
  method setup (line 145) | setup() {
  method setup (line 151) | setup() {
  method setup (line 173) | setup() {
  method setup (line 179) | setup() {
  method setup (line 201) | setup() {
  method setup (line 207) | setup() {
  method setup (line 228) | setup() {
  method setup (line 241) | setup(props: any) {
  method setup (line 254) | setup(props: any) {
  method setup (line 312) | setup() {
  method setup (line 351) | setup() {
  method setup (line 392) | setup() {
  method setup (line 397) | setup() {
  method setup (line 416) | setup() {
  method setup (line 425) | setup() {
  method setup (line 443) | setup() {
  method setup (line 454) | setup() {

FILE: packages/runtime-core/__tests__/apiOptions.spec.ts
  method data (line 24) | data() {
  method render (line 29) | render() {
  method data (line 52) | data() {
  method bar (line 58) | bar(): number {
  method render (line 63) | render() {
  method data (line 86) | data() {
  method inc (line 94) | inc() {
  method incBy (line 97) | incBy(n = 0) {
  method render (line 101) | render() {
  method foo (line 128) | foo() {
  method render (line 132) | render() {
  function returnThis (line 144) | function returnThis(this: any) {
  method data (line 155) | data() {
  method render (line 186) | render() {
  function assertCall (line 193) | function assertCall(spy: Mock, callIndex: number, args: any[]) {
  function returnThis (line 226) | function returnThis(this: any) {
  method data (line 235) | data() {
  method render (line 259) | render() {
  function assertCall (line 266) | function assertCall(spy: Mock, callIndex: number, args: any[]) {
  method data (line 291) | data() {
  method handler (line 298) | handler(this: any, to: any) {
  method data (line 306) | data() {
  method setMixinB (line 315) | setMixinB(this: any, to: any) {
  method render (line 323) | render() {}
  method obj (line 330) | obj(this: any, to: any) {
  method mounted (line 334) | mounted() {
  method data (line 352) | data() {
  method provide (line 357) | provide() {
  method render (line 363) | render() {
  method render (line 382) | render() {
  method provide (line 439) | provide() {
  method render (line 449) | render(this: any) {
  method data (line 465) | data() {
  method provide (line 470) | provide() {
  method render (line 479) | render() {
  method render (line 486) | render() {
  method beforeCreate (line 499) | beforeCreate() {
  method created (line 502) | created() {
  method beforeMount (line 505) | beforeMount() {
  method mounted (line 508) | mounted() {
  method beforeUpdate (line 511) | beforeUpdate() {
  method updated (line 514) | updated() {
  method beforeUnmount (line 517) | beforeUnmount() {
  method unmounted (line 520) | unmounted() {
  method render (line 523) | render() {
  method beforeCreate (line 529) | beforeCreate() {
  method created (line 532) | created() {
  method beforeMount (line 535) | beforeMount() {
  method mounted (line 538) | mounted() {
  method beforeUpdate (line 541) | beforeUpdate() {
  method updated (line 544) | updated() {
  method beforeUnmount (line 547) | beforeUnmount() {
  method unmounted (line 550) | unmounted() {
  method render (line 553) | render(this: any) {
  method beforeCreate (line 559) | beforeCreate() {
  method created (line 562) | created() {
  method beforeMount (line 565) | beforeMount() {
  method mounted (line 568) | mounted() {
  method beforeUpdate (line 571) | beforeUpdate() {
  method updated (line 574) | updated() {
  method beforeUnmount (line 577) | beforeUnmount() {
  method unmounted (line 580) | unmounted() {
  method render (line 583) | render(this: any) {
  method data (line 636) | data() {
  method created (line 641) | created(this: any) {
  method mounted (line 647) | mounted() {
  method data (line 657) | data() {
  method created (line 662) | created(this: any) {
  method mounted (line 670) | mounted() {
  method data (line 676) | data() {
  method created (line 681) | created() {
  method mounted (line 687) | mounted() {
  method data (line 696) | data() {
  method created (line 702) | created() {
  method mounted (line 711) | mounted() {
  method render (line 714) | render() {
  method beforeCreate (line 745) | beforeCreate() {
  method created (line 748) | created() {
  method beforeCreate (line 755) | beforeCreate() {
  method created (line 758) | created() {
  method beforeCreate (line 766) | beforeCreate() {
  method created (line 769) | created() {
  method data (line 787) | data() {}
  method data (line 790) | data() {}
  method data (line 795) | data() {}
  method beforeCreate (line 803) | beforeCreate() {
  method created (line 806) | created() {
  method beforeCreate (line 813) | beforeCreate() {
  method created (line 816) | created() {
  method beforeCreate (line 824) | beforeCreate() {
  method created (line 827) | created() {
  method data (line 846) | data() {
  method sayA (line 853) | sayA() {}
  method mounted (line 855) | mounted(this: any) {
  method data (line 863) | data() {
  method mounted (line 868) | mounted() {
  method render (line 871) | render() {
  method data (line 883) | data() {
  method sayA (line 890) | sayA() {}
  method mounted (line 892) | mounted(this: any) {
  method data (line 900) | data() {
  method mounted (line 906) | mounted(this: any) {
  method data (line 916) | data() {
  method mounted (line 921) | mounted() {
  method render (line 924) | render() {
  method beforeCreate (line 936) | beforeCreate() {
  method created (line 939) | created() {
  method beforeCreate (line 945) | beforeCreate() {
  method created (line 948) | created() {
  method beforeCreate (line 954) | beforeCreate() {
  method created (line 957) | created() {
  method beforeCreate (line 963) | beforeCreate() {
  method created (line 966) | created() {
  method beforeCreate (line 974) | beforeCreate() {
  method created (line 977) | created() {
  method render (line 980) | render() {}
  method render (line 1014) | render() {
  method render (line 1046) | render() {
  method setup (line 1056) | setup() {
  method data (line 1061) | data() {
  method plusTwo (line 1067) | plusTwo(): number {
  method inc (line 1072) | inc() {
  method render (line 1076) | render() {
  method data (line 1098) | data() {
  method data (line 1114) | data() {
  method render (line 1125) | render() {}
  method created (line 1126) | created() {
  method render (line 1145) | render() {
  method render (line 1151) | render() {
  method render (line 1160) | render() {
  method render (line 1173) | render() {
  method render (line 1180) | render() {
  method data (line 1193) | data() {
  method data (line 1199) | data() {
  method created (line 1205) | created() {
  method created (line 1224) | created() {
  method provide (line 1249) | provide() {
  method created (line 1254) | created() {
  method mounted (line 1264) | mounted() {}
  method beforeUnmount (line 1265) | beforeUnmount() {}
  method unmounted (line 1266) | unmounted() {}
  method mounted (line 1270) | mounted() {}
  method beforeUnmount (line 1271) | beforeUnmount() {}
  method unmounted (line 1272) | unmounted() {}
  method created (line 1273) | created() {
  method created (line 1302) | created() {
  method fn1 (line 1315) | fn1() {}
  method fn2 (line 1321) | fn2() {}
  method created (line 1323) | created() {
  method c1 (line 1334) | c1() {}
  method c2 (line 1340) | c2() {}
  method created (line 1342) | created() {
  method data (line 1354) | data() {
  method beforeCreate (line 1357) | beforeCreate(this: any) {
  method render (line 1367) | render(this: any) {
  method render (line 1389) | render() {}
  method render (line 1406) | render() {}
  method set (line 1420) | set() {}
  method render (line 1423) | render() {}
  method get (line 1436) | get() {}
  method mounted (line 1439) | mounted() {
  method render (line 1442) | render() {}
  method data (line 1455) | data() {
  method provide (line 1460) | provide() {
  method render (line 1465) | render() {
  method render (line 1472) | render() {
  method render (line 1489) | render() {}
  method foo (line 1506) | foo() {}
  method render (line 1508) | render() {}
  method data (line 1520) | data() {
  method provide (line 1525) | provide() {
  method render (line 1530) | render() {
  method render (line 1539) | render() {
  method render (line 1557) | render() {}
  method data (line 1569) | data() {
  method provide (line 1574) | provide() {
  method render (line 1579) | render() {
  method data (line 1584) | data() {
  method render (line 1590) | render() {
  method foo (line 1608) | foo() {}
  method render (line 1610) | render() {}
  method foo (line 1624) | foo() {}
  method render (line 1626) | render() {}
  method data (line 1638) | data() {
  method provide (line 1643) | provide() {
  method render (line 1648) | render() {
  method get (line 1655) | get() {}
  method set (line 1656) | set() {}
  method render (line 1660) | render() {
  method foo (line 1675) | foo() {}
  method foo (line 1678) | foo() {}
  method render (line 1680) | render() {}
  method foo (line 1696) | foo() {}
  method render (line 1698) | render() {}

FILE: packages/runtime-core/__tests__/apiSetupContext.spec.ts
  method setup (line 18) | setup() {
  method render (line 28) | render() {
  method setup (line 37) | setup() {
  method setup (line 56) | setup(props) {
  method setup (line 88) | setup(props: any, { attrs }: any) {
  method render (line 112) | render(this: any) {
  method setup (line 119) | setup(_: any, { attrs }: any) {
  method setup (line 153) | setup(props: any, { slots }: any) {
  method setup (line 190) | setup(props, { emit }) {

FILE: packages/runtime-core/__tests__/apiSetupHelpers.spec.ts
  method setup (line 50) | setup() {
  method setup (line 72) | setup(_, _ctx) {
  method setup (line 213) | async setup() {
  method setup (line 257) | async setup() {
  method setup (line 296) | async setup() {
  method setup (line 341) | async setup() {
  function doAsyncWork (line 393) | async function doAsyncWork() {
  method setup (line 402) | async setup() {
  method setup (line 445) | async setup() {
  method render (line 454) | render() {}
  method setup (line 479) | async setup(props: { name: 'one' | 'two' }) {
  method setup (line 516) | async setup() {

FILE: packages/runtime-core/__tests__/apiWatch.spec.ts
  class foo (line 235) | class foo {
  method created (line 387) | created() {
  method render (line 394) | render() {
  method setup (line 397) | setup() {
  method setup (line 526) | setup() {
  method setup (line 556) | setup() {
  method setup (line 585) | setup() {
  method setup (line 624) | setup() {
  method setup (line 671) | setup() {
  method setup (line 696) | setup() {
  method render (line 699) | render() {}
  method render (line 702) | render() {
  method setup (line 718) | setup() {
  method render (line 721) | render() {}
  method render (line 724) | render() {
  method render (line 741) | render() {
  method setup (line 746) | setup() {
  method render (line 749) | render() {}
  method render (line 752) | render() {
  method setup (line 771) | setup() {
  method setup (line 788) | setup() {
  method render (line 805) | render() {
  method setup (line 836) | setup(props: any) {
  method render (line 862) | render() {
  method render (line 884) | render() {}
  method setup (line 885) | setup() {
  method setup (line 912) | setup() {
  method mounted (line 1302) | mounted() {
  method unmounted (line 1305) | unmounted() {}
  method setup (line 1309) | setup() {
  method render (line 1315) | render() {
  method mounted (line 1322) | mounted() {
  method render (line 1352) | render() {}
  method created (line 1353) | created(this: any) {
  method render (line 1370) | render() {}
  method setup (line 1371) | setup() {
  method a (line 1392) | a() {
  method render (line 1396) | render() {
  method render (line 1402) | render() {
  method render (line 1423) | render() {}
  method data (line 1424) | data() {
  method created (line 1434) | created(this: any) {
  method mounted (line 1437) | mounted(this: any) {
  method setup (line 1477) | setup() {
  method setup (line 1500) | setup() {
  method setup (line 1840) | setup() {
  method setup (line 1936) | setup() {
  method setup (line 1961) | setup(_, { slots }) {
  method render (line 2044) | render() {}
  method created (line 2045) | created(this: any) {
  method render (line 2055) | render() {

FILE: packages/runtime-core/__tests__/component.spec.ts
  method setup (line 14) | setup() {
  method setup (line 31) | setup() {
  method setup (line 46) | setup() {
  method setup (line 60) | setup() {
  method render (line 69) | render() {
  method setup (line 105) | setup() {
  method setup (line 122) | setup() {
  method render (line 129) | render() {

FILE: packages/runtime-core/__tests__/componentEmits.spec.ts
  method render (line 19) | render() {}
  method created (line 20) | created() {
  method render (line 42) | render() {}
  method created (line 43) | created() {
  method render (line 60) | render() {}
  method created (line 61) | created() {
  method render (line 79) | render() {}
  method created (line 80) | created() {
  method render (line 106) | render() {}
  method created (line 107) | created() {
  method setup (line 128) | setup(_, { emit }) {
  method setup (line 138) | setup() {
  method render (line 156) | render() {}
  method created (line 157) | created() {
  method render (line 173) | render() {}
  method created (line 174) | created() {
  method render (line 189) | render() {}
  method created (line 190) | created() {
  method render (line 205) | render() {}
  method created (line 206) | created() {
  method render (line 222) | render() {}
  method created (line 223) | created() {
  method render (line 239) | render() {}
  method created (line 240) | created() {
  method render (line 252) | render() {}
  method created (line 253) | created() {
  method render (line 265) | render() {}
  method created (line 270) | created() {
  method render (line 292) | render() {}
  method created (line 296) | created() {
  method render (line 316) | render() {}
  method created (line 317) | created() {
  method render (line 347) | render() {}
  method created (line 348) | created() {
  method render (line 378) | render() {}
  method created (line 379) | created() {
  method render (line 401) | render() {}
  method created (line 402) | created() {
  method render (line 432) | render() {}
  method created (line 433) | created() {
  method render (line 455) | render() {}
  method created (line 456) | created() {
  method render (line 486) | render() {}
  method created (line 487) | created() {
  method beforeUnmount (line 531) | async beforeUnmount() {
  method render (line 535) | render() {
  method created (line 619) | created(this) {
  method render (line 626) | render() {

FILE: packages/runtime-core/__tests__/componentProps.spec.ts
  method render (line 33) | render() {
  method setup (line 73) | setup(_props, { attrs: _attrs }) {
  method render (line 148) | render() {
  method render (line 187) | render() {
  method setup (line 232) | setup(props) {
  method setup (line 240) | setup() {
  method setup (line 261) | setup() {
  method setup (line 342) | setup() {
  method setup (line 365) | setup(props: any) {
  method setup (line 393) | setup() {
  class MyClass (line 404) | class MyClass {}
  method setup (line 417) | setup() {
  method setup (line 470) | setup() {
  method setup (line 500) | setup(props: any) {
  method render (line 503) | render(this: any) {
  method setup (line 537) | setup(props: any) {
  method render (line 540) | render(this: any) {
  method render (line 580) | render(this: any) {
  method render (line 587) | render(this: any) {
  method render (line 615) | render(this: any) {
  method render (line 630) | render(this: any) {
  method render (line 636) | render() {
  method render (line 660) | render(this: any) {
  method setup (line 687) | setup(props: any) {
  method render (line 722) | render() {}
  method setup (line 726) | setup(props: any) {
  method setup (line 746) | setup(props: any, { slots }: SetupContext) {
  method setup (line 768) | setup(props: { foo: boolean }) {
  method setup (line 779) | setup() {
  method render (line 795) | render() {}
  method render (line 810) | render(this: any) {
  method render (line 838) | render() {}
  method render (line 855) | render() {}
  function eventHandler (line 870) | function eventHandler() {}
  method setup (line 874) | setup(_props) {
  method setup (line 883) | setup() {

FILE: packages/runtime-core/__tests__/componentPublicInstance.spec.ts
  method data (line 20) | data() {
  method mounted (line 25) | mounted() {
  method render (line 29) | render() {
  method setup (line 43) | setup() {
  method mounted (line 48) | mounted() {
  method render (line 52) | render() {
  method setup (line 65) | setup() {
  method mounted (line 68) | mounted() {
  method setup (line 80) | setup() {
  method mounted (line 83) | mounted() {
  method setup (line 114) | setup() {
  method mounted (line 117) | mounted() {
  method setup (line 137) | setup() {
  method mounted (line 140) | mounted() {
  method render (line 163) | render() {}
  method data (line 167) | data() {
  method setup (line 181) | setup() {
  method mounted (line 190) | mounted() {
  method render (line 253) | render() {}
  method setup (line 254) | setup() {
  method mounted (line 259) | mounted() {
  method get (line 277) | get() {
  method get (line 285) | get() {
  method render (line 297) | render() {}
  method setup (line 298) | setup() {
  method mounted (line 305) | mounted() {
  method get (line 321) | get() {
  method render (line 354) | render() {}
  method setup (line 355) | setup() {
  method mounted (line 360) | mounted() {
  method data (line 391) | data() {
  method greet (line 395) | greet() {
  method render (line 399) | render() {}
  method setup (line 400) | setup() {
  method mounted (line 405) | mounted() {
  method get (line 419) | get() {
  method get (line 435) | get() {
  method get (line 444) | get() {
  method get (line 453) | get() {
  method render (line 464) | render(this: any) {
  method render (line 476) | render() {
  method render (line 496) | render() {}
  method setup (line 497) | setup() {
  method mounted (line 503) | mounted() {

FILE: packages/runtime-core/__tests__/componentSlots.spec.ts
  function renderWithSlots (line 16) | function renderWithSlots(slots: any): any {
  method render (line 32) | render() {
  method render (line 49) | render() {
  method render (line 98) | render() {
  method setup (line 134) | setup() {
  method setup (line 185) | setup() {
  method setup (line 221) | setup() {
  method setup (line 252) | setup() {
  method setup (line 294) | setup() {
  method setup (line 327) | setup(_: any, { slots }: any) {
  method setup (line 334) | setup() {
  method setup (line 341) | setup() {
  method setup (line 355) | setup(_: any, { slots }: any) {
  method setup (line 362) | setup() {
  method setup (line 375) | setup(_: any, { slots }: any) {
  method setup (line 383) | setup() {
  method setup (line 390) | setup() {
  method setup (line 404) | setup(_: any, { slots }: any) {
  method setup (line 412) | setup() {
  method setup (line 426) | setup(_: any, { slots }: any) {
  method setup (line 435) | setup() {
  method setup (line 449) | setup(_: any, { slots }: any) {
  method setup (line 455) | setup() {

FILE: packages/runtime-core/__tests__/components/BaseTransition.spec.ts
  function mount (line 16) | function mount(
  function mockProps (line 38) | function mockProps(
  function assertCalls (line 80) | function assertCalls(
  function assertCalledWithEl (line 91) | function assertCalledWithEl(fn: any, expected: string, callIndex = 0) {
  type ToggleOptions (line 95) | interface ToggleOptions {
  type TestFn (line 102) | type TestFn = (o: ToggleOptions, withKeepAlive?: boolean) => void
  function runTestWithElements (line 104) | function runTestWithElements(tester: TestFn) {
  function runTestWithComponents (line 113) | function runTestWithComponents(tester: TestFn) {
  function runTestWithKeepAlive (line 126) | function runTestWithKeepAlive(tester: TestFn) {
  function mockPersistedHooks (line 189) | function mockPersistedHooks() {
  function testToggleOnOff (line 260) | async function testToggleOnOff(
  function testToggleOnOffBeforeFinish (line 352) | async function testToggleOnOffBeforeFinish({
  function testToggleBranches (line 433) | async function testToggleBranches(
  function testToggleBranchesBeforeFinish (line 539) | async function testToggleBranchesBeforeFinish(
  function testOutIn (line 672) | async function testOutIn(
  function testOutIn (line 778) | async function testOutIn(
  function testOutInBeforeFinish (line 859) | async function testOutInBeforeFinish(
  function testOutInDoubleToggle (line 931) | async function testOutInDoubleToggle(
  function testInOut (line 1009) | async function testInOut(
  function testInOutBeforeFinish (line 1113) | async function testInOutBeforeFinish(
  function testOutIn (line 1208) | async function testOutIn({ trueBranch, falseBranch }: ToggleOptions) {

FILE: packages/runtime-core/__tests__/components/KeepAlive.spec.ts
  method render (line 44) | render(this: any) {
  method render (line 56) | render(this: any) {
  method render (line 68) | render(this: any) {
  function assertHookCalls (line 84) | function assertHookCalls(component: any, callCounts: number[]) {
  method render (line 98) | render() {
  method render (line 121) | render() {
  method render (line 162) | render() {
  method render (line 205) | render() {
  method render (line 239) | render(this: any) {
  method render (line 247) | render(this: any) {
  method render (line 254) | render() {
  method render (line 270) | render() {
  function assertNameMatch (line 344) | async function assertNameMatch(props: KeepAliveProps) {
  function assertNameMatchWithFlag (line 386) | async function assertNameMatchWithFlag(props: KeepAliveProps) {
  function assertNameMatchWithFlagExclude (line 447) | async function assertNameMatchWithFlagExclude(props: KeepAliveProps) {
  function assertCount (line 559) | function assertCount(calls: number[]) {
  method render (line 602) | render() {
  function setup (line 633) | function setup() {
  function setupExclude (line 651) | function setupExclude() {
  function assertAnonymous (line 753) | async function assertAnonymous(include: boolean) {
  method render (line 821) | render() {
  method setup (line 847) | setup() {
  method render (line 871) | render() {
  method render (line 877) | render() {
  method setup (line 886) | setup(_, { slots }) {
  method setup (line 915) | setup() {
  method render (line 928) | render() {
  method render (line 1008) | render() {
  method setup (line 1035) | setup() {
  method setup (line 1041) | setup() {
  method render (line 1046) | render() {}
  method setup (line 1067) | setup() {
  method setup (line 1077) | setup() {
  method setup (line 1087) | setup() {
  method render (line 1129) | render() {
  method setup (line 1139) | setup() {
  method setup (line 1152) | setup() {
  method render (line 1204) | render() {

FILE: packages/runtime-core/__tests__/components/Suspense.spec.ts
  function defineAsyncComponent (line 43) | function defineAsyncComponent<T extends ComponentOptions>(
  method setup (line 63) | setup(_: any, { slots }: any) {
  method render (line 76) | render() {
  method setup (line 82) | setup() {
  method render (line 102) | render() {
  method setup (line 113) | setup() {
  method setup (line 168) | setup() {
  method setup (line 178) | setup() {
  method setup (line 189) | setup() {
  method render (line 216) | render() {
  method setup (line 224) | setup() {
  method setup (line 256) | async setup() {
  method setup (line 292) | setup() {
  method setup (line 331) | async setup() {
  method setup (line 342) | setup() {
  method setup (line 355) | setup() {
  method setup (line 378) | setup(props: any) {
  method setup (line 386) | setup() {
  method setup (line 418) | async setup() {
  method setup (line 453) | setup() {
  method setup (line 485) | setup() {
  method setup (line 492) | setup() {
  method setup (line 524) | setup() {
  method setup (line 532) | setup() {
  method setup (line 567) | async setup() {
  method setup (line 579) | setup(props) {
  method setup (line 585) | setup() {
  method setup (line 633) | setup() {
  method setup (line 643) | setup() {
  method setup (line 699) | setup() {
  method setup (line 709) | setup() {
  method setup (line 737) | async setup() {
  method setup (line 743) | setup() {
  method setup (line 775) | async setup() {
  method setup (line 793) | setup() {
  method setup (line 821) | setup(props: any) {
  method setup (line 836) | setup(props: any) {
  method setup (line 848) | setup(props: any) {
  method setup (line 859) | setup(props: any) {
  method setup (line 870) | setup() {
  method setup (line 879) | setup() {
  method setup (line 949) | setup() {
  method setup (line 962) | setup() {
  method setup (line 977) | setup() {
  method setup (line 991) | setup() {
  method setup (line 1105) | setup() {
  method setup (line 1191) | setup() {
  method setup (line 1220) | setup() {
  method setup (line 1261) | setup() {
  method setup (line 1281) | setup() {
  method setup (line 1328) | setup() {
  method setup (line 1347) | setup() {
  method setup (line 1389) | setup() {
  method setup (line 1408) | setup() {
  method setup (line 1453) | setup() {
  method setup (line 1466) | setup() {
  method setup (line 1521) | setup() {
  method setup (line 1543) | async setup() {
  method setup (line 1549) | setup() {
  method setup (line 1574) | async setup() {
  method setup (line 1579) | setup() {
  method setup (line 1663) | setup() {
  method setup (line 1797) | setup() {
  method setup (line 1928) | setup() {
  method render (line 1995) | render() {
  method render (line 2000) | render() {
  method render (line 2008) | render() {
  method render (line 2046) | render() {
  method render (line 2051) | render() {
  method render (line 2059) | render() {
  method render (line 2102) | render() {
  method render (line 2107) | render() {
  method render (line 2134) | render() {
  method render (line 2140) | render() {
  method render (line 2147) | render() {
  method setup (line 2173) | async setup(props: any) {
  method setup (line 2186) | setup() {
  method setup (line 2208) | setup(props: any) {
  method setup (line 2216) | setup() {
  method setup (line 2248) | setup() {
  method setup (line 2254) | setup() {
  method render (line 2275) | render(this: any) {
  method setup (line 2293) | setup() {
  function baseCheckWarn (line 2319) | function baseCheckWarn(
  method render (line 2391) | render(ctx: any) {
  method setup (line 2403) | setup() {
  method render (line 2443) | render(ctx: any) {
  method setup (line 2454) | setup(props: any) {
  method render (line 2475) | render(ctx: any) {
  method render (line 2481) | render(ctx: any) {
  method setup (line 2488) | setup() {
  method render (line 2536) | render() {
  method render (line 2541) | render() {
  method setup (line 2552) | setup() {

FILE: packages/runtime-core/__tests__/components/Teleport.spec.ts
  method render (line 52) | render() {
  method setup (line 84) | setup() {
  method setup (line 114) | setup(props: any) {
  method setup (line 119) | setup() {
  method render (line 125) | render() {
  method setup (line 164) | setup(props: any) {
  method setup (line 172) | setup() {
  method render (line 176) | render() {
  function runSharedTests (line 206) | function runSharedTests(deferMode: boolean) {
  method setup (line 925) | setup() {
  method render (line 948) | render() {

FILE: packages/runtime-core/__tests__/directives.spec.ts
  function assertBindings (line 22) | function assertBindings(binding: DirectiveBinding) {
  method setup (line 118) | setup() {
  method render (line 121) | render() {
  function assertBindings (line 157) | function assertBindings(binding: DirectiveBinding) {
  method setup (line 178) | setup() {
  method render (line 181) | render() {
  function assertBindings (line 211) | function assertBindings(binding: DirectiveBinding) {
  method setup (line 314) | setup() {
  method render (line 317) | render() {
  method render (line 357) | render() {
  method render (line 364) | render() {
  method render (line 381) | render() {
  method setup (line 406) | setup(_, { expose }) {
  method render (line 434) | render() {

FILE: packages/runtime-core/__tests__/errorHandling.spec.ts
  method setup (line 24) | setup() {
  method setup (line 34) | setup() {
  method setup (line 43) | setup() {
  method setup (line 62) | setup() {
  method setup (line 72) | setup() {
  method setup (line 82) | setup() {
  method setup (line 100) | setup() {
  method setup (line 110) | setup() {
  method render (line 115) | render() {}
  method setup (line 130) | setup() {
  method setup (line 140) | setup() {
  method setup (line 149) | setup() {
  method setup (line 168) | setup() {
  method setup (line 178) | setup() {
  method render (line 181) | render() {}
  method setup (line 195) | setup() {
  method created (line 205) | created() {
  method render (line 208) | render() {}
  method beforeCreate (line 212) | beforeCreate() {
  method render (line 215) | render() {}
  method setup (line 228) | setup() {
  method setup (line 238) | setup() {
  method setup (line 257) | setup() {
  method setup (line 277) | setup() {
  method setup (line 287) | setup() {
  method setup (line 304) | setup() {
  method setup (line 314) | setup() {
  method setup (line 334) | setup() {
  method setup (line 345) | setup() {
  method setup (line 369) | setup() {
  method setup (line 379) | setup() {
  method setup (line 402) | setup() {
  method setup (line 417) | setup(props: any, { emit }: any) {
  method setup (line 432) | setup() {
  method setup (line 448) | setup(props: any, { emit }: any) {
  method setup (line 470) | setup() {
  method setup (line 486) | setup(props: any, { emit }: any) {
  method setup (line 512) | setup() {
  method setup (line 521) | setup() {
  method render (line 524) | render() {}
  method setup (line 552) | setup() {
  method render (line 575) | render() {}
  method setup (line 600) | setup() {
  method render (line 619) | render() {
  method get (line 629) | get() {
  method setup (line 655) | setup() {
  method setup (line 680) | setup() {
  method setup (line 690) | setup() {

FILE: packages/runtime-core/__tests__/helpers/resolveAssets.spec.ts
  method setup (line 37) | setup() {
  method setup (line 81) | setup() {
  method setup (line 114) | setup() {
  method render (line 138) | render(this: any) {
  method setup (line 145) | setup() {
  method setup (line 170) | setup() {
  method setup (line 213) | setup() {

FILE: packages/runtime-core/__tests__/helpers/useId.spec.ts
  type FactoryRes (line 16) | type FactoryRes = [App, Promise<any>[]]
  type TestCaseFactory (line 17) | type TestCaseFactory = () => FactoryRes | Promise<FactoryRes>
  function runOnClient (line 19) | async function runOnClient(factory: TestCaseFactory) {
  function runOnServer (line 28) | async function runOnServer(factory: TestCaseFactory) {
  function getOutput (line 35) | async function getOutput(factory: TestCaseFactory) {
  function promiseWithDelay (line 42) | function promiseWithDelay(res: any, delay: number) {
  method setup (line 49) | setup() {
  method setup (line 86) | setup() {
  method serverPrefetch (line 113) | async serverPrefetch() {
  method render (line 116) | render() {
  method serverPrefetch (line 122) | async serverPrefetch() {
  method render (line 125) | render() {
  method setup (line 131) | setup() {
  method setup (line 152) | setup() {
  method render (line 159) | render() {
  method setup (line 165) | setup() {
  method setup (line 192) | async setup() {
  method render (line 196) | render() {
  method setup (line 202) | async setup() {
  method render (line 206) | render() {
  method setup (line 212) | setup() {
  method setup (line 239) | async setup() {
  method setup (line 246) | async setup() {
  method setup (line 253) | async setup() {
  method setup (line 259) | setup() {
  method setup (line 289) | async setup() {
  method render (line 293) | render() {
  method setup (line 299) | setup() {

FILE: packages/runtime-core/__tests__/helpers/useModel.spec.ts
  method setup (line 33) | setup(props) {
  method setup (line 90) | setup(props) {
  method setup (line 126) | setup(props) {
  method setup (line 158) | setup(props) {
  method setup (line 197) | setup(props) {
  method setup (line 239) | setup(props) {
  method setup (line 274) | setup(props) {
  method setup (line 284) | setup() {
  method setup (line 332) | setup(props) {
  method setup (line 343) | setup() {
  method render (line 394) | render(this: any) {
  method setup (line 404) | setup(props) {
  method render (line 428) | render() {
  method setup (line 472) | setup(props) {
  method setup (line 492) | setup() {
  method setup (line 542) | setup(props) {
  method setup (line 570) | setup() {
  method setup (line 623) | setup(props) {
  method setup (line 635) | setup() {
  method setup (line 669) | setup(props) {
  method setup (line 684) | setup() {
  method setup (line 712) | setup(props) {
  method setup (line 732) | setup() {

FILE: packages/runtime-core/__tests__/helpers/useTemplateRef.spec.ts
  method setup (line 17) | setup() {
  method render (line 20) | render() {
  method setup (line 33) | setup() {
  method render (line 36) | render() {
  method setup (line 54) | setup() {
  method render (line 58) | render() {
  method setup (line 93) | setup() {
  method render (line 99) | render() {
  method setup (line 114) | setup() {
  method setup (line 130) | setup() {
  method render (line 133) | render() {
  method setup (line 156) | setup() {
  method render (line 159) | render() {
  method setup (line 199) | setup() {
  method render (line 205) | render() {
  method setup (line 227) | setup() {
  method setup (line 243) | setup() {
  method setup (line 262) | setup() {
  method render (line 270) | render() {
  method setup (line 285) | setup() {
  method render (line 290) | render() {
  method setup (line 310) | setup() {
  method render (line 313) | render() {
  method setup (line 342) | setup() {
  method render (line 345) | render() {

FILE: packages/runtime-core/__tests__/helpers/withMemo.spec.ts
  function mount (line 10) | function mount(options: ComponentOptions): [HTMLElement, any] {

FILE: packages/runtime-core/__tests__/hmr.spec.ts
  function compileToFunction (line 23) | function compileToFunction(template: string) {
  method data (line 60) | data() {
  method data (line 128) | data() {
  method data (line 145) | data() {
  method data (line 168) | data() {
  method data (line 178) | data() {
  method data (line 192) | data() {
  method data (line 236) | data() {
  method data (line 246) | data() {
  method data (line 262) | data() {
  method data (line 308) | data() {
  method data (line 318) | data() {
  method onLeave (line 323) | onLeave(_, done) {
  method data (line 341) | data() {
  class Child (line 384) | class Child {
    method data (line 387) | data() {
  class UpdatedChild (line 403) | class UpdatedChild {
    method data (line 406) | data() {
  method data (line 430) | data() {
  method setup (line 440) | setup() {
  method data (line 461) | data() {
  method data (line 486) | data() {
  method data (line 622) | data() {
  method render (line 685) | render() {
  method render (line 706) | render() {
  method slotContent (line 758) | slotContent() {
  method data (line 822) | data() {
  method data (line 844) | data() {
  method setup (line 859) | async setup() {
  method setup (line 889) | async setup() {
  method setup (line 902) | setup() {
  method setup (line 929) | setup() {
  method setup (line 940) | setup() {
  method render (line 954) | render() {
  method render (line 963) | render() {
  method render (line 1001) | render() {
  method render (line 1007) | render() {
  method render (line 1025) | render() {
  method render (line 1031) | render() {
  method data (line 1050) | data() {

FILE: packages/runtime-core/__tests__/hydration.spec.ts
  function mountWithHydration (line 43) | function mountWithHydration(html: string, render: () => any) {
  method render (line 476) | render() {
  method setup (line 538) | setup() {
  method setup (line 595) | setup() {
  method setup (line 655) | setup() {
  method setup (line 707) | setup() {
  method setup (line 717) | setup() {
  method setup (line 765) | setup() {
  method data (line 819) | data() {
  method mounted (line 828) | mounted() {
  method setup (line 844) | setup() {
  method mounted (line 847) | mounted() {
  method setup (line 909) | setup() {
  method setup (line 936) | setup() {
  method setup (line 963) | async setup() {
  method setup (line 995) | setup() {
  method onResolve (line 1016) | onResolve() {
  method setup (line 1042) | async setup(props) {
  method render (line 1139) | render() {
  method render (line 1180) | render() {
  method setup (line 1194) | setup() {
  method render (line 1243) | render(this: any) {
  method setup (line 1259) | setup() {
  method setup (line 1306) | async setup() {
  method render (line 1313) | render() {
  method setup (line 1319) | setup() {
  method setup (line 1326) | setup() {
  method setup (line 1378) | async setup() {
  method setup (line 1388) | setup() {
  method setup (line 1395) | setup() {
  method render (line 1458) | render() {
  method setup (line 1476) | setup(_, { slots }) {
  method render (line 1498) | render(this: any) {
  method setup (line 1509) | setup() {
  method render (line 1519) | render() {
  method render (line 1561) | render() {
  class MyElement (line 1653) | class MyElement extends HTMLElement {
    method constructor (line 1655) | constructor() {
  method render (line 1692) | render(this: any) {
  method render (line 1712) | render(this: any) {
  method render (line 1730) | render(this: any) {
  method setup (line 1760) | setup(_, { expose }) {
  method data (line 1915) | data() {
  method render (line 1983) | render(this: any) {
  method setup (line 1996) | setup() {
  method data (line 2029) | data() {
  method setup (line 2386) | setup() {
  method setup (line 2402) | setup() {
  method setup (line 2419) | setup() {
  method setup (line 2427) | setup() {
  method created (line 2440) | created(el, binding) {
  method setup (line 2445) | setup() {
  method setup (line 2458) | setup() {
  method setup (line 2482) | setup() {
  method setup (line 2490) | setup() {

FILE: packages/runtime-core/__tests__/misc.spec.ts
  method render (line 7) | render() {}
  method mounted (line 8) | mounted() {

FILE: packages/runtime-core/__tests__/rendererAttrsFallthrough.spec.ts
  method setup (line 33) | setup() {
  method setup (line 54) | setup(props: any) {
  function inc (line 99) | function inc() {
  function inc (line 157) | function inc() {
  method setup (line 213) | setup() {
  method setup (line 233) | setup(props: any) {
  method setup (line 247) | setup(props) {
  method render (line 292) | render() {
  method render (line 300) | render() {
  method render (line 316) | render() {
  method render (line 328) | render() {
  method render (line 343) | render() {
  method render (line 351) | render() {
  method render (line 375) | render() {
  method render (line 382) | render() {
  method render (line 397) | render() {
  method render (line 404) | render() {
  function inc (line 419) | function inc() {
  method render (line 425) | render() {
  method render (line 431) | render() {
  method render (line 456) | render() {
  method render (line 463) | render() {
  method render (line 480) | render() {
  method setup (line 487) | setup(_props, { attrs }) {
  method render (line 504) | render() {
  method render (line 527) | render() {
  method render (line 545) | render() {
  method render (line 568) | render() {
  method render (line 575) | render() {
  method render (line 598) | render() {
  method render (line 613) | render() {
  method render (line 644) | render() {
  method setup (line 665) | setup() {
  method setup (line 671) | setup() {
  method setup (line 704) | setup() {
  method setup (line 732) | setup() {
  method setup (line 759) | setup() {
  method setup (line 772) | setup(_props, { emit }) {
  method setup (line 786) | setup(_props, { emit }) {
  method render (line 821) | render() {

FILE: packages/runtime-core/__tests__/rendererChildren.spec.ts
  function toSpan (line 11) | function toSpan(content: any) {
  function shuffle (line 21) | function shuffle(array: Array<any>) {
  function spanNumWithOpacity (line 328) | function spanNumWithOpacity(n: number, o: string) {

FILE: packages/runtime-core/__tests__/rendererComponent.spec.ts
  method setup (line 117) | setup() {
  method setup (line 127) | setup() {
  function returnThis (line 146) | function returnThis(this: any, _arg: any) {
  method data (line 157) | data() {
  method testProp (line 164) | testProp() {
  method testData (line 168) | testData() {
  method created (line 174) | created() {
  method render (line 178) | render() {
  method setup (line 202) | setup() {
  method setup (line 219) | setup(props: any, { emit }: SetupContext) {
  method setup (line 245) | setup() {
  method setup (line 255) | setup(props: any) {
  method setup (line 284) | setup() {
  method setup (line 294) | setup(props: any) {
  method setup (line 307) | setup(props: any) {
  method data (line 344) | data() {
  method handler (line 352) | handler() {
  method created (line 357) | created() {
  method render (line 361) | render() {
  method setup (line 367) | setup() {
  method data (line 386) | data() {
  method render (line 390) | render() {
  method render (line 405) | render() {
  method beforeUnmount (line 414) | beforeUnmount() {
  method render (line 433) | render() {
  method render (line 440) | render(this: any) {
  method setup (line 460) | setup() {
  method render (line 466) | render(this: any) {
  method setup (line 484) | setup(_: any, { slots }: SetupContext) {
  method render (line 498) | render() {
  method render (line 509) | render(this: any) {

FILE: packages/runtime-core/__tests__/rendererFragment.spec.ts
  method render (line 25) | render() {

FILE: packages/runtime-core/__tests__/rendererOptimizedMode.spec.ts
  method setup (line 354) | setup() {
  method setup (line 423) | setup(_props, { slots }) {
  method setup (line 439) | setup() {
  method setup (line 478) | setup() {
  method setup (line 498) | setup() {
  method render (line 505) | render() {
  method setup (line 526) | setup() {
  method setup (line 532) | setup() {
  method setup (line 568) | setup(props: any, { slots }: SetupContext) {
  method setup (line 580) | setup(props: any, { slots }: SetupContext) {
  method setup (line 591) | setup() {
  method setup (line 666) | setup(props: any, { slots }: SetupContext) {
  method setup (line 680) | setup(props: any, { slots }: SetupContext) {
  method render (line 706) | render() {
  method setup (line 738) | setup(props: any, { slots }: SetupContext) {
  method setup (line 746) | setup() {
  method setup (line 781) | setup(props: any, { slots }: any) {
  method setup (line 787) | setup(props: any, { slots }: any) {
  method setup (line 809) | setup() {
  method render (line 833) | render() {
  method setup (line 872) | async setup(props: any) {
  method setup (line 893) | setup() {
  method setup (line 978) | setup(props: any, { slots }: SetupContext) {
  method setup (line 990) | setup() {
  method render (line 997) | render() {
  method render (line 1034) | render() {
  function Outer (line 1083) | function Outer(_: any, { slots }: any) {
  method render (line 1087) | render(ctx: any) {
  method render (line 1097) | render() {
  function Outer (line 1160) | function Outer(_: any, { slots }: any) {
  method render (line 1165) | render(ctx: any) {
  method render (line 1174) | render() {
  method setup (line 1223) | setup(props: any, { slots }: SetupContext) {
  method render (line 1245) | render() {
  method setup (line 1298) | setup() {
  method render (line 1305) | render(_: any, cache: any) {
  method setup (line 1352) | setup() {
  method setup (line 1360) | setup(_: any, { slots }: SetupContext) {
  method render (line 1376) | render() {
  function updateFoo (line 1410) | function updateFoo() {
  method setup (line 1416) | setup() {

FILE: packages/runtime-core/__tests__/rendererTemplateRef.spec.ts
  method setup (line 22) | setup() {
  method render (line 27) | render() {
  method setup (line 42) | setup() {
  method render (line 48) | render() {
  method setup (line 68) | setup() {
  method render (line 73) | render() {
  method setup (line 134) | setup() {
  method setup (line 151) | setup() {
  method setup (line 171) | setup() {
  method setup (line 193) | setup(props, { emit }) {
  method setup (line 205) | setup() {
  method render (line 210) | render() {
  method setup (line 234) | setup() {
  method render (line 241) | render() {
  method updated (line 246) | updated(this: any) {
  method render (line 253) | render() {
  method setup (line 274) | setup() {
  method setup (line 280) | setup() {
  method render (line 301) | render(this: any) {
  method render (line 307) | render() {
  method mounted (line 312) | mounted(this: any) {
  method setup (line 328) | setup() {
  method render (line 331) | render() {
  method setup (line 347) | setup() {
  method render (line 354) | render() {
  method setup (line 371) | setup() {
  method render (line 375) | render(this: any) {
  method render (line 395) | render(this: any) {
  method mounted (line 401) | mounted(this: any) {
  method updated (line 404) | updated(this: any) {
  method render (line 426) | render(this: any) {
  method mounted (line 429) | mounted(this: any) {
  method updated (line 432) | updated(this: any) {
  method render (line 460) | render() {
  method mounted (line 492) | mounted() {
  method render (line 495) | render() {
  method render (line 521) | render() {
  method setup (line 569) | setup() {
  method render (line 572) | render() {
  method setup (line 618) | setup() {
  method render (line 621) | render() {
  method setup (line 666) | setup(_, { expose }) {
  method setup (line 679) | setup(_, { expose }) {

FILE: packages/runtime-core/__tests__/scopeId.spec.ts
  method setup (line 55) | async setup() {
  method setup (line 65) | setup(_: any, { slots }: any) {
  method setup (line 72) | setup() {
  method render (line 98) | render(this: any) {
  method render (line 138) | render(this: any) {
  method render (line 154) | render(this: any) {
  method render (line 169) | render(this: any) {
  method render (line 190) | render(this: any) {
  function Child (line 226) | function Child() {
  function Child2 (line 230) | function Child2() {
  method render (line 244) | render() {
  method render (line 252) | render() {
  function Child (line 378) | function Child() {
  function Child2 (line 382) | function Child2() {

FILE: packages/runtime-core/__tests__/vnode.spec.ts
  class Component (line 88) | class Component {
  method setup (line 639) | setup(_: any, { slots }: any) {
  method render (line 693) | render() {

FILE: packages/runtime-core/__tests__/vnodeHooks.spec.ts
  function assertHooks (line 12) | function assertHooks(hooks: VNodeProps, vnode1: VNode, vnode2: VNode) {

FILE: packages/runtime-core/src/apiAsyncComponent.ts
  type AsyncComponentResolveResult (line 21) | type AsyncComponentResolveResult<T = Component> = T | { default: T } // ...
  type AsyncComponentLoader (line 23) | type AsyncComponentLoader<T = any> = () => Promise<
  type AsyncComponentOptions (line 27) | interface AsyncComponentOptions<T = any> {
  function defineAsyncComponent (line 47) | function defineAsyncComponent<
  function createInnerComp (line 254) | function createInnerComp(

FILE: packages/runtime-core/src/apiCreateApp.ts
  type App (line 33) | interface App<HostElement = any> {
  type OptionMergeFunction (line 121) | type OptionMergeFunction = (to: unknown, from: unknown) => any
  type AppConfig (line 123) | interface AppConfig {
  type AppContext (line 171) | interface AppContext {
  type PluginInstallFunction (line 208) | type PluginInstallFunction<Options = any[]> = Options extends unknown[]
  type ObjectPlugin (line 212) | type ObjectPlugin<Options = any[]> = {
  type FunctionPlugin (line 215) | type FunctionPlugin<Options = any[]> = PluginInstallFunction<Options> &
  type Plugin (line 218) | type Plugin<
  function createAppContext (line 224) | function createAppContext(): AppContext {
  type CreateAppFunction (line 246) | type CreateAppFunction<HostElement> = (
  function createAppAPI (line 253) | function createAppAPI<HostElement>(

FILE: packages/runtime-core/src/apiDefineComponent.ts
  type PublicProps (line 40) | type PublicProps = VNodeProps &
  type ResolveProps (line 44) | type ResolveProps<PropsOrPropOptions, E extends EmitsOptions> = Readonly<
  type DefineComponent (line 51) | type DefineComponent<
  type DefineSetupFnComponent (line 115) | type DefineSetupFnComponent<
  type ToResolvedProps (line 139) | type ToResolvedProps<Props, Emits extends EmitsOptions> = Readonly<Props> &
  function defineComponent (line 305) | function defineComponent(

FILE: packages/runtime-core/src/apiInject.ts
  type InjectionConstraint (line 6) | interface InjectionConstraint<T> {}
  type InjectionKey (line 8) | type InjectionKey<T> = symbol & InjectionConstraint<T>
  function provide (line 10) | function provide<T, K = InjectionKey<T> | string | number>(
  function inject (line 47) | function inject(
  function hasInjectionContext (line 92) | function hasInjectionContext(): boolean {

FILE: packages/runtime-core/src/apiLifecycle.ts
  function injectHook (line 20) | function injectHook(
  type CreateHook (line 80) | type CreateHook<T = any> = (
  type DebuggerHook (line 99) | type DebuggerHook = (e: DebuggerEvent) => void
  type ErrorCapturedHook (line 105) | type ErrorCapturedHook<TError = unknown> = (
  function onErrorCaptured (line 111) | function onErrorCaptured<TError = Error>(

FILE: packages/runtime-core/src/apiSetupHelpers.ts
  function defineProps (line 91) | function defineProps() {
  type DefineProps (line 98) | type DefineProps<T, BKeys extends keyof T> = Readonly<T> & {
  type BooleanKey (line 102) | type BooleanKey<T, K extends keyof T = keyof T> = K extends any
  function defineEmits (line 149) | function defineEmits() {
  type ComponentTypeEmits (line 156) | type ComponentTypeEmits = ((...args: any[]) => any) | Record<string, any>
  type RecordToUnion (line 158) | type RecordToUnion<T extends Record<string, any>> = T[keyof T]
  type ShortEmits (line 160) | type ShortEmits<T extends Record<string, any>> = UnionToIntersection<
  function defineExpose (line 180) | function defineExpose<
  function defineOptions (line 195) | function defineOptions<
  function defineSlots (line 252) | function defineSlots<
  type ModelRef (line 261) | type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<
  type DefineModelOptions (line 267) | type DefineModelOptions<T = any, G = T, S = T> = {
  function defineModel (line 327) | function defineModel(): any {
  type NotUndefined (line 333) | type NotUndefined<T> = T extends undefined ? never : T
  type MappedOmit (line 334) | type MappedOmit<T, K extends keyof any> = {
  type InferDefaults (line 338) | type InferDefaults<T> = {
  type NativeType (line 342) | type NativeType =
  type InferDefault (line 351) | type InferDefault<P, T> =
  type PropsWithDefaults (line 355) | type PropsWithDefaults<
  function withDefaults (line 397) | function withDefaults<
  function useSlots (line 411) | function useSlots(): SetupContext['slots'] {
  function useAttrs (line 415) | function useAttrs(): SetupContext['attrs'] {
  function getContext (line 419) | function getContext(calledFunctionName: string): SetupContext {
  function normalizePropsOrEmits (line 430) | function normalizePropsOrEmits(
  function mergeDefaults (line 446) | function mergeDefaults(
  function mergeModels (line 477) | function mergeModels(
  function createPropsRestProxy (line 491) | function createPropsRestProxy(
  function withAsyncContext (line 525) | function withAsyncContext(getAwaitable: () => any): [any, () => void] {

FILE: packages/runtime-core/src/apiWatch.ts
  type MaybeUndefined (line 35) | type MaybeUndefined<T, I> = I extends true ? T | undefined : T
  type MapSources (line 37) | type MapSources<T, Immediate> = {
  type WatchEffectOptions (line 45) | interface WatchEffectOptions extends DebuggerOptions {
  type WatchOptions (line 49) | interface WatchOptions<Immediate = boolean> extends WatchEffectOptions {
  function watchEffect (line 56) | function watchEffect(
  function watchPostEffect (line 63) | function watchPostEffect(
  function watchSyncEffect (line 76) | function watchSyncEffect(
  type MultiWatchSources (line 89) | type MultiWatchSources = (WatchSource<unknown> | object)[]
  function watch (line 131) | function watch<T = any, Immediate extends Readonly<boolean> = false>(
  function doWatch (line 146) | function doWatch(
  function instanceWatch (line 245) | function instanceWatch(
  function createPathGetter (line 270) | function createPathGetter(

FILE: packages/runtime-core/src/compat/attrsFallthrough.ts
  function shouldSkipAttr (line 5) | function shouldSkipAttr(

FILE: packages/runtime-core/src/compat/compatConfig.ts
  type DeprecationTypes (line 13) | enum DeprecationTypes {
  type DeprecationData (line 69) | type DeprecationData = {
  function toggleDeprecationWarning (line 434) | function toggleDeprecationWarning(flag: boolean): void {
  function warnDeprecation (line 438) | function warnDeprecation(
  type CompatConfig (line 495) | type CompatConfig = Partial<
  function configureCompat (line 505) | function configureCompat(config: CompatConfig): void {
  function validateCompatConfig (line 516) | function validateCompatConfig(
  function getCompatConfigForKey (line 554) | function getCompatConfigForKey(
  function isCompatEnabled (line 566) | function isCompatEnabled(
  function assertCompatEnabled (line 593) | function assertCompatEnabled(
  function softAssertCompatEnabled (line 609) | function softAssertCompatEnabled(
  function checkCompatEnabled (line 625) | function checkCompatEnabled(

FILE: packages/runtime-core/src/compat/component.ts
  function convertLegacyComponent (line 11) | function convertLegacyComponent(

FILE: packages/runtime-core/src/compat/componentAsync.ts
  type LegacyAsyncOptions (line 6) | interface LegacyAsyncOptions {
  type LegacyAsyncReturnValue (line 14) | type LegacyAsyncReturnValue = Promise<Component> | LegacyAsyncOptions
  type LegacyAsyncComponent (line 16) | type LegacyAsyncComponent = (
  function convertLegacyAsyncComponent (line 26) | function convertLegacyAsyncComponent(

FILE: packages/runtime-core/src/compat/componentFunctional.ts
  method get (line 16) | get(target, key: string) {
  function convertLegacyFunctionalComponent (line 22) | function convertLegacyFunctionalComponent(

FILE: packages/runtime-core/src/compat/componentVModel.ts
  function convertLegacyVModelProps (line 17) | function convertLegacyVModelProps(vnode: VNode): void {
  function applyModelFromMixins (line 66) | function applyModelFromMixins(model: any, mixins?: ComponentOptions[]) {
  function compatModelEmit (line 75) | function compatModelEmit(

FILE: packages/runtime-core/src/compat/customDirective.ts
  type LegacyDirective (line 6) | interface LegacyDirective {
  function mapCompatDirectiveHook (line 26) | function mapCompatDirectiveHook(

FILE: packages/runtime-core/src/compat/data.ts
  function deepMergeData (line 4) | function deepMergeData(to: any, from: any): any {

FILE: packages/runtime-core/src/compat/global.ts
  type CompatVue (line 67) | type CompatVue = Pick<App, 'version' | 'component' | 'directive'> & {
  function createCompatVue (line 143) | function createCompatVue(
  function installAppCompatProperties (line 332) | function installAppCompatProperties(
  function installFilterMethod (line 352) | function installFilterMethod(app: App, context: AppContext) {
  function installLegacyAPIs (line 367) | function installLegacyAPIs(app: App) {
  function applySingletonAppMutations (line 390) | function applySingletonAppMutations(app: App) {
  function applySingletonPrototype (line 428) | function applySingletonPrototype(app: App, Ctor: Function) {
  function installCompatMount (line 452) | function installCompatMount(
  function defineReactive (line 618) | function defineReactive(obj: any, key: string, val: any) {
  function defineReactiveSimple (line 651) | function defineReactiveSimple(obj: any, key: string, val: any) {

FILE: packages/runtime-core/src/compat/globalConfig.ts
  type LegacyConfig (line 11) | type LegacyConfig = {
  function installLegacyConfigWarnings (line 39) | function installLegacyConfigWarnings(config: AppConfig): void {
  function installLegacyOptionMergeStrats (line 65) | function installLegacyOptionMergeStrats(config: AppConfig): void {

FILE: packages/runtime-core/src/compat/instance.ts
  type LegacyPublicInstance (line 42) | type LegacyPublicInstance = ComponentPublicInstance &
  type LegacyPublicProperties (line 45) | interface LegacyPublicProperties {
  function installCompatInstanceProperties (line 65) | function installCompatInstanceProperties(

FILE: packages/runtime-core/src/compat/instanceChildren.ts
  function getCompatChildren (line 7) | function getCompatChildren(
  function walk (line 19) | function walk(vnode: VNode, children: ComponentPublicInstance[]) {

FILE: packages/runtime-core/src/compat/instanceEventEmitter.ts
  type EventRegistry (line 7) | interface EventRegistry {
  function getRegistry (line 16) | function getRegistry(
  function on (line 26) | function on(
  function once (line 49) | function once(
  function off (line 63) | function off(
  function emit (line 94) | function emit(

FILE: packages/runtime-core/src/compat/instanceListeners.ts
  function getCompatListeners (line 5) | function getCompatListeners(

FILE: packages/runtime-core/src/compat/props.ts
  function createPropsDefaultThis (line 10) | function createPropsDefaultThis(

FILE: packages/runtime-core/src/compat/renderFn.ts
  function convertLegacyRenderFn (line 42) | function convertLegacyRenderFn(
  type LegacyVNodeProps (line 72) | interface LegacyVNodeProps {
  type LegacyVNodeDirective (line 98) | interface LegacyVNodeDirective {
  type LegacyVNodeChildren (line 105) | type LegacyVNodeChildren =
  function compatH (line 122) | function compatH(
  function convertLegacyProps (line 179) | function convertLegacyProps(
  function convertLegacyEventKey (line 229) | function convertLegacyEventKey(event: string): string {
  function convertLegacyDirectives (line 243) | function convertLegacyDirectives(
  function convertLegacySlots (line 263) | function convertLegacySlots(vnode: VNode): VNode {
  function defineLegacyVNodeProperties (line 308) | function defineLegacyVNodeProperties(vnode: VNode): void {

FILE: packages/runtime-core/src/compat/renderHelpers.ts
  function toObject (line 17) | function toObject(arr: Array<any>): Object {
  function legacyBindObjectProps (line 27) | function legacyBindObjectProps(
  function legacyBindObjectListeners (line 65) | function legacyBindObjectListeners(props: any, listeners: any): Data {
  function legacyRenderSlot (line 69) | function legacyRenderSlot(
  type LegacyScopedSlotsData (line 82) | type LegacyScopedSlotsData = Array<
  function legacyResolveScopedSlots (line 90) | function legacyResolveScopedSlots(
  function mapKeyToName (line 103) | function mapKeyToName(slots: LegacyScopedSlotsData) {
  function legacyRenderStatic (line 122) | function legacyRenderStatic(
  function legacyCheckKeyCodes (line 138) | function legacyCheckKeyCodes(
  function isKeyNotMatch (line 158) | function isKeyNotMatch<T>(expect: T | T[], actual: T): boolean {
  function legacyMarkOnce (line 166) | function legacyMarkOnce(tree: VNode): VNode {
  function legacyBindDynamicKeys (line 170) | function legacyBindDynamicKeys(props: any, values: any[]): any {
  function legacyPrependModifier (line 180) | function legacyPrependModifier(value: any, symbol: string): any {

FILE: packages/runtime-core/src/component.ts
  type Data (line 99) | type Data = Record<string, unknown>
  type AllowedAttrs (line 104) | interface AllowedAttrs {}
  type Attrs (line 106) | type Attrs = Data & AllowedAttrs
  type ComponentInstance (line 120) | type ComponentInstance<T> = T extends { new (): ComponentPublicInstance }
  type ComponentCustomProps (line 147) | interface ComponentCustomProps {}
  type GlobalDirectives (line 164) | interface GlobalDirectives {}
  type GlobalComponents (line 181) | interface GlobalComponents {
  type AllowedComponentProps (line 191) | interface AllowedComponentProps {
  type ComponentInternalOptions (line 198) | interface ComponentInternalOptions {
  type FunctionalComponent (line 225) | interface FunctionalComponent<
  type ClassComponent (line 244) | interface ClassComponent {
  type ConcreteComponent (line 255) | type ConcreteComponent<
  type Component (line 271) | type Component<
  type LifecycleHook (line 285) | type LifecycleHook<TFn = Function> = (TFn & SchedulerJob)[] | null
  type SetupContext (line 288) | type SetupContext<
  type InternalRenderFunction (line 305) | type InternalRenderFunction = {
  type ComponentInternalInstance (line 326) | interface ComponentInternalInstance {
  function createComponentInstance (line 614) | function createComponentInstance(
  type Setter (line 741) | type Setter = (v: any) => void
  function validateComponentName (line 790) | function validateComponentName(
  function isStatefulComponent (line 801) | function isStatefulComponent(
  function setupComponent (line 809) | function setupComponent(
  function setupStatefulComponent (line 829) | function setupStatefulComponent(
  function handleSetupResult (line 929) | function handleSetupResult(
  type CompileFunction (line 969) | type CompileFunction = (
  function registerRuntimeCompiler (line 981) | function registerRuntimeCompiler(_compile: any): void {
  function finishComponentSetup (line 993) | function finishComponentSetup(
  method get (line 1099) | get(target: Data, key: string) {
  method set (line 1104) | set() {
  method deleteProperty (line 1108) | deleteProperty() {
  method get (line 1114) | get(target: Data, key: string) {
  function getSlotsProxy (line 1123) | function getSlotsProxy(instance: ComponentInternalInstance): Slots {
  function createSetupContext (line 1132) | function createSetupContext(
  function getComponentPublicInstance (line 1189) | function getComponentPublicInstance(
  function getComponentName (line 1217) | function getComponentName(
  function formatComponentName (line 1226) | function formatComponentName(
  function isClassComponent (line 1262) | function isClassComponent(value: unknown): value is ClassComponent {
  type ComponentCustomElementInterface (line 1266) | interface ComponentCustomElementInterface {

FILE: packages/runtime-core/src/componentEmits.ts
  type ObjectEmitsOptions (line 36) | type ObjectEmitsOptions = Record<
  type EmitsOptions (line 41) | type EmitsOptions = ObjectEmitsOptions | string[]
  type EmitsToProps (line 43) | type EmitsToProps<T extends EmitsOptions | ComponentTypeEmits> =
  type TypeEmitsToOptions (line 60) | type TypeEmitsToOptions<T extends ComponentTypeEmits> = {
  type ParametersToFns (line 68) | type ParametersToFns<T extends any[]> = {
  type IsStringLiteral (line 80) | type IsStringLiteral<T> = T extends string
  type ShortEmitsToObject (line 86) | type ShortEmitsToObject<E> =
  type EmitFn (line 93) | type EmitFn<
  function emit (line 111) | function emit(
  function normalizeEmitsOptions (line 236) | function normalizeEmitsOptions(
  function isEmitListener (line 294) | function isEmitListener(

FILE: packages/runtime-core/src/componentOptions.ts
  type ComponentCustomOptions (line 106) | interface ComponentCustomOptions {}
  type RenderFunction (line 108) | type RenderFunction = () => VNodeChild
  type ComponentOptionsBase (line 110) | interface ComponentOptionsBase<
  type RuntimeCompilerOptions (line 234) | interface RuntimeCompilerOptions {
  type ComponentOptions (line 241) | type ComponentOptions<
  type ComponentOptionsMixin (line 298) | type ComponentOptionsMixin = ComponentOptionsBase<
  type ComputedOptions (line 318) | type ComputedOptions = Record<
  type MethodOptions (line 323) | interface MethodOptions {
  type ExtractComputedReturns (line 327) | type ExtractComputedReturns<T extends any> = {
  type ObjectWatchOptionItem (line 335) | type ObjectWatchOptionItem = {
  type WatchOptionItem (line 339) | type WatchOptionItem = string | WatchCallback | ObjectWatchOptionItem
  type ComponentWatchOptionItem (line 341) | type ComponentWatchOptionItem = WatchOptionItem | WatchOptionItem[]
  type ComponentWatchOptions (line 343) | type ComponentWatchOptions = Record<string, ComponentWatchOptionItem>
  type ComponentProvideOptions (line 345) | type ComponentProvideOptions = ObjectProvideOptions | Function
  type ObjectProvideOptions (line 347) | type ObjectProvideOptions = Record<string | symbol, unknown>
  type ComponentInjectOptions (line 349) | type ComponentInjectOptions = string[] | ObjectInjectOptions
  type ObjectInjectOptions (line 351) | type ObjectInjectOptions = Record<
  type InjectToObject (line 356) | type InjectToObject<T extends ComponentInjectOptions> =
  type LegacyOptions (line 367) | interface LegacyOptions<
  type MergedHook (line 456) | type MergedHook<T = () => void> = T | T[]
  type MergedComponentOptions (line 458) | type MergedComponentOptions = ComponentOptions &
  type MergedComponentOptionsOverride (line 461) | type MergedComponentOptionsOverride = {
  type OptionTypesKeys (line 481) | type OptionTypesKeys = 'P' | 'B' | 'D' | 'C' | 'M' | 'Defaults'
  type OptionTypesType (line 483) | type OptionTypesType<
  type OptionTypes (line 499) | enum OptionTypes {
  function createDuplicateChecker (line 507) | function createDuplicateChecker() {
  function applyOptions (line 520) | function applyOptions(instance: ComponentInternalInstance): void {
  function resolveInjections (line 794) | function resolveInjections(
  function callHook (line 835) | function callHook(
  function createWatcher (line 849) | function createWatcher(
  function resolveMergedOptions (line 927) | function resolveMergedOptions(
  function mergeOptions (line 969) | function mergeOptions(
  function mergeDataFn (line 1041) | function mergeDataFn(to: any, from: any) {
  function mergeInject (line 1060) | function mergeInject(
  function normalizeInject (line 1067) | function normalizeInject(
  function mergeAsArray (line 1080) | function mergeAsArray<T = Function>(to: T[] | T | undefined, from: T | T...
  function mergeObjectOptions (line 1084) | function mergeObjectOptions(to: Object | undefined, from: Object | undef...
  function mergeEmitsOrPropsOptions (line 1096) | function mergeEmitsOrPropsOptions(
  function mergeWatchOptions (line 1114) | function mergeWatchOptions(
  type ComponentOptionsWithoutProps (line 1132) | type ComponentOptionsWithoutProps<
  type ComponentOptionsWithArrayProps (line 1206) | type ComponentOptionsWithArrayProps<
  type ComponentOptionsWithObjectProps (line 1268) | type ComponentOptionsWithObjectProps<

FILE: packages/runtime-core/src/componentProps.ts
  type ComponentPropsOptions (line 43) | type ComponentPropsOptions<P = Data> =
  type ComponentObjectPropsOptions (line 47) | type ComponentObjectPropsOptions<P = Data> = {
  type Prop (line 51) | type Prop<T, D = T> = PropOptions<T, D> | PropType<T>
  type DefaultFactory (line 53) | type DefaultFactory<T> = (props: Data) => T | null | undefined
  type PropOptions (line 55) | interface PropOptions<T = any, D = T> {
  type PropType (line 70) | type PropType<T> = PropConstructor<T> | (PropConstructor<T> | null)[]
  type PropConstructor (line 72) | type PropConstructor<T = any> =
  type PropMethod (line 77) | type PropMethod<T, TConstructor = any> = [T] extends [
  type RequiredKeys (line 83) | type RequiredKeys<T> = {
  type OptionalKeys (line 96) | type OptionalKeys<T> = Exclude<keyof T, RequiredKeys<T>>
  type DefaultKeys (line 98) | type DefaultKeys<T> = {
  type InferPropType (line 110) | type InferPropType<T, NullAsAny = true> = [T] extends [null]
  type ExtractPropTypes (line 143) | type ExtractPropTypes<O> = {
  type PublicRequiredKeys (line 155) | type PublicRequiredKeys<T> = {
  type PublicOptionalKeys (line 159) | type PublicOptionalKeys<T> = Exclude<keyof T, PublicRequiredKeys<T>>
  type ExtractPublicPropTypes (line 166) | type ExtractPublicPropTypes<O> = {
  type BooleanFlags (line 172) | enum BooleanFlags {
  type ExtractDefaultPropTypes (line 178) | type ExtractDefaultPropTypes<O> = O extends object
  type NormalizedProp (line 183) | type NormalizedProp = PropOptions & {
  type NormalizedProps (line 190) | type NormalizedProps = Record<string, NormalizedProp>
  type NormalizedPropsOptions (line 191) | type NormalizedPropsOptions = [NormalizedProps, string[]] | []
  function initProps (line 193) | function initProps(
  function isInHmrContext (line 233) | function isInHmrContext(instance: ComponentInternalInstance | null) {
  function updateProps (line 240) | function updateProps(
  function setFullProps (line 374) | function setFullProps(
  function resolvePropValue (line 451) | function resolvePropValue(
  function normalizePropsOptions (line 509) | function normalizePropsOptions(
  function validatePropName (line 617) | function validatePropName(key: string) {
  function getType (line 629) | function getType(ctor: Prop<any> | null): string {
  function validateProps (line 652) | function validateProps(
  function validateProp (line 676) | function validateProp(
  type AssertionResult (line 719) | type AssertionResult = {
  function assertType (line 727) | function assertType(
  function getInvalidTypeMessage (line 758) | function getInvalidTypeMessage(
  function styleValue (line 795) | function styleValue(value: unknown, type: string): string {
  function isExplicable (line 808) | function isExplicable(type: string): boolean {
  function isBoolean (line 816) | function isBoolean(...args: string[]): boolean {

FILE: packages/runtime-core/src/componentPublicInstance.ts
  type ComponentCustomProperties (line 85) | interface ComponentCustomProperties {}
  type IsDefaultMixinComponent (line 87) | type IsDefaultMixinComponent<T> = T extends ComponentOptionsMixin
  type MixinToOptionTypes (line 93) | type MixinToOptionTypes<T> =
  type ExtractMixin (line 119) | type ExtractMixin<T> = {
  type IntersectionMixin (line 123) | type IntersectionMixin<T> =
  type UnwrapMixinsType (line 128) | type UnwrapMixinsType<
  type EnsureNonVoid (line 133) | type EnsureNonVoid<T> = T extends void ? {} : T
  type ComponentPublicInstanceConstructor (line 135) | type ComponentPublicInstanceConstructor<
  type CreateComponentPublicInstance (line 154) | type CreateComponentPublicInstance<
  type CreateComponentPublicInstanceWithMixins (line 214) | type CreateComponentPublicInstanceWithMixins<
  type ExposedKeys (line 281) | type ExposedKeys<
  type ComponentPublicInstance (line 288) | type ComponentPublicInstance<
  type PublicPropertiesMap (line 343) | type PublicPropertiesMap = Record<
  type AccessTypes (line 390) | enum AccessTypes {
  type ComponentRenderContext (line 398) | interface ComponentRenderContext {
  method get (line 410) | get({ _: instance }: ComponentRenderContext, key: string) {
  method set (line 526) | set(
  method has (line 574) | has(
  method defineProperty (line 596) | defineProperty(
  method get (line 623) | get(target: ComponentRenderContext, key: string) {
  method has (line 630) | has(_: ComponentRenderContext, key: string) {
  function createDevRenderContext (line 647) | function createDevRenderContext(instance: ComponentInternalInstance) {
  function exposePropsOnRenderContext (line 673) | function exposePropsOnRenderContext(
  function exposeSetupStateOnRenderContext (line 693) | function exposeSetupStateOnRenderContext(

FILE: packages/runtime-core/src/componentRenderContext.ts
  function setCurrentRenderingInstance (line 22) | function setCurrentRenderingInstance(
  function pushScopeId (line 39) | function pushScopeId(id: string | null): void {
  function popScopeId (line 48) | function popScopeId(): void {
  type ContextualRenderFn (line 58) | type ContextualRenderFn = {
  function withCtx (line 70) | function withCtx(

FILE: packages/runtime-core/src/componentRenderUtils.ts
  function markAttrsAccessed (line 46) | function markAttrsAccessed(): void {
  type SetRootFn (line 50) | type SetRootFn = ((root: VNode) => void) | undefined
  function renderComponentRoot (line 52) | function renderComponentRoot(
  function filterSingleRoot (line 312) | function filterSingleRoot(
  function shouldUpdateComponent (line 371) | function shouldUpdateComponent(
  function hasPropsChanged (line 439) | function hasPropsChanged(
  function hasPropValueChanged (line 460) | function hasPropValueChanged(
  function updateHOCHostEl (line 473) | function updateHOCHostEl(

FILE: packages/runtime-core/src/componentSlots.ts
  type Slot (line 30) | type Slot<T extends any = any> = (
  type InternalSlots (line 34) | type InternalSlots = {
  type Slots (line 38) | type Slots = Readonly<InternalSlots>
  type SlotsType (line 41) | type SlotsType<T extends Record<string, any> = Record<string, any>> = {
  type StrictUnwrapSlotsType (line 45) | type StrictUnwrapSlotsType<
  type UnwrapSlotsType (line 50) | type UnwrapSlotsType<
  type RawSlots (line 63) | type RawSlots = {

FILE: packages/runtime-core/src/components/BaseTransition.ts
  type Hook (line 25) | type Hook<T = () => void> = T | T[]
  type BaseTransitionProps (line 30) | interface BaseTransitionProps<HostElement = RendererElement> {
  type TransitionHooks (line 60) | interface TransitionHooks<HostElement = RendererElement> {
  type TransitionHookCaller (line 77) | type TransitionHookCaller = <T extends any[] = [el: any]>(
  type PendingCallback (line 82) | type PendingCallback = (cancelled?: boolean) => void
  type TransitionState (line 84) | interface TransitionState {
  type TransitionElement (line 93) | interface TransitionElement {
  function useTransitionState (line 101) | function useTransitionState(): TransitionState {
  method setup (line 150) | setup(props: BaseTransitionProps, { slots }: SetupContext) {
  function findNonCommentChild (line 273) | function findNonCommentChild(children: VNode[]): VNode {
  function getLeavingNodesForType (line 308) | function getLeavingNodesForType(
  function resolveTransitionHooks (line 323) | function resolveTransitionHooks(
  function emptyPlaceholder (line 492) | function emptyPlaceholder(vnode: VNode): VNode | undefined {
  function getInnerChild (line 500) | function getInnerChild(vnode: VNode): VNode | undefined {
  function setTransitionHooks (line 529) | function setTransitionHooks(vnode: VNode, hooks: TransitionHooks): void {
  function getTransitionRawChildren (line 541) | function getTransitionRawChildren(

FILE: packages/runtime-core/src/components/KeepAlive.ts
  type MatchPattern (line 52) | type MatchPattern = string | RegExp | (string | RegExp)[]
  type KeepAliveProps (line 54) | interface KeepAliveProps {
  type CacheKey (line 60) | type CacheKey = PropertyKey | ConcreteComponent
  type Cache (line 61) | type Cache = Map<CacheKey, VNode>
  type Keys (line 62) | type Keys = Set<CacheKey>
  type KeepAliveContext (line 64) | interface KeepAliveContext extends ComponentRenderContext {
  method setup (line 93) | setup(props: KeepAliveProps, { slots }: SetupContext) {
  function matches (line 395) | function matches(pattern: MatchPattern, name: string): boolean {
  function onActivated (line 408) | function onActivated(
  function onDeactivated (line 415) | function onDeactivated(
  function registerKeepAliveHook (line 422) | function registerKeepAliveHook(
  function injectToKeepAliveRoot (line 460) | function injectToKeepAliveRoot(
  function resetShapeFlag (line 474) | function resetShapeFlag(vnode: VNode) {
  function getInnerChild (line 480) | function getInnerChild(vnode: VNode) {

FILE: packages/runtime-core/src/components/Suspense.ts
  type SuspenseProps (line 36) | interface SuspenseProps {
  method process (line 69) | process(
  function triggerEvent (line 144) | function triggerEvent(
  function mountSuspense (line 154) | function mountSuspense(
  function patchSuspense (line 219) | function patchSuspense(
  type SuspenseBoundary (line 414) | interface SuspenseBoundary {
  function createSuspenseBoundary (line 448) | function createSuspenseBoundary(
  function hydrateSuspense (line 780) | function hydrateSuspense(
  function normalizeSuspenseChildren (line 832) | function normalizeSuspenseChildren(vnode: VNode): void {
  function normalizeSuspenseSlot (line 843) | function normalizeSuspenseSlot(s: any) {
  function queueEffectWithSuspense (line 879) | function queueEffectWithSuspense(
  function setActiveBranch (line 894) | function setActiveBranch(suspense: SuspenseBoundary, branch: VNode) {
  function isVNodeSuspensible (line 913) | function isVNodeSuspensible(vnode: VNode) {

FILE: packages/runtime-core/src/components/Teleport.ts
  type TeleportVNode (line 18) | type TeleportVNode = VNode<RendererNode, RendererElement, TeleportProps>
  type TeleportProps (line 20) | interface TeleportProps {
  method process (line 78) | process(
  method remove (line 302) | remove(
  type TeleportMoveTypes (line 345) | enum TeleportMoveTypes {
  function moveTeleport (line 351) | function moveTeleport(
  type TeleportTargetElement (line 390) | interface TeleportTargetElement extends Element {
  function hydrateTeleport (line 395) | function hydrateTeleport(
  function updateCssVars (line 519) | function updateCssVars(vnode: VNode, isDisabled: boolean) {
  function prepareAnchor (line 540) | function prepareAnchor(

FILE: packages/runtime-core/src/customFormatter.ts
  function initCustomFormatter (line 15) | function initCustomFormatter(): void {

FILE: packages/runtime-core/src/devtools.ts
  type AppRecord (line 6) | interface AppRecord {
  type DevtoolsHooks (line 13) | enum DevtoolsHooks {
  type DevtoolsHook (line 24) | interface DevtoolsHook {
  function emit (line 44) | function emit(event: string, ...args: any[]) {
  function setDevtoolsHook (line 52) | function setDevtoolsHook(hook: DevtoolsHook, target: any): void {
  function devtoolsInitApp (line 90) | function devtoolsInitApp(app: App, version: string): void {
  function devtoolsUnmountApp (line 99) | function devtoolsUnmountApp(app: App): void {
  type DevtoolsComponentHook (line 126) | type DevtoolsComponentHook = (component: ComponentInternalInstance) => void
  function createDevtoolsComponentHook (line 129) | function createDevtoolsComponentHook(
  type DevtoolsPerformanceHook (line 149) | type DevtoolsPerformanceHook = (
  function createDevtoolsPerformanceHook (line 154) | function createDevtoolsPerformanceHook(
  function devtoolsComponentEmit (line 162) | function devtoolsComponentEmit(

FILE: packages/runtime-core/src/directives.ts
  type DirectiveBinding (line 28) | interface DirectiveBinding<
  type DirectiveHook (line 41) | type DirectiveHook<
  type SSRDirectiveHook (line 54) | type SSRDirectiveHook<
  type ObjectDirective (line 63) | interface ObjectDirective<
  type FunctionDirective (line 98) | type FunctionDirective<
  type Directive (line 105) | type Directive<
  type DirectiveModifiers (line 114) | type DirectiveModifiers<K extends string = string> = Partial<
  function validateDirectiveName (line 118) | function validateDirectiveName(name: string): void {
  type DirectiveArguments (line 125) | type DirectiveArguments = Array<
  function withDirectives (line 135) | function withDirectives<T extends VNode>(
  function invokeDirectiveHook (line 170) | function invokeDirectiveHook(

FILE: packages/runtime-core/src/enums.ts
  type LifecycleHooks (line 1) | enum LifecycleHooks {

FILE: packages/runtime-core/src/errorHandling.ts
  type ErrorCodes (line 11) | enum ErrorCodes {
  type ErrorTypes (line 68) | type ErrorTypes = LifecycleHooks | ErrorCodes | WatchErrorCodes
  function callWithErrorHandling (line 70) | function callWithErrorHandling(
  function callWithAsyncErrorHandling (line 83) | function callWithAsyncErrorHandling(
  function handleError (line 112) | function handleError(
  function logError (line 157) | function logError(

FILE: packages/runtime-core/src/featureFlags.ts
  function initFeatureFlags (line 8) | function initFeatureFlags(): void {

FILE: packages/runtime-core/src/h.ts
  type RawProps (line 56) | type RawProps = VNodeProps & {
  type RawChildren (line 63) | type RawChildren =
  type Constructor (line 72) | interface Constructor<P = any> {
  type HTMLElementEventHandler (line 79) | type HTMLElementEventHandler = {
  function h (line 204) | function h(type: any, propsOrChildren?: any, children?: any): VNode {

FILE: packages/runtime-core/src/helpers/createSlots.ts
  type SSRSlot (line 5) | type SSRSlot = (...args: any[]) => VNode[] | undefined
  type CompiledSlotDescriptor (line 7) | interface CompiledSlotDescriptor {
  function createSlots (line 17) | function createSlots(

FILE: packages/runtime-core/src/helpers/renderList.ts
  function renderList (line 61) | function renderList(

FILE: packages/runtime-core/src/helpers/renderSlot.ts
  function renderSlot (line 25) | function renderSlot(
  function ensureValidVNode (line 103) | function ensureValidVNode(

FILE: packages/runtime-core/src/helpers/resolveAssets.ts
  constant COMPONENTS (line 13) | const COMPONENTS = 'components'
  constant DIRECTIVES (line 14) | const DIRECTIVES = 'directives'
  constant FILTERS (line 15) | const FILTERS = 'filters'
  type AssetTypes (line 17) | type AssetTypes = typeof COMPONENTS | typeof DIRECTIVES | typeof FILTERS
  function resolveComponent (line 22) | function resolveComponent(
  constant NULL_DYNAMIC_COMPONENT (line 29) | const NULL_DYNAMIC_COMPONENT: unique symbol = Symbol.for('v-ndc')
  function resolveDynamicComponent (line 34) | function resolveDynamicComponent(component: unknown): VNodeTypes {
  function resolveDirective (line 46) | function resolveDirective(name: string): Directive | undefined {
  function resolveFilter (line 54) | function resolveFilter(name: string): Function | undefined {
  function resolveAsset (line 77) | function resolveAsset(
  function resolve (line 133) | function resolve(registry: Record<string, any> | undefined, name: string) {

FILE: packages/runtime-core/src/helpers/toHandlers.ts
  function toHandlers (line 8) | function toHandlers(

FILE: packages/runtime-core/src/helpers/useId.ts
  function useId (line 7) | function useId(): string {
  function markAsyncBoundary (line 26) | function markAsyncBoundary(instance: ComponentInternalInstance): void {

FILE: packages/runtime-core/src/helpers/useModel.ts
  function useModel (line 20) | function useModel(

FILE: packages/runtime-core/src/helpers/useTemplateRef.ts
  type TemplateRef (line 8) | type TemplateRef<T = unknown> = Readonly<ShallowRef<T | null>>
  function useTemplateRef (line 10) | function useTemplateRef<T = unknown, Keys extends string = string>(
  function isTemplateRefKey (line 39) | function isTemplateRefKey(refs: Data, key: string): boolean {

FILE: packages/runtime-core/src/helpers/withMemo.ts
  function withMemo (line 4) | function withMemo(
  function isMemoSame (line 23) | function isMemoSame(cached: VNode, memo: any[]): boolean {

FILE: packages/runtime-core/src/hmr.ts
  type HMRComponent (line 13) | type HMRComponent = ComponentOptions | ClassComponent
  type HMRRuntime (line 22) | interface HMRRuntime {
  function registerHMR (line 52) | function registerHMR(instance: ComponentInternalInstance): void {
  function unregisterHMR (line 62) | function unregisterHMR(instance: ComponentInternalInstance): void {
  function createRecord (line 66) | function createRecord(id: string, initialDef: HMRComponent): boolean {
  function normalizeClassComponent (line 77) | function normalizeClassComponent(component: HMRComponent): ComponentOpti...
  function rerender (line 81) | function rerender(id: string, newRender?: Function): void {
  function reload (line 107) | function reload(id: string, newComp: HMRComponent): void {
  function updateComponentDef (line 184) | function updateComponentDef(
  function tryWrap (line 196) | function tryWrap(fn: (id: string, arg: any) => any): Function {

FILE: packages/runtime-core/src/hydration.ts
  type RootHydrateFunction (line 47) | type RootHydrateFunction = (
  type DOMNodeTypes (line 52) | enum DOMNodeTypes {
  function createHydrationFunctions (line 92) | function createHydrationFunctions(
  function propHasMismatch (line 795) | function propHasMismatch(
  function toClassSet (line 897) | function toClassSet(str: string): Set<string> {
  function isSetEqual (line 901) | function isSetEqual(a: Set<string>, b: Set<string>): boolean {
  function toStyleMap (line 913) | function toStyleMap(str: string): Map<string, string> {
  function isMapEqual (line 926) | function isMapEqual(a: Map<string, string>, b: Map<string, string>): boo...
  function resolveCssVars (line 938) | function resolveCssVars(
  type MismatchTypes (line 964) | enum MismatchTypes {
  function isMismatchAllowed (line 980) | function isMismatchAllowed(

FILE: packages/runtime-core/src/hydrationStrategies.ts
  type HydrationStrategy (line 20) | type HydrationStrategy = (
  type HydrationStrategyFactory (line 25) | type HydrationStrategyFactory<Options> = (
  function elementIsVisibleInViewport (line 36) | function elementIsVisibleInViewport(el: Element) {
  function forEachElement (line 113) | function forEachElement(

FILE: packages/runtime-core/src/index.ts
  type RefUnwrapBailTypes (line 188) | interface RefUnwrapBailTypes {

FILE: packages/runtime-core/src/profiling.ts
  function startMeasure (line 11) | function startMeasure(
  function endMeasure (line 24) | function endMeasure(
  function isSupported (line 44) | function isSupported() {

FILE: packages/runtime-core/src/renderer.ts
  type Renderer (line 91) | interface Renderer<HostElement = RendererElement> {
  type HydrationRenderer (line 96) | interface HydrationRenderer extends Renderer<Element | ShadowRoot> {
  type ElementNamespace (line 100) | type ElementNamespace = 'svg' | 'mathml' | undefined
  type RootRenderFunction (line 102) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 108) | interface RendererOptions<
  type RendererNode (line 151) | interface RendererNode {
  type RendererElement (line 155) | interface RendererElement extends RendererNode {}
  type RendererInternals (line 160) | interface RendererInternals<
  type PatchFn (line 179) | type PatchFn = (
  type MountChildrenFn (line 191) | type MountChildrenFn = (
  type PatchChildrenFn (line 203) | type PatchChildrenFn = (
  type PatchBlockChildrenFn (line 215) | type PatchBlockChildrenFn = (
  type MoveFn (line 225) | type MoveFn = (
  type NextFn (line 233) | type NextFn = (vnode: VNode) => RendererNode | null
  type UnmountFn (line 235) | type UnmountFn = (
  type RemoveFn (line 243) | type RemoveFn = (vnode: VNode) => void
  type UnmountChildrenFn (line 245) | type UnmountChildrenFn = (
  type MountComponentFn (line 254) | type MountComponentFn = (
  type ProcessTextOrCommentFn (line 264) | type ProcessTextOrCommentFn = (
  type SetupRenderEffectFn (line 271) | type SetupRenderEffectFn = (
  type MoveType (line 281) | enum MoveType {
  function createRenderer (line 313) | function createRenderer<
  function createHydrationRenderer (line 323) | function createHydrationRenderer(
  function baseCreateRenderer (line 342) | function baseCreateRenderer(
  function resolveChildrenNamespace (line 2431) | function resolveChildrenNamespace(
  function toggleRecurse (line 2445) | function toggleRecurse(
  function needTransition (line 2458) | function needTransition(
  function traverseStaticChildren (line 2480) | function traverseStaticChildren(
  function getSequence (line 2523) | function getSequence(arr: number[]): number[] {
  function locateNonHydratedAsyncRoot (line 2564) | function locateNonHydratedAsyncRoot(
  function invalidateMount (line 2577) | function invalidateMount(hooks: LifecycleHook): void {
  function resolveAsyncComponentPlaceholder (line 2584) | function resolveAsyncComponentPlaceholder(anchorVnode: VNode) {

FILE: packages/runtime-core/src/rendererTemplateRef.ts
  function setRef (line 31) | function setRef(
  function invalidatePendingSetRef (line 209) | function invalidatePendingSetRef(rawRef: VNodeNormalizedRef) {

FILE: packages/runtime-core/src/scheduler.ts
  type SchedulerJobFlags (line 5) | enum SchedulerJobFlags {
  type SchedulerJob (line 27) | interface SchedulerJob extends Function {
  type SchedulerJobs (line 41) | type SchedulerJobs = SchedulerJob | SchedulerJob[]
  constant RECURSION_LIMIT (line 53) | const RECURSION_LIMIT = 100
  type CountMap (line 54) | type CountMap = Map<SchedulerJob, number>
  function nextTick (line 61) | function nextTick<T, R>(
  function findInsertionIndex (line 78) | function findInsertionIndex(id: number) {
  function queueJob (line 99) | function queueJob(job: SchedulerJob): void {
  function queueFlush (line 119) | function queueFlush() {
  function queuePostFlushCb (line 125) | function queuePostFlushCb(cb: SchedulerJobs): void {
  function flushPreFlushCbs (line 142) | function flushPreFlushCbs(
  function flushPostFlushCbs (line 173) | function flushPostFlushCbs(seen?: CountMap): void {
  function flushJobs (line 214) | function flushJobs(seen?: CountMap) {
  function checkRecursiveUpdates (line 270) | function checkRecursiveUpdates(seen: CountMap, fn: SchedulerJob) {

FILE: packages/runtime-core/src/vnode.ts
  type VNodeTypes (line 73) | type VNodeTypes =
  type VNodeRef (line 86) | type VNodeRef =
  type VNodeNormalizedRefAtom (line 94) | type VNodeNormalizedRefAtom = {
  type VNodeNormalizedRef (line 113) | type VNodeNormalizedRef =
  type VNodeMountHook (line 117) | type VNodeMountHook = (vnode: VNode) => void
  type VNodeUpdateHook (line 118) | type VNodeUpdateHook = (vnode: VNode, oldVNode: VNode) => void
  type VNodeHook (line 119) | type VNodeHook =
  type VNodeProps (line 126) | type VNodeProps = {
  type VNodeChildAtom (line 141) | type VNodeChildAtom =
  type VNodeArrayChildren (line 150) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>
  type VNodeChild (line 152) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren
  type VNodeNormalizedChildren (line 154) | type VNodeNormalizedChildren =
  type VNode (line 160) | interface VNode<
  function openBlock (line 283) | function openBlock(disableTracking = false): void {
  function closeBlock (line 287) | function closeBlock(): void {
  function setBlockTracking (line 314) | function setBlockTracking(value: number, inVOnce = false): void {
  function setupBlock (line 323) | function setupBlock(vnode: VNode) {
  function createElementBlock (line 340) | function createElementBlock(
  function createBlock (line 368) | function createBlock(
  function isVNode (line 387) | function isVNode(value: any): value is VNode {
  function isSameVNodeType (line 391) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {
  function transformVNodeArgs (line 419) | function transformVNodeArgs(
  function createBaseVNode (line 455) | function createBaseVNode(
  function _createVNode (line 547) | function _createVNode(
  function guardReactiveProps (line 646) | function guardReactiveProps(
  function cloneVNode (line 653) | function cloneVNode<T, U>(
  function deepCloneVNode (line 744) | function deepCloneVNode(vnode: VNode): VNode {
  function createTextVNode (line 755) | function createTextVNode(text: string = ' ', flag: number = 0): VNode {
  function createStaticVNode (line 762) | function createStaticVNode(
  function createCommentVNode (line 776) | function createCommentVNode(
  function normalizeVNode (line 787) | function normalizeVNode(child: VNodeChild): VNode {
  function cloneIfMounted (line 810) | function cloneIfMounted(child: VNode): VNode {
  function normalizeChildren (line 817) | function normalizeChildren(vnode: VNode, children: unknown): void {
  function mergeProps (line 872) | function mergeProps(...args: (Data & VNodeProps)[]): Data {
  function invokeVNodeHook (line 903) | function invokeVNodeHook(

FILE: packages/runtime-core/src/warning.ts
  type ComponentVNode (line 12) | type ComponentVNode = VNode & {
  type TraceEntry (line 18) | type TraceEntry = {
  type ComponentTraceStack (line 23) | type ComponentTraceStack = TraceEntry[]
  function pushWarningContext (line 25) | function pushWarningContext(vnode: VNode): void {
  function popWarningContext (line 29) | function popWarningContext(): void {
  function warn (line 35) | function warn(msg: string, ...args: any[]): void {
  function getComponentTrace (line 81) | function getComponentTrace(): ComponentTraceStack {
  function formatTrace (line 111) | function formatTrace(trace: ComponentTraceStack): any[] {
  function formatTraceEntry (line 119) | function formatTraceEntry({ vnode, recurseCount }: TraceEntry): any[] {
  function formatProps (line 134) | function formatProps(props: Data): any[] {
  function formatProp (line 148) | function formatProp(key: string, value: unknown, raw?: boolean): any {
  function assertNumber (line 172) | function assertNumber(val: unknown, type: string): void {

FILE: packages/runtime-core/types/globalComponents.d.ts
  type GlobalComponents (line 5) | interface GlobalComponents {

FILE: packages/runtime-core/types/scriptSetupHelpers.d.ts
  type _defineProps (line 3) | type _defineProps = typeof defineProps
  type _defineEmits (line 4) | type _defineEmits = typeof defineEmits
  type _defineExpose (line 5) | type _defineExpose = typeof defineExpose
  type _defineOptions (line 6) | type _defineOptions = typeof defineOptions
  type _defineSlots (line 7) | type _defineSlots = typeof defineSlots
  type _defineModel (line 8) | type _defineModel = typeof defineModel
  type _withDefaults (line 9) | type _withDefaults = typeof withDefaults

FILE: packages/runtime-dom/__tests__/createApp.spec.ts
  method render (line 8) | render() {
  method data (line 19) | data() {

FILE: packages/runtime-dom/__tests__/customElement.spec.ts
  method render (line 41) | render() {
  method setup (line 79) | setup(props, { emit }) {
  method setup (line 94) | setup() {
  method render (line 158) | render() {
  method render (line 256) | render() {
  method render (line 273) | render() {
  method render (line 312) | render() {
  method setup (line 329) | setup(props) {
  method render (line 333) | render() {
  method setup (line 355) | setup(props) {
  method render (line 359) | render() {
  method render (line 375) | render() {
  method render (line 392) | render() {
  method render (line 414) | render() {
  method render (line 433) | render() {
  method render (line 483) | render() {
  meth
Condensed preview — 697 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,654K chars).
[
  {
    "path": ".git-blame-ignore-revs",
    "chars": 83,
    "preview": "# update prettier & eslint config (#9162)\nbfe6b459d3a0ce6168611ee1ac7e6e789709df9d\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 41,
    "preview": "github: yyx990803\nopen_collective: vuejs\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 3128,
    "preview": "name: \"\\U0001F41E Bug report\"\ndescription: Create a report to help us improve\nbody:\n  - type: markdown\n    attributes:\n "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 743,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Feature Request\n    url: https://github.com/vuejs/rfcs/discussions\n"
  },
  {
    "path": ".github/bug-repro-guidelines.md",
    "chars": 1857,
    "preview": "## About Bug Reproductions\n\nA bug reproduction is a piece of code that can run and demonstrate how a bug can happen.\n\n##"
  },
  {
    "path": ".github/commit-convention.md",
    "chars": 2942,
    "preview": "## Git Commit Message Convention\n\n> This is adapted from [Angular's commit convention](https://github.com/conventional-c"
  },
  {
    "path": ".github/contributing.md",
    "chars": 19543,
    "preview": "# Vue.js Contributing Guide\n\nHi! I'm really excited that you are interested in contributing to Vue.js. Before submitting"
  },
  {
    "path": ".github/git-branch-workflow.excalidraw",
    "chars": 43203,
    "preview": "{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"https://excalidraw.com\",\n  \"elements\": [\n    {\n      \"type\": \"arr"
  },
  {
    "path": ".github/maintenance.md",
    "chars": 9265,
    "preview": "# Vue Core Maintenance Handbook\n\nUnlike [contributing.md](./contributing.md), which targets external contributors, this "
  },
  {
    "path": ".github/renovate.json5",
    "chars": 1610,
    "preview": "{\n  $schema: 'https://docs.renovatebot.com/renovate-schema.json',\n  extends: ['config:recommended', 'schedule:weekly', '"
  },
  {
    "path": ".github/workflows/autofix.yml",
    "chars": 692,
    "preview": "name: autofix.ci\n\non:\n  pull_request:\npermissions:\n  contents: read\n\njobs:\n  autofix:\n    runs-on: ubuntu-latest\n    env"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 1022,
    "preview": "name: 'ci'\non:\n  push:\n    branches:\n      - '**'\n    tags:\n      - '!**'\n  pull_request:\n    branches:\n      - main\n   "
  },
  {
    "path": ".github/workflows/close-cant-reproduce-issues.yml",
    "chars": 456,
    "preview": "name: Auto close issues with \"can't reproduce\" label\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n\npermissions:\n  issues: wr"
  },
  {
    "path": ".github/workflows/ecosystem-ci-trigger.yml",
    "chars": 3073,
    "preview": "name: ecosystem-ci trigger\n\non:\n  issue_comment:\n    types: [created]\n\njobs:\n  trigger:\n    runs-on: ubuntu-latest\n    i"
  },
  {
    "path": ".github/workflows/lock-closed-issues.yml",
    "chars": 398,
    "preview": "name: Lock Closed Issues\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n\npermissions:\n  issues: write\n\njobs:\n  action:\n    if:"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 1506,
    "preview": "name: Release\n\non:\n  push:\n    tags:\n      - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10\n\njobs:\n  test:\n    "
  },
  {
    "path": ".github/workflows/size-data.yml",
    "chars": 1014,
    "preview": "name: size data\n\non:\n  push:\n    branches:\n      - main\n      - minor\n  pull_request:\n    branches:\n      - main\n      -"
  },
  {
    "path": ".github/workflows/size-report.yml",
    "chars": 2152,
    "preview": "name: size report\n\non:\n  workflow_run:\n    workflows: ['size data']\n    types:\n      - completed\n\npermissions:\n  content"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 2426,
    "preview": "name: 'test'\n\non: workflow_call\n\npermissions:\n  contents: read # to fetch code (actions/checkout)\n\njobs:\n  unit-test:\n  "
  },
  {
    "path": ".gitignore",
    "chars": 128,
    "preview": "dist\n.DS_Store\nnode_modules\ncoverage\ntemp\nexplorations\nTODOs.md\n*.log\n.idea\n.eslintcache\ndts-build/packages\n*.tsbuildinf"
  },
  {
    "path": ".node-version",
    "chars": 5,
    "preview": "lts/*"
  },
  {
    "path": ".prettierignore",
    "chars": 34,
    "preview": "dist\npnpm-lock.yaml\nCHANGELOG*.md\n"
  },
  {
    "path": ".prettierrc",
    "chars": 69,
    "preview": "{\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"arrowParens\": \"avoid\"\n}\n"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 45,
    "preview": "{\n  \"recommendations\": [\"vitest.explorer\"]\n}\n"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 637,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 506,
    "preview": "{\n  // Use the project's typescript version\n  \"typescript.tsdk\": \"node_modules/typescript/lib\",\n\n  \"cSpell.enabledLangua"
  },
  {
    "path": ".well-known/funding-manifest-urls",
    "chars": 31,
    "preview": "https://vuejs.org/funding.json\n"
  },
  {
    "path": "BACKERS.md",
    "chars": 496,
    "preview": "<h1 align=\"center\">Sponsors &amp; Backers</h1>\n\nVue.js is an MIT-licensed open source project with its ongoing developme"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 112075,
    "preview": "## [3.5.30](https://github.com/vuejs/core/compare/v3.5.29...v3.5.30) (2026-03-09)\n\n\n### Bug Fixes\n\n* **compat:** add `en"
  },
  {
    "path": "FUNDING.json",
    "chars": 107,
    "preview": "{\n  \"drips\": {\n    \"ethereum\": {\n      \"ownedBy\": \"0x5393BdeA2a020769256d9f337B0fc81a2F64850A\"\n    }\n  }\n}\n"
  },
  {
    "path": "LICENSE",
    "chars": 1112,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2018-present, Yuxi (Evan) You and Vue contributors\n\nPermission is hereby granted, f"
  },
  {
    "path": "README.md",
    "chars": 2487,
    "preview": "# vuejs/core [![npm](https://img.shields.io/npm/v/vue.svg)](https://www.npmjs.com/package/vue) [![build status](https://"
  },
  {
    "path": "SECURITY.md",
    "chars": 1257,
    "preview": "# Reporting a Vulnerability\n\nTo report a vulnerability, please email security@vuejs.org.\n\nWhile the discovery of new vul"
  },
  {
    "path": "changelogs/CHANGELOG-3.0.md",
    "chars": 183058,
    "preview": "## [3.0.11](https://github.com/vuejs/core/compare/v3.0.10...v3.0.11) (2021-04-01)\n\n### Bug Fixes\n\n- **compiler-sfc:** fi"
  },
  {
    "path": "changelogs/CHANGELOG-3.1.md",
    "chars": 43064,
    "preview": "## [3.1.5](https://github.com/vuejs/core/compare/v3.1.4...v3.1.5) (2021-07-16)\n\n### Bug Fixes\n\n- **compat:** fix props c"
  },
  {
    "path": "changelogs/CHANGELOG-3.2.md",
    "chars": 121594,
    "preview": "## [3.2.47](https://github.com/vuejs/core/compare/v3.2.46...v3.2.47) (2023-02-02)\n\n\n### Bug Fixes\n\n* **build:** enforce "
  },
  {
    "path": "changelogs/CHANGELOG-3.3.md",
    "chars": 64447,
    "preview": "## [3.3.13](https://github.com/vuejs/core/compare/v3.3.12...v3.3.13) (2023-12-19)\n\n\n### Bug Fixes\n\n* **compiler-core:** "
  },
  {
    "path": "changelogs/CHANGELOG-3.4.md",
    "chars": 96825,
    "preview": "## [3.4.38](https://github.com/vuejs/core/compare/v3.4.37...v3.4.38) (2024-08-15)\n\n\n### Bug Fixes\n\n* **build:** revert e"
  },
  {
    "path": "eslint.config.js",
    "chars": 5130,
    "preview": "import importX from 'eslint-plugin-import-x'\nimport tseslint from 'typescript-eslint'\nimport { defineConfig } from 'esli"
  },
  {
    "path": "netlify.toml",
    "chars": 98,
    "preview": "[build.environment]\n  NODE_VERSION = \"24\"\n  NPM_FLAGS = \"--version\" # prevent Netlify npm install\n"
  },
  {
    "path": "package.json",
    "chars": 5045,
    "preview": "{\n  \"private\": true,\n  \"version\": \"3.5.30\",\n  \"packageManager\": \"pnpm@10.31.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \""
  },
  {
    "path": "packages/compiler-core/LICENSE",
    "chars": 1091,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2018-present, Yuxi (Evan) You\n\nPermission is hereby granted, free of charge, to any"
  },
  {
    "path": "packages/compiler-core/README.md",
    "chars": 21,
    "preview": "# @vue/compiler-core\n"
  },
  {
    "path": "packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap",
    "chars": 4270,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: codegen > ArrayExpression 1`] = `\n\"\nre"
  },
  {
    "path": "packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap",
    "chars": 3647,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: integration tests > function mode 1`] "
  },
  {
    "path": "packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap",
    "chars": 101157,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: parse > Edge Cases > invalid html 1`] "
  },
  {
    "path": "packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap",
    "chars": 2135,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`scopeId compiler support > should wrap default s"
  },
  {
    "path": "packages/compiler-core/__tests__/codegen.spec.ts",
    "chars": 20910,
    "preview": "import {\n  ConstantTypes,\n  type DirectiveArguments,\n  type ForCodegenNode,\n  type IfConditionalExpression,\n  NodeTypes,"
  },
  {
    "path": "packages/compiler-core/__tests__/compile.spec.ts",
    "chars": 8800,
    "preview": "import { baseCompile as compile } from '../src'\nimport { type RawSourceMap, SourceMapConsumer } from 'source-map-js'\n\nde"
  },
  {
    "path": "packages/compiler-core/__tests__/parse.spec.ts",
    "chars": 101340,
    "preview": "import type { ParserOptions } from '../src/options'\nimport { ErrorCodes } from '../src/errors'\nimport {\n  type CommentNo"
  },
  {
    "path": "packages/compiler-core/__tests__/scopeId.spec.ts",
    "chars": 1564,
    "preview": "import { baseCompile } from '../src/compile'\n\n/**\n * Ensure all slot functions are wrapped with _withCtx\n * which sets t"
  },
  {
    "path": "packages/compiler-core/__tests__/testUtils.ts",
    "chars": 2285,
    "preview": "import {\n  type ElementNode,\n  ElementTypes,\n  Namespaces,\n  NodeTypes,\n  type Property,\n  type SimpleExpressionNode,\n  "
  },
  {
    "path": "packages/compiler-core/__tests__/transform.spec.ts",
    "chars": 10559,
    "preview": "import { baseParse } from '../src/parser'\nimport { type NodeTransform, transform } from '../src/transform'\nimport {\n  ty"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/cacheStatic.spec.ts.snap",
    "chars": 16804,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: cacheStatic transform > cache element "
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap",
    "chars": 8170,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-for > codegen > basic v-for 1`] = `\n"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap",
    "chars": 3726,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: expression transform > bindingMetadata"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/transformText.spec.ts.snap",
    "chars": 3940,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: transform text > <template v-for> 1`] "
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vFor.spec.ts.snap",
    "chars": 8170,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-for > codegen > basic v-for 1`] = `\n"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap",
    "chars": 4627,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-if > codegen > basic v-if 1`] = `\n\"c"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vMemo.spec.ts.snap",
    "chars": 4575,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-memo transform > element v-for key e"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap",
    "chars": 3725,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: transform v-model > compound expressio"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap",
    "chars": 2917,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-once transform > as root node 1`] = "
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap",
    "chars": 12137,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: transform component slots > dynamicall"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/cacheStatic.spec.ts",
    "chars": 23489,
    "preview": "import {\n  type CompilerOptions,\n  ConstantTypes,\n  type ElementNode,\n  type ForNode,\n  type IfNode,\n  NodeTypes,\n  type"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/noopDirectiveTransform.spec.ts",
    "chars": 762,
    "preview": "import {\n  type ElementNode,\n  type VNodeCall,\n  noopDirectiveTransform,\n  baseParse as parse,\n  transform,\n} from '../."
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/transformElement.spec.ts",
    "chars": 38925,
    "preview": "import {\n  BindingTypes,\n  type CompilerOptions,\n  ErrorCodes,\n  type NodeTransform,\n  baseCompile,\n  baseParse as parse"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts",
    "chars": 21277,
    "preview": "import {\n  BindingTypes,\n  type CompilerOptions,\n  ConstantTypes,\n  type DirectiveNode,\n  type ElementNode,\n  type Inter"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts",
    "chars": 10780,
    "preview": "import {\n  type CompilerOptions,\n  type ElementNode,\n  ErrorCodes,\n  NodeTypes,\n  baseParse as parse,\n  transform,\n} fro"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/transformText.spec.ts",
    "chars": 7580,
    "preview": "import {\n  type CompilerOptions,\n  type ElementNode,\n  type ForNode,\n  NodeTypes,\n  generate,\n  isWhitespaceText,\n  base"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vBind.spec.ts",
    "chars": 11616,
    "preview": "import {\n  type CallExpression,\n  type CompilerOptions,\n  type ElementNode,\n  ErrorCodes,\n  NodeTypes,\n  type ObjectExpr"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vFor.spec.ts",
    "chars": 36814,
    "preview": "import { baseParse as parse } from '../../src/parser'\nimport { transform } from '../../src/transform'\nimport { transform"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vIf.spec.ts",
    "chars": 26496,
    "preview": "import { baseParse as parse } from '../../src/parser'\nimport { transform } from '../../src/transform'\nimport { transform"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vMemo.spec.ts",
    "chars": 1524,
    "preview": "import { baseCompile } from '../../src'\n\ndescribe('compiler: v-memo transform', () => {\n  function compile(content: stri"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vModel.spec.ts",
    "chars": 15832,
    "preview": "import {\n  BindingTypes,\n  type CompilerOptions,\n  type ComponentNode,\n  type ElementNode,\n  type ForNode,\n  NORMALIZE_P"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vOn.spec.ts",
    "chars": 21462,
    "preview": "import {\n  type CompilerOptions,\n  type ElementNode,\n  ErrorCodes,\n  NodeTypes,\n  type ObjectExpression,\n  TO_HANDLER_KE"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vOnce.spec.ts",
    "chars": 4467,
    "preview": "import {\n  type CompilerOptions,\n  NodeTypes,\n  generate,\n  getBaseTransformPreset,\n  baseParse as parse,\n  transform,\n}"
  },
  {
    "path": "packages/compiler-core/__tests__/transforms/vSlot.spec.ts",
    "chars": 31486,
    "preview": "import {\n  type CompilerOptions,\n  type ComponentNode,\n  type ElementNode,\n  ErrorCodes,\n  type ForNode,\n  NodeTypes,\n  "
  },
  {
    "path": "packages/compiler-core/__tests__/utils.spec.ts",
    "chars": 4364,
    "preview": "import { babelParse, walkIdentifiers } from '@vue/compiler-sfc'\nimport {\n  type ExpressionNode,\n  type TransformContext,"
  },
  {
    "path": "packages/compiler-core/index.js",
    "chars": 191,
    "preview": "'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./dist/compiler-core.cjs.prod.js'"
  },
  {
    "path": "packages/compiler-core/package.json",
    "chars": 1400,
    "preview": "{\n  \"name\": \"@vue/compiler-core\",\n  \"version\": \"3.5.30\",\n  \"description\": \"@vue/compiler-core\",\n  \"main\": \"index.js\",\n  "
  },
  {
    "path": "packages/compiler-core/src/ast.ts",
    "chars": 21509,
    "preview": "import { type PatchFlags, isString } from '@vue/shared'\nimport {\n  CREATE_BLOCK,\n  CREATE_ELEMENT_BLOCK,\n  CREATE_ELEMEN"
  },
  {
    "path": "packages/compiler-core/src/babelUtils.ts",
    "chars": 14500,
    "preview": "// should only use types from @babel/types\n// do not import runtime methods\nimport type {\n  BlockStatement,\n  ForInState"
  },
  {
    "path": "packages/compiler-core/src/codegen.ts",
    "chars": 29026,
    "preview": "import type { CodegenOptions } from './options'\nimport {\n  type ArrayExpression,\n  type AssignmentExpression,\n  type Cac"
  },
  {
    "path": "packages/compiler-core/src/compat/compatConfig.ts",
    "chars": 5347,
    "preview": "import type { SourceLocation } from '../ast'\nimport type { CompilerError } from '../errors'\nimport type { MergedParserOp"
  },
  {
    "path": "packages/compiler-core/src/compat/transformFilter.ts",
    "chars": 4907,
    "preview": "import { RESOLVE_FILTER } from '../runtimeHelpers'\nimport {\n  type AttributeNode,\n  type DirectiveNode,\n  type Expressio"
  },
  {
    "path": "packages/compiler-core/src/compile.ts",
    "chars": 3917,
    "preview": "import type { CompilerOptions } from './options'\nimport { baseParse } from './parser'\nimport {\n  type DirectiveTransform"
  },
  {
    "path": "packages/compiler-core/src/errors.ts",
    "chars": 8558,
    "preview": "import type { SourceLocation } from './ast'\n\nexport interface CompilerError extends SyntaxError {\n  code: number | strin"
  },
  {
    "path": "packages/compiler-core/src/index.ts",
    "chars": 2098,
    "preview": "export { baseCompile } from './compile'\n\n// Also expose lower level APIs & types\nexport {\n  type CompilerOptions,\n  type"
  },
  {
    "path": "packages/compiler-core/src/options.ts",
    "chars": 10583,
    "preview": "import type {\n  ElementNode,\n  Namespace,\n  Namespaces,\n  ParentNode,\n  TemplateChildNode,\n} from './ast'\nimport type { "
  },
  {
    "path": "packages/compiler-core/src/parser.ts",
    "chars": 30039,
    "preview": "import {\n  type AttributeNode,\n  ConstantTypes,\n  type DirectiveNode,\n  type ElementNode,\n  ElementTypes,\n  type ForPars"
  },
  {
    "path": "packages/compiler-core/src/runtimeHelpers.ts",
    "chars": 5210,
    "preview": "export const FRAGMENT: unique symbol = Symbol(__DEV__ ? `Fragment` : ``)\nexport const TELEPORT: unique symbol = Symbol(_"
  },
  {
    "path": "packages/compiler-core/src/tokenizer.ts",
    "chars": 36538,
    "preview": "/**\n * This Tokenizer is adapted from htmlparser2 under the MIT License listed at\n * https://github.com/fb55/htmlparser2"
  },
  {
    "path": "packages/compiler-core/src/transform.ts",
    "chars": 14060,
    "preview": "import type { TransformOptions } from './options'\nimport {\n  type ArrayExpression,\n  type CacheExpression,\n  ConstantTyp"
  },
  {
    "path": "packages/compiler-core/src/transforms/cacheStatic.ts",
    "chars": 15142,
    "preview": "import {\n  type CacheExpression,\n  type CallExpression,\n  type ComponentNode,\n  ConstantTypes,\n  ElementTypes,\n  type Ex"
  },
  {
    "path": "packages/compiler-core/src/transforms/noopDirectiveTransform.ts",
    "chars": 136,
    "preview": "import type { DirectiveTransform } from '../transform'\n\nexport const noopDirectiveTransform: DirectiveTransform = () => "
  },
  {
    "path": "packages/compiler-core/src/transforms/transformElement.ts",
    "chars": 28689,
    "preview": "import type { NodeTransform, TransformContext } from '../transform'\nimport {\n  type ArrayExpression,\n  type CallExpressi"
  },
  {
    "path": "packages/compiler-core/src/transforms/transformExpression.ts",
    "chars": 13941,
    "preview": "// - Parse expressions in templates into compound expressions so that each\n//   identifier gets more accurate source-map"
  },
  {
    "path": "packages/compiler-core/src/transforms/transformSlotOutlet.ts",
    "chars": 3232,
    "preview": "import type { NodeTransform, TransformContext } from '../transform'\nimport {\n  type CallExpression,\n  type ExpressionNod"
  },
  {
    "path": "packages/compiler-core/src/transforms/transformText.ts",
    "chars": 4320,
    "preview": "import type { NodeTransform } from '../transform'\nimport {\n  type CallExpression,\n  type CompoundExpressionNode,\n  Const"
  },
  {
    "path": "packages/compiler-core/src/transforms/transformVBindShorthand.ts",
    "chars": 1680,
    "preview": "import { camelize } from '@vue/shared'\nimport {\n  NodeTypes,\n  type SimpleExpressionNode,\n  createSimpleExpression,\n} fr"
  },
  {
    "path": "packages/compiler-core/src/transforms/vBind.ts",
    "chars": 2479,
    "preview": "import type { DirectiveTransform } from '../transform'\nimport {\n  type ExpressionNode,\n  NodeTypes,\n  createObjectProper"
  },
  {
    "path": "packages/compiler-core/src/transforms/vFor.ts",
    "chars": 11772,
    "preview": "import {\n  type NodeTransform,\n  type TransformContext,\n  createStructuralDirectiveTransform,\n} from '../transform'\nimpo"
  },
  {
    "path": "packages/compiler-core/src/transforms/vIf.ts",
    "chars": 10347,
    "preview": "import {\n  type NodeTransform,\n  type TransformContext,\n  createStructuralDirectiveTransform,\n  traverseNode,\n} from '.."
  },
  {
    "path": "packages/compiler-core/src/transforms/vMemo.ts",
    "chars": 1280,
    "preview": "import type { NodeTransform } from '../transform'\nimport { findDir } from '../utils'\nimport {\n  ElementTypes,\n  type Mem"
  },
  {
    "path": "packages/compiler-core/src/transforms/vModel.ts",
    "chars": 4958,
    "preview": "import type { DirectiveTransform } from '../transform'\nimport {\n  ConstantTypes,\n  ElementTypes,\n  type ExpressionNode,\n"
  },
  {
    "path": "packages/compiler-core/src/transforms/vOn.ts",
    "chars": 6429,
    "preview": "import type { DirectiveTransform, DirectiveTransformResult } from '../transform'\nimport {\n  type DirectiveNode,\n  Elemen"
  },
  {
    "path": "packages/compiler-core/src/transforms/vOnce.ts",
    "chars": 860,
    "preview": "import type { NodeTransform } from '../transform'\nimport { findDir } from '../utils'\nimport { type ElementNode, type For"
  },
  {
    "path": "packages/compiler-core/src/transforms/vSlot.ts",
    "chars": 12832,
    "preview": "import {\n  type CallExpression,\n  type ConditionalExpression,\n  type DirectiveNode,\n  type ElementNode,\n  ElementTypes,\n"
  },
  {
    "path": "packages/compiler-core/src/utils.ts",
    "chars": 17026,
    "preview": "import {\n  type BlockCodegenNode,\n  type CacheExpression,\n  type CallExpression,\n  type DirectiveNode,\n  type ElementNod"
  },
  {
    "path": "packages/compiler-core/src/validateExpression.ts",
    "chars": 1834,
    "preview": "import type { SimpleExpressionNode } from './ast'\nimport type { TransformContext } from './transform'\nimport { ErrorCode"
  },
  {
    "path": "packages/compiler-dom/LICENSE",
    "chars": 1091,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2018-present, Yuxi (Evan) You\n\nPermission is hereby granted, free of charge, to any"
  },
  {
    "path": "packages/compiler-dom/README.md",
    "chars": 20,
    "preview": "# @vue/compiler-dom\n"
  },
  {
    "path": "packages/compiler-dom/__tests__/__snapshots__/index.spec.ts.snap",
    "chars": 972,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compile > should contain standard transforms 1`]"
  },
  {
    "path": "packages/compiler-dom/__tests__/decoderHtmlBrowser.spec.ts",
    "chars": 1556,
    "preview": "/**\n * @vitest-environment jsdom\n */\nimport { decodeHtmlBrowser } from '../src/decodeHtmlBrowser'\n\ndescribe('decodeHtmlB"
  },
  {
    "path": "packages/compiler-dom/__tests__/index.spec.ts",
    "chars": 368,
    "preview": "import { compile } from '../src'\n\ndescribe('compile', () => {\n  it('should contain standard transforms', () => {\n    con"
  },
  {
    "path": "packages/compiler-dom/__tests__/parse.spec.ts",
    "chars": 17091,
    "preview": "import {\n  type AttributeNode,\n  ConstantTypes,\n  type ElementNode,\n  ElementTypes,\n  type InterpolationNode,\n  Namespac"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/Transition.spec.ts",
    "chars": 3710,
    "preview": "import { compile } from '../../src'\n\ndescribe('Transition multi children warnings', () => {\n  function checkWarning(\n   "
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/__snapshots__/Transition.spec.ts.snap",
    "chars": 2396,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`comments and preserved whitespace are ignored 1`"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/__snapshots__/stringifyStatic.spec.ts.snap",
    "chars": 11532,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`stringify static html > eligible content (elemen"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/__snapshots__/vModel.spec.ts.snap",
    "chars": 7845,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: transform v-model > errors > should al"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/__snapshots__/vShow.spec.ts.snap",
    "chars": 476,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler: v-show transform > simple expression 1"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/ignoreSideEffectTags.spec.ts",
    "chars": 764,
    "preview": "import { type CompilerError, compile } from '../../src'\n\ndescribe('compiler: ignore side effect tags', () => {\n  it('sho"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts",
    "chars": 16134,
    "preview": "import {\n  CREATE_STATIC,\n  ConstantTypes,\n  NodeTypes,\n  compile,\n  createSimpleExpression,\n} from '../../src'\nimport {"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/transformStyle.spec.ts",
    "chars": 2036,
    "preview": "import {\n  type CompilerOptions,\n  type ElementNode,\n  NodeTypes,\n  type VNodeCall,\n  baseParse as parse,\n  transform,\n}"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/vHtml.spec.ts",
    "chars": 2056,
    "preview": "import {\n  type CompilerOptions,\n  type PlainElementNode,\n  baseParse as parse,\n  transform,\n} from '@vue/compiler-core'"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/vModel.spec.ts",
    "chars": 5797,
    "preview": "import {\n  type CompilerOptions,\n  generate,\n  baseParse as parse,\n  transform,\n  transformVBindShorthand,\n} from '@vue/"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/vOn.spec.ts",
    "chars": 8155,
    "preview": "import {\n  BindingTypes,\n  type CompilerOptions,\n  type ElementNode,\n  NodeTypes,\n  type ObjectExpression,\n  TO_HANDLER_"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/vShow.spec.ts",
    "chars": 1100,
    "preview": "import {\n  type CompilerOptions,\n  generate,\n  baseParse as parse,\n  transform,\n} from '@vue/compiler-core'\nimport { tra"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/vText.spec.ts",
    "chars": 2160,
    "preview": "import {\n  type CompilerOptions,\n  type PlainElementNode,\n  baseParse as parse,\n  transform,\n} from '@vue/compiler-core'"
  },
  {
    "path": "packages/compiler-dom/__tests__/transforms/validateHtmlNesting.spec.ts",
    "chars": 6690,
    "preview": "import { type CompilerError, compile } from '../../src'\nimport { isValidHTMLNesting } from '../../src/htmlNesting'\n\ndesc"
  },
  {
    "path": "packages/compiler-dom/index.js",
    "chars": 189,
    "preview": "'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./dist/compiler-dom.cjs.prod.js')"
  },
  {
    "path": "packages/compiler-dom/package.json",
    "chars": 1391,
    "preview": "{\n  \"name\": \"@vue/compiler-dom\",\n  \"version\": \"3.5.30\",\n  \"description\": \"@vue/compiler-dom\",\n  \"main\": \"index.js\",\n  \"m"
  },
  {
    "path": "packages/compiler-dom/src/decodeHtmlBrowser.ts",
    "chars": 426,
    "preview": "/* eslint-disable no-restricted-globals */\n\nlet decoder: HTMLDivElement\n\nexport function decodeHtmlBrowser(raw: string, "
  },
  {
    "path": "packages/compiler-dom/src/errors.ts",
    "chars": 2517,
    "preview": "import {\n  type CompilerError,\n  ErrorCodes,\n  type SourceLocation,\n  createCompilerError,\n} from '@vue/compiler-core'\n\n"
  },
  {
    "path": "packages/compiler-dom/src/htmlNesting.ts",
    "chars": 4438,
    "preview": "/**\n * Copied from https://github.com/MananTank/validate-html-nesting\n * with ISC license\n *\n * To avoid runtime depende"
  },
  {
    "path": "packages/compiler-dom/src/index.ts",
    "chars": 2403,
    "preview": "import {\n  type CodegenResult,\n  type CompilerOptions,\n  type DirectiveTransform,\n  type NodeTransform,\n  type ParserOpt"
  },
  {
    "path": "packages/compiler-dom/src/parserOptions.ts",
    "chars": 2106,
    "preview": "import { Namespaces, NodeTypes, type ParserOptions } from '@vue/compiler-core'\nimport { isHTMLTag, isMathMLTag, isSVGTag"
  },
  {
    "path": "packages/compiler-dom/src/runtimeHelpers.ts",
    "chars": 1293,
    "preview": "import { registerRuntimeHelpers } from '@vue/compiler-core'\n\nexport const V_MODEL_RADIO: unique symbol = Symbol(__DEV__ "
  },
  {
    "path": "packages/compiler-dom/src/transforms/Transition.ts",
    "chars": 2081,
    "preview": "import {\n  type ComponentNode,\n  ElementTypes,\n  type IfBranchNode,\n  type NodeTransform,\n  NodeTypes,\n  isCommentOrWhit"
  },
  {
    "path": "packages/compiler-dom/src/transforms/ignoreSideEffectTags.ts",
    "chars": 560,
    "preview": "import { ElementTypes, type NodeTransform, NodeTypes } from '@vue/compiler-core'\nimport { DOMErrorCodes, createDOMCompil"
  },
  {
    "path": "packages/compiler-dom/src/transforms/stringifyStatic.ts",
    "chars": 12910,
    "preview": "/**\n * This module is Node-only.\n */\nimport {\n  CREATE_STATIC,\n  type CacheExpression,\n  ConstantTypes,\n  type ElementNo"
  },
  {
    "path": "packages/compiler-dom/src/transforms/transformStyle.ts",
    "chars": 1348,
    "preview": "import {\n  ConstantTypes,\n  type NodeTransform,\n  NodeTypes,\n  type SimpleExpressionNode,\n  type SourceLocation,\n  creat"
  },
  {
    "path": "packages/compiler-dom/src/transforms/vHtml.ts",
    "chars": 744,
    "preview": "import {\n  type DirectiveTransform,\n  createObjectProperty,\n  createSimpleExpression,\n} from '@vue/compiler-core'\nimport"
  },
  {
    "path": "packages/compiler-dom/src/transforms/vModel.ts",
    "chars": 3439,
    "preview": "import {\n  type DirectiveTransform,\n  ElementTypes,\n  NodeTypes,\n  transformModel as baseTransform,\n  findDir,\n  findPro"
  },
  {
    "path": "packages/compiler-dom/src/transforms/vOn.ts",
    "chars": 4481,
    "preview": "import {\n  CompilerDeprecationTypes,\n  type DirectiveTransform,\n  type ExpressionNode,\n  NodeTypes,\n  type SimpleExpress"
  },
  {
    "path": "packages/compiler-dom/src/transforms/vShow.ts",
    "chars": 465,
    "preview": "import type { DirectiveTransform } from '@vue/compiler-core'\nimport { DOMErrorCodes, createDOMCompilerError } from '../e"
  },
  {
    "path": "packages/compiler-dom/src/transforms/vText.ts",
    "chars": 1031,
    "preview": "import {\n  type DirectiveTransform,\n  TO_DISPLAY_STRING,\n  createCallExpression,\n  createObjectProperty,\n  createSimpleE"
  },
  {
    "path": "packages/compiler-dom/src/transforms/validateHtmlNesting.ts",
    "chars": 843,
    "preview": "import {\n  type CompilerError,\n  ElementTypes,\n  type NodeTransform,\n  NodeTypes,\n} from '@vue/compiler-core'\nimport { i"
  },
  {
    "path": "packages/compiler-sfc/LICENSE",
    "chars": 1091,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2018-present, Yuxi (Evan) You\n\nPermission is hereby granted, free of charge, to any"
  },
  {
    "path": "packages/compiler-sfc/README.md",
    "chars": 4445,
    "preview": "# @vue/compiler-sfc\n\n> Lower level utilities for compiling Vue Single File Components\n\n**Note: as of 3.2.13+, this packa"
  },
  {
    "path": "packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap",
    "chars": 33131,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`SFC analyze <script> bindings > auto name infere"
  },
  {
    "path": "packages/compiler-sfc/__tests__/__snapshots__/compileTemplate.spec.ts.snap",
    "chars": 2675,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`dynamic v-on + static v-on should merged 1`] = `"
  },
  {
    "path": "packages/compiler-sfc/__tests__/__snapshots__/cssVars.spec.ts.snap",
    "chars": 4821,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`CSS vars injection > codegen > <script> w/ defau"
  },
  {
    "path": "packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap",
    "chars": 5229,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler sfc: transform asset url > should allow"
  },
  {
    "path": "packages/compiler-sfc/__tests__/__snapshots__/templateTransformSrcset.spec.ts.snap",
    "chars": 10674,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`compiler sfc: transform srcset > srcset w/ expli"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineEmits.spec.ts.snap",
    "chars": 5938,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`defineEmits > basic usage 1`] = `\n\"\nexport defau"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineExpose.spec.ts.snap",
    "chars": 449,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`<script> after <script setup> the script content"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineModel.spec.ts.snap",
    "chars": 6926,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`defineModel() > basic usage 1`] = `\n\"import { us"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineOptions.spec.ts.snap",
    "chars": 429,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`defineOptions() > basic usage 1`] = `\n\"\nexport d"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap",
    "chars": 13782,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`defineProps > basic usage 1`] = `\n\"const bar = 1"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/definePropsDestructure.spec.ts.snap",
    "chars": 7952,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`sfc reactive props destructure > aliasing 1`] = "
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineSlots.spec.ts.snap",
    "chars": 847,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`defineSlots() > basic usage 1`] = `\n\"import { us"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/hoistStatic.spec.ts.snap",
    "chars": 2354,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`sfc hoist static > should enable when only scrip"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/__snapshots__/importUsageCheck.spec.ts.snap",
    "chars": 4354,
    "preview": "// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html\n\nexports[`TS annotations 1`] = `\n\"import { defineComponent"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineEmits.spec.ts",
    "chars": 6551,
    "preview": "import { BindingTypes } from '@vue/compiler-core'\nimport { assertCode, compileSFCScript as compile } from '../utils'\n\nde"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineExpose.spec.ts",
    "chars": 737,
    "preview": "import { assertCode, compileSFCScript as compile } from '../utils'\n\ntest('defineExpose()', () => {\n  const { content } ="
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineModel.spec.ts",
    "chars": 8607,
    "preview": "import { BindingTypes } from '@vue/compiler-core'\nimport { assertCode, compileSFCScript as compile } from '../utils'\n\nde"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineOptions.spec.ts",
    "chars": 3988,
    "preview": "import { assertCode, compileSFCScript as compile } from '../utils'\n\ndescribe('defineOptions()', () => {\n  test('basic us"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts",
    "chars": 25487,
    "preview": "import { BindingTypes } from '@vue/compiler-core'\nimport { assertCode, compileSFCScript as compile } from '../utils'\n\nde"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts",
    "chars": 17293,
    "preview": "import { BindingTypes } from '@vue/compiler-core'\nimport type { SFCScriptCompileOptions } from '../../src'\nimport { asse"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/defineSlots.spec.ts",
    "chars": 1026,
    "preview": "import { assertCode, compileSFCScript as compile } from '../utils'\n\ndescribe('defineSlots()', () => {\n  test('basic usag"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/hoistStatic.spec.ts",
    "chars": 5557,
    "preview": "import { BindingTypes } from '@vue/compiler-core'\nimport type { SFCScriptCompileOptions } from '../../src'\nimport { asse"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/importUsageCheck.spec.ts",
    "chars": 6852,
    "preview": "import { assertCode, compileSFCScript as compile } from '../utils'\n\n// in dev mode, declared bindings are returned as an"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts",
    "chars": 44824,
    "preview": "import { normalize } from 'node:path'\nimport type { Identifier } from '@babel/types'\nimport { type SFCScriptCompileOptio"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileScript.spec.ts",
    "chars": 42777,
    "preview": "import { vi } from 'vitest'\nimport { BindingTypes } from '@vue/compiler-core'\nimport {\n  assertCode,\n  compileSFCScript "
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileStyle.spec.ts",
    "chars": 13523,
    "preview": "import {\n  type SFCStyleCompileOptions,\n  compileStyle,\n  compileStyleAsync,\n} from '../src/compileStyle'\nimport path fr"
  },
  {
    "path": "packages/compiler-sfc/__tests__/compileTemplate.spec.ts",
    "chars": 13233,
    "preview": "import { type RawSourceMap, SourceMapConsumer } from 'source-map-js'\nimport { parse as babelParse } from '@babel/parser'"
  },
  {
    "path": "packages/compiler-sfc/__tests__/cssVars.spec.ts",
    "chars": 9271,
    "preview": "import { compileStyle, parse } from '../src'\nimport { assertCode, compileSFCScript, mockId } from './utils'\n\ndescribe('C"
  },
  {
    "path": "packages/compiler-sfc/__tests__/fixture/import.scss",
    "chars": 22,
    "preview": "div {\n  color: red;\n}\n"
  },
  {
    "path": "packages/compiler-sfc/__tests__/parse.spec.ts",
    "chars": 13958,
    "preview": "import { parse } from '../src'\nimport {\n  ElementTypes,\n  NodeTypes,\n  baseCompile,\n  createRoot,\n} from '@vue/compiler-"
  },
  {
    "path": "packages/compiler-sfc/__tests__/rewriteDefault.spec.ts",
    "chars": 7630,
    "preview": "import { rewriteDefault } from '../src'\n\ndescribe('compiler sfc: rewriteDefault', () => {\n  test('without export default"
  },
  {
    "path": "packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts",
    "chars": 5722,
    "preview": "import {\n  type TransformOptions,\n  baseParse,\n  generate,\n  transform,\n} from '@vue/compiler-core'\nimport {\n  type Asse"
  },
  {
    "path": "packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts",
    "chars": 3162,
    "preview": "import {\n  type TransformOptions,\n  baseParse,\n  generate,\n  transform,\n} from '@vue/compiler-core'\nimport {\n  createSrc"
  },
  {
    "path": "packages/compiler-sfc/__tests__/templateUtils.spec.ts",
    "chars": 1744,
    "preview": "import {\n  isDataUrl,\n  isExternalUrl,\n  isRelativeUrl,\n} from '../src/template/templateUtils'\n\ndescribe('compiler sfc:t"
  },
  {
    "path": "packages/compiler-sfc/__tests__/utils.ts",
    "chars": 1614,
    "preview": "import {\n  type SFCParseOptions,\n  type SFCScriptBlock,\n  type SFCScriptCompileOptions,\n  compileScript,\n  parse,\n} from"
  },
  {
    "path": "packages/compiler-sfc/package.json",
    "chars": 1735,
    "preview": "{\n  \"name\": \"@vue/compiler-sfc\",\n  \"version\": \"3.5.30\",\n  \"description\": \"@vue/compiler-sfc\",\n  \"main\": \"dist/compiler-s"
  },
  {
    "path": "packages/compiler-sfc/src/cache.ts",
    "chars": 269,
    "preview": "import { LRUCache } from 'lru-cache'\n\nexport function createCache<T extends {}>(\n  max = 500,\n): Map<string, T> | LRUCac"
  },
  {
    "path": "packages/compiler-sfc/src/compileScript.ts",
    "chars": 44649,
    "preview": "import {\n  BindingTypes,\n  UNREF,\n  isFunctionType,\n  unwrapTSNode,\n  walkIdentifiers,\n} from '@vue/compiler-dom'\nimport"
  },
  {
    "path": "packages/compiler-sfc/src/compileStyle.ts",
    "chars": 6345,
    "preview": "import postcss, {\n  type LazyResult,\n  type Message,\n  type ProcessOptions,\n  type Result,\n  type SourceMap,\n} from 'pos"
  },
  {
    "path": "packages/compiler-sfc/src/compileTemplate.ts",
    "chars": 9846,
    "preview": "import {\n  type CodegenResult,\n  type CompilerError,\n  type CompilerOptions,\n  type ElementNode,\n  type NodeTransform,\n "
  },
  {
    "path": "packages/compiler-sfc/src/index.ts",
    "chars": 2592,
    "preview": "export const version: string = __VERSION__\n\n// API\nexport { parse } from './parse'\nexport { compileTemplate } from './co"
  },
  {
    "path": "packages/compiler-sfc/src/parse.ts",
    "chars": 13215,
    "preview": "import {\n  type BindingMetadata,\n  type CodegenSourceMapGenerator,\n  type CompilerError,\n  type ElementNode,\n  NodeTypes"
  },
  {
    "path": "packages/compiler-sfc/src/rewriteDefault.ts",
    "chars": 3881,
    "preview": "import { parse } from '@babel/parser'\nimport MagicString from 'magic-string'\nimport type { ParserPlugin } from '@babel/p"
  },
  {
    "path": "packages/compiler-sfc/src/script/analyzeScriptBindings.ts",
    "chars": 3710,
    "preview": "import type {\n  ArrayExpression,\n  Node,\n  ObjectExpression,\n  Statement,\n} from '@babel/types'\nimport { type BindingMet"
  },
  {
    "path": "packages/compiler-sfc/src/script/context.ts",
    "chars": 5887,
    "preview": "import type { CallExpression, Node, ObjectPattern, Program } from '@babel/types'\nimport type { SFCDescriptor } from '../"
  },
  {
    "path": "packages/compiler-sfc/src/script/defineEmits.ts",
    "chars": 3155,
    "preview": "import type {\n  ArrayPattern,\n  Identifier,\n  LVal,\n  Node,\n  ObjectPattern,\n  RestElement,\n} from '@babel/types'\nimport"
  },
  {
    "path": "packages/compiler-sfc/src/script/defineExpose.ts",
    "chars": 480,
    "preview": "import type { Node } from '@babel/types'\nimport { isCallOf } from './utils'\nimport type { ScriptCompileContext } from '."
  },
  {
    "path": "packages/compiler-sfc/src/script/defineModel.ts",
    "chars": 5470,
    "preview": "import type { LVal, Node, TSType } from '@babel/types'\nimport type { ScriptCompileContext } from './context'\nimport { in"
  },
  {
    "path": "packages/compiler-sfc/src/script/defineOptions.ts",
    "chars": 2288,
    "preview": "import type { Node } from '@babel/types'\nimport { unwrapTSNode } from '@vue/compiler-dom'\nimport type { ScriptCompileCon"
  },
  {
    "path": "packages/compiler-sfc/src/script/defineProps.ts",
    "chars": 11214,
    "preview": "import type {\n  Expression,\n  LVal,\n  Node,\n  ObjectExpression,\n  ObjectMethod,\n  ObjectProperty,\n} from '@babel/types'\n"
  }
]

// ... and 497 more files (download for full content)

About this extraction

This page contains the full source code of the vuejs/core GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 697 files (5.1 MB), approximately 1.4M tokens, and a symbol index with 3755 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!